@agent-spaces/server 0.3.64 → 0.3.67

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 (332) hide show
  1. package/dist/adapters/agent-runtime.js +4 -0
  2. package/dist/adapters/claude-code-runtime/index.js +68 -2
  3. package/dist/adapters/claude-code-runtime/message-format.js +26 -0
  4. package/dist/adapters/claude-code-runtime/sdk-config.js +12 -0
  5. package/dist/adapters/codex-function-tool-bridge.js +144 -0
  6. package/dist/adapters/codex-runtime.js +23 -4
  7. package/dist/adapters/git.js +25 -7
  8. package/dist/adapters/hermes-runtime.js +210 -0
  9. package/dist/agents/agent-message-parts.js +1 -1
  10. package/dist/agents/commit-agent.js +4 -2
  11. package/dist/agents/issue-task-controller.js +75 -4
  12. package/dist/agents/pull-request-agent.js +115 -0
  13. package/dist/agents/scheduler-agent.js +1 -1
  14. package/dist/app.js +12 -70
  15. package/dist/middleware/auth.js +1 -1
  16. package/dist/package.json +2 -1
  17. package/dist/routes/agent-sse.js +2 -0
  18. package/dist/routes/agent.js +3 -0
  19. package/dist/routes/database.js +1 -0
  20. package/dist/routes/git.js +197 -317
  21. package/dist/routes/issue.js +1 -1
  22. package/dist/routes/notification.js +10 -0
  23. package/dist/routes/robot-account.js +68 -0
  24. package/dist/routes/version.js +94 -0
  25. package/dist/routes/worktree.js +93 -0
  26. package/dist/services/agent.js +37 -3
  27. package/dist/services/builtin-tools/kanban-tools.js +4 -0
  28. package/dist/services/git-operation-log.js +40 -0
  29. package/dist/services/global-wechat-qr.js +72 -0
  30. package/dist/services/hook-engine.js +175 -17
  31. package/dist/services/notification-center.js +9 -0
  32. package/dist/services/notification-hub/bot-agent.js +3 -1
  33. package/dist/services/notification-hub/service.js +12 -2
  34. package/dist/services/robot-account.js +34 -0
  35. package/dist/services/version.js +59 -0
  36. package/dist/services/workflow-command-runner.js +23 -0
  37. package/dist/services/workflow.js +25 -8
  38. package/dist/services/workspace.js +25 -1
  39. package/dist/services/worktree.js +207 -0
  40. package/dist/storage/robot-account-store.js +39 -0
  41. package/dist/storage/worktree-store.js +33 -0
  42. package/dist/web/404.html +1 -1
  43. package/dist/web/__next.__PAGE__.txt +4 -4
  44. package/dist/web/__next._full.txt +23 -25
  45. package/dist/web/__next._head.txt +4 -4
  46. package/dist/web/__next._index.txt +13 -13
  47. package/dist/web/__next._tree.txt +2 -2
  48. package/dist/web/_next/static/chunks/{0n6_4so_afuwk.js → 0-92u-tiuy40a.js} +4 -4
  49. package/dist/web/_next/static/chunks/{0vbqaynjq8ga..js → 0-yizd8osmas2.js} +1 -1
  50. package/dist/web/_next/static/chunks/0.ln~3mnv8.69.js +1 -0
  51. package/dist/web/_next/static/chunks/{0iuf30t0rjsjv.js → 01y3e9pemva7b.js} +10 -10
  52. package/dist/web/_next/static/chunks/02802taez976w.js +67 -0
  53. package/dist/web/_next/static/chunks/02l~tmzrgny.~.js +1 -0
  54. package/dist/web/_next/static/chunks/033.awk90g6eh.js +1 -0
  55. package/dist/web/_next/static/chunks/03f1bwuynjdmk.js +1 -0
  56. package/dist/web/_next/static/chunks/04cb4kc9r2pd1.js +1 -0
  57. package/dist/web/_next/static/chunks/04de6ha5_e3pp.js +1 -0
  58. package/dist/web/_next/static/chunks/06.kdsa9rr2h1.js +1 -0
  59. package/dist/web/_next/static/chunks/09he0p79ov1rn.js +1 -0
  60. package/dist/web/_next/static/chunks/09vpocs4zuc8h.js +1 -0
  61. package/dist/web/_next/static/chunks/0_o2exgr0e_nh.js +1 -0
  62. package/dist/web/_next/static/chunks/{0xbaakj0dfc0..js → 0_y9nskc-xt2k.js} +1 -1
  63. package/dist/web/_next/static/chunks/0clnj-1fi6u8j.js +3 -0
  64. package/dist/web/_next/static/chunks/0gv40by0zzxs_.js +1 -0
  65. package/dist/web/_next/static/chunks/0iusr8y88.kjg.js +1 -0
  66. package/dist/web/_next/static/chunks/{04a4vsq2wknm4.js → 0j-8418fxvkd1.js} +1 -1
  67. package/dist/web/_next/static/chunks/0j-l7l_k9jt45.js +1 -0
  68. package/dist/web/_next/static/chunks/0j.wxxyoclma5.js +1 -0
  69. package/dist/web/_next/static/chunks/0jq.16sozqik..js +3 -0
  70. package/dist/web/_next/static/chunks/0jw8xdk_fpnp0.css +1 -0
  71. package/dist/web/_next/static/chunks/0l1lkd-wcotma.js +1 -0
  72. package/dist/web/_next/static/chunks/0ncxf_zr4n839.js +1 -0
  73. package/dist/web/_next/static/chunks/0ndo7um~v7vco.js +1 -0
  74. package/dist/web/_next/static/chunks/0ngk.~kan8wq_.js +1 -0
  75. package/dist/web/_next/static/chunks/0p3h-h3zj5ujg.js +30 -0
  76. package/dist/web/_next/static/chunks/0pm-un~-sy3rl.js +1 -0
  77. package/dist/web/_next/static/chunks/0rt9bofnn6qvn.js +1 -0
  78. package/dist/web/_next/static/chunks/0t64.9jd00hio.js +3 -0
  79. package/dist/web/_next/static/chunks/0taui9--5n6-5.js +1 -0
  80. package/dist/web/_next/static/chunks/0ty39169lh~z3.js +1 -0
  81. package/dist/web/_next/static/chunks/0uxzi~9b~k4mn.js +31 -0
  82. package/dist/web/_next/static/chunks/0v8nof~waedlu.js +1 -0
  83. package/dist/web/_next/static/chunks/{0ctg5qmw7uu.1.js → 0vcfoagnpf.aw.js} +3 -3
  84. package/dist/web/_next/static/chunks/{08ckpwmmwlors.js → 0wwwq.gyyz0vg.js} +3 -3
  85. package/dist/web/_next/static/chunks/0x5lak8yz7pm7.js +1 -0
  86. package/dist/web/_next/static/chunks/0xon_.4-o0_zq.js +7 -0
  87. package/dist/web/_next/static/chunks/0zjnrbt7inime.js +1 -0
  88. package/dist/web/_next/static/chunks/0zncg76rgtbm-.js +1 -0
  89. package/dist/web/_next/static/chunks/0zwebpitvpuv1.js +1 -0
  90. package/dist/web/_next/static/chunks/0~02o4g-o6n~m.js +1 -0
  91. package/dist/web/_next/static/chunks/{10l-9myrdo3x9.js → 0~fjezp.k4qk3.js} +1 -1
  92. package/dist/web/_next/static/chunks/0~sh93re1-_rp.js +1 -0
  93. package/dist/web/_next/static/chunks/10_niiq0k6o-p.js +5 -0
  94. package/dist/web/_next/static/chunks/12tjr0_2ccrtq.js +2 -0
  95. package/dist/web/_next/static/chunks/12x5.go_x9mfk.js +1 -0
  96. package/dist/web/_next/static/chunks/{1442stwa0gbxe.js → 12~5dk9i9d16t.js} +2 -2
  97. package/dist/web/_next/static/chunks/13iye4rv5p31b.js +1 -0
  98. package/dist/web/_next/static/chunks/{01~quun6sefgl.js → 13~y-b.b9rrw4.js} +1 -1
  99. package/dist/web/_next/static/chunks/151wzhb5q0lo5.js +1 -0
  100. package/dist/web/_next/static/chunks/18c7g84y01mj0.js +1 -0
  101. package/dist/web/_next/static/chunks/{turbopack-0ndm2zc_pdptk.js → turbopack-11qjwlynmfc-n.js} +1 -1
  102. package/dist/web/_not-found/__next._full.txt +30 -29
  103. package/dist/web/_not-found/__next._head.txt +4 -4
  104. package/dist/web/_not-found/__next._index.txt +13 -13
  105. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  106. package/dist/web/_not-found/__next._not-found.txt +3 -3
  107. package/dist/web/_not-found/__next._tree.txt +2 -2
  108. package/dist/web/_not-found.html +1 -1
  109. package/dist/web/_not-found.txt +30 -29
  110. package/dist/web/index.html +1 -1
  111. package/dist/web/index.txt +23 -25
  112. package/dist/web/login/__next._full.txt +28 -28
  113. package/dist/web/login/__next._head.txt +4 -4
  114. package/dist/web/login/__next._index.txt +13 -13
  115. package/dist/web/login/__next._tree.txt +2 -2
  116. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  117. package/dist/web/login/__next.login.txt +3 -3
  118. package/dist/web/login.html +1 -1
  119. package/dist/web/login.txt +28 -28
  120. package/dist/web/settings/__next._full.txt +33 -32
  121. package/dist/web/settings/__next._head.txt +4 -4
  122. package/dist/web/settings/__next._index.txt +13 -13
  123. package/dist/web/settings/__next._tree.txt +2 -2
  124. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  125. package/dist/web/settings/__next.settings.txt +5 -5
  126. package/dist/web/settings/agents/__next._full.txt +24 -24
  127. package/dist/web/settings/agents/__next._head.txt +4 -4
  128. package/dist/web/settings/agents/__next._index.txt +13 -13
  129. package/dist/web/settings/agents/__next._tree.txt +2 -2
  130. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  131. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  132. package/dist/web/settings/agents/__next.settings.txt +5 -5
  133. package/dist/web/settings/agents.html +1 -1
  134. package/dist/web/settings/agents.txt +24 -24
  135. package/dist/web/settings/mcps/__next._full.txt +24 -24
  136. package/dist/web/settings/mcps/__next._head.txt +4 -4
  137. package/dist/web/settings/mcps/__next._index.txt +13 -13
  138. package/dist/web/settings/mcps/__next._tree.txt +2 -2
  139. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  140. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  141. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  142. package/dist/web/settings/mcps.html +1 -1
  143. package/dist/web/settings/mcps.txt +24 -24
  144. package/dist/web/settings/models/__next._full.txt +24 -24
  145. package/dist/web/settings/models/__next._head.txt +4 -4
  146. package/dist/web/settings/models/__next._index.txt +13 -13
  147. package/dist/web/settings/models/__next._tree.txt +2 -2
  148. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  149. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  150. package/dist/web/settings/models/__next.settings.txt +5 -5
  151. package/dist/web/settings/models.html +1 -1
  152. package/dist/web/settings/models.txt +24 -24
  153. package/dist/web/settings/output-styles/__next._full.txt +24 -24
  154. package/dist/web/settings/output-styles/__next._head.txt +4 -4
  155. package/dist/web/settings/output-styles/__next._index.txt +13 -13
  156. package/dist/web/settings/output-styles/__next._tree.txt +2 -2
  157. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +4 -4
  158. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +3 -3
  159. package/dist/web/settings/output-styles/__next.settings.txt +5 -5
  160. package/dist/web/settings/output-styles.html +1 -1
  161. package/dist/web/settings/output-styles.txt +24 -24
  162. package/dist/web/settings/prompts/__next._full.txt +24 -24
  163. package/dist/web/settings/prompts/__next._head.txt +4 -4
  164. package/dist/web/settings/prompts/__next._index.txt +13 -13
  165. package/dist/web/settings/prompts/__next._tree.txt +2 -2
  166. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  167. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  168. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  169. package/dist/web/settings/prompts.html +1 -1
  170. package/dist/web/settings/prompts.txt +24 -24
  171. package/dist/web/settings/providers/__next._full.txt +24 -24
  172. package/dist/web/settings/providers/__next._head.txt +4 -4
  173. package/dist/web/settings/providers/__next._index.txt +13 -13
  174. package/dist/web/settings/providers/__next._tree.txt +2 -2
  175. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  176. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  177. package/dist/web/settings/providers/__next.settings.txt +5 -5
  178. package/dist/web/settings/providers.html +1 -1
  179. package/dist/web/settings/providers.txt +24 -24
  180. package/dist/web/settings/skills/__next._full.txt +24 -24
  181. package/dist/web/settings/skills/__next._head.txt +4 -4
  182. package/dist/web/settings/skills/__next._index.txt +13 -13
  183. package/dist/web/settings/skills/__next._tree.txt +2 -2
  184. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  185. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  186. package/dist/web/settings/skills/__next.settings.txt +5 -5
  187. package/dist/web/settings/skills.html +1 -1
  188. package/dist/web/settings/skills.txt +24 -24
  189. package/dist/web/settings/tools/__next._full.txt +24 -24
  190. package/dist/web/settings/tools/__next._head.txt +4 -4
  191. package/dist/web/settings/tools/__next._index.txt +13 -13
  192. package/dist/web/settings/tools/__next._tree.txt +2 -2
  193. package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +4 -4
  194. package/dist/web/settings/tools/__next.settings.tools.txt +3 -3
  195. package/dist/web/settings/tools/__next.settings.txt +5 -5
  196. package/dist/web/settings/tools.html +1 -1
  197. package/dist/web/settings/tools.txt +24 -24
  198. package/dist/web/settings.html +1 -1
  199. package/dist/web/settings.txt +33 -32
  200. package/dist/web/workflows/__next._full.txt +31 -33
  201. package/dist/web/workflows/__next._head.txt +4 -4
  202. package/dist/web/workflows/__next._index.txt +13 -13
  203. package/dist/web/workflows/__next._tree.txt +2 -2
  204. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  205. package/dist/web/workflows/__next.workflows.txt +3 -3
  206. package/dist/web/workflows.html +1 -1
  207. package/dist/web/workflows.txt +31 -33
  208. package/dist/web/workspace/_/__next._full.txt +28 -29
  209. package/dist/web/workspace/_/__next._head.txt +4 -4
  210. package/dist/web/workspace/_/__next._index.txt +13 -13
  211. package/dist/web/workspace/_/__next._tree.txt +2 -2
  212. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -3
  213. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  214. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  215. package/dist/web/workspace/_.html +1 -1
  216. package/dist/web/workspace/_.txt +28 -29
  217. package/dist/web/workspaces/__next._full.txt +29 -31
  218. package/dist/web/workspaces/__next._head.txt +4 -4
  219. package/dist/web/workspaces/__next._index.txt +13 -13
  220. package/dist/web/workspaces/__next._tree.txt +2 -2
  221. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  222. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  223. package/dist/web/workspaces.html +1 -1
  224. package/dist/web/workspaces.txt +29 -31
  225. package/dist/ws/agent-prompt.js +32 -3
  226. package/dist/ws/agent-runner.js +83 -6
  227. package/package.json +11 -11
  228. package/dist/web/_next/static/chunks/0-9194nbxy_6d.js +0 -1
  229. package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +0 -1
  230. package/dist/web/_next/static/chunks/02mf61htij8g0.js +0 -31
  231. package/dist/web/_next/static/chunks/04dg4l4hv11q2.js +0 -3
  232. package/dist/web/_next/static/chunks/04fxddw-y20~-.js +0 -7
  233. package/dist/web/_next/static/chunks/04w7~5ooz_pwm.js +0 -1
  234. package/dist/web/_next/static/chunks/05oc21sj24wtq.js +0 -1
  235. package/dist/web/_next/static/chunks/08kfx8on9oty~.js +0 -1
  236. package/dist/web/_next/static/chunks/08k~meqbd8d6v.js +0 -1
  237. package/dist/web/_next/static/chunks/099h96wjsdb25.js +0 -2
  238. package/dist/web/_next/static/chunks/09h23logvq65m.js +0 -1
  239. package/dist/web/_next/static/chunks/0a5y-vhf4i5id.js +0 -3
  240. package/dist/web/_next/static/chunks/0ake2f3x2uan4.js +0 -24
  241. package/dist/web/_next/static/chunks/0ck8dw_9-1cdx.js +0 -1
  242. package/dist/web/_next/static/chunks/0ewceguykiut5.js +0 -1
  243. package/dist/web/_next/static/chunks/0f7cb9li~3jra.js +0 -67
  244. package/dist/web/_next/static/chunks/0ghs9on7wodrm.js +0 -1
  245. package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +0 -1
  246. package/dist/web/_next/static/chunks/0h9cu-k6z5o08.js +0 -1
  247. package/dist/web/_next/static/chunks/0jb4~3qqkw2ps.js +0 -1
  248. package/dist/web/_next/static/chunks/0nb8.iteznuvx.js +0 -1
  249. package/dist/web/_next/static/chunks/0os58q93stt7j.js +0 -3
  250. package/dist/web/_next/static/chunks/0s9lmk8iauou3.js +0 -1
  251. package/dist/web/_next/static/chunks/0sp_zbx~w0am7.js +0 -1
  252. package/dist/web/_next/static/chunks/0tel~zsv4z8l_.js +0 -1
  253. package/dist/web/_next/static/chunks/0twamv4wr_dbv.js +0 -1
  254. package/dist/web/_next/static/chunks/0uhol5wafdbl~.js +0 -1
  255. package/dist/web/_next/static/chunks/0v3a_x4vt42kx.js +0 -5
  256. package/dist/web/_next/static/chunks/0v7q4mys.mnm..css +0 -1
  257. package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +0 -1
  258. package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +0 -1
  259. package/dist/web/_next/static/chunks/0~3xm80~j9ddg.js +0 -1
  260. package/dist/web/_next/static/chunks/14s37n6h0_q3x.js +0 -16
  261. package/dist/web/_next/static/chunks/161ik5kfyuwtd.js +0 -1
  262. package/dist/web/_next/static/chunks/17k~zbv0_4rep.js +0 -1
  263. package/public/output-styles/carmack-mode.md +0 -381
  264. package/public/output-styles/codex-rigor-mode.md +0 -114
  265. package/public/output-styles/dhh-mode.md +0 -265
  266. package/public/output-styles/evan-you-mode.md +0 -539
  267. package/public/output-styles/index.json +0 -37
  268. package/public/output-styles/jobs-mode.md +0 -369
  269. package/public/output-styles/linus-mode.md +0 -135
  270. package/public/output-styles/uncle-bob-mode.md +0 -221
  271. package/public/prompt/andrej-karpathy-skills.md +0 -65
  272. package/public/prompt/claude-token-efficient-coding.md +0 -35
  273. package/public/prompt/index.json +0 -12
  274. package/public/skills/index.json +0 -92
  275. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +0 -243
  276. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +0 -44
  277. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +0 -46
  278. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +0 -124
  279. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +0 -124
  280. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +0 -438
  281. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +0 -29
  282. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +0 -40
  283. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +0 -58
  284. package/public/skills/superpowers/brainstorming/SKILL.md +0 -164
  285. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +0 -214
  286. package/public/skills/superpowers/brainstorming/scripts/helper.js +0 -88
  287. package/public/skills/superpowers/brainstorming/scripts/server.cjs +0 -354
  288. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +0 -148
  289. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +0 -56
  290. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +0 -49
  291. package/public/skills/superpowers/brainstorming/visual-companion.md +0 -287
  292. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -182
  293. package/public/skills/superpowers/executing-plans/SKILL.md +0 -70
  294. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +0 -251
  295. package/public/skills/superpowers/receiving-code-review/SKILL.md +0 -213
  296. package/public/skills/superpowers/requesting-code-review/SKILL.md +0 -103
  297. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +0 -168
  298. package/public/skills/superpowers/subagent-driven-development/SKILL.md +0 -279
  299. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
  300. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
  301. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  302. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +0 -119
  303. package/public/skills/superpowers/systematic-debugging/SKILL.md +0 -296
  304. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +0 -158
  305. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -115
  306. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +0 -122
  307. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +0 -63
  308. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -169
  309. package/public/skills/superpowers/systematic-debugging/test-academic.md +0 -14
  310. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +0 -58
  311. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +0 -68
  312. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +0 -69
  313. package/public/skills/superpowers/test-driven-development/SKILL.md +0 -371
  314. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -299
  315. package/public/skills/superpowers/using-git-worktrees/SKILL.md +0 -215
  316. package/public/skills/superpowers/using-superpowers/SKILL.md +0 -117
  317. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +0 -59
  318. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +0 -42
  319. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +0 -51
  320. package/public/skills/superpowers/verification-before-completion/SKILL.md +0 -139
  321. package/public/skills/superpowers/writing-plans/SKILL.md +0 -152
  322. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
  323. package/public/skills/superpowers/writing-skills/SKILL.md +0 -655
  324. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +0 -1150
  325. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  326. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +0 -172
  327. package/public/skills/superpowers/writing-skills/persuasion-principles.md +0 -187
  328. package/public/skills/superpowers/writing-skills/render-graphs.js +0 -168
  329. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +0 -384
  330. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_buildManifest.js +0 -0
  331. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_clientMiddlewareManifest.js +0 -0
  332. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,843982,(e,t,i)=>{"use strict";function r({widthInt:e,heightInt:t,blurWidth:i,blurHeight:l,blurDataURL:s,objectFit:n}){let o=i?40*i:e,a=l?40*l:t,d=o&&a?`viewBox='0 0 ${o} ${a}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===n?"xMidYMid":"cover"===n?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${s}'/%3E%3C/svg%3E`}Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},500680,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r={VALID_LOADERS:function(){return s},imageConfigDefault:function(){return n}};for(var l in r)Object.defineProperty(i,l,{enumerable:!0,get:r[l]});let s=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},622398,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(837121);let r=e.r(745137),l=e.r(843982),s=e.r(500680),n=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function a(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:i=!1,priority:c=!1,preload:p=!1,loading:f,className:u,quality:_,width:m,height:g,fill:y=!1,style:h,overrideSrc:x,onLoad:j,onLoadingComplete:v,placeholder:b="empty",blurDataURL:C,fetchPriority:w,decoding:k="async",layout:N,objectFit:P,objectPosition:D,lazyBoundary:O,lazyRoot:I,...S},z){var M;let T,E,F,{imgConf:R,showAltText:$,blurComplete:L,defaultLoader:A}=z,U=R||s.imageConfigDefault;if("allSizes"in U)T=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),i=U.qualities?.sort((e,t)=>e-t);T={...U,allSizes:e,deviceSizes:t,qualities:i}}if(void 0===A)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=S.loader||A;delete S.loader,delete S.srcSet;let q="__next_img_default"in B;if(q){if("custom"===T.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:i,...r}=t;return e(r)}}if(N){"fill"===N&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(h={...h,...e});let i={responsive:"100vw",fill:"100vw"}[N];i&&!t&&(t=i)}let W="",H=a(m),G=a(g);if((M=e)&&"object"==typeof M&&(o(M)||void 0!==M.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(E=t.blurWidth,F=t.blurHeight,C=C||t.blurDataURL,W=t.src,!y)if(H||G){if(H&&!G){let e=H/t.width;G=Math.round(t.height*e)}else if(!H&&G){let e=G/t.height;H=Math.round(t.width*e)}}else H=t.width,G=t.height}let V=!c&&!p&&("lazy"===f||void 0===f);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(i=!0,V=!1),T.unoptimized&&(i=!0),q&&!T.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(i=!0);let K=a(_),X=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:D}:{},$?{}:{color:"transparent"},h),J=L||"empty"===b?null:"blur"===b?`url("data:image/svg+xml;charset=utf-8,${(0,l.getImageBlurSvg)({widthInt:H,heightInt:G,blurWidth:E,blurHeight:F,blurDataURL:C||"",objectFit:X.objectFit})}")`:`url("${b}")`,Q=n.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Y=J?{backgroundSize:Q,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:J}:{},Z=function({config:e,src:t,unoptimized:i,width:l,quality:s,sizes:n,loader:o}){if(i){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,r.getDeploymentId)();if(e){let i=t.indexOf("?");if(-1!==i){let r=new URLSearchParams(t.slice(i+1));r.get("dpl")||(r.append("dpl",e),t=t.slice(0,i)+"?"+r.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:a,kind:d}=function({deviceSizes:e,allSizes:t},i,r){if(r){let i=/(^|\s)(1?\d?\d)vw/g,l=[];for(let e;e=i.exec(r);)l.push(parseInt(e[2]));if(l.length){let i=.01*Math.min(...l);return{widths:t.filter(t=>t>=e[0]*i),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof i?{widths:e,kind:"w"}:{widths:[...new Set([i,2*i].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,l,n),c=a.length-1;return{sizes:n||"w"!==d?n:"100vw",srcSet:a.map((i,r)=>`${o({config:e,src:t,quality:s,width:i})} ${"w"===d?i:r+1}${d}`).join(", "),src:o({config:e,src:t,quality:s,width:a[c]})}}({config:T,src:e,unoptimized:i,width:H,quality:K,sizes:t,loader:B}),ee=V?"lazy":f;return{props:{...S,loading:ee,fetchPriority:w,width:H,height:G,decoding:k,className:u,style:{...X,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:x||Z.src},meta:{unoptimized:i,preload:p||c,placeholder:b,fill:y}}}},852824,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"default",{enumerable:!0,get:function(){return o}});let r=e.r(764556),l="u"<typeof window,s=l?()=>{}:r.useLayoutEffect,n=l?()=>{}:r.useEffect;function o(e){let{headManager:t,reduceComponentsToState:i}=e;function o(){if(t&&t.mountedInstances){let e=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(i(e))}}return l&&(t?.mountedInstances?.add(e.children),o()),s(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),s(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),n(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},120333,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r={default:function(){return m},defaultHead:function(){return p}};for(var l in r)Object.defineProperty(i,l,{enumerable:!0,get:r[l]});let s=e.r(481258),n=e.r(744066),o=e.r(344180),a=n._(e.r(764556)),d=s._(e.r(852824)),c=e.r(57426);function p(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(837121);let u=["name","httpEquiv","charSet","itemProp"];function _(e){let t,i,r,l;return e.reduce(f,[]).reverse().concat(p().reverse()).filter((t=new Set,i=new Set,r=new Set,l={},e=>{let s=!0,n=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){n=!0;let i=e.key.slice(e.key.indexOf("$")+1);t.has(i)?s=!1:t.add(i)}switch(e.type){case"title":case"base":i.has(e.type)?s=!1:i.add(e.type);break;case"meta":for(let t=0,i=u.length;t<i;t++){let i=u[t];if(e.props.hasOwnProperty(i))if("charSet"===i)r.has(i)?s=!1:r.add(i);else{let t=e.props[i],r=l[i]||new Set;("name"!==i||!n)&&r.has(t)?s=!1:(r.add(t),l[i]=r)}}}return s})).reverse().map((e,t)=>{let i=e.key||t;return a.default.cloneElement(e,{key:i})})}let m=function({children:e}){let t=(0,a.useContext)(c.HeadManagerContext);return(0,o.jsx)(d.default,{reduceComponentsToState:_,headManager:t,children:e})};("function"==typeof i.default||"object"==typeof i.default&&null!==i.default)&&void 0===i.default.__esModule&&(Object.defineProperty(i.default,"__esModule",{value:!0}),Object.assign(i.default,i),t.exports=i.default)},914272,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"ImageConfigContext",{enumerable:!0,get:function(){return s}});let r=e.r(481258)._(e.r(764556)),l=e.r(500680),s=r.default.createContext(l.imageConfigDefault)},338431,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"RouterContext",{enumerable:!0,get:function(){return r}});let r=e.r(481258)._(e.r(764556)).default.createContext(null)},741186,(e,t,i)=>{"use strict";function r(e,t){let i=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-i)<Math.abs(e-i)?t:e,t.qualities[0]):i}Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"findClosestQuality",{enumerable:!0,get:function(){return r}})},99552,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"default",{enumerable:!0,get:function(){return n}});let r=e.r(741186),l=e.r(745137);function s({config:e,src:t,width:i,quality:n}){let o=(0,l.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let i=new URLSearchParams(t.slice(e+1)),r=i.get("dpl");if(r){o=r,i.delete("dpl");let l=i.toString();t=t.slice(0,e)+(l?"?"+l:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let a=(0,r.findClosestQuality)(n,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${i}&q=${a}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}s.__next_img_default=!0;let n=s},822862,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"useMergedRef",{enumerable:!0,get:function(){return l}});let r=e.r(764556);function l(e,t){let i=(0,r.useRef)(null),l=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=i.current;e&&(i.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(i.current=s(e,r)),t&&(l.current=s(t,r))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let i=e(t);return"function"==typeof i?i:()=>e(null)}}("function"==typeof i.default||"object"==typeof i.default&&null!==i.default)&&void 0===i.default.__esModule&&(Object.defineProperty(i.default,"__esModule",{value:!0}),Object.assign(i.default,i),t.exports=i.default)},810034,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"Image",{enumerable:!0,get:function(){return j}});let r=e.r(481258),l=e.r(744066),s=e.r(344180),n=l._(e.r(764556)),o=r._(e.r(106206)),a=r._(e.r(120333)),d=e.r(622398),c=e.r(500680),p=e.r(914272);e.r(837121);let f=e.r(338431),u=r._(e.r(99552)),_=e.r(822862),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function g(e,t,i,r,l,s,n){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&l(!0),i?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,l=!1;i.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>l,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{l=!0,t.stopPropagation()}})}r?.current&&r.current(e)}}))}function y(e){return n.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let h=(0,n.forwardRef)(({src:e,srcSet:t,sizes:i,height:r,width:l,decoding:o,className:a,style:d,fetchPriority:c,placeholder:p,loading:f,unoptimized:u,fill:m,onLoadRef:h,onLoadingCompleteRef:x,setBlurComplete:j,setShowAltText:v,sizesInput:b,onLoad:C,onError:w,...k},N)=>{let P=(0,n.useCallback)(e=>{e&&(w&&(e.src=e.src),e.complete&&g(e,p,h,x,j,u,b))},[e,p,h,x,j,w,u,b]),D=(0,_.useMergedRef)(N,P);return(0,s.jsx)("img",{...k,...y(c),loading:f,width:l,height:r,decoding:o,"data-nimg":m?"fill":"1",className:a,style:d,sizes:i,srcSet:t,src:e,ref:D,onLoad:e=>{g(e.currentTarget,p,h,x,j,u,b)},onError:e=>{v(!0),"empty"!==p&&j(!0),w&&w(e)}})});function x({isAppRouter:e,imgAttributes:t}){let i={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,i),null):(0,s.jsx)(a.default,{children:(0,s.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...i},"__nimg-"+t.src+t.srcSet+t.sizes)})}let j=(0,n.forwardRef)((e,t)=>{let i=(0,n.useContext)(f.RouterContext),r=(0,n.useContext)(p.ImageConfigContext),l=(0,n.useMemo)(()=>{let e=m||r||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),i=e.deviceSizes.sort((e,t)=>e-t),l=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:i,qualities:l,localPatterns:"u"<typeof window?r?.localPatterns:e.localPatterns}},[r]),{onLoad:o,onLoadingComplete:a}=e,_=(0,n.useRef)(o);(0,n.useEffect)(()=>{_.current=o},[o]);let g=(0,n.useRef)(a);(0,n.useEffect)(()=>{g.current=a},[a]);let[y,j]=(0,n.useState)(!1),[v,b]=(0,n.useState)(!1),{props:C,meta:w}=(0,d.getImgProps)(e,{defaultLoader:u.default,imgConf:l,blurComplete:y,showAltText:v});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h,{...C,unoptimized:w.unoptimized,placeholder:w.placeholder,fill:w.fill,onLoadRef:_,onLoadingCompleteRef:g,setBlurComplete:j,setShowAltText:b,sizesInput:e.sizes,ref:t}),w.preload?(0,s.jsx)(x,{isAppRouter:!i,imgAttributes:C}):null]})});("function"==typeof i.default||"object"==typeof i.default&&null!==i.default)&&void 0===i.default.__esModule&&(Object.defineProperty(i.default,"__esModule",{value:!0}),Object.assign(i.default,i),t.exports=i.default)},776785,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r={default:function(){return c},getImageProps:function(){return d}};for(var l in r)Object.defineProperty(i,l,{enumerable:!0,get:r[l]});let s=e.r(481258),n=e.r(622398),o=e.r(810034),a=s._(e.r(99552));function d(e){let{props:t}=(0,n.getImgProps)(e,{defaultLoader:a.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,i]of Object.entries(t))void 0===i&&delete t[e];return{props:t}}let c=o.Image},253937,(e,t,i)=>{t.exports=e.r(776785)},359209,e=>{"use strict";var t=e.i(344180),i=e.i(253937);let r={".ts":"file_type_typescript",".tsx":"file_type_reactts",".js":"file_type_js",".jsx":"file_type_reactjs",".mjs":"file_type_js",".cjs":"file_type_js",".json":"file_type_json",".json5":"file_type_json5",".jsonc":"file_type_json",".md":"file_type_markdown",".mdx":"file_type_mdx",".css":"file_type_css",".scss":"file_type_scss",".less":"file_type_less",".html":"file_type_html",".svg":"file_type_svg",".png":"file_type_image",".jpg":"file_type_image",".jpeg":"file_type_image",".gif":"file_type_image",".webp":"file_type_webp",".ico":"file_type_favicon",".yaml":"file_type_yaml",".yml":"file_type_yaml",".toml":"file_type_toml",".xml":"file_type_xml",".graphql":"file_type_graphql",".gql":"file_type_graphql",".prisma":"file_type_prisma",".sql":"file_type_sql",".sh":"file_type_shell",".bash":"file_type_shell",".zsh":"file_type_shell",".py":"file_type_python",".rb":"file_type_ruby",".go":"file_type_go",".rs":"file_type_rust",".java":"file_type_java",".kt":"file_type_kotlin",".swift":"file_type_swift",".c":"file_type_c",".cpp":"file_type_cpp",".h":"file_type_cheader",".hpp":"file_type_cppheader",".cs":"file_type_csharp",".php":"file_type_php",".vue":"file_type_vue",".svelte":"file_type_svelte",".dart":"file_type_dartlang",".lua":"file_type_lua",".r":"file_type_r",".ex":"file_type_elixir",".exs":"file_type_elixir",".erl":"file_type_erlang",".hs":"file_type_haskell",".scala":"file_type_scala",".clj":"file_type_clojure",".cljs":"file_type_clojurescript",".coffee":"file_type_coffeescript",".dockerfile":"file_type_docker",".makefile":"file_type_makefile",".txt":"file_type_text",".log":"file_type_log",".env":"file_type_config",".gitignore":"file_type_git",".editorconfig":"file_type_editorconfig",".prettierrc":"file_type_prettier",".eslintrc":"file_type_eslint",".lock":"file_type_lock",".wasm":"file_type_wasm",".pdf":"file_type_pdf",".mp4":"file_type_video",".webm":"file_type_video",".mov":"file_type_video",".avi":"file_type_video",".mkv":"file_type_video",".flv":"file_type_video",".mp3":"file_type_audio",".wav":"file_type_audio",".ogg":"file_type_audio",".flac":"file_type_audio",".aac":"file_type_audio",".m4a":"file_type_audio",".wma":"file_type_audio",".zip":"file_type_zip",".tar":"file_type_zip",".gz":"file_type_zip"},l={"tsconfig.json":"file_type_tsconfig","tsconfig.build.json":"file_type_tsconfig","jsconfig.json":"file_type_jsconfig","package.json":"file_type_npm","package-lock.json":"file_type_npm","pnpm-lock.yaml":"file_type_pnpm","pnpm-workspace.yaml":"file_type_pnpm",".pnpmfile.cjs":"file_type_pnpm","yarn.lock":"file_type_yarn",".yarnrc":"file_type_yarn","next.config.ts":"file_type_next","next.config.js":"file_type_next","next.config.mjs":"file_type_next","vite.config.ts":"file_type_vite","vite.config.js":"file_type_vite","tailwind.config.ts":"file_type_tailwind","tailwind.config.js":"file_type_tailwind","postcss.config.mjs":"file_type_postcss","postcss.config.js":"file_type_postcss",".eslintrc":"file_type_eslint",".eslintrc.js":"file_type_eslint",".eslintrc.json":"file_type_eslint",".eslintrc.cjs":"file_type_eslint",".prettierrc":"file_type_prettier",".prettierrc.js":"file_type_prettier",".prettierrc.json":"file_type_prettier",".gitignore":"file_type_git",".gitattributes":"file_type_git",".editorconfig":"file_type_editorconfig",dockerfile:"file_type_docker","docker-compose.yml":"file_type_docker","docker-compose.yaml":"file_type_docker",makefile:"file_type_makefile","readme.md":"file_type_markdown",license:"file_type_license","license.md":"file_type_license",".env":"file_type_config",".env.local":"file_type_config",".env.development":"file_type_config",".env.production":"file_type_config",".env.test":"file_type_config",".npmrc":"file_type_npm",".babelrc":"file_type_babel","babel.config.js":"file_type_babel","babel.config.json":"file_type_babel",".babelrc.js":"file_type_babel",".babelrc.json":"file_type_babel","jest.config.ts":"file_type_jest","jest.config.js":"file_type_jest","vitest.config.ts":"file_type_vite","vitest.config.js":"file_type_vite","webpack.config.js":"file_type_webpack","webpack.config.ts":"file_type_webpack","rollup.config.js":"file_type_rollup","rollup.config.ts":"file_type_rollup","renovate.json":"file_type_renovate",".prettierignore":"file_type_prettier",".eslintignore":"file_type_eslint",".dockerignore":"file_type_docker",prisma:"file_type_prisma"},s={src:"folder_type_src",lib:"folder_type_library",dist:"folder_type_dist",build:"folder_type_dist",out:"folder_type_dist",public:"folder_type_public",assets:"folder_type_asset",static:"folder_type_asset",components:"folder_type_component",pages:"folder_type_view",views:"folder_type_view",routes:"folder_type_route",api:"folder_type_api",server:"folder_type_server",client:"folder_type_client",test:"folder_type_test",tests:"folder_type_test",__tests__:"folder_type_test",spec:"folder_type_test",specs:"folder_type_test",e2e:"folder_type_e2e",docs:"folder_type_docs",config:"folder_type_config",configs:"folder_type_config",scripts:"folder_type_script",styles:"folder_type_style",css:"folder_type_css",images:"folder_type_images",img:"folder_type_images",icons:"folder_type_images",fonts:"folder_type_fonts",types:"folder_type_typescript",typings:"folder_type_typings",hooks:"folder_type_hook",utils:"folder_type_helper",helpers:"folder_type_helper",tools:"folder_type_tools",services:"folder_type_services",middleware:"folder_type_middleware",models:"folder_type_model",store:"folder_type_redux",stores:"folder_type_redux",state:"folder_type_redux",node_modules:"folder_type_node",".git":"folder_type_git",".github":"folder_type_github",".vscode":"folder_type_vscode",".idea":"folder_type_idea",docker:"folder_type_docker",".docker":"folder_type_docker",kubernetes:"folder_type_kubernetes",k8s:"folder_type_kubernetes",".husky":"folder_type_husky",coverage:"folder_type_coverage",".next":"folder_type_next",".nuxt":"folder_type_nuxt",ios:"folder_type_ios",android:"folder_type_android",app:"folder_type_app",packages:"folder_type_package",modules:"folder_type_module",plugins:"folder_type_plugin",templates:"folder_type_template",i18n:"folder_type_locale",locales:"folder_type_locale",lang:"folder_type_locale",translations:"folder_type_locale",prisma:"folder_type_db",db:"folder_type_db",database:"folder_type_db",migrations:"folder_type_db",seeds:"folder_type_db",storybook:"folder_type_story",stories:"folder_type_story",".storybook":"folder_type_story",".cache":"folder_type_temp",temp:"folder_type_temp",tmp:"folder_type_temp"};e.s(["FileIconImg",0,function({name:e}){return(0,t.jsx)(i.default,{src:function(e){let t,i=e.toLowerCase();if(l[i])return`/icons/${l[i]}.svg`;let s=(t=e.lastIndexOf("."))>=0?e.slice(t).toLowerCase():"";return s&&r[s]?`/icons/${r[s]}.svg`:"/icons/default_file.svg"}(e),alt:e,width:16,height:16,className:"size-4 shrink-0",unoptimized:!0})},"FolderIconImg",0,function({name:e,isOpen:r}){let l;return(0,t.jsx)(i.default,{src:(l=s[e.toLowerCase()])?`/icons/${l}${r?"_opened":""}.svg`:r?"/icons/default_folder_opened.svg":"/icons/default_folder.svg",alt:e,width:16,height:16,className:"size-4 shrink-0",unoptimized:!0})}])},486657,e=>{"use strict";let t=(0,e.i(433721).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,t],486657)},751962,687204,791298,231352,833237,e=>{"use strict";var t=e.i(344180),i=e.i(932031),r=e.i(984178),l=e.i(383171),s=e.i(415955),n=e.i(137340),o=e.i(307858),a=e.i(129981),d=e.i(159619),c=e.i(198699),p=e.i(433721);let f=(0,p.default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);e.s(["FilePlus",0,f],687204);var u=e.i(486657),_=e.i(962562);let m=(0,p.default)("move-right",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]);var g=e.i(764556),y=e.i(256186),h=e.i(940361),x=e.i(209988),j=e.i(260218),v=e.i(465458),b=e.i(193251);let C=(0,p.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);e.s(["Link",0,C],791298);var w=e.i(244073);function k({filePath:e,workspaceId:i,boundDir:r,onRename:l,onMove:s,onCopyItem:a,onDelete:c}){let p=(0,w.useTranslations)("editor");return(0,t.jsxs)(h.ContextMenuContent,{children:[l&&(0,t.jsxs)(h.ContextMenuItem,{onClick:l,children:[(0,t.jsx)(_.Pencil,{className:"size-4"}),p("rename")]}),s&&(0,t.jsxs)(h.ContextMenuItem,{onClick:s,children:[(0,t.jsx)(m,{className:"size-4"}),p("move")]}),a&&(0,t.jsxs)(h.ContextMenuItem,{onClick:a,children:[(0,t.jsx)(d.Copy,{className:"size-4"}),p("copyFile")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>{let t=r?r.replace(/\/+$/,"")+"/"+e:e;navigator.clipboard.writeText(t)},children:[(0,t.jsx)(d.Copy,{className:"size-4"}),p("copyPath")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>{fetch(`/api/workspaces/${i}/files/reveal?path=${encodeURIComponent(e)}`,{method:"POST"})},children:[(0,t.jsx)(o.ExternalLink,{className:"size-4"}),p("revealInFinder")]}),c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.ContextMenuSeparator,{}),(0,t.jsxs)(h.ContextMenuItem,{onClick:c,className:"text-destructive focus:text-destructive",children:[(0,t.jsx)(n.Trash2,{className:"size-4"}),p("deleteFileTitle")]})]}),(0,t.jsx)(h.ContextMenuSeparator,{}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>{let t=`/api/workspaces/${i}/files/download?path=${encodeURIComponent(e)}`,r=document.createElement("a");r.href=t,r.download="",document.body.appendChild(r),r.click(),document.body.removeChild(r)},children:[(0,t.jsx)(b.Download,{className:"size-4"}),p("download")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>{let t=`${window.location.origin}/api/workspaces/${i}/files/download?path=${encodeURIComponent(e)}`;navigator.clipboard.writeText(t)},children:[(0,t.jsx)(C,{className:"size-4"}),p("copyDownloadUrl")]})]})}e.s(["FileContextMenu",0,k],231352);var N=e.i(359209);let P=(0,g.createContext)({expandedPaths:new Set,togglePath:()=>void 0}),D=(0,g.createContext)({path:"",name:"",isExpanded:!1,ignored:!1}),O=({path:e,name:r,folderIcon:p,ignored:u,className:b,children:C,...k})=>{let{expandedPaths:N,togglePath:O,selectedPath:I,onFileSelect:S,workspaceId:T,onDelete:E,onImport:F,onCopyPath:R,onCreateFile:$,onCreateFolder:L,onRename:A,onMove:U,onCopyItem:B,onLoadDirectory:q,loadingDirs:W,boundDir:H}=(0,g.useContext)(P),G=(0,g.useContext)(D),V=N.has(e),K=u||G.ignored,X=I===e,J=!!W?.has(e),Q=(0,w.useTranslations)("editor"),Y=(0,w.useTranslations)("common"),[Z,ee]=(0,g.useState)(!1),et=()=>{fetch(`/api/workspaces/${T}/files/reveal?path=${encodeURIComponent(e)}`,{method:"POST"})};return(0,t.jsxs)(D.Provider,{value:{path:e,name:r,isExpanded:V,ignored:K},children:[(0,t.jsxs)(h.ContextMenu,{children:[(0,t.jsx)(y.Collapsible,{onOpenChange:()=>{let t=!V;O(e),t&&q&&q(e)},open:V,children:(0,t.jsxs)("div",{className:b,role:"treeitem","aria-selected":!1,tabIndex:0,...k,children:[(0,t.jsx)(h.ContextMenuTrigger,{className:"contents",children:(0,t.jsxs)("div",{className:"group/folder relative",children:[(0,t.jsxs)(y.CollapsibleTrigger,{className:(0,v.cn)("flex w-full items-center gap-1 rounded px-2 py-1 pr-16 text-left transition-colors hover:bg-muted/50",X&&"bg-muted",K&&"opacity-50"),children:[(0,t.jsx)(i.ChevronRightIcon,{className:(0,v.cn)("size-4 shrink-0 text-muted-foreground transition-transform",V&&"rotate-90")}),(0,t.jsx)(z,{children:p?p(V):V?(0,t.jsx)(s.FolderOpenIcon,{className:"size-4 text-blue-500"}):(0,t.jsx)(l.FolderIcon,{className:"size-4 text-blue-500"})}),(0,t.jsx)(M,{children:r}),J&&(0,t.jsx)("span",{className:"size-3 border border-muted-foreground border-t-transparent rounded-full animate-spin shrink-0"})]}),(0,t.jsxs)("div",{className:"absolute right-1 top-1/2 -translate-y-1/2 flex items-center gap-1 invisible group-hover/folder:visible",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("button",{onClick:et,className:"p-0.5 rounded hover:bg-accent cursor-pointer",title:Q("revealInFinder"),children:(0,t.jsx)(o.ExternalLink,{className:"size-3 text-muted-foreground"})}),(0,t.jsx)("button",{onClick:()=>ee(!0),className:"p-0.5 rounded hover:bg-accent cursor-pointer",title:Y("delete"),children:(0,t.jsx)(n.Trash2,{className:"size-3 text-muted-foreground hover:text-destructive"})})]})]})}),(0,t.jsx)(y.CollapsibleContent,{children:(0,t.jsx)("div",{className:"ml-4 border-l pl-2",children:J?(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"size-3 border border-muted-foreground border-t-transparent rounded-full animate-spin shrink-0"}),(0,t.jsx)("span",{children:Q("loading")})]}):C})})]})}),(0,t.jsxs)(h.ContextMenuContent,{children:[(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>A?.(e),children:[(0,t.jsx)(_.Pencil,{className:"size-4"}),Q("rename")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>U?.(e),children:[(0,t.jsx)(m,{className:"size-4"}),Q("move")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>B?.(e),children:[(0,t.jsx)(d.Copy,{className:"size-4"}),Q("copyFile")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>F?.(e),children:[(0,t.jsx)(a.Upload,{className:"size-4"}),Q("importFile")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>{let t=H?H.replace(/\/+$/,"")+"/"+e:e;navigator.clipboard.writeText(t)},children:[(0,t.jsx)(d.Copy,{className:"size-4"}),Q("copyPath")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>$?.(e),children:[(0,t.jsx)(f,{className:"size-4"}),Q("newFile")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>L?.(e),children:[(0,t.jsx)(c.FolderPlus,{className:"size-4"}),Q("newFolder")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:et,children:[(0,t.jsx)(o.ExternalLink,{className:"size-4"}),Q("revealInFinder")]}),(0,t.jsxs)(h.ContextMenuItem,{onClick:()=>ee(!0),className:"text-destructive focus:text-destructive",children:[(0,t.jsx)(n.Trash2,{className:"size-4"}),Y("delete")]})]})]}),(0,t.jsx)(x.Dialog,{open:Z,onOpenChange:ee,children:(0,t.jsxs)(x.DialogContent,{className:"sm:max-w-[400px]",children:[(0,t.jsx)(x.DialogHeader,{children:(0,t.jsxs)(x.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(n.Trash2,{className:"size-5 text-destructive"}),Q("deleteFolderTitle")]})}),(0,t.jsx)(x.DialogDescription,{children:Q("deleteFolderDesc",{name:r})}),(0,t.jsxs)(x.DialogFooter,{children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:()=>ee(!1),children:Y("cancel")}),(0,t.jsx)(j.Button,{variant:"destructive",onClick:()=>{ee(!1),E?.(e)},children:Y("delete")})]})]})})]})},I=(0,g.createContext)({path:"",name:""}),S=({path:e,name:i,icon:l,ignored:s,className:a,children:d,...c})=>{let{selectedPath:p,onFileSelect:f,workspaceId:_,onDelete:m,onRename:y,onMove:b,onCopyItem:C,fileSizeMap:N,boundDir:O}=(0,g.useContext)(P),S=(0,g.useContext)(D),E=s||S.ignored,F=p===e,R=(0,w.useTranslations)("editor"),$=(0,w.useTranslations)("common"),[L,A]=(0,g.useState)(!1),[U,B]=(0,g.useState)(!1),q=(0,g.useRef)(null);(0,g.useEffect)(()=>{F&&q.current&&q.current.scrollIntoView({block:"nearest",inline:"nearest"})},[F]);let W=N?.[e],H=null!=W&&W>1048576,G=(0,g.useCallback)(()=>{H?A(!0):f?.(e)},[H,f,e]),V=(0,g.useCallback)(()=>{A(!1),f?.(e)},[f,e]);return(0,t.jsxs)(I.Provider,{value:{path:e,name:i},children:[(0,t.jsxs)(h.ContextMenu,{children:[(0,t.jsx)(h.ContextMenuTrigger,{className:"contents",children:(0,t.jsx)("div",{ref:q,className:(0,v.cn)("group/file flex cursor-pointer items-center gap-1 rounded px-2 py-1 transition-colors hover:bg-muted/50",F&&"bg-muted",E&&"opacity-50",a),onClick:G,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&G()},role:"treeitem","aria-selected":!1,tabIndex:0,...c,children:d??(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"size-4"}),(0,t.jsx)(z,{children:l??(0,t.jsx)(r.FileIcon,{className:"size-4 text-muted-foreground"})}),(0,t.jsx)(M,{children:i}),(0,t.jsxs)(T,{children:[(0,t.jsx)("button",{onClick:()=>{fetch(`/api/workspaces/${_}/files/reveal?path=${encodeURIComponent(e)}`,{method:"POST"})},className:"p-0.5 rounded hover:bg-accent cursor-pointer",title:R("revealInFinder"),children:(0,t.jsx)(o.ExternalLink,{className:"size-3 text-muted-foreground"})}),(0,t.jsx)("button",{onClick:()=>B(!0),className:"p-0.5 rounded hover:bg-accent cursor-pointer",title:$("delete"),children:(0,t.jsx)(n.Trash2,{className:"size-3 text-muted-foreground hover:text-destructive"})})]})]})})}),(0,t.jsx)(k,{filePath:e,workspaceId:_,boundDir:O,onRename:()=>y?.(e),onMove:()=>b?.(e),onCopyItem:()=>C?.(e),onDelete:()=>B(!0)})]}),(0,t.jsx)(x.Dialog,{open:L,onOpenChange:A,children:(0,t.jsxs)(x.DialogContent,{className:"sm:max-w-[400px]",children:[(0,t.jsx)(x.DialogHeader,{children:(0,t.jsxs)(x.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(u.AlertTriangle,{className:"size-5 text-yellow-500"}),R("fileTooLargeTitle")]})}),(0,t.jsx)(x.DialogDescription,{className:"break-all",children:R("fileTooLargeDesc",{name:i,size:W<1024?`${W} B`:W<1048576?`${(W/1024).toFixed(1)} KB`:`${(W/1048576).toFixed(1)} MB`})}),(0,t.jsxs)(x.DialogFooter,{children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:()=>A(!1),children:$("cancel")}),(0,t.jsx)(j.Button,{onClick:V,children:R("openAnyway")})]})]})}),(0,t.jsx)(x.Dialog,{open:U,onOpenChange:B,children:(0,t.jsxs)(x.DialogContent,{className:"sm:max-w-[400px]",children:[(0,t.jsx)(x.DialogHeader,{children:(0,t.jsxs)(x.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(n.Trash2,{className:"size-5 text-destructive"}),R("deleteFileTitle")]})}),(0,t.jsx)(x.DialogDescription,{children:R("deleteFileDesc",{name:i})}),(0,t.jsxs)(x.DialogFooter,{children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:()=>B(!1),children:$("cancel")}),(0,t.jsx)(j.Button,{variant:"destructive",onClick:()=>{B(!1),m?.(e)},children:$("delete")})]})]})})]})},z=({className:e,children:i,...r})=>(0,t.jsx)("span",{className:(0,v.cn)("shrink-0",e),...r,children:i}),M=({className:e,children:i,...r})=>(0,t.jsx)("span",{className:(0,v.cn)("truncate flex-1 min-w-0",e),...r,children:i}),T=({className:e,children:i,...r})=>(0,t.jsx)("div",{className:(0,v.cn)("ml-auto flex items-center gap-1 shrink-0 invisible group-hover/file:visible",e),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:"group",...r,children:i});function E({nodes:e,getNodeId:i,getChildren:r,renderNode:l,activeId:s,expandedIds:n,draggedOverId:o,level:a=0,indent:d=12,onDragStart:c,onDragOver:p,onDragLeave:f,onDrop:u,onDragEnd:_,shouldRenderChildren:m}){return e.map(e=>{let y=i(e),h=r(e),x={level:a,hasChildren:h.length>0,isExpanded:!n||!!n[y],isActive:s===y,isDraggedOver:o===y},j={draggable:!!c,style:{paddingLeft:`${Math.max(4,a*d)}px`},onDragStart:c?e=>{e.stopPropagation(),c(e,y)}:void 0,onDragOver:p?e=>{e.stopPropagation(),p(e,y)}:void 0,onDragLeave:f,onDrop:u?e=>{e.stopPropagation(),u(e,y)}:void 0,onDragEnd:_?e=>{e.stopPropagation(),_(e)}:void 0},v=x.hasChildren&&(m?.(e,x)??!0);return(0,t.jsx)(g.Fragment,{children:l({node:e,state:x,rowProps:j,children:v?(0,t.jsx)(E,{nodes:h,getNodeId:i,getChildren:r,renderNode:l,activeId:s,expandedIds:n,draggedOverId:o,level:a+1,indent:d,onDragStart:c,onDragOver:p,onDragLeave:f,onDrop:u,onDragEnd:_,shouldRenderChildren:m}):null})},y)})}e.s(["FileTree",0,({expanded:e,defaultExpanded:i=new Set,selectedPath:r,onFileSelect:l,onExpandedChange:s,workspaceId:n,onDelete:o,onImport:a,onCopyPath:d,onCreateFile:c,onCreateFolder:p,onRename:f,onMove:u,onCopyItem:_,onLoadDirectory:m,loadingDirs:y,boundDir:h,fileSizeMap:x,refreshInterval:j,ignoredPaths:b,draggedOverPath:C,onItemDragStart:w,onItemDragOver:k,onItemDragLeave:N,onItemDrop:D,onItemDragEnd:O,rootDropTargetId:I,onRootDropLineDragOver:S,onRootDropLineDragEnter:z,onRootDropLineDragLeave:M,onRootDropLineDrop:T,className:E,children:F,...R})=>{let[$,L]=(0,g.useState)(i),A=e??$;return(0,g.useEffect)(()=>{if(!j||!m||0===A.size)return;let e=setInterval(()=>{A.forEach(e=>m(e))},j);return()=>clearInterval(e)},[j,m,A]),(0,t.jsx)(P.Provider,{value:{expandedPaths:A,togglePath:e=>{let t=new Set(A);t.has(e)?t.delete(e):t.add(e),L(t),s?.(t)},selectedPath:r,onFileSelect:l,workspaceId:n,onDelete:o,onImport:a,onCopyPath:d,onCreateFile:c,onCreateFolder:p,onRename:f,onMove:u,onCopyItem:_,onLoadDirectory:m,loadingDirs:y,boundDir:h,fileSizeMap:x,ignoredPaths:b,draggedOverPath:C,onItemDragStart:w,onItemDragOver:k,onItemDragLeave:N,onItemDrop:D,onItemDragEnd:O,rootDropTargetId:I,onRootDropLineDragOver:S,onRootDropLineDragEnter:z,onRootDropLineDragLeave:M,onRootDropLineDrop:T},children:(0,t.jsx)("div",{className:(0,v.cn)("flex flex-col bg-background font-mono text-sm h-full",E),role:"tree",...R,children:(0,t.jsx)("div",{className:"p-2 flex-1 min-h-0 overflow-y-auto overflow-x-auto",children:F})})})},"FileTreeNodes",0,function({nodes:e}){let{draggedOverPath:i,onItemDragStart:r,onItemDragOver:l,onItemDragLeave:s,onItemDrop:n,onItemDragEnd:o,rootDropTargetId:a,onRootDropLineDragOver:d,onRootDropLineDragEnter:c,onRootDropLineDragLeave:p,onRootDropLineDrop:f}=(0,g.useContext)(P);return(0,t.jsx)(E,{nodes:e,getNodeId:e=>e.path,getChildren:e=>"directory"===e.type?e.children??[]:[],draggedOverId:i,onDragStart:r,onDragOver:l,onDragLeave:s,onDrop:n,onDragEnd:o,renderNode:({node:e,state:r,rowProps:l,children:s})=>{let n=a?`${a}:${e.path}`:void 0,o=0===r.level&&"directory"===e.type&&f?(0,t.jsx)("div",{className:"flex h-1.5 items-center px-2",draggable:!1,onDragEnterCapture:n?e=>c?.(e,n):void 0,onDragOverCapture:n?e=>d?.(e,n):void 0,onDragLeaveCapture:n?e=>p?.(e,n):void 0,onDropCapture:n?e=>f(e,n):void 0,onDragEnter:n?e=>c?.(e,n):void 0,onDragOver:n?e=>d?.(e,n):void 0,onDragLeave:n?e=>p?.(e,n):void 0,onDrop:n?e=>f(e,n):void 0,children:(0,t.jsx)("div",{className:(0,v.cn)("h-px flex-1 rounded-full bg-primary opacity-0 transition-opacity",n&&i===n&&"opacity-100")})}):null;return"directory"===e.type?(0,t.jsxs)(t.Fragment,{children:[o,(0,t.jsx)(O,{...l,style:void 0,path:e.path,name:e.name,ignored:e.ignored,className:(0,v.cn)(r.isDraggedOver&&"rounded border border-dashed border-primary/40 bg-primary/5",l.className),folderIcon:i=>(0,t.jsx)(N.FolderIconImg,{name:e.name,isOpen:i}),children:s},e.path)]}):(0,t.jsx)(S,{...l,style:void 0,path:e.path,name:e.name,icon:(0,t.jsx)(N.FileIconImg,{name:e.name}),ignored:e.ignored,className:(0,v.cn)(r.isDraggedOver&&"border border-dashed border-primary/40 bg-primary/5",l.className)},e.path)}})},"NestedTree",0,E],751962);var F=e.i(681622),R=e.i(812057),$=e.i(434805),L=e.i(460578),A=e.i(62669),U=e.i(882469);let B=(0,p.default)("folder-input",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]]);var q=e.i(437122),W=e.i(360112);e.s(["ImportFileDialog",0,function({open:e,onOpenChange:i,workspaceId:r,targetPath:l,onImported:s,accept:n,onUploadFiles:o}){let d=(0,w.useTranslations)("editor"),[c,p]=(0,g.useState)(!1),[f,u]=(0,g.useState)(""),[_,m]=(0,g.useState)(""),[y,h]=(0,g.useState)([]),v=(0,g.useCallback)(()=>{u(""),m(""),h([]),p(!1)},[]),b=(0,g.useCallback)(e=>{e||v(),i(e)},[i,v]),C=async()=>{if(f.trim()){p(!0);try{(await (0,q.fetchWithAuth)(`/api/workspaces/${r}/files/import-url`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:f.trim(),targetDir:l})})).ok?(W.toast.success(d("importSuccess")),s(),b(!1)):W.toast.error(d("importFailed"))}catch{W.toast.error(d("importFailed"))}finally{p(!1)}}},k=async()=>{if(_.trim()){p(!0);try{(await (0,q.fetchWithAuth)(`/api/workspaces/${r}/files/import-path`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absPath:_.trim(),targetDir:l})})).ok?(W.toast.success(d("importSuccess")),s(),b(!1)):W.toast.error(d("importFailed"))}catch{W.toast.error(d("importFailed"))}finally{p(!1)}}},N=async()=>{if(0!==y.length){p(!0);try{if(o)await o(y.map(e=>e.file)),W.toast.success(d("importSuccess")),s(),b(!1);else{let e=await Promise.all(y.map(async e=>{var t;return{name:e.file.name,content:await (t=e.file,new Promise((e,i)=>{let r=new FileReader;r.onload=()=>{let t=r.result;e(t.split(",")[1]||t)},r.onerror=i,r.readAsDataURL(t)}))}}));(await (0,q.fetchWithAuth)(`/api/workspaces/${r}/files/upload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetDir:l,files:e})})).ok?(W.toast.success(d("importSuccess")),s(),b(!1)):W.toast.error(d("importFailed"))}}catch{W.toast.error(d("importFailed"))}finally{p(!1)}}};return(0,t.jsx)(x.Dialog,{open:e,onOpenChange:b,children:(0,t.jsxs)(x.DialogContent,{className:"sm:max-w-[520px]",children:[(0,t.jsxs)(x.DialogHeader,{children:[(0,t.jsx)(x.DialogTitle,{children:d("importFile")}),(0,t.jsx)(x.DialogDescription,{children:d("importFileDesc")})]}),(0,t.jsxs)(R.Tabs,{defaultValue:"upload",className:"w-full flex flex-col gap-3",children:[(0,t.jsxs)(R.TabsList,{className:"w-full grid grid-cols-3",children:[(0,t.jsxs)(R.TabsTrigger,{value:"upload",className:"gap-1 text-xs",children:[(0,t.jsx)(a.Upload,{className:"size-3"}),d("importUpload")]}),(0,t.jsxs)(R.TabsTrigger,{value:"url",className:"gap-1 text-xs",children:[(0,t.jsx)(U.Globe,{className:"size-3"}),d("importOnline")]}),(0,t.jsxs)(R.TabsTrigger,{value:"internal",className:"gap-1 text-xs",children:[(0,t.jsx)(B,{className:"size-3"}),d("importInternal")]})]}),(0,t.jsxs)(R.TabsContent,{value:"upload",className:"space-y-3 pt-2",children:[(0,t.jsx)(L.FileUpload,{value:y,onChange:h,accept:n}),(0,t.jsx)(j.Button,{className:"w-full",onClick:N,disabled:0===y.length||c,children:c?(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}):d("importUpload")})]}),(0,t.jsxs)(R.TabsContent,{value:"url",className:"space-y-3 pt-2",children:[(0,t.jsx)(F.Input,{placeholder:"https://example.com/file.js",value:f,onChange:e=>u(e.target.value),onKeyDown:e=>"Enter"===e.key&&C()}),(0,t.jsx)(j.Button,{className:"w-full",onClick:C,disabled:!f.trim()||c,children:c?(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}):d("importOnline")})]}),(0,t.jsxs)(R.TabsContent,{value:"internal",className:"space-y-3 pt-2",children:[(0,t.jsx)($.FolderPicker,{value:_,onChange:m,allowFiles:!0}),(0,t.jsx)(j.Button,{className:"w-full",onClick:k,disabled:!_.trim()||c,children:c?(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}):d("importInternal")})]})]})]})})}],833237)}]);
@@ -1,24 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,565782,e=>{"use strict";let t,r;var n=e.i(344180),a=e.i(764556);function o({groupSize:e,panelElement:t,styleProp:r}){let n,[a,s]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(s){case"%":n=a/100*e;break;case"px":n=a;break;case"rem":n=a*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=a*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=a/100*window.innerHeight;break;case"vw":n=a/100*window.innerWidth}return n}function s(e){return parseFloat(e.toFixed(3))}function l({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function i(e){let{panels:t}=e,r=l({group:e});return 0===r?t.map(e=>({groupResizeBehavior:e.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,disabled:e.panelConstraints.disabled,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:a}=e,l=0;void 0!==a.collapsedSize&&(l=s(o({groupSize:r,panelElement:n,styleProp:a.collapsedSize})/r*100)),void 0!==a.defaultSize&&(t=s(o({groupSize:r,panelElement:n,styleProp:a.defaultSize})/r*100));let i=0;void 0!==a.minSize&&(i=s(o({groupSize:r,panelElement:n,styleProp:a.minSize})/r*100));let d=100;return void 0!==a.maxSize&&(d=s(o({groupSize:r,panelElement:n,styleProp:a.maxSize})/r*100)),{groupResizeBehavior:a.groupResizeBehavior,collapsedSize:l,collapsible:!0===a.collapsible,defaultSize:t,disabled:a.disabled,minSize:i,maxSize:d,panelId:e.id}})}function d(e,t="Assertion error"){if(!e)throw Error(t)}function c(e,t){return Array.from(t).sort("horizontal"===e?u:p)}function u(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function p(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function m(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function x(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function f(e){let{element:r,orientation:n,panels:a,separators:o}=e,s=c(n,Array.from(r.children).filter(m).map(e=>({element:e}))).map(({element:e})=>e),i=[],u=!1,p=!1,f=-1,h=-1,g=0,b,v=[];{let e=-1;for(let t of s)t.hasAttribute("data-panel")&&(e++,t.hasAttribute("data-disabled")||(g++,-1===f&&(f=e),h=e))}if(g>1){let r=-1;for(let c of s)if(c.hasAttribute("data-panel")){r++;let o=a.find(e=>e.element===c);if(o){if(b){let a,s=b.element.getBoundingClientRect(),m=c.getBoundingClientRect();if(p){let e="horizontal"===n?new DOMRect(s.right,s.top,0,s.height):new DOMRect(s.left,s.bottom,s.width,0),t="horizontal"===n?new DOMRect(m.left,m.top,0,m.height):new DOMRect(m.left,m.top,m.width,0);switch(v.length){case 0:a=[e,t];break;case 1:{let r=v[0],o=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},a,o=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=x(n,r),l="horizontal"===e?t:s;l<o&&(o=l,a=r)}return d(a,"No rect found"),a}({orientation:n,rects:[s,m],targetRect:r.element.getBoundingClientRect()});a=[r,o===s?t:e];break}default:a=v}}else a=v.length?v:["horizontal"===n?new DOMRect(s.right,m.top,m.left-s.right,m.height):new DOMRect(m.left,s.bottom,m.width,m.top-s.bottom)];for(let n of a){let a="width"in n?n:n.element.getBoundingClientRect(),s=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(a.width<s){let e=s-a.width;a=new DOMRect(a.x-e/2,a.y,a.width+e,a.height)}if(a.height<s){let e=s-a.height;a=new DOMRect(a.x,a.y-e/2,a.width,a.height+e)}let d=r<=f||r>h;u||d||i.push({group:e,groupSize:l({group:e}),panels:[b,o],separator:"width"in n?void 0:n,rect:a}),u=!1}}p=!1,b=o,v=[]}}else if(c.hasAttribute("data-separator")){null!==c.ariaDisabled&&(u=!0);let e=o.find(e=>e.element===c);e?v.push(e):(b=void 0,v=[])}else p=!0}return i}class h{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,a=Array.from(r);for(let r=0;r<a.length;r++){let o=a[r];try{o.call(null,t)}catch(t){null===n&&(e=!0,n=t)}}if(e)throw n}}removeAllListeners(){this.#e={}}removeListener(e,t){let r=this.#e[e];if(void 0!==r){let e=r.indexOf(t);e>=0&&r.splice(e,1)}}}let g=new Map,b=new h;function v(e,t){for(let[t]of g)if(t.id===e)return t}function y(e,t){for(let[t,r]of g)if(t.id===e)return r;if(t)throw Error(`Could not find data for Group with id ${e}`)}function w(e,t){return b.addListener("groupChange",r=>{r.group.id===e&&t(r)})}function j(e,t){let r=g.get(e);(g=new Map(g)).set(e,t),b.emit("groupChange",{group:e,prev:r,next:t})}let N=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function k(e){let t=e.length;for(;t--;){let r=e[t];if(d(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(z(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||N.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function S(e){return e&&Number(getComputedStyle(e).zIndex)||0}function C(e){let t=[];for(;e;)t.push(e),e=z(e);return t}function z(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function M(e,t){let r=[];return t.forEach((t,n)=>{if(n.disabled)return;let a=f(n),o=function(e,t,r){let n,a={x:1/0,y:1/0};for(let o of t){let t=x(r,o.rect);switch(e){case"horizontal":t.x<=a.x&&(n=o,a=t);break;case"vertical":t.y<=a.y&&(n=o,a=t)}}return n?{distance:a,hitRegion:n}:void 0}(n.orientation,a,{x:e.clientX,y:e.clientY});o&&o.distance.x<=0&&o.distance.y<=0&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!m(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:C(e),b:C(t)};for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();d(r,"Stacking order can only be calculated for elements with a common ancestor");let a={a:S(k(n.a)),b:S(k(n.b))};if(a.a===a.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},a=e.length;for(;a--;){let r=e[a];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(a.a-a.b)}(r,e)>0){let a=r;for(;a;){var n;if(a.contains(e))break;if(n=a.getBoundingClientRect(),n.x<t.x+t.width&&n.x+n.width>t.x&&n.y<t.y+t.height&&n.y+n.height>t.y)return!1;a=a.parentElement}}return!0}({groupElement:n.element,hitRegion:o.hitRegion.rect,pointerEventTarget:e.target})&&r.push(o.hitRegion)}),r}function D(e,t,r=0){return Math.abs(s(e)-s(t))<=r}function L(e,t){return D(e,t)?0:e>t?1:-1}function E({overrideDisabledPanels:e,panelConstraints:t,prevSize:r,size:n}){let{collapsedSize:a=0,collapsible:o,disabled:l,maxSize:i=100,minSize:d=0}=t;return l&&!e?r:(0>L(n,d)&&(n=o&&0>L(n,(a+d)/2)?a:d),s(n=Math.min(i,n)))}function I({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:a,trigger:o}){if(D(e,0))return t;let s="imperative-api"===o,l=Object.values(t),i=Object.values(a),c=[...l],[u,p]=n;d(null!=u,"Invalid first pivot index"),d(null!=p,"Invalid second pivot index");let m=0;if("keyboard"===o){{let t=e<0?p:u,n=r[t];d(n,`Panel constraints not found for index ${t}`);let{collapsedSize:a=0,collapsible:o,minSize:s=0}=n;if(o){let r=l[t];if(d(null!=r,`Previous layout not found for panel index ${t}`),D(r,a)){let t=s-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:p,n=r[t];d(n,`No panel constraints found for index ${t}`);let{collapsedSize:a=0,collapsible:o,minSize:s=0}=n;if(o){let r=l[t];if(d(null!=r,`Previous layout not found for panel index ${t}`),D(r,s)){let t=r-a;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}else{let t=e<0?p:u,n=r[t];d(n,`Panel constraints not found for index ${t}`);let a=l[t],{collapsible:o,collapsedSize:s,minSize:i}=n;if(o&&0>L(a,i))if(e>0){let t=i-s;0>L(a+e,i)&&(e=0>=L(e,t/2)?0:t)}else{let t=i-s;0>L(a-e,i)&&(e=L(100+e,100-t/2)>0?0:-t)}}{let t=e<0?1:-1,n=e<0?p:u,a=0;for(;;){let e=l[n];if(d(null!=e,`Previous layout not found for panel index ${n}`),a+=E({overrideDisabledPanels:s,panelConstraints:r[n],prevSize:e,size:100})-e,(n+=t)<0||n>=r.length)break}let o=Math.min(Math.abs(e),Math.abs(a));e=e<0?0-o:o}{let t=e<0?u:p;for(;t>=0&&t<r.length;){let n=Math.abs(e)-Math.abs(m),a=l[t];d(null!=a,`Previous layout not found for panel index ${t}`);let o=a-n,i=E({overrideDisabledPanels:s,panelConstraints:r[t],prevSize:a,size:o});if(!D(a,i)&&(m+=a-i,c[t]=i,m.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}(i,c))return a;{let t=e<0?p:u,n=l[t];d(null!=n,`Previous layout not found for panel index ${t}`);let a=n+m,o=E({overrideDisabledPanels:s,panelConstraints:r[t],prevSize:n,size:a});if(c[t]=o,!D(o,a)){let t=a-o,n=e<0?p:u;for(;n>=0&&n<r.length;){let a=c[n];d(null!=a,`Previous layout not found for panel index ${n}`);let o=a+t,l=E({overrideDisabledPanels:s,panelConstraints:r[n],prevSize:a,size:o});if(D(a,l)||(t-=l-a,c[n]=l),D(t,0))break;e>0?n--:n++}}}if(!D(Object.values(c).reduce((e,t)=>t+e,0),100,.1))return a;let x=Object.keys(a);return c.reduce((e,t,r)=>(e[x[r]]=t,e),{})}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function P({layout:e,panelConstraints:t}){let r=Object.values(e),n=[...r],a=n.reduce((e,t)=>e+t,0);if(n.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${n.map(e=>`${e}%`).join(", ")}`);if(!D(a,100)&&n.length>0)for(let e=0;e<t.length;e++){let t=n[e];d(null!=t,`No layout data found for index ${e}`);let r=100/a*t;n[e]=r}let o=0;for(let e=0;e<t.length;e++){let a=r[e];d(null!=a,`No layout data found for index ${e}`);let s=n[e];d(null!=s,`No layout data found for index ${e}`);let l=E({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:a,size:s});s!=l&&(o+=s-l,n[e]=l)}if(!D(o,0))for(let e=0;e<t.length;e++){let r=n[e];d(null!=r,`No layout data found for index ${e}`);let a=r+o,s=E({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:r,size:a});if(r!==s&&(o-=s-r,n[e]=s,D(o,0)))break}let s=Object.keys(e);return n.reduce((e,t,r)=>(e[s[r]]=t,e),{})}function R({groupId:e,panelId:t}){let r=()=>{for(let[t,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:a,groupSize:o,separatorToPanels:s}]of g)if(t.id===e)return{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:t,groupSize:o,layout:a,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},a=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},i=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},d=e=>{if(e===i())return;let{defaultLayoutDeferred:n,derivedPanelConstraints:a,group:o,groupSize:l,layout:d,separatorToPanels:c}=r(),u=P({layout:(({nextSize:e,panels:r,prevLayout:n,derivedPanelConstraints:a})=>{let o=i(),l=r.findIndex(e=>e.id===t),d=0===l,c=l===r.length-1;if(c&&e<o&&(d||r.slice(0,l).every((e,t)=>{let r=a[t];return r?.collapsible&&D(r.collapsedSize,n[r.panelId])}))){let e=r.slice(0,l).reduce((e,t)=>e+n[t.id],0);return{...n,[t]:s(100-e)}}return I({delta:c?o-e:e-o,initialLayout:n,panelConstraints:a,pivotIndices:c?[l-1,l]:[l,l+1],prevLayout:n,trigger:"imperative-api"})})({nextSize:e,panels:o.panels,prevLayout:d,derivedPanelConstraints:a}),panelConstraints:a});T(d,u)||j(o,{defaultLayoutDeferred:n,derivedPanelConstraints:a,groupSize:l,layout:u,separatorToPanels:c})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=a(),o=i();e&&o!==t&&(r.expandToSize=o,d(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:o}=a(),s=i();if(e&&s===t){let e=o.expandToSize??r;0===e&&(e=1),d(e)}},getSize:()=>{let{group:e}=r(),t=i(),{element:n}=a();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=i();return e&&D(t,r)},resize:e=>{let{group:t}=r(),{element:n}=a(),i=l({group:t});d(s(o({groupSize:i,panelElement:n,styleProp:e})/i*100))}}}function $(e){e.defaultPrevented||M(e,g).forEach(t=>{if(t.separator&&!t.separator.disableDoubleClick){let r=t.panels.find(e=>void 0!==e.panelConstraints.defaultSize);if(r){let n=r.panelConstraints.defaultSize,a=R({groupId:t.group.id,panelId:r.id});a&&void 0!==n&&(a.resize(n),e.preventDefault())}}})}function A(e){for(let[t]of g)if(t.separators.some(t=>t.element===e))return t;throw Error("Could not find parent Group for separator element")}function O({groupId:e}){let t=()=>{for(let[t,r]of g)if(t.id===e)return{group:t,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:a,groupSize:o,layout:s,separatorToPanels:l}=t(),i=P({layout:e,panelConstraints:n});return r?s:(T(s,i)||j(a,{defaultLayoutDeferred:r,derivedPanelConstraints:n,groupSize:o,layout:i,separatorToPanels:l}),i)}}}function H(e,t){let r=A(e),n=y(r.id,!0),a=r.separators.find(t=>t.element===e);d(a,"Matching separator not found");let o=n.separatorToPanels.get(a);d(o,"Matching panels not found");let s=o.map(e=>r.panels.indexOf(e)),l=O({groupId:r.id}).getLayout(),i=P({layout:I({delta:t,initialLayout:l,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:l,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(l,i)||j(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,groupSize:n.groupSize,layout:i,separatorToPanels:n.separatorToPanels})}function F(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=A(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&H(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&H(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&H(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&H(t,-5);break;case"End":e.preventDefault(),H(t,100);break;case"Enter":{e.preventDefault();let r=A(t),{derivedPanelConstraints:n,layout:a,separatorToPanels:o}=y(r.id,!0),s=r.separators.find(e=>e.element===t);d(s,"Matching separator not found");let l=o.get(s);d(l,"Matching panels not found");let i=l[0],c=n.find(e=>e.panelId===i.id);if(d(c,"Panel metadata not found"),c.collapsible){let e=a[i.id];H(t,(c.collapsedSize===e?r.mutableState.expandedPanelSizes[i.id]??c.minSize:c.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=A(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);d(null!==n,"Index not found");let a=e.shiftKey?n>0?n-1:r.length-1:n+1<r.length?n+1:0;r[a].focus({preventScroll:!0});break}case"Home":e.preventDefault(),H(t,-100)}}let B={cursorFlags:0,state:"inactive"},V=new h;function W(e){let t=B;B=e,V.emit("change",{prev:t,next:e})}function q(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let t=g,r=M(e,t),n=new Map,a=!1;r.forEach(e=>{e.separator&&(a||(a=!0,e.separator.element.focus({focusVisible:!1,preventScroll:!0})));let r=t.get(e.group);r&&n.set(e.group,r.layout)}),W({cursorFlags:0,hitRegions:r,initialLayoutMap:n,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),r.length&&e.preventDefault()}let U=e=>e,G=()=>{};function X(){return void 0===r&&(r=!1,"u">typeof window&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(r=!0)),r}let _=new WeakMap;function J(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=_.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(r):e.adoptedStyleSheets=[...e.adoptedStyleSheets,r]));let n=B;switch(n.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,a=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":a++}})}if(0!==n||0!==a){if("active"===r&&e&&X()){let t=(4&e)!=0,r=(8&e)!=0;if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}return X()?n>0&&a>0?"move":n>0?"ew-resize":"ns-resize":n>0&&a>0?"grab":n>0?"col-resize":"row-resize"}}({cursorFlags:n.cursorFlags,groups:n.hitRegions.map(e=>e.group),state:n.state}),a=`*, *:hover {cursor: ${e} !important; }`;if(t===a)return;t=a,e?0===r.cssRules.length?r.insertRule(a):r.replaceSync(a):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}_.set(e,{prevStyle:t,styleSheet:r})}function K({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:a,pointerDownAtPoint:o,prevCursorFlags:s}){var l;let i,d,c=0;r.forEach(e=>{let{group:r,groupSize:s}=e,{orientation:l,panels:i}=r,{disableCursor:d}=r.mutableState,u=0;u=o?"horizontal"===l?(t.clientX-o.x)/s*100:(t.clientY-o.y)/s*100:"horizontal"===l?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),m=a.get(r);if(!p||!m)return;let{defaultLayoutDeferred:x,derivedPanelConstraints:f,groupSize:h,layout:g,separatorToPanels:b}=m;if(f&&g&&b){let t=I({delta:u,initialLayout:p,panelConstraints:f,pivotIndices:e.panels.map(e=>i.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==u&&!d)switch(l){case"horizontal":c|=u<0?1:2;break;case"vertical":c|=u<0?4:8}}else j(e.group,{defaultLayoutDeferred:x,derivedPanelConstraints:f,groupSize:h,layout:t,separatorToPanels:b})}});let u=0;0===t.movementX?u|=3&s:u|=3&c,0===t.movementY?u|=12&s:u|=12&c,l=u,i=B,(d={...B}).cursorFlags=l,B=d,V.emit("change",{prev:i,next:d}),J(e)}function Y(e){let t=g,r=B;"active"===r.state&&K({document:e.currentTarget,event:e,hitRegions:r.hitRegions,initialLayoutMap:r.initialLayoutMap,mountedGroups:t,prevCursorFlags:r.cursorFlags})}function Q(e){if(e.defaultPrevented)return;let t=B,r=g;if("active"===t.state){if(0===e.buttons){W({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(e=>{let t=y(e.group.id,!0);j(e.group,t)});return}for(let r of t.hitRegions)if(r.separator){let{element:t}=r.separator;t.hasPointerCapture?.(e.pointerId)||t.setPointerCapture?.(e.pointerId)}K({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags})}else{let n=M(e,r);0===n.length?"inactive"!==t.state&&W({cursorFlags:0,state:"inactive"}):W({cursorFlags:0,hitRegions:n,state:"hover"}),J(e.currentTarget)}}function Z(e){e.relatedTarget instanceof HTMLIFrameElement&&"hover"===B.state&&W({cursorFlags:0,state:"inactive"})}function ee(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let t=B;"active"===t.state&&(W({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(J(e.currentTarget),t.hitRegions.forEach(e=>{let t=y(e.group.id,!0);j(e.group,t)}),e.preventDefault()))}function et(e){let t=0,r=0,n={};for(let a of e)if(void 0!==a.defaultSize){t++;let e=s(a.defaultSize);r+=e,n[a.panelId]=e}else n[a.panelId]=void 0;let a=e.length-t;if(0!==a){let t=s((100-r)/a);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let er=new Map;function en(e){let t=(0,a.useId)();return`${e??t}`}let ea="u">typeof window?a.useLayoutEffect:a.useEffect;function eo(e){let t=(0,a.useRef)(e);return ea(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current?.(...e),[t])}function es(...e){return eo(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}function el(e){let t=(0,a.useRef)({...e});return ea(()=>{for(let r in e)t.current[r]=e[r]},[e]),t.current}let ei=(0,a.createContext)(null);function ed({children:e,className:t,defaultLayout:r,disableCursor:o,disabled:u,elementRef:p,groupRef:m,id:x,onLayoutChange:h,onLayoutChanged:b,orientation:N="horizontal",resizeTargetMinimumSize:k={coarse:20,fine:10},style:S,...C}){let z,M=(0,a.useRef)({onLayoutChange:{},onLayoutChanged:{}}),L=eo(e=>{T(M.current.onLayoutChange,e)||(M.current.onLayoutChange=e,h?.(e))}),E=eo(e=>{T(M.current.onLayoutChanged,e)||(M.current.onLayoutChanged=e,b?.(e))}),I=en(x),R=(0,a.useRef)(null),[A,H]=function(){let[e,t]=(0,a.useState)({});return[e,(0,a.useCallback)(()=>t({}),[])]}(),V=(0,a.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:k,separators:[]}),W=es(R,p);z=(0,a.useRef)({getLayout:()=>({}),setLayout:U}),(0,a.useImperativeHandle)(m,()=>z.current,[]),ea(()=>{Object.assign(z.current,O({groupId:I}))});let G=eo((e,t)=>{let n=B,a=v(e),o=y(e);if(o){let e=!1;return"active"===n.state&&(e=n.hitRegions.some(e=>e.group===a)),{flexGrow:o.layout[t]??1,pointerEvents:e?"none":void 0}}if(r?.[t])return{flexGrow:r?.[t]}}),X=el({defaultLayout:r,disableCursor:o}),_=(0,a.useMemo)(()=>({get disableCursor(){return!!X.disableCursor},getPanelStyles:G,id:I,orientation:N,registerPanel:e=>{let t=V.current;return t.panels=c(N,[...t.panels,e]),H(),()=>{t.panels=t.panels.filter(t=>t!==e),H()}},registerSeparator:e=>{let t=V.current;return t.separators=c(N,[...t.separators,e]),H(),()=>{t.separators=t.separators.filter(t=>t!==e),H()}},updatePanelProps:(e,{disabled:t})=>{let r=V.current.panels.find(t=>t.id===e);r&&(r.panelConstraints.disabled=t);let n=v(I),a=y(I);n&&a&&j(n,{...a,derivedPanelConstraints:i(n)})},updateSeparatorProps:(e,{disabled:t,disableDoubleClick:r})=>{let n=V.current.separators.find(t=>t.id===e);n&&(n.disabled=t,n.disableDoubleClick=r)}}),[G,I,H,N,X]),J=(0,a.useRef)(null);return ea(()=>{let e,t,r,n,a,o,c,p,m,x,h,b,v,k=R.current;if(null===k)return;let S=V.current;if(void 0!==X.defaultLayout&&Object.keys(X.defaultLayout).length===S.panels.length)for(let t of(e={},S.panels)){let r=X.defaultLayout[t.id];void 0!==r&&(e[t.id]=r)}let C={disabled:!!u,element:k,id:I,mutableState:{defaultLayout:e,disableCursor:!!X.disableCursor,expandedPanelSizes:V.current.lastExpandedPanelSizes,layouts:V.current.layouts},orientation:N,panels:S.panels,resizeTargetMinimumSize:S.resizeTargetMinimumSize,separators:S.separators};J.current=C;let z=(t=!0,d(C.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),r=C.element.ownerDocument.defaultView.ResizeObserver,n=new Set,a=new Set,(o=new r(e=>{for(let r of e){let{borderBoxSize:e,target:n}=r;if(n===C.element){if(t){let e=l({group:C});if(0===e)return;let t=y(C.id);if(!t)return;let r=i(C),n=t.defaultLayoutDeferred?et(r):t.layout,a=P({layout:function({group:e,nextGroupSize:t,prevGroupSize:r,prevLayout:n}){if(r<=0||t<=0||r===t)return n;let a=0,o=0,l=!1,i=new Map,d=[];for(let c of e.panels){let e=n[c.id]??0;if("preserve-pixel-size"===c.panelConstraints.groupResizeBehavior){l=!0;let n=s(e/100*r/t*100);i.set(c.id,n),a+=n}else d.push(c.id),o+=e}if(!l||0===d.length)return n;let c=100-a,u={...n};if(i.forEach((e,t)=>{u[t]=e}),o>0)for(let e of d){let t=n[e]??0;u[e]=s(t/o*c)}else{let e=s(c/d.length);for(let t of d)u[t]=e}return u}({group:C,nextGroupSize:e,prevGroupSize:t.groupSize,prevLayout:n}),panelConstraints:r});if(!t.defaultLayoutDeferred&&T(t.layout,a)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)&&t.groupSize===e)return;j(C,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:e,layout:a,separatorToPanels:t.separatorToPanels})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let a=l({group:e}),o="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,i=n.mutableValues.prevSize,d={asPercentage:s(o/a*100),inPixels:o};n.mutableValues.prevSize=d,n.onResize(d,n.id,i)}(C,n,e)}})).observe(C.element),C.panels.forEach(e=>{d(!n.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.onResize&&o.observe(e.element)}),c=l({group:C}),p=i(C),m=C.panels.map(({id:e})=>e).join(","),(x=C.mutableState.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(C.panels,x)||(x=void 0)),h=P({layout:C.mutableState.layouts[m]??x??et(p),panelConstraints:p}),b=C.element.ownerDocument,er.set(b,(er.get(b)??0)+1),v=new Map,f(C).forEach(e=>{e.separator&&v.set(e.separator,e.panels)}),j(C,{defaultLayoutDeferred:0===c,derivedPanelConstraints:p,groupSize:c,layout:h,separatorToPanels:v}),C.separators.forEach(e=>{d(!a.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),a.add(e.id),e.element.addEventListener("keydown",F)}),1===er.get(b)&&(b.addEventListener("dblclick",$,!0),b.addEventListener("pointerdown",q,!0),b.addEventListener("pointerleave",Y),b.addEventListener("pointermove",Q),b.addEventListener("pointerout",Z),b.addEventListener("pointerup",ee,!0)),function(){t=!1,er.set(b,Math.max(0,(er.get(b)??0)-1)),(g=new Map(g)).delete(C),C.separators.forEach(e=>{e.element.removeEventListener("keydown",F)}),er.get(b)||(b.removeEventListener("dblclick",$,!0),b.removeEventListener("pointerdown",q,!0),b.removeEventListener("pointerleave",Y),b.removeEventListener("pointermove",Q),b.removeEventListener("pointerout",Z),b.removeEventListener("pointerup",ee,!0)),o.disconnect()}),{defaultLayoutDeferred:M,derivedPanelConstraints:A,layout:O}=y(C.id,!0);!M&&A.length>0&&(L(O),E(O));let H=w(I,e=>{let{defaultLayoutDeferred:t,derivedPanelConstraints:r,layout:n}=e.next;if(t||0===r.length)return;let a=C.panels.map(({id:e})=>e).join(",");C.mutableState.layouts[a]=n,r.forEach(t=>{if(t.collapsible){let{layout:r}=e.prev??{};if(r){let e=D(t.collapsedSize,n[t.panelId]),a=D(t.collapsedSize,r[t.panelId]);e&&!a&&(C.mutableState.expandedPanelSizes[t.panelId]=r[t.panelId])}}});let o="active"!==B.state;L(n),o&&E(n)});return()=>{J.current=null,z(),H()}},[u,I,E,L,N,A,X]),(0,a.useEffect)(()=>{let e=J.current;e&&(e.mutableState.defaultLayout=r,e.mutableState.disableCursor=!!o)}),(0,n.jsx)(ei.Provider,{value:_,children:(0,n.jsx)("div",{...C,className:t,"data-group":!0,"data-testid":I,id:I,ref:W,style:{height:"100%",width:"100%",overflow:"hidden",...S,display:"flex",flexDirection:"horizontal"===N?"row":"column",flexWrap:"nowrap",touchAction:"horizontal"===N?"pan-y":"pan-x"},children:e})})}function ec(){let e=(0,a.useContext)(ei);return d(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function eu({children:e,className:t,collapsedSize:r="0%",collapsible:o=!1,defaultSize:s,disabled:l,elementRef:i,groupResizeBehavior:d="preserve-relative-size",id:c,maxSize:u="100%",minSize:p="0%",onResize:m,panelRef:x,style:f,...h}){let g,b=!!c,v=en(c),y=el({disabled:l}),j=(0,a.useRef)(null),N=es(j,i),{getPanelStyles:k,id:S,orientation:C,registerPanel:z,updatePanelProps:M}=ec(),D=null!==m,L=eo((e,t,r)=>{m?.(e,c,r)});ea(()=>{let e=j.current;if(null!==e)return z({element:e,id:v,idIsStable:b,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:D?L:void 0,panelConstraints:{groupResizeBehavior:d,collapsedSize:r,collapsible:o,defaultSize:s,disabled:y.disabled,maxSize:u,minSize:p}})},[d,r,o,s,D,v,b,u,p,L,z,y]),(0,a.useEffect)(()=>{M(v,{disabled:l})},[l,v,M]),function(e,t){let{id:r}=ec(),n=(0,a.useRef)({collapse:G,expand:G,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:G});(0,a.useImperativeHandle)(t,()=>n.current,[]),ea(()=>{Object.assign(n.current,R({groupId:r,panelId:e}))})}(v,x);let E=()=>{let e=k(S,v);if(e)return JSON.stringify(e)},I=(0,a.useSyncExternalStore)(e=>w(S,e),E,E);return g=I?JSON.parse(I):void 0!==s?{flexGrow:void 0,flexShrink:void 0,flexBasis:s}:{flexGrow:1},(0,n.jsx)("div",{...h,"data-disabled":l||void 0,"data-panel":!0,"data-testid":v,id:v,ref:N,style:{...ep,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...g},children:(0,n.jsx)("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...f,touchAction:"horizontal"===C?"pan-y":"pan-x"},children:e})})}ed.displayName="Group",eu.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function em({children:e,className:t,disabled:r,disableDoubleClick:o,elementRef:s,id:l,style:i,...d}){let c,u,p=en(l),m=el({disabled:r,disableDoubleClick:o}),[x,f]=(0,a.useState)({}),[h,g]=(0,a.useState)("inactive"),[b,v]=(0,a.useState)(!1),y=(0,a.useRef)(null),j=es(y,s),{disableCursor:N,id:k,orientation:S,registerSeparator:C,updateSeparatorProps:z}=ec();return ea(()=>{let e=y.current;if(null!==e){var t;let r={disabled:m.disabled,disableDoubleClick:m.disableDoubleClick,element:e,id:p},n=C(r),a=(t=e=>{g("inactive"!==e.next.state&&e.next.hitRegions.some(e=>e.separator===r)?e.next.state:"inactive")},V.addListener("change",t)),o=w(k,e=>{let{derivedPanelConstraints:t,layout:n,separatorToPanels:a}=e.next,o=a.get(r);if(o){let e=o[0],r=o.indexOf(e);f(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let a,o,s=e[r],l=t.find(e=>e.panelId===r);if(l){let i=l.maxSize,d=l.collapsible?l.collapsedSize:l.minSize,c=[n,n+1];o=P({layout:I({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[r],a=P({layout:I({delta:i-s,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[r]}return{valueControls:r,valueMax:a,valueMin:o,valueNow:s}}({layout:n,panelConstraints:t,panelId:e.id,panelIndex:r}))}});return()=>{a(),o(),n()}}},[k,p,C,m]),(0,a.useEffect)(()=>{z(p,{disabled:r,disableDoubleClick:o})},[r,o,p,z]),r&&!N&&(c="not-allowed"),u=r?"disabled":"active"===h?"active":b?"focus":h,(0,n.jsx)("div",{...d,"aria-controls":x.valueControls,"aria-disabled":r||void 0,"aria-orientation":"horizontal"===S?"vertical":"horizontal","aria-valuemax":x.valueMax,"aria-valuemin":x.valueMin,"aria-valuenow":x.valueNow,children:e,className:t,"data-separator":u,"data-testid":p,id:p,onBlur:()=>v(!1),onFocus:()=>v(!0),ref:j,role:"separator",style:{flexBasis:"auto",cursor:c,...i,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:r?void 0:0})}em.displayName="Separator";var ex=e.i(465458);function ef({className:e,...t}){return(0,n.jsx)(ed,{"data-slot":"resizable-panel-group",className:(0,ex.cn)("flex h-full w-full aria-[orientation=vertical]:flex-col",e),...t})}function eh({...e}){return(0,n.jsx)(eu,{"data-slot":"resizable-panel",...e})}function eg({withHandle:e,className:t,...r}){return(0,n.jsx)(em,{"data-slot":"resizable-handle",className:(0,ex.cn)("relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",t),...r,children:e&&(0,n.jsx)("div",{className:"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border"})})}var eb=e.i(816709),ev=e.i(437122);let ey=["linear-gradient(to right, #10b981, #06b6d4)","linear-gradient(to right, #ec4899, #8b5cf6)","linear-gradient(to right, #f43f5e, #f97316)","linear-gradient(to right, #1e293b, #0f172a)","linear-gradient(to right, #3b82f6, #06b6d4)","linear-gradient(to right, #f59e0b, #e11d48)","linear-gradient(to right, #475569, #1e293b)"];async function ew(e,t,r){let n=await (0,ev.fetchWithAuth)(`/api/workspaces/${e}/database${t}`,{headers:{"Content-Type":"application/json"},...r});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error||`Database API error: ${n.status}`)}return n.json()}function ej(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}databaseId=${encodeURIComponent(t)}`}let eN=new Map,ek=(0,eb.create)((e,t)=>({databases:[],activeDatabaseId:null,nodes:[],activeId:null,openTabs:[],recentIds:[],editorMode:"notion",theme:"sans",isFullWidth:!1,openFolders:{},sidebarSearch:"",vectorStats:null,vectorLoading:!1,vectorIndexing:!1,loading:!1,loaded:!1,load:async r=>{e({loading:!0});try{let n=await ew(r,"/databases"),a=t().activeDatabaseId&&n.some(e=>e.id===t().activeDatabaseId)?t().activeDatabaseId:n[0]?.id??null,o=a?await ew(r,ej("",a)):[],s=a?await ew(r,`/databases/${a}/vector`).catch(()=>null):null,l=o.filter(e=>!e.isTrash);e({databases:n,activeDatabaseId:a,nodes:o,vectorStats:s,loading:!1,loaded:!0,activeId:l.length>0?l[0].id:null,openTabs:[],recentIds:[]})}catch{e({loading:!1})}},loadNodes:async(r,n)=>{e({loading:!0});try{let a=await ew(r,ej("",n)),o=a.filter(e=>!e.isTrash);e({nodes:a,loading:!1,activeId:o.length>0?o[0].id:null,openTabs:[],recentIds:[],openFolders:{},sidebarSearch:"",vectorStats:null}),await t().loadVectorStats(r,n)}catch{e({loading:!1})}},setActiveDatabaseId:async(r,n)=>{e({activeDatabaseId:n}),await t().loadNodes(r,n)},createDatabase:async(r,n)=>{let a=await ew(r,"/databases",{method:"POST",body:JSON.stringify(n)});return e(e=>({databases:[...e.databases,a],activeDatabaseId:a.id})),await t().loadNodes(r,a.id),a},updateDatabase:async(t,r,n)=>{let a=await ew(t,`/databases/${r}`,{method:"PUT",body:JSON.stringify(n)});return e(e=>({databases:e.databases.map(e=>e.id===a.id?a:e)})),a},deleteDatabase:async(r,n)=>{await ew(r,`/databases/${n}`,{method:"DELETE"});let a=await ew(r,"/databases"),o=a[0]?.id??null;e({databases:a,activeDatabaseId:o}),o&&await t().loadNodes(r,o)},loadVectorStats:async(t,r)=>{e({vectorLoading:!0});try{let n=await ew(t,`/databases/${r}/vector`);e({vectorStats:n,vectorLoading:!1})}catch{e({vectorStats:null,vectorLoading:!1})}},bindEmbeddingModel:async(t,r,n)=>{let a=await ew(t,`/databases/${r}/vector`,{method:"PUT",body:JSON.stringify({embeddingModelId:n})});e(e=>({vectorStats:a,databases:e.databases.map(e=>e.id===r?{...e,embeddingModelId:n||void 0}:e)}))},indexVectors:async(t,r)=>{e({vectorIndexing:!0});try{let n=await ew(t,`/databases/${r}/vector/index`,{method:"POST"});return e({vectorStats:n,vectorIndexing:!1}),n}catch(t){throw e({vectorIndexing:!1}),t}},setActiveId:t=>{e(e=>{let r=t&&!e.openTabs.includes(t)?[...e.openTabs,t]:e.openTabs,n=t?[t,...e.recentIds.filter(e=>e!==t)].slice(0,4):e.recentIds;return{activeId:t,openTabs:r,recentIds:n}})},createNode:async(r,n,a)=>{let o=t().activeDatabaseId,s=a?"folder"===a:!n,l=ey[Math.floor(Math.random()*ey.length)],i=await ew(r,ej("",o),{method:"POST",body:JSON.stringify({title:s?"未命名文件夹":"未命名页面",icon:s?"📂":"📝",cover:l,content:s?"<h1>📂 未命名文件夹</h1><p>这是一个新建的目录夹。</p>":"<h1>新创建的文档</h1><p>点击在此处开始编写...</p>",parentId:n})});return e(e=>{let t=[...e.openTabs,i.id];return n?{nodes:[...e.nodes,i],activeId:i.id,openTabs:t,openFolders:{...e.openFolders,[n]:!0}}:{nodes:[...e.nodes,i],activeId:i.id,openTabs:t}}),i},updateContent:async(r,n,a)=>{let o=t().activeDatabaseId;e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,content:a,updatedAt:Date.now()}:e)})),function(e,t,r,n){let a=`${e}:${t??"default"}:${r}`,o=eN.get(a);if(o){o.content=n;return}let s=setTimeout(()=>{let o=eN.get(a);eN.delete(a),ew(e,ej(`/${r}`,t),{method:"PUT",body:JSON.stringify({content:o?.content??n})})},3e3);eN.set(a,{timer:s,content:n})}(r,o,n,a)},listNodeVersions:async(e,r)=>ew(e,ej(`/${r}/versions`,t().activeDatabaseId)),renameNode:async(r,n,a)=>{let o=t().activeDatabaseId;e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,title:a,updatedAt:Date.now()}:e)})),await ew(r,ej(`/${n}`,o),{method:"PUT",body:JSON.stringify({title:a})})},updateIcon:async(r,n,a)=>{let o=t().activeDatabaseId;e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,icon:a,updatedAt:Date.now()}:e)})),await ew(r,ej(`/${n}`,o),{method:"PUT",body:JSON.stringify({icon:a})})},updateCover:async(r,n,a)=>{let o=t().activeDatabaseId;e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,cover:a,updatedAt:Date.now()}:e)})),await ew(r,ej(`/${n}`,o),{method:"PUT",body:JSON.stringify({cover:a})})},trashNode:async(r,n)=>{let a=t().activeDatabaseId,{nodes:o,activeId:s}=t(),l=new Set([n]),i=e=>{o.filter(t=>t.parentId===e).forEach(e=>{l.add(e.id),i(e.id)})};if(i(n),e(e=>({nodes:e.nodes.map(e=>l.has(e.id)?{...e,isTrash:!0}:e)})),await ew(r,ej(`/${n}/trash`,a),{method:"PUT"}),l.has(s||"")){let r=t().nodes.filter(e=>!e.isTrash);e({activeId:r.length>0?r[0].id:null})}},restoreNode:async(r,n)=>{let a=t().activeDatabaseId;await ew(r,ej(`/${n}/restore`,a),{method:"PUT"});let{nodes:o}=t(),s=o.find(e=>e.id===n),l=s?.parentId??null;if(l){let e=o.find(e=>e.id===l);(!e||e.isTrash)&&(l=null)}e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,isTrash:!1,parentId:l}:e),activeId:n}))},deleteNode:async(r,n)=>{let a=t().activeDatabaseId,{nodes:o,activeId:s}=t(),l=new Set([n]),i=e=>{o.filter(t=>t.parentId===e).forEach(e=>{l.add(e.id),i(e.id)})};if(i(n),e(e=>({nodes:e.nodes.filter(e=>!l.has(e.id))})),await ew(r,ej(`/${n}`,a),{method:"DELETE"}),l.has(s||"")){let r=t().nodes.filter(e=>!e.isTrash);e({activeId:r.length>0?r[0].id:null})}},moveNode:async(r,n,a)=>{let o=t().activeDatabaseId;e(e=>({nodes:e.nodes.map(e=>e.id===n?{...e,parentId:a,updatedAt:Date.now()}:e)})),await ew(r,ej(`/${n}/move`,o),{method:"PUT",body:JSON.stringify({parentId:a})}),a&&e(e=>({openFolders:{...e.openFolders,[a]:!0}}))},setEditorMode:t=>e({editorMode:t}),setTheme:t=>e({theme:t}),setIsFullWidth:t=>e({isFullWidth:t}),toggleFolder:t=>e(e=>({openFolders:{...e.openFolders,[t]:!e.openFolders[t]}})),setSidebarSearch:t=>e({sidebarSearch:t}),addTab:t=>e(e=>e.openTabs.includes(t)?e:{openTabs:[...e.openTabs,t]}),closeTab:t=>e(e=>{let r=e.openTabs.filter(e=>e!==t),n=e.activeId===t?r.length>0?r[r.length-1]:null:e.activeId;return{openTabs:r,activeId:n}})}));var eS=e.i(368942),eC=e.i(325443),ez=e.i(417092),eM=e.i(209988);function eD({open:e,database:t,onOpenChange:r,onSave:o}){let[s,l]=(0,a.useState)(""),[i,d]=(0,a.useState)(""),[c,u]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&(l(t?.name??""),d(t?.description??""))},[t,e]);let p=async e=>{e.preventDefault();let t=s.trim();if(t&&!c){u(!0);try{await o({name:t,description:i.trim()}),r(!1)}finally{u(!1)}}};return(0,n.jsx)(eM.Dialog,{open:e,onOpenChange:r,children:(0,n.jsx)(eM.DialogContent,{className:"sm:max-w-md p-0 gap-0 overflow-hidden",children:(0,n.jsxs)("form",{onSubmit:p,children:[(0,n.jsx)(eM.DialogHeader,{className:"px-5 py-4 border-b border-border",children:(0,n.jsx)(eM.DialogTitle,{className:"text-sm",children:t?"Edit database":"Create database"})}),(0,n.jsxs)("div",{className:"p-5 space-y-4",children:[(0,n.jsxs)("label",{className:"block space-y-1.5",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Name"}),(0,n.jsx)("input",{value:s,onChange:e=>l(e.target.value),className:"w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none focus:ring-1 focus:ring-ring",autoFocus:!0})]}),(0,n.jsxs)("label",{className:"block space-y-1.5",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Description"}),(0,n.jsx)("textarea",{value:i,onChange:e=>d(e.target.value),className:"min-h-20 w-full resize-none rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none focus:ring-1 focus:ring-ring"})]})]}),(0,n.jsxs)(eM.DialogFooter,{className:"px-5 py-4",children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),className:"px-3 py-1.5 rounded-lg text-xs font-semibold text-muted-foreground hover:text-foreground hover:bg-accent cursor-pointer",children:"Cancel"}),(0,n.jsx)("button",{type:"submit",disabled:!s.trim()||c,className:"px-3 py-1.5 rounded-lg text-xs font-semibold bg-primary text-primary-foreground disabled:opacity-50 cursor-pointer",children:c?"Saving...":"Save"})]})]})})})}var eL=e.i(100559),eE=e.i(889445),eI=e.i(260218),eT=e.i(681622),eP=e.i(990336),eR=e.i(972846);function e$({open:e,onClose:t,onConfirm:r,title:o="Select Model",description:s,models:l,selected:i,onToggle:d,cancelText:c,confirmText:u,loading:p}){let[m,x]=(0,a.useState)(""),f=(0,a.useMemo)(()=>{if(!m.trim())return l;let e=m.toLowerCase();return l.filter(t=>t.name.toLowerCase().includes(e)||t.modelId.toLowerCase().includes(e)||t.provider.toLowerCase().includes(e))},[l,m]),h=(0,a.useMemo)(()=>(function(e){let t={};for(let r of e){let e=r.provider||"Other";(t[e]??=[]).push(r)}return t})(f),[f]);return(0,n.jsx)(eM.Dialog,{open:e,onOpenChange:e=>{e||t()},children:(0,n.jsxs)(eM.DialogContent,{className:"sm:max-w-sm flex flex-col gap-0 overflow-hidden p-0",children:[(0,n.jsxs)(eM.DialogHeader,{className:"shrink-0 px-6 py-4",children:[(0,n.jsx)(eM.DialogTitle,{children:o}),s&&(0,n.jsx)(eM.DialogDescription,{children:s})]}),(0,n.jsx)("div",{className:"px-6 pb-2",children:(0,n.jsx)(eT.Input,{placeholder:"Search models...",value:m,onChange:e=>x(e.target.value),className:"h-8 text-sm"})}),(0,n.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 pb-2 space-y-3",children:[(0,n.jsxs)("div",{className:"space-y-3",children:[Object.entries(h).map(([e,t])=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-1",children:e}),(0,n.jsx)("div",{className:"space-y-0.5",children:t.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>d(e.id),className:"flex items-center gap-2 w-full px-2 py-1.5 rounded-md hover:bg-muted text-left text-sm transition-colors",children:[(0,n.jsx)(eP.Brain,{className:"size-4 text-muted-foreground shrink-0"}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsx)("span",{className:"block truncate",children:e.name}),(0,n.jsx)("span",{className:"block truncate text-xs text-muted-foreground font-mono",children:e.modelId})]}),(0,n.jsx)("div",{className:(0,ex.cn)("flex items-center justify-center size-4 rounded border shrink-0",i.includes(e.id)?"bg-primary border-primary text-primary-foreground":"border-input")})]},e.id))})]},e)),0===f.length&&(0,n.jsx)("div",{className:"py-8 text-center text-sm text-muted-foreground",children:"No models found"})]}),i.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.map(e=>{let t=l.find(t=>t.id===e);return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-muted px-2 py-0.5 text-xs max-w-[160px] min-w-0",children:[(0,n.jsx)(eP.Brain,{className:"size-3 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"truncate",children:t?.name||e}),(0,n.jsx)("button",{type:"button",onClick:()=>d(e),className:"hover:text-destructive shrink-0 cursor-pointer",children:(0,n.jsx)(eR.X,{className:"size-3"})})]},e)})})]}),(0,n.jsxs)("div",{className:"shrink-0 flex justify-end gap-2 border-t px-6 py-4",children:[(0,n.jsx)(eI.Button,{variant:"outline",onClick:t,children:c||"Cancel"}),(0,n.jsx)(eI.Button,{onClick:r,disabled:p||0===i.length,children:u||"Confirm"})]})]})})}function eA({open:e,database:t,models:r,providers:o,stats:s,loading:l,indexing:i,onOpenChange:d,onBind:c,onIndex:u}){let[p,m]=(0,a.useState)(!1),[x,f]=(0,a.useState)(null),[h,g]=(0,a.useState)(!1),[b,v]=(0,a.useState)(null),[y,w]=(0,a.useState)(null),j=s?.embeddingModelId??t?.embeddingModelId??null,N=r.find(e=>e.id===j),k=N?o.find(e=>e.name===N.provider):void 0,S=r.filter(e=>e.embedding);(0,a.useEffect)(()=>{e&&(f(j),v(null),w(null))},[j,e]);let C=async()=>{g(!0),w(null),v(null);try{await c(x),v("Embedding model saved."),m(!1)}catch(e){w(e instanceof Error?e.message:"Failed to save embedding model.")}finally{g(!1)}},z=async()=>{g(!0),w(null),v(null);try{await c(null),f(null),v("Embedding model cleared.")}catch(e){w(e instanceof Error?e.message:"Failed to clear embedding model.")}finally{g(!1)}},M=async()=>{w(null),v(null);try{await u(),v("Vector index completed.")}catch(e){w(e instanceof Error?e.message:"Failed to index database.")}};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eM.Dialog,{open:e,onOpenChange:d,children:(0,n.jsxs)(eM.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden",children:[(0,n.jsx)(eM.DialogHeader,{className:"px-5 py-4 border-b border-border",children:(0,n.jsx)(eM.DialogTitle,{className:"text-sm",children:"Database vectors"})}),(0,n.jsxs)("div",{className:"p-5 space-y-4",children:[(0,n.jsxs)("div",{className:"rounded-lg border border-border bg-muted/30 p-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("div",{className:"text-xs font-semibold text-foreground",children:"Embedding model"}),(0,n.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,n.jsx)(eL.Server,{className:"w-3.5 h-3.5 shrink-0"}),(0,n.jsx)("span",{className:"truncate",children:N?`${N.name} (${k?.name||N.provider})`:"No model bound"})]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>m(!0),className:"shrink-0 rounded-lg border border-border bg-background px-3 py-1.5 text-xs font-semibold hover:bg-muted cursor-pointer",children:"Select"})]}),j&&(0,n.jsx)("button",{type:"button",onClick:z,disabled:h||i,className:"mt-3 text-xs font-semibold text-muted-foreground hover:text-destructive disabled:opacity-50 cursor-pointer",children:"Clear binding"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-3 gap-2 text-xs",children:[(0,n.jsxs)("div",{className:"rounded-lg border border-border p-3",children:[(0,n.jsx)("div",{className:"text-muted-foreground",children:"Documents"}),(0,n.jsx)("div",{className:"mt-1 text-lg font-bold text-foreground",children:s?.nodeCount??"-"})]}),(0,n.jsxs)("div",{className:"rounded-lg border border-border p-3",children:[(0,n.jsx)("div",{className:"text-muted-foreground",children:"Indexed"}),(0,n.jsx)("div",{className:"mt-1 text-lg font-bold text-foreground",children:s?.indexedCount??"-"})]}),(0,n.jsxs)("div",{className:"rounded-lg border border-border p-3",children:[(0,n.jsx)("div",{className:"text-muted-foreground",children:"Updated"}),(0,n.jsx)("div",{className:"mt-1 truncate text-xs font-semibold text-foreground",children:s?.lastIndexedAt?new Date(s.lastIndexedAt).toLocaleString():"-"})]})]}),y&&(0,n.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:y}),b&&(0,n.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-xs text-emerald-700",children:b})]}),(0,n.jsxs)(eM.DialogFooter,{className:"px-5 py-4",children:[(0,n.jsx)("button",{type:"button",onClick:()=>d(!1),className:"px-3 py-1.5 rounded-lg text-xs font-semibold text-muted-foreground hover:text-foreground hover:bg-accent cursor-pointer",children:"Close"}),(0,n.jsxs)("button",{type:"button",onClick:M,disabled:l||i||h||!j,className:"px-3 py-1.5 rounded-lg text-xs font-semibold bg-primary text-primary-foreground disabled:opacity-50 inline-flex items-center gap-1.5 cursor-pointer",children:[(0,n.jsx)(eE.Play,{className:"w-3.5 h-3.5"}),i?"Indexing...":"Start indexing"]})]})]})}),(0,n.jsx)(e$,{open:p,onClose:()=>m(!1),onConfirm:C,title:"Select embedding model",description:"Pick one embedding model. Its provider supplies API base and key.",models:S,selected:x?[x]:[],onToggle:e=>f(t=>t===e?null:e),confirmText:h?"Saving...":"Save",loading:h})]})}var eO=e.i(953700),eH=e.i(433721);let eF=(0,eH.default)("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);var eB=e.i(887354),eV=e.i(650654),eW=e.i(810051),eq=e.i(137340),eU=e.i(943997),eG=e.i(344118);let eX=(0,eH.default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var e_=e.i(444204),eJ=e.i(244073),eK=e.i(751962),eY=e.i(917955),eQ=e.i(992764);let eZ=(0,eH.default)("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),e0={sidebar:25,main:75},e1=e=>`${e}%`,e2=["📁","📄","📎","🚀","💡","⭐","🎯","🎨","📇","📈","☑️","🔥","🔍","📮","🧪","✍️","✅","📸","🔀","🧭"];function e4({node:e,state:t,rowProps:r,onSelect:o,onAddChild:s,onDelete:l,onRename:i,onUpdateIcon:d,onToggleExpand:c,children:u}){let[p,m]=(0,a.useState)(!1),[x,f]=(0,a.useState)(e.title),[h,g]=(0,a.useState)(!1),b=(0,a.useRef)(null);(0,a.useEffect)(()=>{f(e.title)},[e.title]),(0,a.useEffect)(()=>{let e=e=>{b.current&&!b.current.contains(e.target)&&g(!1)};return h&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[h]);let v=()=>{i(e.id,x.trim()||"未命名文档"),m(!1)};return(0,n.jsxs)("div",{className:"flex flex-col select-none",children:[(0,n.jsxs)("div",{...r,className:(0,ex.cn)("group flex items-center h-9 justify-between pr-2 rounded-lg cursor-pointer transition-all gap-1.5 border border-transparent my-0.5",t.isActive?"bg-primary/10 text-primary font-medium":"text-muted-foreground hover:bg-accent hover:text-foreground",t.isDraggedOver&&"border-2 border-dashed border-primary/40 bg-primary/5 scale-95",r.className),children:[(0,n.jsxs)("div",{className:"flex items-center min-w-0 flex-1 h-full py-1",children:[(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),c(e.id)},className:(0,ex.cn)("p-1 rounded-sm text-muted-foreground hover:text-foreground transition-colors shrink-0",!t.hasChildren&&"opacity-0 cursor-default","cursor-pointer"),children:t.isExpanded?(0,n.jsx)(eV.ChevronDown,{className:"w-3.5 h-3.5"}):(0,n.jsx)(eQ.ChevronRight,{className:"w-3.5 h-3.5"})}),(0,n.jsxs)("div",{className:"relative shrink-0",ref:b,children:[(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),g(!h)},className:"text-base p-1.5 rounded-md hover:bg-accent shrink-0 transition-all select-none cursor-pointer",children:e.icon||(t.hasChildren?"📁":"📄")}),h&&(0,n.jsx)("div",{className:"absolute left-1 top-7 bg-popover shadow-2xl rounded-xl border border-border p-2 grid grid-cols-5 gap-1 w-44 z-50",children:e2.map(t=>(0,n.jsx)("button",{onClick:r=>{r.stopPropagation(),d(e.id,t),g(!1)},className:"w-7 h-7 flex items-center justify-center rounded-lg hover:bg-accent text-base cursor-pointer text-foreground",children:t},t))})]}),(0,n.jsx)("div",{onClick:()=>o(e.id),className:"flex-1 min-w-0 pr-1.5 h-full flex items-center",children:p?(0,n.jsx)("input",{type:"text",value:x,onChange:e=>f(e.target.value),onBlur:v,onKeyDown:t=>{"Enter"===t.key&&v(),"Escape"===t.key&&(f(e.title),m(!1))},onClick:e=>e.stopPropagation(),className:"w-full text-xs font-semibold bg-background border border-border rounded-md px-1.5 py-0.5 focus:outline-none focus:ring-1 focus:ring-ring text-foreground",autoFocus:!0}):(0,n.jsx)("span",{className:(0,ex.cn)("text-xs truncate font-medium select-none",t.isActive?"text-primary":"text-foreground/80"),children:e.title||"未命名文档"})})]}),!p&&(0,n.jsxs)("div",{className:"opacity-0 group-hover:opacity-100 flex items-center gap-0.5 shrink-0 transition-opacity",children:[(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!0)},className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",title:"重命名",children:(0,n.jsx)(eW.Edit2,{className:"w-3 h-3"})}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),s(e.id)},className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",title:"新建子页面",children:(0,n.jsx)(eO.Plus,{className:"w-3 h-3"})}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),confirm(`要将 "${e.title||"未命名文档"}" 移动到回收站吗?`)&&l(e.id)},className:"p-1 rounded hover:bg-rose-950/60 text-muted-foreground hover:text-rose-400 cursor-pointer",title:"删除",children:(0,n.jsx)(eq.Trash2,{className:"w-3 h-3"})}),(0,n.jsx)("div",{className:"p-1 cursor-grab text-muted-foreground/40 pointer-events-none",children:(0,n.jsx)(eZ,{className:"w-3 h-3"})})]})]}),u&&(0,n.jsx)("div",{className:"flex flex-col",children:u})]})}var e5=e.i(833237);function e3({workspaceId:e,onOpenSearch:t,onOpenTrash:r,onOpenCreateDatabase:o,onOpenEditDatabase:s,onOpenVectorDialog:l,onSave:i}){let{databases:d,activeDatabaseId:c,nodes:u,activeId:p,openFolders:m,sidebarSearch:x,recentIds:f,setActiveDatabaseId:h,deleteDatabase:g,setActiveId:b,createNode:v,renameNode:y,updateIcon:w,trashNode:j,toggleFolder:N,setSidebarSearch:k}=ek(),S=(0,eJ.useTranslations)("database"),[C,z]=(0,a.useState)(!1),[M,D]=(0,a.useState)(!1),[L,E]=(0,a.useState)(null),[I,T]=(0,a.useState)(null),P=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=e=>{P.current&&!P.current.contains(e.target)&&z(!1)};return C&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[C]);let R=d.find(e=>e.id===c)??d[0]??null,$=u.filter(e=>!e.isTrash),A=$.filter(e=>!x||(e.title||"").toLowerCase().includes(x.toLowerCase())).filter(e=>null===e.parentId),O=(0,a.useCallback)(async(t,r)=>{await v(e,t,r),i()},[e,v,i]),H=(0,a.useCallback)((t,r)=>{let n=r,a=u.find(e=>e.id===t);a?.icon&&n.trim().startsWith(a.icon)&&(n=n.trim().substring(a.icon.length).trim()),y(e,t,n),i()},[e,u,y,i]),F=(0,a.useCallback)((e,t)=>{let r=u.find(e=>e.id===t),n=0;for(;r?.parentId&&n<20;){if(r.parentId===e)return!0;r=u.find(e=>e.id===r.parentId),n++}return!1},[u]),B=(0,a.useCallback)((e,t)=>{E(t),e.dataTransfer.setData("text/plain",t),e.dataTransfer.effectAllowed="move"},[]),V=(0,a.useCallback)((e,t)=>{if(e.preventDefault(),L&&L!==t){if(F(L,t)){e.dataTransfer.dropEffect="none";return}T(t),e.dataTransfer.dropEffect="move"}},[L,F]),W=(0,a.useCallback)(()=>T(null),[]),q=(0,a.useCallback)((t,r)=>{t.preventDefault(),T(null),!L||L===r||F(L,r)||(ek.getState().moveNode(e,L,r),E(null),i())},[L,e,F,i]),U=(0,a.useCallback)(t=>{t.preventDefault(),L&&(ek.getState().moveNode(e,L,null),E(null),i())},[L,e,i]),G=(0,a.useCallback)(async()=>{!R||d.length<=1||confirm(S("deleteConfirm",{name:R.name}))&&await g(e,R.id)},[R,d.length,g,e]),X=(0,a.useCallback)(async t=>{let{activeDatabaseId:r}=ek.getState();if(r){for(let n of t){let t=await n.text(),a=n.name.replace(/\.md$/i,""),o=await (0,ev.fetchWithAuth)(`/api/workspaces/${e}/database?databaseId=${encodeURIComponent(r)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,icon:"📝",content:t,parentId:null})});if(!o.ok)throw Error("Failed to create node");let s=await o.json();ek.setState(e=>({nodes:[...e.nodes,s]}))}i()}},[e,i]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"px-4 py-3 border-b border-border bg-sidebar/80 backdrop-blur-md",children:(0,n.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-xl bg-gradient-to-tr from-muted to-muted-foreground/20 flex items-center justify-center font-bold text-base text-foreground border border-muted-foreground/20",children:"📁"}),(0,n.jsxs)("div",{className:"hidden",children:[(0,n.jsx)("span",{className:"text-xs font-bold text-foreground tracking-tight",children:S("knowledgeBase")}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium font-mono leading-none mt-0.5",children:"Database"})]}),(0,n.jsxs)(eY.DropdownMenu,{children:[(0,n.jsxs)(eY.DropdownMenuTrigger,{className:"min-w-0 flex-1 flex items-center justify-between gap-2 rounded-lg px-1.5 py-1 text-left hover:bg-accent outline-none",title:R?.name??"Database",children:[(0,n.jsxs)("div",{className:"min-w-0 flex flex-col",children:[(0,n.jsx)("span",{className:"text-xs font-bold text-foreground tracking-tight truncate",children:R?.name??"Database"}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium font-mono leading-none mt-0.5",children:"Database"})]}),(0,n.jsx)(eV.ChevronDown,{className:"w-3.5 h-3.5 text-muted-foreground shrink-0"})]}),(0,n.jsxs)(eY.DropdownMenuContent,{align:"start",className:"w-56",children:[d.map(t=>(0,n.jsxs)(eY.DropdownMenuItem,{onClick:()=>{t.id!==c&&h(e,t.id)},className:"cursor-pointer",children:[(0,n.jsx)(eU.Database,{className:"w-4 h-4"}),(0,n.jsx)("span",{className:"truncate flex-1",children:t.name}),t.id===c&&(0,n.jsx)(eG.Check,{className:"w-4 h-4"})]},t.id)),(0,n.jsx)(eY.DropdownMenuSeparator,{}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:o,className:"cursor-pointer",children:[(0,n.jsx)(eO.Plus,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:S("createDatabase")})]}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:s,disabled:!R,className:"cursor-pointer",children:[(0,n.jsx)(eW.Edit2,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:S("editDatabase")})]}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:l,disabled:!R,className:"cursor-pointer",children:[(0,n.jsx)(eP.Brain,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:S("vectorSettings")})]}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:G,disabled:!R||d.length<=1,variant:"destructive",className:"cursor-pointer",children:[(0,n.jsx)(eq.Trash2,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:S("deleteDatabase")})]})]})]})]})}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto px-3.5 py-4",onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"},onDrop:U,children:[(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between text-[11px] font-bold text-muted-foreground px-1 mb-2.5 uppercase tracking-wider",children:[(0,n.jsx)("span",{children:S("sidebarTree")}),(0,n.jsxs)("span",{children:["(",$.length,")"]})]}),(0,n.jsxs)("div",{className:"px-1 mb-4 flex items-center gap-2 relative",ref:P,children:[(0,n.jsxs)("div",{className:"relative flex-1",children:[(0,n.jsx)("input",{type:"text",placeholder:S("filterPlaceholder"),value:x,onChange:e=>k(e.target.value),className:"w-full text-xs bg-background border border-border rounded-lg px-2.5 py-1.5 pr-7 text-foreground focus:outline-none focus:ring-1 focus:ring-ring placeholder:text-muted-foreground/60"}),x?(0,n.jsx)("button",{onClick:()=>k(""),className:"absolute right-2 top-2 text-muted-foreground hover:text-foreground cursor-pointer",children:(0,n.jsx)(eR.X,{className:"w-3.5 h-3.5"})}):(0,n.jsx)(eX,{className:"absolute right-2 top-2.5 w-3 h-3 text-muted-foreground/60 pointer-events-none"})]}),(0,n.jsx)("button",{onClick:()=>z(!C),className:"h-8 w-8 rounded-lg bg-muted hover:bg-muted/80 border border-border hover:border-muted-foreground/40 text-foreground transition-all cursor-pointer flex items-center justify-center shrink-0",title:S("newItem"),children:(0,n.jsx)(eO.Plus,{className:"w-4 h-4"})}),C&&(0,n.jsxs)("div",{className:"absolute right-1 top-[calc(100%+4px)] w-36 bg-popover border border-border rounded-lg shadow-2xl py-1 z-50",children:[(0,n.jsxs)("button",{onClick:()=>{O(null,"folder"),z(!1)},className:"w-full text-left px-3 py-1.5 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer",children:[(0,n.jsx)("span",{className:"text-sm",children:"📂"}),(0,n.jsx)("span",{className:"font-medium",children:S("newFolder")})]}),(0,n.jsxs)("button",{onClick:()=>{O(null,"document"),z(!1)},className:"w-full text-left px-3 py-1.5 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer",children:[(0,n.jsx)("span",{className:"text-sm",children:"📝"}),(0,n.jsx)("span",{className:"font-medium",children:S("newDocument")})]}),(0,n.jsxs)("button",{onClick:()=>{D(!0),z(!1)},className:"w-full text-left px-3 py-1.5 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer",children:[(0,n.jsx)("span",{className:"text-sm",children:"📥"}),(0,n.jsx)("span",{className:"font-medium",children:S("importMarkdown")})]})]})]}),0===A.length?(0,n.jsx)("div",{className:"px-2 py-6 text-center text-xs text-muted-foreground italic",children:x?S("noMatch"):S("emptyState")}):(0,n.jsx)("div",{className:"space-y-0.5",children:(0,n.jsx)(eK.NestedTree,{nodes:A,getNodeId:e=>e.id,getChildren:e=>$.filter(t=>t.parentId===e.id),activeId:p,expandedIds:m,draggedOverId:I,onDragStart:B,onDragOver:V,onDragLeave:W,onDrop:q,shouldRenderChildren:(e,t)=>t.isExpanded,renderNode:({node:t,state:r,rowProps:a,children:o})=>(0,n.jsx)(e4,{node:t,state:r,rowProps:a,onSelect:b,onAddChild:O,onDelete:t=>{j(e,t),i()},onRename:H,onUpdateIcon:(t,r)=>{w(e,t,r),i()},onToggleExpand:N,children:o})})})]}),f.length>0&&(0,n.jsxs)("div",{className:"mb-6 pt-4 border-t border-border",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-bold text-muted-foreground px-1 mb-2 uppercase tracking-wider",children:[(0,n.jsx)(e_.Clock,{className:"w-3.5 h-3.5 text-muted-foreground"}),(0,n.jsx)("span",{children:S("recentEdits")})]}),(0,n.jsx)("div",{className:"space-y-1",children:f.map(e=>u.find(t=>t.id===e&&!t.isTrash)).filter(e=>!!e).map(e=>(0,n.jsxs)("button",{onClick:()=>b(e.id),className:(0,ex.cn)("w-full text-left p-1.5 rounded-lg flex items-center gap-2 text-xs transition-colors",p===e.id?"bg-accent text-foreground font-semibold":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[(0,n.jsx)("span",{className:"text-sm shrink-0 select-none",children:e.icon||"📝"}),(0,n.jsx)("span",{className:"truncate flex-1",children:e.title||S("untitled")})]},e.id))})]})]}),(0,n.jsxs)("div",{className:"p-3.5 border-t border-border bg-sidebar flex items-center gap-3 shrink-0",children:[(0,n.jsxs)("button",{onClick:t,className:"flex-1 flex items-center justify-between bg-background hover:bg-muted border border-border text-muted-foreground hover:text-foreground transition-all h-11 px-4 rounded-full text-xs cursor-pointer shadow-sm",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(eB.Search,{className:"w-4 h-4 text-muted-foreground"}),(0,n.jsx)("span",{className:"font-semibold text-muted-foreground",children:S("globalSearch")})]}),(0,n.jsx)("span",{className:"bg-sidebar text-muted-foreground text-[10px] font-mono font-medium px-2 py-0.5 rounded-full border border-border scale-90",children:"⌘K"})]}),(0,n.jsxs)("button",{onClick:r,className:"relative w-11 h-11 shrink-0 flex items-center justify-center rounded-full bg-background hover:bg-muted text-muted-foreground hover:text-rose-400 border border-border transition-all cursor-pointer shadow-sm group",title:S("trashBin"),children:[(0,n.jsx)(eF,{className:"w-4 h-4 text-rose-500 transition-transform group-hover:scale-110"}),u.filter(e=>e.isTrash).length>0&&(0,n.jsx)("span",{className:"absolute -top-0.5 -right-0.5 bg-rose-600 text-white text-[9px] w-4 h-4 rounded-full flex items-center justify-center font-semibold border border-sidebar shadow-sm",children:u.filter(e=>e.isTrash).length})]})]}),(0,n.jsx)(e5.ImportFileDialog,{open:M,onOpenChange:D,workspaceId:e,targetPath:"",onImported:i,accept:{"text/markdown":[".md"],"text/x-markdown":[".md"]},onUploadFiles:X})]})}var e6=e.i(651850),e6=e6,e8=e.i(579820),e9=e.i(735207),e9=e9;let e7=(0,eH.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var te=e.i(588785),tt=e.i(315775);let tr=(0,eH.default)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var tn=e.i(415360);let ta=(0,eH.default)("file-check",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]),to=(0,eH.default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),ts=(0,eH.default)("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);function tl(e){if(!e)return"";let t=e,r=(t=(t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>`<pre><code class="language-${t}">${td(r.trim())}</code></pre>`)).replace(/^---$/gm,"<hr />")).split("\n"),n=[],a=!1,o=!1,s=!1,l=!1,i=()=>{a&&(n.push("</ul>"),a=!1),o&&(n.push("</ol>"),o=!1),l&&(n.push("</ul>"),l=!1)},d=()=>{s&&(n.push("</blockquote>"),s=!1)};for(let e of r){let t=e.trim();if(t.startsWith(">"))i(),s||(n.push("<blockquote>"),s=!0),n.push(`<p>${ti(t.replace(/^>\s*/,""))}</p>`);else if(d(),t.startsWith("# "))i(),n.push(`<h1>${ti(t.substring(2))}</h1>`);else if(t.startsWith("## "))i(),n.push(`<h2>${ti(t.substring(3))}</h2>`);else if(t.startsWith("### "))i(),n.push(`<h3>${ti(t.substring(4))}</h3>`);else if(t.startsWith("#### "))i(),n.push(`<h4>${ti(t.substring(5))}</h4>`);else{let r=e.match(/^(\s*)-\s+\[([ x])\]\s+(.*)$/i),s=e.match(/^(\s*)[-*]\s+(.*)$/),c=e.match(/^(\s*)\d+\.\s+(.*)$/);if(r){a&&(n.push("</ul>"),a=!1),o&&(n.push("</ol>"),o=!1),l||(n.push('<ul data-type="taskList">'),l=!0);let e="x"===r[2].toLowerCase();n.push(`<li data-type="taskItem" data-checked="${e}">${ti(r[3])}</li>`)}else s?(l&&(n.push("</ul>"),l=!1),o&&(n.push("</ol>"),o=!1),a||(n.push("<ul>"),a=!0),n.push(`<li>${ti(s[2])}</li>`)):c?(l&&(n.push("</ul>"),l=!1),a&&(n.push("</ul>"),a=!1),o||(n.push("<ol>"),o=!0),n.push(`<li>${ti(c[2])}</li>`)):""===t?(i(),d()):e.includes("<pre>")||e.includes("</pre>")||e.includes("<code>")||e.includes("</code>")?n.push(e):(i(),d(),n.push(`<p>${ti(e)}</p>`))}}return i(),d(),n.join("\n")}function ti(e){let t=td(e);return(t=(t=(t=(t=(t=t.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>")).replace(/__(.*?)__/g,"<strong>$1</strong>")).replace(/\*(.*?)\*/g,"<em>$1</em>")).replace(/_(.*?)_/g,"<em>$1</em>")).replace(/~~(.*?)~~/g,"<s>$1</s>")).replace(/`(.*?)`/g,"<code>$1</code>")}function td(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}let tc=["linear-gradient(to right, #10b981, #06b6d4)","linear-gradient(to right, #ec4899, #8b5cf6)","linear-gradient(to right, #f43f5e, #f97316)","linear-gradient(to right, #1e293b, #0f172a)","linear-gradient(to right, #3b82f6, #06b6d4)","linear-gradient(to right, #f59e0b, #e11d48)","linear-gradient(to right, #475569, #1e293b)"];var tu=e.i(555060),tp=e.i(568772),tm=e.i(99567),tx=e.i(332339),tf=e.i(891041),th=tf.TaskList,tg=tf.TaskItem;let tb=(0,eH.default)("bold",[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]]),tv=(0,eH.default)("italic",[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]]),ty=(0,eH.default)("strikethrough",[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]),tw=(0,eH.default)("heading-1",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"m17 12 3-2v8",key:"1hhhft"}]]),tj=(0,eH.default)("heading-2",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]]),tN=(0,eH.default)("heading-3",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]]),tk=(0,eH.default)("list-ordered",[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]]),tS=(0,eH.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var tC=e.i(303867);let tz=(0,eH.default)("quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);var tM=e.i(450158);let tD=(0,eH.default)("undo",[["path",{d:"M3 7v6h6",key:"1v2h90"}],["path",{d:"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13",key:"1r6uu6"}]]),tL=(0,eH.default)("redo",[["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]]);var tE=e.i(346038);function tI({content:e,onChange:t,theme:r="sans"}){let[o,s]=(0,a.useState)(!1),[l,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(0),u=(0,a.useRef)(null),p=(0,tp.useEditor)({immediatelyRender:!1,extensions:[tm.default.configure({heading:{levels:[1,2,3]},codeBlock:{HTMLAttributes:{class:"bg-card text-foreground rounded-lg p-4 font-mono text-sm my-4 overflow-x-auto border border-border"}},blockquote:{HTMLAttributes:{class:"border-l-4 border-muted-foreground/40 pl-4 py-1.5 italic my-4 text-muted-foreground bg-card/80 rounded-r-md"}},bulletList:{HTMLAttributes:{class:"list-disc pl-6 my-4 space-y-1 text-foreground"}},orderedList:{HTMLAttributes:{class:"list-decimal pl-6 my-4 space-y-1 text-foreground"}},horizontalRule:{HTMLAttributes:{class:"border-t-2 border-border my-6"}}}),tx.default.configure({placeholder:"点击此处或输入 '/' 唤起快速块级排版样式..."}),th.configure({HTMLAttributes:{class:"space-y-1.5 my-4 pl-1 list-none"}}),tg.configure({nested:!0,HTMLAttributes:{class:"flex items-start gap-3"}})],content:e,onUpdate:({editor:e})=>{t(e.getHTML());let{selection:r}=e.state,n=e.state.doc.textBetween(Math.max(0,r.from-10),r.from,"\n","\n"),a=n.lastIndexOf("/");if(-1!==a&&a===n.length-1)s(!0),i(""),c(0);else if(o){let e=n.slice(a+1);e.includes(" ")||!n.includes("/")?s(!1):i(e)}},editorProps:{attributes:{class:(0,ex.cn)("focus:outline-none min-h-[500px] w-full py-6 px-1 prose max-w-none","prose-h1:text-3xl prose-h1:font-bold prose-h1:text-foreground prose-h1:mb-4 prose-h1:mt-6","prose-h2:text-2xl prose-h2:font-semibold prose-h2:text-foreground prose-h2:mb-3 prose-h2:mt-5","prose-h3:text-xl prose-h3:font-medium prose-h3:text-foreground prose-h3:mb-2 prose-h3:mt-4","prose-p:text-base prose-p:leading-relaxed prose-p:text-foreground/80 prose-p:my-2.5","prose-strong:text-foreground","serif"===r&&"font-serif","mono"===r&&"font-mono","sans"===r&&"font-sans")}}});(0,a.useEffect)(()=>{p&&e!==p.getHTML()&&p.commands.setContent(e,{emitUpdate:!1})},[e,p]);let m=[{title:"一级标题",icon:(0,n.jsx)(tw,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleHeading({level:1}).run()},keywords:["h1"]},{title:"二级标题",icon:(0,n.jsx)(tj,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleHeading({level:2}).run()},keywords:["h2"]},{title:"三级标题",icon:(0,n.jsx)(tN,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleHeading({level:3}).run()},keywords:["h3"]},{title:"无序列表",icon:(0,n.jsx)(to,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleBulletList().run()},keywords:["list"]},{title:"有序列表",icon:(0,n.jsx)(tk,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleOrderedList().run()},keywords:["ol"]},{title:"待办清单",icon:(0,n.jsx)(tS,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleTaskList().run()},keywords:["todo"]},{title:"代码块",icon:(0,n.jsx)(tC.Code,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleCodeBlock().run()},keywords:["code"]},{title:"引用",icon:(0,n.jsx)(tz,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().toggleBlockquote().run()},keywords:["quote"]},{title:"分割线",icon:(0,n.jsx)(tM.Minus,{className:"w-4 h-4 text-muted-foreground"}),action:()=>{p?.commands.deleteRange({from:p.state.selection.from-l.length-1,to:p.state.selection.from}),p?.chain().focus().setHorizontalRule().run()},keywords:["hr"]}].filter(e=>{let t=l.toLowerCase();return e.title.toLowerCase().includes(t)||e.keywords.some(e=>e.includes(t))});if((0,a.useEffect)(()=>{let e=e=>{o&&0!==m.length&&("ArrowDown"===e.key?(e.preventDefault(),c(e=>(e+1)%m.length)):"ArrowUp"===e.key?(e.preventDefault(),c(e=>(e-1+m.length)%m.length)):"Enter"===e.key?(e.preventDefault(),m[d].action(),s(!1)):"Escape"===e.key&&(e.preventDefault(),s(!1),p?.commands.focus()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o,d,m,p]),(0,a.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&s(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),!p)return null;let x=(e,t,r,a,o)=>(0,n.jsx)("button",{onClick:e,disabled:o,className:(0,ex.cn)("p-1.5 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground transition-all cursor-pointer",t&&"bg-accent text-foreground",o&&"opacity-20"),title:r,children:a});return(0,n.jsxs)("div",{className:"relative w-full z-10 flex flex-col h-full bg-background rounded-xl select-text",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-between border-b border-border gap-1 pb-3 mb-2 px-1",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[x(()=>p.chain().focus().toggleBold().run(),p.isActive("bold"),"加粗",(0,n.jsx)(tb,{className:"w-4 h-4"}),!p.can().toggleBold()),x(()=>p.chain().focus().toggleItalic().run(),p.isActive("italic"),"斜体",(0,n.jsx)(tv,{className:"w-4 h-4"}),!p.can().toggleItalic()),x(()=>p.chain().focus().toggleStrike().run(),p.isActive("strike"),"删除线",(0,n.jsx)(ty,{className:"w-4 h-4"}),!p.can().toggleStrike()),x(()=>p.chain().focus().toggleCode().run(),p.isActive("code"),"行内代码",(0,n.jsx)(tC.Code,{className:"w-4 h-4"}),!p.can().toggleCode()),(0,n.jsx)("div",{className:"w-[1px] h-4 bg-border mx-1"}),x(()=>p.chain().focus().toggleHeading({level:1}).run(),p.isActive("heading",{level:1}),"H1",(0,n.jsx)("span",{className:"text-xs font-semibold",children:"H1"})),x(()=>p.chain().focus().toggleHeading({level:2}).run(),p.isActive("heading",{level:2}),"H2",(0,n.jsx)("span",{className:"text-xs font-semibold",children:"H2"})),x(()=>p.chain().focus().toggleHeading({level:3}).run(),p.isActive("heading",{level:3}),"H3",(0,n.jsx)("span",{className:"text-xs font-semibold",children:"H3"})),(0,n.jsx)("div",{className:"w-[1px] h-4 bg-border mx-1"}),x(()=>p.chain().focus().toggleBulletList().run(),p.isActive("bulletList"),"无序列表",(0,n.jsx)(to,{className:"w-4 h-4"})),x(()=>p.chain().focus().toggleOrderedList().run(),p.isActive("orderedList"),"有序列表",(0,n.jsx)(tk,{className:"w-4 h-4"})),x(()=>p.chain().focus().toggleTaskList().run(),p.isActive("taskList"),"待办",(0,n.jsx)(tS,{className:"w-4 h-4"})),(0,n.jsx)("div",{className:"w-[1px] h-4 bg-border mx-1"}),x(()=>p.chain().focus().toggleCodeBlock().run(),p.isActive("codeBlock"),"代码块",(0,n.jsx)(tC.Code,{className:"w-4 h-4"})),x(()=>p.chain().focus().toggleBlockquote().run(),p.isActive("blockquote"),"引用",(0,n.jsx)(tz,{className:"w-4 h-4"})),x(()=>p.chain().focus().setHorizontalRule().run(),!1,"分割线",(0,n.jsx)(tM.Minus,{className:"w-4 h-4"}))]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{onClick:()=>p.chain().focus().undo().run(),disabled:!p.can().undo(),className:"p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground disabled:opacity-20 cursor-pointer",title:"撤销",children:(0,n.jsx)(tD,{className:"w-4 h-4"})}),(0,n.jsx)("button",{onClick:()=>p.chain().focus().redo().run(),disabled:!p.can().redo(),className:"p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground disabled:opacity-20 cursor-pointer",title:"重做",children:(0,n.jsx)(tL,{className:"w-4 h-4"})}),(0,n.jsx)("button",{onClick:()=>{p.commands.focus(),s(!0),i(""),c(0)},className:"p-1.5 rounded-lg hover:bg-muted text-foreground ml-1 border border-border cursor-pointer",title:"/ 快捷键",children:(0,n.jsx)(eO.Plus,{className:"w-4 h-4"})})]})]}),(0,n.jsxs)("div",{className:"relative min-h-[500px]",children:[(0,n.jsx)(tp.EditorContent,{editor:p}),o&&(0,n.jsxs)("div",{ref:u,className:"absolute left-8 -mt-2 w-72 bg-popover border border-border rounded-xl shadow-2xl overflow-hidden py-1.5 z-50",style:{maxHeight:"300px",overflowY:"auto"},children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 border-b border-border bg-muted/50 text-muted-foreground text-xs font-medium",children:[(0,n.jsx)(tE.Keyboard,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{children:"搜索块命令"}),l&&(0,n.jsxs)("span",{className:"ml-auto bg-muted text-foreground px-1.5 py-0.2 rounded-md font-mono",children:["/",l]})]}),0===m.length?(0,n.jsx)("div",{className:"px-4 py-3 text-sm text-muted-foreground italic text-center",children:"未找到对应块选项"}):(0,n.jsx)("div",{className:"max-h-[240px] overflow-y-auto",children:m.map((e,t)=>(0,n.jsxs)("button",{onClick:()=>{e.action(),s(!1)},className:(0,ex.cn)("w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors text-sm cursor-pointer",t===d?"bg-accent text-foreground border-l-2 border-foreground":"text-muted-foreground hover:bg-accent/50"),children:[(0,n.jsx)("div",{className:"p-1.5 rounded-lg bg-muted text-muted-foreground",children:e.icon}),(0,n.jsx)("span",{className:"font-medium",children:e.title})]},t))})]})]})]})}var tT=e.i(355479),tP=e.i(332277),tR=e.i(237597);let t$=(0,eH.default)("heading",[["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M6 20V4",key:"1w1bmo"}],["path",{d:"M18 20V4",key:"o2hl4u"}]]),tA=(0,eH.default)("table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var tO=e.i(791298),e9=e9;function tH({contentMarkdown:e,onChange:t,theme:r="sans"}){let[o,s]=(0,a.useState)("split"),l=(0,a.useRef)(null),i=(0,a.useRef)(null),d=e=>{if("split"!==o)return;let t=e.currentTarget,r="textarea"===t.tagName.toLowerCase()?i.current:l.current;r&&(r.scrollTop=t.scrollTop/(t.scrollHeight-t.clientHeight)*(r.scrollHeight-r.clientHeight))},c=(e,r="",n="")=>{let a=l.current;if(!a)return;let o=a.selectionStart,s=a.selectionEnd,i=a.value,d=i.substring(o,s)||n;t(i.substring(0,o)+e+d+r+i.substring(s)),setTimeout(()=>{a.focus(),a.setSelectionRange(o+e.length,o+e.length+d.length)},0)},u=(e,t,r)=>(0,n.jsx)("button",{type:"button",onClick:e,className:"p-1.5 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",title:t,children:r}),p=tl(e);return(0,n.jsxs)("div",{className:"w-full flex flex-col h-[550px] lg:h-[650px] bg-background border border-border rounded-xl overflow-hidden",children:[(0,n.jsxs)("div",{className:"bg-background border-b border-border px-3 py-2 flex flex-col sm:flex-row items-center justify-between gap-3 shrink-0",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[u(()=>c("### ","","小标题"),"标题",(0,n.jsx)(t$,{className:"w-4 h-4"})),u(()=>c("**","**","加粗"),"加粗",(0,n.jsx)(tb,{className:"w-4 h-4"})),u(()=>c("*","*","斜体"),"斜体",(0,n.jsx)(tv,{className:"w-4 h-4"})),u(()=>c("~~","~~","删除线"),"删除线",(0,n.jsx)(ty,{className:"w-4 h-4"})),(0,n.jsx)("div",{className:"w-[1px] h-4 bg-border mx-1"}),u(()=>c("- ","","项目一"),"无序列表",(0,n.jsx)(to,{className:"w-4 h-4"})),u(()=>c("1. ","","项目一"),"有序列表",(0,n.jsx)(tk,{className:"w-4 h-4"})),u(()=>c("- [ ] ","","任务"),"任务列表",(0,n.jsx)(tS,{className:"w-4 h-4"})),(0,n.jsx)("div",{className:"w-[1px] h-4 bg-border mx-1"}),u(()=>c("`","`","code"),"行内代码",(0,n.jsx)(tC.Code,{className:"w-4 h-4"})),u(()=>c("```js\n","\n```","code"),"代码块",(0,n.jsx)("span",{className:"font-mono text-xs font-bold",children:"</>"})),u(()=>c("> ","","引用"),"引用",(0,n.jsx)(tz,{className:"w-4 h-4"})),u(()=>c("| 标题1 | 标题2 |\n| ---- | ---- |\n| 单元格1 | 单元格2 |"),"表格",(0,n.jsx)(tA,{className:"w-4 h-4"})),u(()=>c("[","](url)","链接"),"链接",(0,n.jsx)(tO.Link,{className:"w-4 h-4"}))]}),(0,n.jsx)("div",{className:"flex items-center gap-1 bg-card p-1 rounded-lg shrink-0",children:["edit","split","preview"].map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>s(e),className:(0,ex.cn)("flex items-center gap-1 px-2.5 py-1 text-xs font-medium rounded-md transition-colors cursor-pointer",o===e?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:["edit"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tR.Edit3,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{className:"hidden md:inline",children:"编辑"})]}),"split"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tT.Split,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{className:"hidden md:inline",children:"分屏"})]}),"preview"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tP.Eye,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{className:"hidden md:inline",children:"预览"})]})]},e))})]}),(0,n.jsxs)("div",{className:"flex-1 flex w-full min-h-0",children:[("edit"===o||"split"===o)&&(0,n.jsx)("div",{className:(0,ex.cn)("h-full flex flex-col min-w-0 flex-1 relative border-r border-border","edit"===o?"w-full":"w-1/2"),children:(0,n.jsx)("textarea",{ref:l,value:e,onChange:e=>t(e.target.value),onScroll:d,className:(0,ex.cn)("w-full h-full p-6 text-foreground font-mono text-sm leading-relaxed focus:outline-none resize-none bg-background overflow-y-auto","serif"===r&&"font-serif","mono"===r&&"font-mono text-xs")})}),("preview"===o||"split"===o)&&(0,n.jsxs)("div",{ref:i,onScroll:d,className:(0,ex.cn)("h-full overflow-y-auto px-6 py-6 bg-background min-w-0 flex-1 prose max-w-none","preview"===o?"w-full":"w-1/2"),children:[(0,n.jsx)("div",{className:"flex items-center justify-between mb-4 pb-2 border-b border-border text-muted-foreground font-mono text-[10px] uppercase tracking-wider sticky top-0 bg-background z-10",children:(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(e9.default,{className:"w-3 h-3 text-muted-foreground"})," Live Preview"]})}),p?(0,n.jsx)("div",{className:"prose max-w-none",dangerouslySetInnerHTML:{__html:p}}):(0,n.jsx)("div",{className:"h-[90%] flex flex-col items-center justify-center text-muted-foreground/60 italic",children:"预览内容为空"})]})]})]})}function tF({headings:e,open:t}){let[r,o]=a.default.useState(null),s=(0,a.useMemo)(()=>0===e.length?1:Math.min(...e.map(e=>e.level)),[e]),l=(0,a.useCallback)(e=>{let t=document.querySelector("[data-editor-content]");if(!t)return;let r=t.querySelectorAll("h1, h2, h3"),n=parseInt(e.replace("toc-h-",""));r[n]&&(r[n].scrollIntoView({behavior:"smooth",block:"start"}),o(e))},[]);return((0,a.useEffect)(()=>{if(!t||0===e.length)return;let r=document.querySelector("[data-editor-content]");if(!r)return;let n=new IntersectionObserver(t=>{for(let n of t)if(n.isIntersecting){let t=n.target.tagName.toLowerCase(),a=parseInt(t.replace("h","")),s=Array.from(r.querySelectorAll(t)).indexOf(n.target),l=e.findIndex(e=>e.level===a);l>=0&&o(`toc-h-${l+s}`)}},{root:r,rootMargin:"0px 0px -80% 0px",threshold:.1});return r.querySelectorAll("h1, h2, h3").forEach(e=>n.observe(e)),()=>n.disconnect()},[e,t]),t&&0!==e.length)?(0,n.jsxs)("div",{className:"fixed right-4 z-30 w-52 max-h-[50vh] bg-card/95 backdrop-blur-md border border-border rounded-xl shadow-2xl flex flex-col overflow-hidden",style:{top:200},children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-2 border-b border-border shrink-0 text-xs font-semibold text-muted-foreground",children:[(0,n.jsx)("span",{children:"目录"}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:e.length})]}),(0,n.jsx)("div",{className:"overflow-y-auto py-1.5 px-1 flex-1",children:e.map(e=>{let t=e.level-s,a=r===e.id;return(0,n.jsxs)("button",{onClick:()=>l(e.id),className:(0,ex.cn)("w-full text-left px-2 py-1 rounded-md text-xs transition-all cursor-pointer flex items-center gap-1",a?"text-foreground font-semibold bg-accent":"text-muted-foreground hover:text-foreground hover:bg-muted/50"),style:{paddingLeft:`${8+12*t}px`},children:[t>0&&(0,n.jsx)(eQ.ChevronRight,{className:"w-2.5 h-2.5 shrink-0 opacity-40"}),(0,n.jsx)("span",{className:"truncate",children:e.text})]},e.id)})})]}):null}function tB({workspaceId:e,sidebarPanelRef:t,showSaveSuccess:r,onSave:o}){let{nodes:s,activeId:l,openTabs:i,editorMode:d,theme:c,isFullWidth:u,setActiveId:p,createNode:m,updateContent:x,renameNode:f,updateCover:h,setEditorMode:g,setTheme:b,setIsFullWidth:v,closeTab:y,listNodeVersions:w}=ek(),j=(0,eJ.useTranslations)("database"),N=(0,eJ.useTranslations)("common"),[k,S]=(0,a.useState)(!0),[C,z]=(0,a.useState)(!1),[M,D]=(0,a.useState)([]),[L,E]=(0,a.useState)(null),[I,T]=(0,a.useState)(!1),[P,R]=(0,a.useState)(null),$=s.find(e=>e.id===l),A=$&&$.content.replace(/<[^>]*>/g,"").trim().length||0,O=(0,a.useMemo)(()=>$?"notion"===d?function(e){let t,r=/<h([1-3])[^>]*>(.*?)<\/h\1>/gi,n=[];for(;null!==(t=r.exec(e));){let e=parseInt(t[1]),r=t[2].replace(/<[^>]*>/g,"").trim();r&&n.push({id:`toc-h-${n.length}`,text:r,level:e})}return n}($.content):function(e){let t=[],r=0;for(let n of e.split("\n")){let e=n.match(/^(#{1,3})\s+(.+)$/);e&&t.push({id:`toc-h-${r++}`,text:e[2].trim(),level:e[1].length})}return t}($.content):[],[$,d]),H=(0,a.useCallback)(async t=>{await m(e,t),o()},[e,m,o]),F=(0,a.useCallback)(t=>{$&&("markdown"===t&&"notion"===d?x(e,$.id,function(e){if(!e)return"";{let t=new DOMParser().parseFromString(e,"text/html"),r=e=>{if(e.nodeType===Node.TEXT_NODE)return e.nodeValue||"";if(e.nodeType===Node.ELEMENT_NODE){let t=e.tagName.toLowerCase(),n=Array.from(e.childNodes).map(r).join("");switch(t){case"h1":return`
2
- # ${n}
3
- `;case"h2":return`
4
- ## ${n}
5
- `;case"h3":return`
6
- ### ${n}
7
- `;case"h4":return`
8
- #### ${n}
9
- `;case"p":return`
10
- ${n}
11
- `;case"strong":case"b":return`**${n}**`;case"em":case"i":return`*${n}*`;case"s":case"del":return`~~${n}~~`;case"code":if(e.parentElement?.tagName.toLowerCase()==="pre")return n;return`\`${n}\``;case"pre":{let t=e.querySelector("code"),r=t?.getAttribute("class")?.replace("language-","")||"",n=t?t.textContent||"":e.textContent||"";return`
12
- \`\`\`${r}
13
- ${n.trim()}
14
- \`\`\`
15
- `}case"blockquote":return`
16
- > ${n.replace(/\n/g,"\n> ")}
17
- `;case"li":if(e.hasAttribute("data-checked")||e.querySelector('input[type="checkbox"]')){let t="true"===e.getAttribute("data-checked")||e.querySelector('input[type="checkbox"]')?.checked;return`${t?"[x]":"[ ]"} ${n}
18
- `}return`${n}
19
- `;case"ul":{let t=Array.from(e.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&"li"===e.tagName.toLowerCase()).map(e=>`- ${r(e)}`).join("");return`
20
- ${t}`}case"ol":{let t=1,n=Array.from(e.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&"li"===e.tagName.toLowerCase()).map(e=>`${t++}. ${r(e)}`).join("");return`
21
- ${n}`}case"hr":return`
22
- ---
23
- `;case"br":return`
24
- `;default:return n}}return""};return Array.from(t.body.childNodes).map(r).join("").replace(/\n{3,}/g,"\n\n").trim()}}($.content)):"notion"===t&&"markdown"===d&&x(e,$.id,tl($.content)),g(t))},[$,d,e,x,g]),B=(0,a.useCallback)((e,t)=>{e.stopPropagation(),y(t)},[y]),V=(0,a.useCallback)(async()=>{if($){z(!0),T(!0),R(null);try{let t=await w(e,$.id);D(t),E(t[0]?.id??null)}catch(e){R(e instanceof Error?e.message:j("loadHistoryFailed")),D([]),E(null)}finally{T(!1)}}},[$,w,e,j]),W=(0,a.useMemo)(()=>[{key:"sans",label:j("themeSans"),fontClass:"font-sans"},{key:"serif",label:j("themeSerif"),fontClass:"font-serif"},{key:"mono",label:j("themeMono"),fontClass:"font-mono"}],[j]),q=(0,a.useMemo)(()=>M.find(e=>e.id===L)??M[0]??null,[L,M]);return(0,n.jsxs)(n.Fragment,{children:[r&&(0,n.jsxs)("div",{className:"absolute top-4 right-1/2 translate-x-1/2 bg-card border border-border text-foreground text-xs font-semibold px-4 py-2 rounded-full flex items-center gap-2 shadow-2xl z-50",children:[(0,n.jsx)(tr,{className:"w-3.5 h-3.5 text-emerald-400"}),(0,n.jsx)("span",{children:j("autoSaved")})]}),(0,n.jsx)("div",{className:"flex items-center justify-between bg-muted/50 border-b border-border px-4 min-h-[44px] select-none z-10 shrink-0",children:(0,n.jsxs)("div",{className:"flex items-center gap-1 overflow-x-auto scrollbar-none py-1 flex-1 pr-4",children:[i.map(e=>{let t=s.find(t=>t.id===e);return t?(0,n.jsxs)("div",{onClick:()=>p(e),className:(0,ex.cn)("flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs cursor-pointer transition-all shrink-0 group border",l===e?"bg-card text-foreground border-border font-semibold":"text-muted-foreground hover:text-foreground hover:bg-muted border-transparent"),children:[(0,n.jsx)("span",{className:"text-sm select-none shrink-0",children:t.icon||"📝"}),(0,n.jsx)("span",{className:"truncate max-w-[120px]",children:t.title||j("untitled")}),(0,n.jsx)("button",{onClick:t=>B(t,e),className:"p-0.5 rounded-md hover:bg-muted text-muted-foreground hover:text-foreground transition-colors ml-1 opacity-60 group-hover:opacity-100 cursor-pointer",children:(0,n.jsx)(eR.X,{className:"w-3 h-3"})})]},e):null}),(0,n.jsx)("button",{onClick:()=>H(null),className:"p-1.5 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors ml-1 cursor-pointer shrink-0",children:(0,n.jsx)(eO.Plus,{className:"w-3.5 h-3.5"})})]})}),(0,n.jsxs)("div",{className:"h-14 px-6 border-b border-border flex items-center justify-between bg-background/80 backdrop-blur-md sticky top-0 z-10 select-none shrink-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("button",{onClick:()=>t.current?.isCollapsed()?t.current?.expand():t.current?.collapse(),className:"p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors mr-1 cursor-pointer",children:(0,n.jsx)(e6.default,{className:"w-4 h-4"})}),$?(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground font-medium",children:[(0,n.jsx)("span",{children:j("knowledgeBase")}),(0,n.jsx)(eQ.ChevronRight,{className:"w-3.5 h-3.5 text-muted-foreground/50"}),$.parentId&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{onClick:()=>$.parentId&&p($.parentId),className:"hover:text-foreground hover:underline cursor-pointer",children:s.find(e=>e.id===$.parentId)?.title||j("parentDir")}),(0,n.jsx)(eQ.ChevronRight,{className:"w-3.5 h-3.5 text-muted-foreground/50"})]}),(0,n.jsx)("span",{className:"text-foreground font-semibold truncate max-w-[180px]",children:$.title||j("currentDoc")})]}):(0,n.jsx)("div",{className:"text-xs text-muted-foreground font-medium",children:j("knowledgeTree")})]}),$&&(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsxs)("div",{className:"flex bg-card border border-border p-1 rounded-xl shrink-0",children:[(0,n.jsxs)("button",{onClick:()=>F("notion"),className:(0,ex.cn)("flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer","notion"===d?"bg-muted text-foreground font-bold":"text-muted-foreground hover:text-foreground"),children:[(0,n.jsx)(e8.Layers,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{children:j("notionEditor")})]}),(0,n.jsxs)("button",{onClick:()=>F("markdown"),className:(0,ex.cn)("flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer","markdown"===d?"bg-muted text-foreground font-bold":"text-muted-foreground hover:text-foreground"),children:[(0,n.jsx)(e9.default,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{children:j("markdownEditor")})]})]}),(0,n.jsx)("div",{className:"w-[1px] h-5 bg-border"}),(0,n.jsx)("button",{onClick:()=>S(!k),title:k?j("closeToc"):j("openToc"),className:(0,ex.cn)("w-9 h-9 rounded-xl border border-border bg-card transition-all cursor-pointer flex items-center justify-center shrink-0",k?"text-foreground border-muted-foreground/40":"text-muted-foreground hover:text-foreground hover:border-muted-foreground/40"),children:(0,n.jsx)(to,{className:"w-4 h-4"})}),(0,n.jsx)("div",{className:"w-[1px] h-5 bg-border"}),(0,n.jsxs)(eY.DropdownMenu,{children:[(0,n.jsx)(eY.DropdownMenuTrigger,{className:"w-9 h-9 rounded-xl border border-border hover:border-muted-foreground/40 bg-card text-muted-foreground hover:text-foreground transition-all cursor-pointer flex items-center justify-center shrink-0",children:(0,n.jsx)(tt.MoreHorizontal,{className:"w-4 h-4"})}),(0,n.jsxs)(eY.DropdownMenuContent,{align:"end",className:"w-56",children:[(0,n.jsx)(eY.DropdownMenuGroup,{children:(0,n.jsx)(eY.DropdownMenuLabel,{className:"text-[10px] font-bold uppercase tracking-wider",children:j("typographyAndFont")})}),(0,n.jsx)(eY.DropdownMenuSeparator,{}),W.map(({key:e,label:t,fontClass:r})=>(0,n.jsxs)(eY.DropdownMenuItem,{onClick:()=>b(e),className:(0,ex.cn)("flex items-center justify-between text-xs",c===e&&"font-semibold"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:(0,ex.cn)("text-xs bg-muted text-foreground px-1.5 py-0.5 rounded border border-border font-medium",r),children:"Ag"}),(0,n.jsx)("span",{className:r,children:t})]}),c===e&&(0,n.jsx)(eG.Check,{className:"w-3.5 h-3.5"})]},e)),(0,n.jsx)(eY.DropdownMenuSeparator,{}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:V,className:"text-xs",children:[(0,n.jsx)(ts,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{children:j("viewHistory")})]}),(0,n.jsx)(eY.DropdownMenuSeparator,{}),(0,n.jsx)(eY.DropdownMenuGroup,{children:(0,n.jsx)(eY.DropdownMenuLabel,{className:"text-[10px] font-bold uppercase tracking-wider",children:j("pageWidth")})}),(0,n.jsx)(eY.DropdownMenuSeparator,{}),(0,n.jsxs)(eY.DropdownMenuItem,{onClick:()=>v(!u),className:(0,ex.cn)("flex items-center justify-between text-xs",u&&"font-semibold"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[u?(0,n.jsx)(e7,{className:"w-3.5 h-3.5"}):(0,n.jsx)(te.Maximize2,{className:"w-3.5 h-3.5"}),(0,n.jsx)("span",{children:u?j("restoreWidth"):j("fullWidth")})]}),u&&(0,n.jsx)(eG.Check,{className:"w-3.5 h-3.5"})]})]})]})]})]}),$?(0,n.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col",children:[(0,n.jsx)(tF,{headings:O,open:k}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto w-full flex flex-col","data-editor-content":!0,children:[(0,n.jsx)("div",{className:"w-full h-44 shrink-0 relative group border-b border-border",style:{background:$.cover||"linear-gradient(to right, #0284c7, #06b6d4)"},children:(0,n.jsxs)("div",{className:"absolute bottom-3 right-4 opacity-0 group-hover:opacity-100 transition-opacity bg-card/90 backdrop-blur-md rounded-xl p-1.5 border border-border flex items-center gap-1 shadow-xl",children:[(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground font-bold px-2",children:j("cover")}),tc.map((t,r)=>(0,n.jsx)("button",{onClick:()=>{h(e,$.id,t),o()},style:{background:t},className:(0,ex.cn)("w-4 h-4 rounded-full border hover:scale-125 transition-transform cursor-pointer",$.cover===t?"border-white scale-110":"border-transparent")},r))]})}),(0,n.jsxs)("div",{className:(0,ex.cn)("flex-1 mx-auto px-6 md:px-12 py-8 flex flex-col w-full",u?"max-w-none":"max-w-4xl"),children:[(0,n.jsxs)("div",{className:"mb-6 relative group select-text",children:[(0,n.jsx)("span",{className:"text-4xl absolute -top-16 left-0 select-none bg-card p-2.5 rounded-2xl shadow-xl border border-border",children:$.icon||"📝"}),(0,n.jsxs)("div",{className:"text-[11px] text-muted-foreground font-semibold mb-2 flex items-center gap-1 mt-4",children:[(0,n.jsx)(tn.Sparkles,{className:"w-3.5 h-3.5 text-muted-foreground/60"}),(0,n.jsx)("span",{children:j("autoSaveEnabled")})]}),(0,n.jsx)("input",{type:"text",value:$.title,onChange:t=>{f(e,$.id,t.target.value),o()},placeholder:j("untitled"),className:(0,ex.cn)("w-full text-3xl md:text-4xl font-extrabold text-foreground border-none outline-none focus:ring-0 p-0 tracking-tight bg-transparent placeholder:text-muted-foreground/40 select-text","serif"===c&&"font-serif","mono"===c&&"font-mono")})]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 select-text",children:"notion"===d?(0,n.jsx)(tI,{content:$.content,onChange:t=>{x(e,$.id,t),o()},theme:c}):(0,n.jsx)(tH,{contentMarkdown:$.content,onChange:t=>{x(e,$.id,t),o()},theme:c})}),(0,n.jsxs)("div",{className:"sticky bottom-0 bg-background border-t border-border py-3 px-6 md:px-12 flex flex-col sm:flex-row items-center justify-between text-[11px] text-muted-foreground font-medium gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-5",children:[(0,n.jsxs)("span",{children:[j("wordCount"),(0,n.jsx)("strong",{className:"text-foreground",children:A})]}),(0,n.jsxs)("span",{className:"hidden sm:inline",children:[j("createdAt"),new Date($.createdAt).toLocaleDateString()]}),(0,n.jsxs)("span",{children:[j("modifiedAt"),new Date($.updatedAt).toLocaleTimeString()]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-foreground bg-card border border-border px-3 py-1 rounded-full font-semibold shrink-0",children:[(0,n.jsx)(ta,{className:"w-3 h-3 text-emerald-500 animate-pulse"}),(0,n.jsx)("span",{children:"SAVED"})]})]})]})]})]}):(0,n.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center p-8 bg-background select-none text-center",children:[(0,n.jsx)("div",{className:"w-20 h-20 rounded-3xl bg-gradient-to-tr from-muted to-muted/80 border border-border flex items-center justify-center text-4xl mb-6 shadow-md shadow-black/10 text-muted-foreground animate-bounce",children:"📁"}),(0,n.jsx)("h2",{className:"text-xl font-bold text-foreground tracking-tight",children:j("knowledgeEditor")}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-1.5 max-w-[340px] leading-relaxed",children:j("emptyHint")}),(0,n.jsxs)("div",{className:"mt-8 bg-card border border-border rounded-2xl p-4 shadow-xl max-w-sm w-full",children:[(0,n.jsx)("div",{className:"text-[10px] font-bold text-muted-foreground mb-2.5 uppercase tracking-wider text-left",children:j("shortcuts")}),(0,n.jsxs)("div",{className:"space-y-1.5 font-medium text-xs text-muted-foreground",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between text-[11px]",children:[(0,n.jsx)("span",{children:j("globalSearch")}),(0,n.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,n.jsx)("kbd",{className:"bg-background border border-border rounded px-1.5 py-0.2 text-[9px] font-mono text-muted-foreground",children:"Ctrl"}),"+",(0,n.jsx)("kbd",{className:"bg-background border border-border rounded px-1.5 py-0.2 text-[9px] font-mono text-muted-foreground",children:"K"})]})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-[11px]",children:[(0,n.jsx)("span",{children:j("editorModeSwitch")}),(0,n.jsx)("span",{className:"text-muted-foreground/60",children:j("topRightTab")})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-[11px]",children:[(0,n.jsx)("span",{children:j("nestedArchive")}),(0,n.jsx)("span",{className:"text-muted-foreground/60",children:j("sidebarDrag")})]})]})]}),(0,n.jsxs)("button",{onClick:()=>H(null),className:"mt-6 px-5 h-10 rounded-xl bg-muted hover:bg-muted/80 border border-border text-foreground font-semibold text-xs cursor-pointer flex items-center gap-2",children:[(0,n.jsx)(eO.Plus,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:j("quickCreateFirst")})]})]}),(0,n.jsx)(eM.Dialog,{open:C,onOpenChange:z,children:(0,n.jsxs)(eM.DialogContent,{className:"!flex !w-[min(1080px,calc(100vw-2rem))] !max-w-[min(1080px,calc(100vw-2rem))] h-[min(760px,calc(100vh-4rem))] flex-col gap-0 overflow-hidden p-0",children:[(0,n.jsx)(eM.DialogHeader,{className:"shrink-0 border-b border-border px-5 py-4",children:(0,n.jsx)(eM.DialogTitle,{className:"text-sm",children:j("historyVersions")})}),(0,n.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,n.jsx)("div",{className:"w-64 shrink-0 border-r border-border overflow-y-auto bg-muted/20",children:I?(0,n.jsx)("div",{className:"p-4 text-xs text-muted-foreground",children:N("loading")}):P?(0,n.jsx)("div",{className:"p-4 text-xs text-destructive",children:P}):0===M.length?(0,n.jsx)("div",{className:"p-4 text-xs text-muted-foreground",children:j("noHistory")}):M.map(e=>(0,n.jsxs)("button",{onClick:()=>E(e.id),className:(0,ex.cn)("w-full border-b border-border px-4 py-3 text-left text-xs transition-colors",q?.id===e.id?"bg-background text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[(0,n.jsx)("div",{className:"truncate font-semibold",children:e.title||$?.title||j("untitled")}),(0,n.jsx)("div",{className:"mt-1 text-[11px]",children:new Date(e.createdAt).toLocaleString()}),(0,n.jsxs)("div",{className:"mt-1 text-[10px] font-mono",children:["-",e.patch.deleteText.length," +",e.patch.insertText.length]})]},e.id))}),(0,n.jsx)("div",{className:"min-w-0 flex-1 overflow-y-auto",children:q?(0,n.jsxs)("div",{className:"grid min-h-full grid-rows-2",children:[(0,n.jsx)(tV,{title:"Before",content:q.oldContent,workspaceId:e,tone:"old"}),(0,n.jsx)(tV,{title:"After",content:q.newContent,workspaceId:e,tone:"new"})]}):(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:j("selectVersionDiff")})})]})]})})]})}function tV({title:e,content:t,workspaceId:r,tone:a}){return(0,n.jsxs)("section",{className:"min-h-0 border-b border-border last:border-b-0",children:[(0,n.jsxs)("div",{className:(0,ex.cn)("sticky top-0 z-10 flex items-center justify-between border-b border-border px-4 py-2 text-xs font-semibold","old"===a?"bg-red-500/10 text-red-700 dark:text-red-300":"bg-emerald-500/10 text-emerald-700 dark:text-emerald-300"),children:[(0,n.jsx)("span",{children:e}),(0,n.jsxs)("span",{className:"font-mono text-[10px] opacity-70",children:[t.length," chars"]})]}),(0,n.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none px-5 py-4 text-sm",children:(0,n.jsx)(tu.Markdown,{content:t||"_Empty content_",workspaceId:r})})]})}let tW=(0,eH.default)("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]);var tq=e.i(939760);let tU="floating-panel:";function tG(e,t){try{localStorage.setItem(tU+e,JSON.stringify(t))}catch{}}function tX({id:e,title:t,defaultWidth:r,defaultHeight:o,defaultPosition:s,minWidth:l=280,minHeight:i=200,onClose:d,onMinimize:c,children:u,className:p,zIndex:m=99991,headerActions:x}){let[f,h]=(0,a.useState)(!1),[g,b]=(0,a.useState)(!1),v=(0,a.useRef)(!1),y=(0,a.useRef)({x:s?.x??Math.max(20,(window.innerWidth-r)/2),y:s?.y??Math.max(40,(window.innerHeight-o)/2),w:r,h:o}),[w,j]=(0,a.useState)(()=>(function(e,t){try{let t=localStorage.getItem(tU+e);if(t){let e=JSON.parse(t);if(e.w>0&&e.h>0)return e}}catch{}return t})(e,{x:s?.x??Math.max(20,(window.innerWidth-r)/2),y:s?.y??Math.max(40,(window.innerHeight-o)/2),w:r,h:o})),N=(0,a.useRef)(null),k=(0,a.useRef)(null);(0,a.useEffect)(()=>{y.current=w,h(!0)},[w]),(0,a.useEffect)(()=>{let t=()=>{let t=y.current,r={x:Math.max(0,Math.min(t.x,window.innerWidth-t.w)),y:Math.max(0,Math.min(t.y,window.innerHeight-t.h)),w:Math.min(t.w,window.innerWidth-20),h:Math.min(t.h,window.innerHeight-20)};y.current=r,j(r),tG(e,r)};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[e]),(0,a.useEffect)(()=>{let t=e=>{if(N.current){let t=e.clientX-N.current.mx,r=e.clientY-N.current.my;(Math.abs(t)>2||Math.abs(r)>2)&&(v.current=!0);let{mx:n,my:a,r:o}=N.current,s={...o,x:Math.max(0,Math.min(o.x+e.clientX-n,window.innerWidth-o.w)),y:Math.max(0,Math.min(o.y+e.clientY-a,window.innerHeight-o.h))};y.current=s,j(s);return}if(k.current){let{corner:t,mx:r,my:n,r:a}=k.current,o=e.clientX-r,s=e.clientY-n,{x:d,y:c,w:u,h:p}=a;if(t.includes("e"))u=Math.max(l,a.w+o);else{let e=Math.max(l,a.w-o);d=a.x+(a.w-e),u=e}if(t.includes("s"))p=Math.max(i,a.h+s);else{let e=Math.max(i,a.h-s);c=a.y+(a.h-e),p=e}let m={x:Math.max(0,d),y:Math.max(0,c),w:u,h:p};y.current=m,j(m)}},r=()=>{N.current&&(v.current?tG(e,y.current):b(e=>!e)),k.current&&tG(e,y.current),N.current=null,k.current=null};return document.addEventListener("pointermove",t),document.addEventListener("pointerup",r),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r)}},[e,l,i]);let S=(0,a.useCallback)(e=>{e.preventDefault(),v.current=!1,N.current={mx:e.clientX,my:e.clientY,r:{...y.current}}},[]),C=(0,a.useCallback)(e=>t=>{t.preventDefault(),t.stopPropagation(),k.current={corner:e,mx:t.clientX,my:t.clientY,r:{...y.current}}},[]);if(!f)return null;let z={nw:{top:-4,left:-4,cursor:"nwse-resize"},ne:{top:-4,right:-4,cursor:"nesw-resize"},sw:{bottom:-4,left:-4,cursor:"nesw-resize"},se:{bottom:-4,right:-4,cursor:"nwse-resize"}};return(0,n.jsxs)("div",{className:`fixed flex flex-col bg-white dark:bg-zinc-900 border border-gray-200 dark:border-zinc-700 rounded-lg shadow-2xl overflow-hidden ${p??""}`,style:{left:w.x,top:w.y,width:w.w,height:g?void 0:w.h,zIndex:m},children:[(0,n.jsxs)("div",{onPointerDown:S,className:"flex items-center justify-between px-3 py-2 bg-gray-50 dark:bg-zinc-800 border-b border-gray-200 dark:border-zinc-700 cursor-move select-none shrink-0",style:{touchAction:"none"},children:[(0,n.jsx)("span",{className:"text-sm font-medium truncate text-gray-700 dark:text-gray-300",children:t}),(0,n.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[x&&(0,n.jsx)("div",{onPointerDown:e=>e.stopPropagation(),className:"flex items-center",children:x}),c&&(0,n.jsx)("button",{onPointerDown:e=>e.stopPropagation(),onClick:c,className:"p-1 rounded hover:bg-gray-200 dark:hover:bg-zinc-700 transition-colors text-gray-500 dark:text-gray-400 cursor-pointer",title:"最小化为悬浮球",children:(0,n.jsx)(e7,{size:13})}),(0,n.jsx)("button",{onPointerDown:e=>e.stopPropagation(),onClick:d,className:"p-1 rounded hover:bg-gray-200 dark:hover:bg-zinc-700 transition-colors text-gray-500 dark:text-gray-400 cursor-pointer",children:(0,n.jsx)(eR.X,{size:14})})]})]}),!g&&(0,n.jsx)("div",{className:"flex-1 overflow-hidden",children:u}),!g&&["nw","ne","sw","se"].map(e=>(0,n.jsx)("div",{onPointerDown:C(e),className:"absolute",style:{...z[e],width:14,height:14,touchAction:"none",zIndex:10}},e))]})}var t_=e.i(588591),tJ=e.i(996652);function tK({workspaceId:e,onClose:t,onMinimize:r}){let[o,s]=(0,a.useState)([]),[l,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),f=(0,a.useRef)(null);(0,a.useEffect)(()=>{f.current?.scrollTo({top:f.current.scrollHeight,behavior:"smooth"})},[o,d]);let h=(0,a.useCallback)(async()=>{let t=l.trim();if(!t||d)return;let r={id:crypto.randomUUID(),role:"user",content:t};s(e=>[...e,r]),i(""),c(!0);try{let r=await fetch(`/api/workspaces/${e}/database/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:t,history:o.map(({role:e,content:t})=>({role:e,content:t}))})}),n=await r.json(),a=r.ok?n.finalMessage:n.error;s(e=>[...e,{id:crypto.randomUUID(),role:"agent",content:a||"未收到有效回复。"}])}catch(e){s(t=>[...t,{id:crypto.randomUUID(),role:"agent",content:e instanceof Error?e.message:"发送失败。"}])}finally{c(!1)}},[l,o,d,e]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tX,{id:`database-ai-chat:${e}`,title:"数据库会话",defaultWidth:420,defaultHeight:560,defaultPosition:{x:Math.max(24,window.innerWidth-420-24),y:Math.max(24,window.innerHeight-560-88)},minWidth:340,minHeight:420,onClose:t,onMinimize:r,headerActions:(0,n.jsxs)(tJ.Popover,{open:m,onOpenChange:x,children:[(0,n.jsx)(tJ.PopoverTrigger,{render:(0,n.jsx)("button",{className:"p-1 rounded hover:bg-gray-200 dark:hover:bg-zinc-700 transition-colors text-gray-500 dark:text-gray-400 cursor-pointer",title:"设置",children:(0,n.jsx)(tq.Settings,{size:14})})}),(0,n.jsxs)(tJ.PopoverContent,{align:"end",side:"bottom",sideOffset:6,positionerClassName:"z-[100002]",className:"w-36 gap-1 p-1",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer",onClick:()=>{x(!1),p(!0)},children:[(0,n.jsx)(eX,{className:"size-3.5"}),(0,n.jsx)("span",{children:"模型设置"})]}),(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm text-destructive hover:bg-destructive/10 cursor-pointer",onClick:()=>{x(!1),s([])},children:[(0,n.jsx)(eq.Trash2,{className:"size-3.5"}),(0,n.jsx)("span",{children:"清空消息"})]})]})]}),children:(0,n.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,n.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto px-4 py-3",children:[0===o.length&&(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-muted-foreground",children:"暂无消息"}),(0,n.jsxs)("div",{className:"space-y-3",children:[o.map(t=>(0,n.jsx)("div",{className:(0,ex.cn)("flex","user"===t.role?"justify-end":"justify-start"),children:(0,n.jsx)("div",{className:(0,ex.cn)("max-w-[84%] rounded-lg px-3 py-2 text-sm leading-6","user"===t.role?"bg-primary text-primary-foreground":"bg-muted text-foreground"),children:"agent"===t.role?(0,n.jsx)(tu.Markdown,{content:t.content,workspaceId:e}):(0,n.jsx)("div",{className:"whitespace-pre-wrap break-words",children:t.content})})},t.id)),d&&(0,n.jsx)("div",{className:"flex justify-start",children:(0,n.jsx)("div",{className:"rounded-lg bg-muted px-3 py-2 text-sm text-muted-foreground",children:"思考中..."})})]})]}),(0,n.jsx)("div",{className:"border-t p-3",children:(0,n.jsxs)("div",{className:"flex items-end gap-2 rounded-xl border bg-background px-3 py-2",children:[(0,n.jsx)("textarea",{value:l,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),h())},placeholder:"输入消息",className:"min-h-9 max-h-28 flex-1 resize-none bg-transparent py-2 text-sm outline-none placeholder:text-muted-foreground",rows:1}),(0,n.jsx)(eI.Button,{size:"icon",className:"size-9 shrink-0 rounded-full",disabled:!l.trim()||d,onClick:()=>void h(),children:(0,n.jsx)(tW,{className:"size-4"})})]})})]})}),(0,n.jsx)(t_.AgentDialog,{open:u,onOpenChange:p,initialAgentId:"database-agent",presetBasePath:`/api/workspaces/${e}/database/agent-presets`,singleAgent:!0})]})}var tY=e.i(451534);let tQ=(0,eH.default)("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]);function tZ({isOpen:e,onClose:t,nodes:r,onSelectNode:o}){let[s,l]=(0,a.useState)(""),[i,d]=(0,a.useState)(0),c=(0,a.useRef)(null),u=(0,a.useRef)(null);(0,a.useEffect)(()=>{e&&setTimeout(()=>{u.current?.focus(),l("")},50)},[e]);let p=(0,a.useMemo)(()=>{if(!s)return r.filter(e=>!e.isTrash).sort((e,t)=>t.updatedAt-e.updatedAt).slice(0,5);let e=s.toLowerCase().trim();return r.filter(t=>!t.isTrash&&((t.title||"").toLowerCase().includes(e)||(t.content||"").toLowerCase().includes(e)))},[s,r]);return((0,a.useEffect)(()=>{let r=r=>{e&&("Escape"===r.key?(r.preventDefault(),t()):"ArrowDown"===r.key?(r.preventDefault(),d(e=>(e+1)%Math.max(1,p.length))):"ArrowUp"===r.key?(r.preventDefault(),d(e=>(e-1+p.length)%Math.max(1,p.length))):"Enter"===r.key&&p[i]&&(r.preventDefault(),o(p[i].id),t()))};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[e,p,i,t,o]),(0,a.useEffect)(()=>{let r=e=>{c.current&&!c.current.contains(e.target)&&t()};return e&&document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[e,t]),e)?(0,n.jsx)("div",{className:"fixed inset-0 bg-background/80 backdrop-blur-xs flex items-start justify-center pt-[15vh] px-4 z-50",children:(0,n.jsxs)("div",{ref:c,className:"w-full max-w-2xl bg-card rounded-2xl shadow-2xl border border-border flex flex-col overflow-hidden max-h-[500px]",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3.5 border-b border-border shrink-0",children:[(0,n.jsx)(eB.Search,{className:"w-5 h-5 text-muted-foreground"}),(0,n.jsx)("input",{ref:u,type:"text",placeholder:"搜索文档...",value:s,onChange:e=>{l(e.target.value),d(0)},className:"flex-1 bg-transparent text-foreground placeholder:text-muted-foreground text-sm focus:outline-none"}),(0,n.jsx)("button",{onClick:t,className:"p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground cursor-pointer",children:(0,n.jsx)(eR.X,{className:"w-4 h-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto p-2",children:[(0,n.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:s?`匹配结果 (${p.length})`:"最近编辑"}),0===p.length?(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,n.jsx)("span",{className:"text-3xl mb-2",children:"🔍"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"没有找到相关文档"})]}):(0,n.jsx)("div",{className:"space-y-0.5",children:p.map((e,s)=>{let l=(e=>{let t=[],n=e,a=0;for(;n?.parentId&&a<10;){let e=r.find(e=>e.id===n.parentId);if(e)t.unshift(e.title||"未命名"),n=e;else break;a++}return t})(e);return(0,n.jsxs)("button",{onClick:()=>{o(e.id),t()},className:(0,ex.cn)("w-full text-left p-3 rounded-xl flex items-center gap-3.5 transition-all text-sm cursor-pointer",s===i?"bg-accent text-foreground border-l-2 border-foreground":"text-muted-foreground hover:bg-muted"),children:[(0,n.jsx)("div",{className:"text-lg bg-muted p-1.5 rounded-lg shrink-0 border border-border",children:e.icon||"📝"}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("span",{className:"font-medium text-foreground truncate block",children:e.title||"未命名"}),l.length>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground mt-1 truncate",children:[(0,n.jsx)(tY.FolderOpen,{className:"w-3 h-3 text-muted-foreground/60"}),l.map((e,t)=>(0,n.jsxs)(a.default.Fragment,{children:[(0,n.jsx)("span",{children:e}),(0,n.jsx)(eQ.ChevronRight,{className:"w-2.5 h-2.5 mx-0.5 text-muted-foreground/40"})]},t))]})]}),s===i&&(0,n.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground bg-muted border border-border px-2 py-0.5 rounded-md font-mono",children:[(0,n.jsx)(tQ,{className:"w-2.5 h-2.5"}),"Enter"]})]},e.id)})})]})]})}):null}var t0=e.i(357301),t1=e.i(486657),t2=e.i(583705);function t4({isOpen:e,onClose:t,nodes:r,onRestore:o,onDeletePermanent:s}){let[l,i]=(0,a.useState)(""),d=r.filter(e=>e.isTrash),c=d.filter(e=>(e.title||"").toLowerCase().includes(l.toLowerCase()));return e?(0,n.jsx)("div",{className:"fixed inset-0 bg-background/80 backdrop-blur-xs flex items-start justify-center pt-[15vh] px-4 z-50",children:(0,n.jsxs)("div",{className:"w-full max-w-lg bg-card rounded-2xl shadow-2xl border border-border flex flex-col overflow-hidden max-h-[500px]",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border shrink-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(eq.Trash2,{className:"w-5 h-5 text-red-400"}),(0,n.jsx)("h3",{className:"font-semibold text-foreground",children:"回收站"}),(0,n.jsx)("span",{className:"bg-red-950/40 text-red-400 border border-red-900/30 text-[10px] px-1.5 py-0.5 rounded-full font-bold",children:d.length})]}),(0,n.jsx)("button",{onClick:t,className:"p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground cursor-pointer",children:(0,n.jsx)(eR.X,{className:"w-4 h-4"})})]}),d.length>0&&(0,n.jsxs)("div",{className:"px-4 py-2 border-b border-border flex items-center gap-2 bg-muted/40",children:[(0,n.jsx)(eB.Search,{className:"w-3.5 h-3.5 text-muted-foreground"}),(0,n.jsx)("input",{type:"text",placeholder:"搜索回收站...",value:l,onChange:e=>i(e.target.value),className:"flex-1 bg-transparent text-xs text-foreground placeholder:text-muted-foreground focus:outline-none"}),l&&(0,n.jsx)("button",{onClick:()=>i(""),className:"text-[10px] text-muted-foreground hover:text-foreground cursor-pointer",children:"清除"})]}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto p-3",children:0===d.length?(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,n.jsx)("span",{className:"text-3xl mb-1.5",children:"🍃"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"回收站是空的"})]}):0===c.length?(0,n.jsxs)("div",{className:"py-12 text-center text-xs text-muted-foreground italic",children:['未匹配到 "',l,'"']}):(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-amber-500 bg-amber-950/20 py-1.5 px-3 rounded-lg mb-2 border border-amber-900/30",children:[(0,n.jsx)(t2.Info,{className:"w-3.5 h-3.5 shrink-0"}),(0,n.jsx)("span",{children:"永久删除不可逆,子文件也会被清除。"})]}),c.map(e=>(0,n.jsxs)("div",{className:"group hover:bg-muted/40 p-2.5 rounded-xl border border-transparent hover:border-border flex items-center justify-between gap-3 transition-all",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,n.jsx)("span",{className:"text-lg bg-muted border border-border p-1 rounded-md shrink-0",children:e.icon||"📝"}),(0,n.jsx)("span",{className:"text-xs font-medium text-foreground truncate",children:e.title||"未命名"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,n.jsx)("button",{onClick:()=>o(e.id),className:"p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-emerald-400 cursor-pointer",title:"恢复",children:(0,n.jsx)(t0.RotateCcw,{className:"w-4 h-4"})}),(0,n.jsx)("button",{onClick:()=>{confirm(`永久删除 "${e.title}"?`)&&s(e.id)},className:"p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-red-400 cursor-pointer",title:"永久删除",children:(0,n.jsx)(eq.Trash2,{className:"w-4 h-4"})})]})]},e.id))]})}),(0,n.jsxs)("div",{className:"bg-muted border-t border-border px-5 py-3 text-xs text-muted-foreground flex items-center gap-2 shrink-0",children:[(0,n.jsx)(t1.AlertTriangle,{className:"w-4 h-4 text-muted-foreground/60"}),"点击按钮恢复或永久删除"]})]})}):null}e.s(["default",0,function({workspaceId:e}){let{databases:t,activeDatabaseId:r,nodes:o,vectorStats:s,vectorLoading:l,vectorIndexing:i,loading:d,loaded:c,load:u,loadVectorStats:p,bindEmbeddingModel:m,indexVectors:x,restoreNode:f,deleteNode:h,setActiveId:g,createDatabase:b,updateDatabase:v}=ek(),{models:y,providers:w,ensure:j}=(0,eS.useLLMStore)(),N=(0,a.useRef)(null),[k,S]=(0,a.useState)(!1),[C,z]=(0,a.useState)(!1),[M,D]=(0,a.useState)(!1),[L,E]=(0,a.useState)(!1),[I,T]=(0,a.useState)(!1),[P,R]=(0,a.useState)(!1),[$,A]=(0,a.useState)(null);(0,a.useEffect)(()=>{c||u(e)},[c,u,e]),(0,a.useEffect)(()=>{I&&(j(),r&&p(e,r))},[r,j,p,I,e]),(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),S(!0))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let O=(0,a.useCallback)(()=>{D(!0),setTimeout(()=>D(!1),1200)},[]),H=t.find(e=>e.id===r)??t[0]??null,F=(0,a.useCallback)(()=>{A(null),E(!0)},[]),B=(0,a.useCallback)(()=>{A(H),E(!0)},[H]),V=(0,a.useCallback)(async t=>{$?await v(e,$.id,t):await b(e,t)},[b,$,v,e]),W=(0,a.useCallback)(async t=>{H&&await m(e,H.id,t)},[H,m,e]),q=(0,a.useCallback)(async()=>{H&&await x(e,H.id)},[H,x,e]);return d&&!c?(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"加载中..."}):(0,n.jsxs)("div",{className:"w-full h-full bg-background font-sans text-foreground antialiased",children:[(0,n.jsxs)(ef,{orientation:"horizontal",id:"database-panel-group",defaultLayout:function(){try{let e=localStorage.getItem("database-panel-layout");if(!e)return;let t=JSON.parse(e);return"number"==typeof t.sidebar&&"number"==typeof t.main&&t.sidebar>=12&&t.sidebar<=70&&t.main>=30?{sidebar:t.sidebar,main:t.main}:void 0}catch{return}}()??e0,onLayoutChanged:e=>localStorage.setItem("database-panel-layout",JSON.stringify(e)),resizeTargetMinimumSize:{coarse:28,fine:14},className:"h-full overflow-hidden",children:[(0,n.jsx)(eh,{id:"sidebar",panelRef:N,defaultSize:e1(e0.sidebar),minSize:e1(12),maxSize:e1(70),collapsible:!0,collapsedSize:"0%",className:"h-full min-w-0 bg-sidebar border-r border-border flex flex-col",children:(0,n.jsx)(e3,{workspaceId:e,onOpenSearch:()=>S(!0),onOpenTrash:()=>z(!0),onOpenCreateDatabase:F,onOpenEditDatabase:B,onOpenVectorDialog:()=>T(!0),onSave:O})}),(0,n.jsx)(eg,{withHandle:!0,className:"z-20 w-1 hover:bg-ring/60 after:w-4"}),(0,n.jsx)(eh,{id:"main",defaultSize:e1(e0.main),minSize:e1(30),className:"flex flex-col h-full min-w-0 overflow-hidden bg-background relative",children:(0,n.jsx)(tB,{workspaceId:e,sidebarPanelRef:N,showSaveSuccess:M,onSave:O})})]}),(0,n.jsx)(tZ,{isOpen:k,onClose:()=>S(!1),nodes:o,onSelectNode:e=>{g(e),S(!1)}}),(0,n.jsx)(t4,{isOpen:C,onClose:()=>z(!1),nodes:o,onRestore:t=>{f(e,t),O()},onDeletePermanent:t=>{h(e,t),O()}}),(0,n.jsx)(eD,{open:L,database:$,onOpenChange:E,onSave:V}),(0,n.jsx)(eA,{open:I,database:H,models:y,providers:w,stats:s,loading:l,indexing:i,onOpenChange:T,onBind:W,onIndex:q}),(0,n.jsx)(ez.FloatingBall,{lsKey:`database-ai-ball:${e}`,onClick:()=>R(!0),visible:!P,className:"bg-primary text-primary-foreground shadow-lg border border-primary/20",children:(0,n.jsx)(eC.Bot,{className:"size-5"})}),P&&(0,n.jsx)(tK,{workspaceId:e,onClose:()=>R(!1),onMinimize:()=>R(!1)})]})}],565782)},394896,e=>{e.n(e.i(565782))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,444204,e=>{"use strict";let t=(0,e.i(433721).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],444204)},244996,444741,e=>{"use strict";let t=(0,e.i(433721).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",0,t],444741),e.s(["CheckCircle2",0,t],244996)},579820,e=>{"use strict";let t=(0,e.i(433721).default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);e.s(["Layers",0,t],579820)},810051,e=>{"use strict";let t=(0,e.i(433721).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,t],810051)},770138,e=>{"use strict";var t,r=e.i(344180),a=e.i(764556),s=e.i(720247),l=e.i(775712),o=e.i(953700),n=e.i(267624),i=e.i(433721);let d=(0,i.default)("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);var c=e.i(887354),u=e.i(579820),m=e.i(244073),x=e.i(816709),p=e.i(437122);let g=(0,x.create)((e,t)=>({board:null,loading:!1,load:async t=>{e({loading:!0});try{let r=await (0,p.fetchWithAuth)(`/api/workspaces/${t}/kanban`);if(r.ok){let t=await r.json();e({board:t,loading:!1})}}catch{}e({loading:!1})},save:async e=>{let{board:r}=t();if(r)try{await (0,p.fetchWithAuth)(`/api/workspaces/${e}/kanban`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({columns:r.columns,tasks:r.tasks,layoutMode:r.layoutMode,title:r.title})})}catch{}},setBoard:t=>e({board:t}),updateLayoutMode:(r,a)=>{let{board:s}=t();s&&(e({board:{...s,layoutMode:a}}),t().save(r))},updateColumns:(r,a)=>{let{board:s}=t();s&&(e({board:{...s,columns:a}}),t().save(r))},updateTasks:(r,a)=>{let{board:s}=t();s&&(e({board:{...s,tasks:a}}),t().save(r))}}));var h=e.i(67013),b=e.i(137340),f=e.i(810051),v=e.i(650654),k=e.i(249673);let y=(0,i.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),j=(0,i.default)("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]),w=(0,i.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var N=e.i(244996),C=e.i(511800);let S={low:{text:"text-emerald-700 bg-emerald-50 border border-emerald-100",dot:"bg-emerald-500"},medium:{text:"text-amber-700 bg-amber-50 border border-amber-100",dot:"bg-amber-500"},high:{text:"text-rose-700 bg-rose-50 border border-rose-100",dot:"bg-rose-500"}};function z({task:e,onClick:t,isOverlay:a=!1}){let{attributes:s,listeners:o,setNodeRef:n,transform:i,transition:d,isDragging:c}=(0,l.useSortable)({id:e.id,disabled:a}),u=(0,m.useTranslations)("kanban"),x=a?{transform:"rotate(2.5deg) scale(1.04)",cursor:"grabbing"}:{transform:h.CSS.Transform.toString(i),transition:d,opacity:c?.35:1,cursor:c?"grabbing":"pointer"},p=S[e.priority]||S.medium,g={low:u("low"),medium:u("medium"),high:u("high")},b=e=>{try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return e}};return(0,r.jsxs)("div",{ref:n,style:x,onClick:()=>{c||t()},className:`group relative flex flex-col p-4 bg-white dark:bg-neutral-800 rounded-xl border border-stone-200 dark:border-neutral-700 hover:border-stone-400 dark:hover:border-neutral-500 hover:shadow-md transition-all duration-200 ${a?"shadow-2xl border-2 scale-105 rotate-2 z-20":"shadow-xs"}`,...!a?s:{},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-2.5",children:[(0,r.jsxs)("span",{className:`flex items-center gap-1 px-2.5 py-0.5 rounded-md text-[10px] font-bold tracking-wider uppercase ${p.text}`,children:[(0,r.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${p.dot}`}),g[e.priority]]}),!a&&(0,r.jsx)("div",{...o,className:"p-1 text-stone-300 group-hover:text-stone-500 rounded-md hover:bg-stone-50 dark:hover:bg-neutral-700 transition cursor-grab active:cursor-grabbing",onClick:e=>e.stopPropagation(),children:(0,r.jsx)(w,{className:"h-4 w-4"})})]}),(0,r.jsx)("h4",{className:"text-sm font-semibold text-stone-800 dark:text-neutral-100 line-clamp-2 leading-snug mb-1.5",children:e.title}),e.description?(0,r.jsx)("p",{className:"text-xs text-stone-500 dark:text-neutral-400 line-clamp-2 leading-relaxed mb-3",children:e.description}):null,(0,r.jsx)("div",{className:"border-t border-stone-100 dark:border-neutral-700 my-2"}),(0,r.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-stone-400 dark:text-neutral-500 font-medium",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[e.description?(0,r.jsx)(j,{className:"h-3.5 w-3.3 text-stone-300"}):null,"done"===e.columnId?(0,r.jsxs)("span",{className:"flex items-center gap-0.5 text-emerald-600 font-bold",children:[(0,r.jsx)(N.CheckCircle2,{className:"h-3.5 w-3.5 text-emerald-500"}),u("done")]}):null,"archive"===e.columnId?(0,r.jsxs)("span",{className:"flex items-center gap-0.5 text-stone-500 font-bold",children:[(0,r.jsx)(C.AlertCircle,{className:"h-3.5 w-3.5 text-stone-400"}),u("archived")]}):null]}),e.dueDate?(0,r.jsxs)("span",{className:`flex items-center gap-1 px-1.5 py-0.5 rounded-md ${new Date(e.dueDate)<new Date&&"done"!==e.columnId&&"archive"!==e.columnId?"text-rose-600 bg-rose-50 font-bold border border-rose-100":"text-stone-500"}`,children:[(0,r.jsx)(y,{className:"h-3 w-3"}),b(e.dueDate)]}):(0,r.jsx)("span",{className:"text-[10px] text-stone-300",children:b(new Date(e.createdAt).toISOString())})]})]})}let D=[{name:"slate",headerBg:"border-t-stone-500 bg-stone-50 dark:bg-neutral-800 text-stone-700 dark:text-neutral-200"},{name:"sky",headerBg:"border-t-sky-500 bg-sky-50/40 dark:bg-sky-950/30 text-sky-700 dark:text-sky-300"},{name:"emerald",headerBg:"border-t-emerald-500 bg-emerald-50/40 dark:bg-emerald-950/30 text-emerald-700 dark:text-emerald-300"},{name:"amber",headerBg:"border-t-amber-500 bg-amber-50/40 dark:bg-amber-950/30 text-amber-700 dark:text-amber-300"},{name:"rose",headerBg:"border-t-rose-500 bg-rose-50/40 dark:bg-rose-950/30 text-rose-700 dark:text-rose-300"},{name:"purple",headerBg:"border-t-purple-500 bg-purple-50/40 dark:bg-purple-950/30 text-purple-700 dark:text-purple-300"}],T={slate:"bg-stone-400",sky:"bg-sky-400",emerald:"bg-emerald-400",amber:"bg-amber-400",rose:"bg-rose-400",purple:"bg-purple-400"};function I({column:e,tasks:t,layoutMode:s,onCardClick:n,onAddTask:i,onEditColumn:d,onDeleteColumn:c}){let{attributes:u,listeners:x,setNodeRef:p,transform:g,transition:y,isDragging:j,isOver:w}=(0,l.useSortable)({id:e.id}),N={transform:h.CSS.Transform.toString(g),transition:y},[C,S]=(0,a.useState)(!1),[M,L]=(0,a.useState)(!1),B=D.find(t=>t.name===e.color)||D[0],$=t.map(e=>e.id),A=(0,m.useTranslations)("kanban");return(0,r.jsxs)("div",{ref:p,style:N,className:`flex flex-col rounded-2xl border transition-all duration-200 dark:border-neutral-700 ${j?"opacity-30 border-dashed":""} ${w&&!j?"bg-stone-100/60 dark:bg-neutral-700/40 scale-[1.01] shadow-xs":"bg-stone-50/25 dark:bg-neutral-800/50 border-stone-200 dark:border-neutral-700"} ${"horizontal"===s?"w-full md:w-[310px] lg:w-[330px] shrink-0 h-full max-h-[75vh] md:max-h-[80vh]":"w-full"}`,children:[(0,r.jsx)("div",{...u,...x,className:`px-4 py-3.5 border-t-2 rounded-t-2xl border-b border-stone-200/80 dark:border-neutral-700 flex flex-col gap-2.5 relative cursor-grab active:cursor-grabbing select-none ${B.headerBg}`,children:(0,r.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 flex-1 min-w-0",children:[(0,r.jsx)("span",{className:`block h-3 w-3 rounded-full ${T[e.color]||"bg-stone-400"}`}),(0,r.jsxs)("div",{className:"flex items-center gap-2 truncate flex-1 cursor-pointer",onClick:()=>d(e),children:[(0,r.jsx)("h3",{className:"text-sm font-bold truncate",children:e.title}),(0,r.jsx)("span",{className:"bg-stone-200/70 dark:bg-neutral-600 text-stone-700 dark:text-neutral-300 text-[10px] font-bold px-2 py-0.5 rounded-full min-w-[18px] text-center",children:t.length})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{onClick:()=>d(e),className:"p-1 text-stone-400 hover:text-stone-700 dark:hover:text-neutral-200 hover:bg-stone-100 dark:hover:bg-neutral-700 rounded-md transition cursor-pointer",children:(0,r.jsx)(f.Edit2,{className:"h-3.5 w-3.5"})}),"vertical"===s&&(0,r.jsx)("button",{onClick:()=>S(!C),className:"p-1 text-stone-400 hover:text-stone-700 dark:hover:text-neutral-200 hover:bg-stone-100 dark:hover:bg-neutral-700 rounded-md transition cursor-pointer",children:C?(0,r.jsx)(v.ChevronDown,{className:"h-4 w-4"}):(0,r.jsx)(k.ChevronUp,{className:"h-4 w-4"})}),M?(0,r.jsxs)("div",{className:"flex items-center gap-1 bg-stone-100 dark:bg-neutral-700 p-0.5 border border-stone-200 dark:border-neutral-600 rounded-md",children:[(0,r.jsx)("button",{onClick:()=>{c(e.id),L(!1)},className:"px-1.5 py-0.5 bg-rose-600 hover:bg-rose-700 text-white font-bold text-[9px] rounded transition cursor-pointer",children:A("confirm")}),(0,r.jsx)("button",{onClick:()=>L(!1),className:"px-1 py-0.5 bg-white dark:bg-neutral-600 border border-stone-200 dark:border-neutral-500 text-stone-600 dark:text-neutral-300 text-[9px] rounded transition cursor-pointer",children:A("no")})]}):(0,r.jsx)("button",{onClick:()=>L(!0),className:"p-1 text-stone-400 hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 rounded-md transition cursor-pointer",children:(0,r.jsx)(b.Trash2,{className:"h-3.5 w-3.5"})})]})]})}),(!C||"horizontal"===s)&&(0,r.jsxs)("div",{className:`p-3.5 flex-1 flex flex-col gap-3 min-h-[140px] select-none ${"horizontal"===s?"overflow-y-auto":""}`,children:[(0,r.jsx)(l.SortableContext,{items:$,strategy:l.verticalListSortingStrategy,children:t.length>0?(0,r.jsx)("div",{className:`grid gap-3 ${"vertical"===s?"grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4":"grid-cols-1"}`,children:t.map(e=>(0,r.jsx)(z,{task:e,onClick:()=>n(e)},e.id))}):(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-6 px-4 border border-dashed border-stone-200 dark:border-neutral-600 rounded-xl text-stone-400",children:[(0,r.jsx)("p",{className:"text-xs font-medium",children:A("emptySection")}),(0,r.jsx)("p",{className:"text-[10px] mt-1",children:A("dropHint")})]})}),(0,r.jsxs)("button",{onClick:()=>i(e.id),className:"w-full flex items-center justify-center gap-1.5 py-2 px-3 mt-1 text-xs font-semibold text-stone-500 dark:text-neutral-400 hover:text-stone-900 dark:hover:text-neutral-100 bg-white dark:bg-neutral-800 border border-stone-200 dark:border-neutral-600 hover:border-stone-400 dark:hover:border-neutral-500 rounded-xl transition cursor-pointer",children:[(0,r.jsx)(o.Plus,{className:"h-4 w-4"}),A("addTask")]})]})]})}var M=e.i(989484),L=e.i(444204),B=e.i(681622),$=e.i(788010),A=e.i(817854),E=e.i(260218),P=e.i(188815),O=e.i(209988);e.i(8890);var R=e.i(29905),H=e.i(535270),F=e.i(139236),G=e.i(969490),K=e.i(267805);let U=a.createContext(void 0);var V=e.i(931709),q=e.i(122702),_=e.i(602453),W=e.i(742665);let J=a.forwardRef(function(e,t){let{className:s,defaultPressed:l=!1,disabled:o=!1,form:n,onPressedChange:i,pressed:d,render:c,type:u,value:m,nativeButton:x=!0,style:p,...g}=e,h=(0,F.useBaseUiId)(m||void 0),b=function(e=!0){let t=a.useContext(U);if(void 0===t&&!e)throw Error((0,K.default)(7));return t}(),f=b?.value??[],v=b?void 0:l,k=(o||b?.disabled)??!1,[y,j]=(0,H.useControlled)({controlled:b?void 0!==h&&f.indexOf(h)>-1:d,default:v,name:"Toggle",state:"pressed"}),w=(0,R.useStableCallback)((e,t)=>{h&&b?.setGroupValue?.(h,e,t),i?.(e,t)}),{getButtonProps:N,buttonRef:C}=(0,V.useButton)({disabled:k,native:x}),S={disabled:k,pressed:y},z=[C,t],D=[{"aria-pressed":y,onClick(e){let t=!y,r=(0,_.createChangeEventDetails)(W.REASONS.none,e.nativeEvent);w(t,r),r.isCanceled||j(t)}},g,N],T=(0,G.useRenderElement)("button",e,{enabled:!b,state:S,ref:z,props:D});return b?(0,r.jsx)(q.CompositeItem,{tag:"button",render:c,className:s,style:p,state:S,refs:z,props:D}):T});var Q=e.i(972308),X=e.i(971109);let Y=((t={}).disabled="data-disabled",t.orientation="data-orientation",t.multiple="data-multiple",t),Z={multiple:e=>e?{[Y.multiple]:""}:null},ee=a.forwardRef(function(e,t){let{defaultValue:s,disabled:l=!1,loopFocus:o=!0,onValueChange:n,orientation:i="horizontal",multiple:d=!1,value:c,className:u,render:m,style:x,...p}=e,g=(0,X.useToolbarRootContext)(!0),h=a.useMemo(()=>{if(void 0===c)return s??[]},[c,s]),b=a.useMemo(()=>void 0!==c||void 0!==s,[c,s]),f=(g?.disabled??!1)||l,[v,k]=(0,H.useControlled)({controlled:c,default:h,name:"ToggleGroup",state:"value"}),y=(0,R.useStableCallback)((e,t,r)=>{let a;if(d?(a=v.slice(),t?a.push(e):a.splice(v.indexOf(e),1)):a=t?[e]:[],Array.isArray(a)){if(n?.(a,r),r.isCanceled)return;k(a)}}),j={disabled:f,multiple:d,orientation:i},w=a.useMemo(()=>({disabled:f,orientation:i,setGroupValue:y,value:v,isValueInitialized:b}),[f,i,y,v,b]),N={role:"group"},C=(0,G.useRenderElement)("div",e,{enabled:!!g,state:j,ref:t,props:[N,p],stateAttributesMapping:Z});return(0,r.jsx)(U.Provider,{value:w,children:g?C:(0,r.jsx)(Q.CompositeRoot,{render:m,className:u,style:x,state:j,refs:[t],props:[N,p],stateAttributesMapping:Z,loopFocus:o,enableHomeAndEndKeys:!0,orientation:i})})});var et=e.i(465458);let er=(0,e.i(294237).cva)("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent hover:bg-muted"},size:{default:"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",sm:"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"}},defaultVariants:{variant:"default",size:"default"}}),ea=a.createContext({size:"default",variant:"default",spacing:2,orientation:"horizontal"});function es({className:e,variant:t,size:a,spacing:s=2,orientation:l="horizontal",children:o,...n}){return(0,r.jsx)(ee,{"data-slot":"toggle-group","data-variant":t,"data-size":a,"data-spacing":s,"data-orientation":l,style:{"--gap":s},className:(0,et.cn)("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch",e),...n,children:(0,r.jsx)(ea.Provider,{value:{variant:t,size:a,spacing:s,orientation:l},children:o})})}function el({className:e,children:t,variant:s="default",size:l="default",...o}){let n=a.useContext(ea);return(0,r.jsx)(J,{"data-slot":"toggle-group-item","data-variant":n.variant||s,"data-size":n.size||l,"data-spacing":n.spacing,className:(0,et.cn)("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",er({variant:n.variant||s,size:n.size||l}),e),...o,children:t})}let eo={low:{bg:"bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-100",activeBg:"!bg-emerald-600 !text-white !border-emerald-600",dot:"bg-emerald-500"},medium:{bg:"bg-amber-50 text-amber-700 border-amber-200 hover:bg-amber-100",activeBg:"!bg-amber-500 !text-white !border-amber-500",dot:"bg-amber-500"},high:{bg:"bg-rose-50 text-rose-700 border-rose-200 hover:bg-rose-100",activeBg:"!bg-rose-600 !text-white !border-rose-600",dot:"bg-rose-500"}};function en({task:e,columns:t,isOpen:s,onClose:l,onSave:o,onDelete:i}){let[d,c]=(0,a.useState)(""),[u,x]=(0,a.useState)(""),[p,g]=(0,a.useState)("medium"),[h,f]=(0,a.useState)(""),[v,k]=(0,a.useState)(""),[j,w]=(0,a.useState)(!1),N=(0,m.useTranslations)("kanban"),S=(0,m.useTranslations)("common");if((0,a.useEffect)(()=>{e&&(c(e.title),x(e.description),g(e.priority),f(e.columnId),k(e.dueDate||""),w(!1))},[e,s]),!s||!e)return null;let z=t=>{t.preventDefault(),d.trim()&&(o({...e,title:d.trim(),description:u.trim(),priority:p,columnId:h,dueDate:v||void 0}),l())},D={low:N("low"),medium:N("medium"),high:N("high")};return(0,r.jsx)(O.Dialog,{open:s,onOpenChange:e=>{e||l()},children:(0,r.jsxs)(O.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden",children:[(0,r.jsx)(O.DialogHeader,{className:"px-6 py-4 border-b",children:(0,r.jsxs)(O.DialogTitle,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider flex items-center gap-1.5",children:[(0,r.jsx)(M.FileText,{className:"h-3.5 w-3.5"}),N("taskDetails")]})}),(0,r.jsxs)("form",{onSubmit:z,className:"px-6 py-5 space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(M.FileText,{className:"h-3.5 w-3.5"}),N("title")]}),(0,r.jsx)(B.Input,{type:"text",required:!0,placeholder:N("titlePlaceholder"),value:d,onChange:e=>c(e.target.value),className:"h-9 text-sm font-medium"})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(C.AlertCircle,{className:"h-3.5 w-3.5"}),N("descriptionLabel")]}),(0,r.jsx)($.Textarea,{rows:4,placeholder:N("descriptionPlaceholder"),value:u,onChange:e=>x(e.target.value)})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(n.LayoutGrid,{className:"h-3.5 w-3.5"}),N("sectionLabel")]}),(0,r.jsx)(P.SearchSelect,{value:h,onChange:f,options:t.map(e=>({value:e.id,label:e.title})),placeholder:N("selectSection"),allowCustom:!1})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(y,{className:"h-3.5 w-3.5"}),N("dueDate")]}),(0,r.jsx)(B.Input,{type:"date",value:v,onChange:e=>k(e.target.value),className:"h-8"})]})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(L.Clock,{className:"h-3.5 w-3.5"}),N("priority")]}),(0,r.jsx)(es,{variant:"outline",value:[p],onValueChange:e=>{e.length&&g(e[e.length-1])},className:"grid grid-cols-3 w-full",children:["low","medium","high"].map(e=>{let t=eo[e],a=p===e;return(0,r.jsxs)(el,{value:e,"aria-label":`Priority ${e}`,className:`flex items-center justify-center gap-1.5 text-xs font-semibold ${a?t.activeBg+" !border":t.bg}`,children:[(0,r.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${a?"bg-white":t.dot}`}),D[e]]},e)})})]})]}),(0,r.jsxs)(O.DialogFooter,{className:"!-mx-0 !-mb-0 px-6 py-4 border-t flex-row justify-between sm:justify-between",children:[j?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-rose-600 animate-pulse",children:N("deleteConfirm")}),(0,r.jsx)(E.Button,{size:"xs",variant:"destructive",onClick:()=>{i(e.id),l()},children:N("yes")}),(0,r.jsx)(E.Button,{size:"xs",variant:"outline",onClick:()=>w(!1),children:S("cancel")})]}):(0,r.jsxs)(E.Button,{size:"sm",variant:"destructive",onClick:()=>w(!0),children:[(0,r.jsx)(b.Trash2,{className:"h-4 w-4"}),S("delete")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,r.jsx)(E.Button,{size:"sm",variant:"outline",onClick:l,children:S("cancel")}),(0,r.jsx)(E.Button,{size:"sm",onClick:z,disabled:!d.trim(),children:S("save")})]})]})]})})}var ei=e.i(415360);let ed={sky:"bg-sky-400",amber:"bg-amber-400",emerald:"bg-emerald-400",rose:"bg-rose-400",purple:"bg-purple-400",slate:"bg-stone-400"};function ec({isOpen:e,onClose:t,onCreate:s,onEdit:l,editingColumn:o}){let[n,i]=(0,a.useState)(""),[c,u]=(0,a.useState)("sky"),x=(0,m.useTranslations)("kanban"),p=(0,m.useTranslations)("common");if((0,a.useEffect)(()=>{e&&(o?(i(o.title),u(o.color)):(i(""),u("sky")))},[e,o]),!e)return null;let g=e=>{e.preventDefault(),n.trim()&&(o&&l?l(o.id,n.trim(),c):s(n.trim(),c),t())};return(0,r.jsx)(O.Dialog,{open:e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(O.DialogContent,{className:"sm:max-w-md p-0 gap-0 overflow-hidden",children:[(0,r.jsx)(O.DialogHeader,{className:"px-6 py-4 border-b",children:(0,r.jsx)(O.DialogTitle,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:x(o?"editSection":"newSection")})}),(0,r.jsxs)("form",{onSubmit:g,className:"px-6 py-5 space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(d,{className:"h-3.5 w-3.5"}),x("sectionName")]}),(0,r.jsx)(B.Input,{type:"text",required:!0,autoFocus:!0,placeholder:x("sectionNamePlaceholder"),value:n,onChange:e=>i(e.target.value),maxLength:25,className:"h-9 text-sm font-medium"})]}),(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsxs)(A.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(ei.Sparkles,{className:"h-3.5 w-3.5"}),x("theme")]}),(0,r.jsx)("div",{className:"flex items-center gap-3 py-1",children:["sky","amber","emerald","rose","purple","slate"].map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>u(e),className:`h-7 w-7 rounded-full ${ed[e]} hover:scale-115 active:scale-95 transition-all duration-150 cursor-pointer ${c===e?"ring-2 ring-stone-800 dark:ring-neutral-100 ring-offset-2":"opacity-85 hover:opacity-100"}`},e))})]})]}),(0,r.jsxs)(O.DialogFooter,{className:"!-mx-0 !-mb-0 px-6 py-4 border-t flex-row justify-end sm:justify-end",children:[(0,r.jsx)(E.Button,{size:"sm",variant:"outline",onClick:t,children:p("cancel")}),(0,r.jsx)(E.Button,{size:"sm",onClick:g,disabled:!n.trim(),children:p(o?"save":"create")})]})]})})}e.s(["default",0,function({workspaceId:e}){let{board:t,load:i,updateLayoutMode:x,updateColumns:p,updateTasks:h,setBoard:b}=g(),[f,v]=(0,a.useState)(""),[k,y]=(0,a.useState)("all"),[j,w]=(0,a.useState)(null),[N,C]=(0,a.useState)(!1),[S,D]=(0,a.useState)(null),[T,M]=(0,a.useState)(null),[L,B]=(0,a.useState)(!1),[$,A]=(0,a.useState)(null),E=(0,m.useTranslations)("kanban"),P=(0,m.useTranslations)("common");(0,a.useEffect)(()=>{i(e)},[e,i]);let O=t?.columns??[],R=t?.tasks??[],H=t?.layoutMode??"horizontal",F=(0,s.useSensors)((0,s.useSensor)(s.PointerSensor,{activationConstraint:{distance:8}}),(0,s.useSensor)(s.TouchSensor,{activationConstraint:{delay:250,tolerance:6}}),(0,s.useSensor)(s.KeyboardSensor,{coordinateGetter:l.sortableKeyboardCoordinates})),G=R.filter(e=>{let t=e.title.toLowerCase().includes(f.toLowerCase())||e.description.toLowerCase().includes(f.toLowerCase()),r="all"===k||e.priority===k;return t&&r}),K=(0,a.useCallback)(({active:e})=>{let t=R.find(t=>t.id===e.id);if(t)D(t);else{let t=O.find(t=>t.id===e.id);t&&M(t)}},[R,O]),U=(0,a.useCallback)(({active:t,over:r})=>{if(!r)return;let a=t.id.toString(),s=r.id.toString();if(a===s)return;if(O.some(e=>e.id===a)){let t=R.find(e=>e.id===s),r=t?t.columnId:s,o=O.findIndex(e=>e.id===a),n=O.findIndex(e=>e.id===r);-1!==o&&-1!==n&&o!==n&&p(e,(0,l.arrayMove)(O,o,n));return}let o=R.find(e=>e.id===a);if(!o)return;let n=O.some(e=>e.id===s)?s:R.find(e=>e.id===s)?.columnId;n&&o.columnId!==n&&h(e,R.map(e=>e.id===a?{...e,columnId:n}:e))},[O,R,e,p,h]),V=(0,a.useCallback)(({active:t,over:r})=>{if(D(null),M(null),!r)return;let a=t.id.toString(),s=r.id.toString();if(O.some(e=>e.id===a)){let t=R.find(e=>e.id===s),r=t?t.columnId:s,o=O.findIndex(e=>e.id===a),n=O.findIndex(e=>e.id===r);-1!==o&&-1!==n&&o!==n&&p(e,(0,l.arrayMove)(O,o,n));return}if(!R.find(e=>e.id===a))return;let o=O.some(e=>e.id===s)?s:R.find(e=>e.id===s)?.columnId;if(!o)return;let n=R.findIndex(e=>e.id===a),i=R.findIndex(e=>e.id===s),d=R.map(e=>e.id===a?{...e,columnId:o}:e);-1!==i?h(e,(0,l.arrayMove)(d,n,i)):h(e,d)},[O,R,e,p,h]),q=e=>{w({id:`task-${Date.now()}`,title:E("newTask"),description:"",priority:"medium",columnId:e,order:R.filter(t=>t.columnId===e).length,createdAt:Date.now()}),C(!0)},_=t=>{p(e,O.filter(e=>e.id!==t)),h(e,R.filter(e=>e.columnId!==t))};if(!t)return(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:P("loading")});let W={all:E("priorityAll"),high:E("priorityHigh"),medium:E("priorityMedium"),low:E("priorityLow")};return(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"border-b border-stone-200 dark:border-neutral-700 px-4 py-2.5 flex flex-wrap items-center gap-2",children:[(0,r.jsxs)("div",{className:"relative flex-1 min-w-[150px] max-w-xs",children:[(0,r.jsx)(c.Search,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-stone-400"}),(0,r.jsx)("input",{type:"text",placeholder:E("searchPlaceholder"),value:f,onChange:e=>v(e.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-stone-50 dark:bg-neutral-800 border border-stone-200 dark:border-neutral-600 rounded-lg text-xs font-medium focus:outline-none focus:ring-2 focus:ring-stone-500/10 transition"})]}),(0,r.jsx)("div",{className:"flex items-center gap-1 ml-auto",children:["all","high","medium","low"].map(e=>(0,r.jsx)("button",{onClick:()=>y(e),className:`px-2.5 py-1 text-[10px] rounded-full border transition font-medium cursor-pointer ${k===e?"bg-primary text-primary-foreground border-primary":"bg-white dark:bg-neutral-800 dark:border-neutral-600 dark:text-neutral-300 hover:bg-stone-50 text-stone-600 border-stone-200"}`,children:W[e]},e))}),(0,r.jsxs)("button",{onClick:()=>q(O[0]?.id||""),disabled:0===O.length,className:"flex items-center gap-1.5 px-3 py-1.5 bg-primary text-primary-foreground rounded-lg text-xs font-semibold shadow-xs transition cursor-pointer disabled:opacity-50",children:[(0,r.jsx)(o.Plus,{className:"h-3.5 w-3.5"}),E("newCard")]}),(0,r.jsxs)("button",{onClick:()=>B(!0),className:"flex items-center gap-1.5 px-3 py-1.5 bg-white dark:bg-neutral-800 border border-stone-200 dark:border-neutral-600 rounded-lg text-xs font-semibold text-stone-600 dark:text-neutral-300 shadow-xs transition cursor-pointer",children:[(0,r.jsx)(d,{className:"h-3.5 w-3.5"}),E("section")]}),(0,r.jsxs)("button",{onClick:()=>x(e,"horizontal"===H?"vertical":"horizontal"),className:"flex items-center gap-1.5 px-3 py-1.5 bg-white dark:bg-neutral-800 border border-stone-200 dark:border-neutral-600 rounded-lg text-xs font-semibold text-stone-600 dark:text-neutral-300 shadow-xs transition cursor-pointer",children:[(0,r.jsx)(n.LayoutGrid,{className:"h-3.5 w-3.5"}),"horizontal"===H?E("vertical"):E("horizontal")]})]}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden p-4",children:0===O.length?(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-16 border border-dashed border-stone-200 dark:border-neutral-600 rounded-3xl",children:[(0,r.jsx)(u.Layers,{className:"h-10 w-10 text-stone-300 mb-3"}),(0,r.jsx)("p",{className:"text-sm font-bold text-stone-500 dark:text-neutral-400",children:E("noSections")}),(0,r.jsx)("button",{onClick:()=>B(!0),className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-xl text-xs font-bold cursor-pointer",children:E("addSection")})]}):(0,r.jsxs)(s.DndContext,{sensors:F,onDragStart:K,onDragOver:U,onDragEnd:V,children:[(0,r.jsxs)("div",{className:`flex-1 h-full ${"horizontal"===H?"flex flex-row overflow-x-auto items-start gap-4 pb-4":"flex flex-col gap-4"}`,children:[(0,r.jsx)(l.SortableContext,{items:O.map(e=>e.id),strategy:"horizontal"===H?l.horizontalListSortingStrategy:l.verticalListSortingStrategy,children:O.map(e=>(0,r.jsx)(I,{column:e,tasks:G.filter(t=>t.columnId===e.id),layoutMode:H,onCardClick:e=>{w(e),C(!0)},onAddTask:q,onEditColumn:e=>{A(e),B(!0)},onDeleteColumn:_},e.id))}),"horizontal"===H&&(0,r.jsxs)("button",{onClick:()=>B(!0),className:"w-[280px] shrink-0 h-[120px] rounded-2xl border-2 border-dashed border-stone-200 dark:border-neutral-600 hover:border-stone-400 dark:hover:border-neutral-400 text-stone-400 hover:text-stone-800 dark:hover:text-neutral-200 flex flex-col items-center justify-center gap-1.5 transition cursor-pointer",children:[(0,r.jsx)(o.Plus,{className:"h-5 w-5"}),(0,r.jsx)("span",{className:"text-xs font-bold",children:E("newSection")})]})]}),(0,r.jsx)(s.DragOverlay,{dropAnimation:{sideEffects:(0,s.defaultDropAnimationSideEffects)({styles:{active:{opacity:"0.4"}}})},children:S?(0,r.jsx)(z,{task:S,onClick:()=>{},isOverlay:!0}):T?(0,r.jsx)("div",{className:"opacity-80 scale-98 pointer-events-none",children:(0,r.jsx)(I,{column:T,tasks:G.filter(e=>e.columnId===T.id),layoutMode:H,onCardClick:()=>{},onAddTask:()=>{},onEditColumn:()=>{},onDeleteColumn:()=>{}})}):null})]})}),(0,r.jsx)(en,{task:j,columns:O,isOpen:N,onClose:()=>{C(!1),w(null)},onSave:t=>{h(e,R.some(e=>e.id===t.id)?R.map(e=>e.id===t.id?t:e):[...R,t])},onDelete:t=>{h(e,R.filter(e=>e.id!==t))}}),(0,r.jsx)(ec,{isOpen:L,onClose:()=>{B(!1),A(null)},onCreate:(t,r)=>{let a={id:`col-${Date.now()}`,title:t,color:r,order:O.length};p(e,[...O,a])},onEdit:(t,r,a)=>{p(e,O.map(e=>e.id===t?{...e,title:r,color:a}:e))},editingColumn:$})]})}],770138)},683223,e=>{e.n(e.i(770138))}]);