@agent-spaces/server 0.3.65 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/agent-runtime.js +8 -0
- package/dist/adapters/codex-function-tool-bridge.js +152 -0
- package/dist/adapters/codex-runtime.js +23 -4
- package/dist/adapters/git.js +25 -3
- package/dist/adapters/hermes-runtime.js +813 -0
- package/dist/adapters/langchain-runtime.js +384 -21
- package/dist/adapters/oh-my-pi-runtime.js +858 -0
- package/dist/adapters/open-agent-sdk-runtime.js +202 -5
- package/dist/adapters/open-agent-sdk-runtime.test.js +35 -0
- package/dist/agents/agent-message-parts.js +52 -2
- package/dist/agents/issue-task-controller.js +71 -2
- package/dist/agents/pull-request-agent.js +115 -0
- package/dist/agents/scheduler-agent.js +1 -1
- package/dist/agents/title-generator-agent.js +120 -0
- package/dist/app.js +61 -4
- package/dist/middleware/auth.js +1 -1
- package/dist/package.json +2 -1
- package/dist/routes/agent-sse.js +70 -6
- package/dist/routes/channel.js +23 -2
- package/dist/routes/chat-run.js +191 -0
- package/dist/routes/chat.js +142 -0
- package/dist/routes/command.js +16 -0
- package/dist/routes/data.js +189 -0
- package/dist/routes/git.js +10 -1
- package/dist/routes/import.js +199 -0
- package/dist/routes/issue.js +17 -5
- package/dist/routes/notification.js +10 -0
- package/dist/routes/plugin.js +69 -0
- package/dist/routes/version.js +95 -0
- package/dist/routes/workflow-hook.js +71 -0
- package/dist/routes/workflow.js +282 -7
- package/dist/routes/workspace.js +13 -4
- package/dist/routes/worktree.js +93 -0
- package/dist/services/agent.js +123 -36
- package/dist/services/ai-text.js +185 -0
- package/dist/services/builtin-tools/index.js +1 -0
- package/dist/services/builtin-tools/workflow-editor-tools.js +509 -0
- package/dist/services/builtin-tools/workflow-exec-tools.js +320 -0
- package/dist/services/chat.js +134 -0
- package/dist/services/command-process-manager.js +16 -0
- package/dist/services/execution-manager.js +1346 -0
- package/dist/services/generated-title.js +59 -0
- package/dist/services/gitignore.js +22 -18
- package/dist/services/interaction-manager.js +114 -0
- package/dist/services/issue-retry.js +25 -0
- package/dist/services/notification-center.js +9 -0
- package/dist/services/output-style.js +8 -1
- package/dist/services/plugin.js +257 -0
- package/dist/services/prompt-template.js +8 -1
- package/dist/services/pty.js +20 -0
- package/dist/services/search.js +16 -6
- package/dist/services/skill.js +2 -0
- package/dist/services/version.js +69 -0
- package/dist/services/workflow-command-runner.js +24 -0
- package/dist/services/workflow-trigger-service.js +137 -0
- package/dist/services/workflow.js +219 -39
- package/dist/services/workspace.js +23 -1
- package/dist/services/worktree.js +207 -0
- package/dist/storage/agent-store.js +8 -0
- package/dist/storage/chat-store.js +151 -0
- package/dist/storage/database-store.js +6 -0
- package/dist/storage/json-store.js +2 -1
- package/dist/storage/kanban-store.js +6 -0
- package/dist/storage/workflow-store.js +386 -22
- package/dist/storage/worktree-store.js +33 -0
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +4 -4
- package/dist/web/__next._full.txt +21 -21
- package/dist/web/__next._head.txt +4 -4
- package/dist/web/__next._index.txt +13 -13
- package/dist/web/__next._tree.txt +2 -2
- package/dist/web/_next/static/chunks/{08x85faoz58i7.js → 0-92u-tiuy40a.js} +4 -4
- package/dist/web/_next/static/chunks/{0db14450oqzhg.js → 0-yizd8osmas2.js} +1 -1
- package/dist/web/_next/static/chunks/0.ln~3mnv8.69.js +1 -0
- package/dist/web/_next/static/chunks/{11cchuwoupmbf.js → 01y3e9pemva7b.js} +10 -10
- package/dist/web/_next/static/chunks/02l~tmzrgny.~.js +1 -0
- package/dist/web/_next/static/chunks/03f1bwuynjdmk.js +1 -0
- package/dist/web/_next/static/chunks/04cb4kc9r2pd1.js +1 -0
- package/dist/web/_next/static/chunks/04de6ha5_e3pp.js +1 -0
- package/dist/web/_next/static/chunks/09he0p79ov1rn.js +1 -0
- package/dist/web/_next/static/chunks/09vpocs4zuc8h.js +1 -0
- package/dist/web/_next/static/chunks/0_o2exgr0e_nh.js +1 -0
- package/dist/web/_next/static/chunks/{0xbaakj0dfc0..js → 0_y9nskc-xt2k.js} +1 -1
- package/dist/web/_next/static/chunks/0clnj-1fi6u8j.js +3 -0
- package/dist/web/_next/static/chunks/0gv40by0zzxs_.js +1 -0
- package/dist/web/_next/static/chunks/0iusr8y88.kjg.js +1 -0
- package/dist/web/_next/static/chunks/{0-a.-hl3wv99k.js → 0j-8418fxvkd1.js} +1 -1
- package/dist/web/_next/static/chunks/0j.wxxyoclma5.js +1 -0
- package/dist/web/_next/static/chunks/{0.6b64sy0g5.3.js → 0jq.16sozqik..js} +1 -1
- package/dist/web/_next/static/chunks/0jw8xdk_fpnp0.css +1 -0
- package/dist/web/_next/static/chunks/0l1lkd-wcotma.js +1 -0
- package/dist/web/_next/static/chunks/{0u6h-hqc_i52e.js → 0ncxf_zr4n839.js} +1 -1
- package/dist/web/_next/static/chunks/0ndo7um~v7vco.js +1 -0
- package/dist/web/_next/static/chunks/0ngk.~kan8wq_.js +1 -0
- package/dist/web/_next/static/chunks/0ppr271hz0xoq.js +1 -0
- package/dist/web/_next/static/chunks/0rt9bofnn6qvn.js +1 -0
- package/dist/web/_next/static/chunks/0t64.9jd00hio.js +3 -0
- package/dist/web/_next/static/chunks/0taui9--5n6-5.js +1 -0
- package/dist/web/_next/static/chunks/0ty39169lh~z3.js +1 -0
- package/dist/web/_next/static/chunks/0v8nof~waedlu.js +1 -0
- package/dist/web/_next/static/chunks/{0-pi.67w.ymsr.js → 0vcfoagnpf.aw.js} +1 -1
- package/dist/web/_next/static/chunks/{0vis~lx0nxgn-.js → 0wwwq.gyyz0vg.js} +3 -3
- package/dist/web/_next/static/chunks/0x5lak8yz7pm7.js +1 -0
- package/dist/web/_next/static/chunks/0xon_.4-o0_zq.js +7 -0
- package/dist/web/_next/static/chunks/0zjnrbt7inime.js +1 -0
- package/dist/web/_next/static/chunks/0zwebpitvpuv1.js +1 -0
- package/dist/web/_next/static/chunks/0~02o4g-o6n~m.js +1 -0
- package/dist/web/_next/static/chunks/{0w7.tb29958zj.js → 0~fjezp.k4qk3.js} +1 -1
- package/dist/web/_next/static/chunks/0~sh93re1-_rp.js +1 -0
- package/dist/web/_next/static/chunks/10_niiq0k6o-p.js +5 -0
- package/dist/web/_next/static/chunks/12tjr0_2ccrtq.js +2 -0
- package/dist/web/_next/static/chunks/12x5.go_x9mfk.js +1 -0
- package/dist/web/_next/static/chunks/{0l2w0qz1ea7ql.js → 12~5dk9i9d16t.js} +2 -2
- package/dist/web/_next/static/chunks/13iye4rv5p31b.js +1 -0
- package/dist/web/_next/static/chunks/{01~quun6sefgl.js → 13~y-b.b9rrw4.js} +1 -1
- package/dist/web/_next/static/chunks/151wzhb5q0lo5.js +1 -0
- package/dist/web/_not-found/__next._full.txt +19 -19
- package/dist/web/_not-found/__next._head.txt +4 -4
- package/dist/web/_not-found/__next._index.txt +13 -13
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/web/_not-found/__next._not-found.txt +3 -3
- package/dist/web/_not-found/__next._tree.txt +2 -2
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +19 -19
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +21 -21
- package/dist/web/login/__next._full.txt +21 -21
- package/dist/web/login/__next._head.txt +4 -4
- package/dist/web/login/__next._index.txt +13 -13
- package/dist/web/login/__next._tree.txt +2 -2
- package/dist/web/login/__next.login.__PAGE__.txt +4 -4
- package/dist/web/login/__next.login.txt +3 -3
- package/dist/web/login.html +1 -1
- package/dist/web/login.txt +21 -21
- package/dist/web/settings/__next._full.txt +23 -23
- package/dist/web/settings/__next._head.txt +4 -4
- package/dist/web/settings/__next._index.txt +13 -13
- package/dist/web/settings/__next._tree.txt +2 -2
- package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
- package/dist/web/settings/__next.settings.txt +5 -5
- package/dist/web/settings/agents/__next._full.txt +23 -23
- package/dist/web/settings/agents/__next._head.txt +4 -4
- package/dist/web/settings/agents/__next._index.txt +13 -13
- package/dist/web/settings/agents/__next._tree.txt +2 -2
- package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
- package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
- package/dist/web/settings/agents/__next.settings.txt +5 -5
- package/dist/web/settings/agents.html +1 -1
- package/dist/web/settings/agents.txt +23 -23
- package/dist/web/settings/mcps/__next._full.txt +23 -23
- package/dist/web/settings/mcps/__next._head.txt +4 -4
- package/dist/web/settings/mcps/__next._index.txt +13 -13
- package/dist/web/settings/mcps/__next._tree.txt +2 -2
- package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
- package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
- package/dist/web/settings/mcps/__next.settings.txt +5 -5
- package/dist/web/settings/mcps.html +1 -1
- package/dist/web/settings/mcps.txt +23 -23
- package/dist/web/settings/models/__next._full.txt +23 -23
- package/dist/web/settings/models/__next._head.txt +4 -4
- package/dist/web/settings/models/__next._index.txt +13 -13
- package/dist/web/settings/models/__next._tree.txt +2 -2
- package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
- package/dist/web/settings/models/__next.settings.models.txt +3 -3
- package/dist/web/settings/models/__next.settings.txt +5 -5
- package/dist/web/settings/models.html +1 -1
- package/dist/web/settings/models.txt +23 -23
- package/dist/web/settings/output-styles/__next._full.txt +23 -23
- package/dist/web/settings/output-styles/__next._head.txt +4 -4
- package/dist/web/settings/output-styles/__next._index.txt +13 -13
- package/dist/web/settings/output-styles/__next._tree.txt +2 -2
- package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +4 -4
- package/dist/web/settings/output-styles/__next.settings.output-styles.txt +3 -3
- package/dist/web/settings/output-styles/__next.settings.txt +5 -5
- package/dist/web/settings/output-styles.html +1 -1
- package/dist/web/settings/output-styles.txt +23 -23
- package/dist/web/settings/prompts/__next._full.txt +23 -23
- package/dist/web/settings/prompts/__next._head.txt +4 -4
- package/dist/web/settings/prompts/__next._index.txt +13 -13
- package/dist/web/settings/prompts/__next._tree.txt +2 -2
- package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
- package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
- package/dist/web/settings/prompts/__next.settings.txt +5 -5
- package/dist/web/settings/prompts.html +1 -1
- package/dist/web/settings/prompts.txt +23 -23
- package/dist/web/settings/providers/__next._full.txt +23 -23
- package/dist/web/settings/providers/__next._head.txt +4 -4
- package/dist/web/settings/providers/__next._index.txt +13 -13
- package/dist/web/settings/providers/__next._tree.txt +2 -2
- package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
- package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
- package/dist/web/settings/providers/__next.settings.txt +5 -5
- package/dist/web/settings/providers.html +1 -1
- package/dist/web/settings/providers.txt +23 -23
- package/dist/web/settings/skills/__next._full.txt +23 -23
- package/dist/web/settings/skills/__next._head.txt +4 -4
- package/dist/web/settings/skills/__next._index.txt +13 -13
- package/dist/web/settings/skills/__next._tree.txt +2 -2
- package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
- package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
- package/dist/web/settings/skills/__next.settings.txt +5 -5
- package/dist/web/settings/skills.html +1 -1
- package/dist/web/settings/skills.txt +23 -23
- package/dist/web/settings/tools/__next._full.txt +23 -23
- package/dist/web/settings/tools/__next._head.txt +4 -4
- package/dist/web/settings/tools/__next._index.txt +13 -13
- package/dist/web/settings/tools/__next._tree.txt +2 -2
- package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +4 -4
- package/dist/web/settings/tools/__next.settings.tools.txt +3 -3
- package/dist/web/settings/tools/__next.settings.txt +5 -5
- package/dist/web/settings/tools.html +1 -1
- package/dist/web/settings/tools.txt +23 -23
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +23 -23
- package/dist/web/workflows/__next._full.txt +22 -22
- package/dist/web/workflows/__next._head.txt +4 -4
- package/dist/web/workflows/__next._index.txt +13 -13
- package/dist/web/workflows/__next._tree.txt +2 -2
- package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
- package/dist/web/workflows/__next.workflows.txt +3 -3
- package/dist/web/workflows.html +1 -1
- package/dist/web/workflows.txt +22 -22
- package/dist/web/workspace/_/__next._full.txt +20 -20
- package/dist/web/workspace/_/__next._head.txt +4 -4
- package/dist/web/workspace/_/__next._index.txt +13 -13
- package/dist/web/workspace/_/__next._tree.txt +2 -2
- package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -3
- package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
- package/dist/web/workspace/_/__next.workspace.txt +3 -3
- package/dist/web/workspace/_.html +1 -1
- package/dist/web/workspace/_.txt +20 -20
- package/dist/web/workspaces/__next._full.txt +21 -21
- package/dist/web/workspaces/__next._head.txt +4 -4
- package/dist/web/workspaces/__next._index.txt +13 -13
- package/dist/web/workspaces/__next._tree.txt +2 -2
- package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
- package/dist/web/workspaces/__next.workspaces.txt +3 -3
- package/dist/web/workspaces.html +1 -1
- package/dist/web/workspaces.txt +21 -21
- package/dist/ws/agent-prompt.js +36 -3
- package/dist/ws/agent-runner.js +30 -18
- package/dist/ws/chat-handler.js +89 -0
- package/dist/ws/connection-manager.js +49 -2
- package/dist/ws/execution-channels.js +88 -0
- package/dist/ws/handler.js +32 -5
- package/dist/ws/message-parts.js +130 -12
- package/dist/ws/terminal-handler.js +26 -0
- package/package.json +13 -1
- package/public/avatars/user.jpg +0 -0
- package/dist/web/_next/static/chunks/0-v_p6j5u3_9l.js +0 -1
- package/dist/web/_next/static/chunks/0.-x29t-8gk0r.js +0 -1
- package/dist/web/_next/static/chunks/0.l5e8~r7_0~p.js +0 -1
- package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +0 -1
- package/dist/web/_next/static/chunks/00-syqzi-6zxr.js +0 -1
- package/dist/web/_next/static/chunks/02j4sr9psucf-.js +0 -1
- package/dist/web/_next/static/chunks/06si8l0doqe8p.js +0 -1
- package/dist/web/_next/static/chunks/08kfx8on9oty~.js +0 -1
- package/dist/web/_next/static/chunks/08ugbvzr20drp.js +0 -2
- package/dist/web/_next/static/chunks/0_cqojbge48kq.js +0 -5
- package/dist/web/_next/static/chunks/0d6~~lv0-6kex.js +0 -3
- package/dist/web/_next/static/chunks/0gdwop9cnpmtu.js +0 -1
- package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +0 -1
- package/dist/web/_next/static/chunks/0kbvoxla7f751.js +0 -1
- package/dist/web/_next/static/chunks/0paaat8y96ayc.js +0 -7
- package/dist/web/_next/static/chunks/0pq318f8xgafg.js +0 -1
- package/dist/web/_next/static/chunks/0t6s8of0qr6nc.js +0 -1
- package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +0 -1
- package/dist/web/_next/static/chunks/0yd.m1afqg.2t.js +0 -3
- package/dist/web/_next/static/chunks/0yhbr8hl09b-5.js +0 -1
- package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +0 -1
- package/dist/web/_next/static/chunks/0~~_ltu6dx_ch.js +0 -1
- package/dist/web/_next/static/chunks/12oxcgyhpaxw~.js +0 -1
- package/dist/web/_next/static/chunks/1452eibz62gs6.css +0 -1
- package/dist/web/_next/static/chunks/16zlreiems5cn.js +0 -1
- package/dist/web/_next/static/chunks/18awqjk9-o5m0.js +0 -1
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_ssgManifest.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-spaces/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"agent-spaces-server": "./dist/app.js"
|
|
@@ -19,14 +19,22 @@
|
|
|
19
19
|
"@codeany/open-agent-sdk": "^0.2.1",
|
|
20
20
|
"@langchain/anthropic": "^1.3.29",
|
|
21
21
|
"@langchain/google-genai": "^2.1.30",
|
|
22
|
+
"@langchain/mcp-adapters": "^1.1.3",
|
|
22
23
|
"@langchain/openai": "^1.4.5",
|
|
23
24
|
"@larksuiteoapi/node-sdk": "^1.62.1",
|
|
25
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
24
26
|
"@openai/codex-sdk": "^0.128.0",
|
|
27
|
+
"adm-zip": "^0.5.14",
|
|
28
|
+
"archiver": "^7.0.0",
|
|
25
29
|
"cors": "^2.8.5",
|
|
30
|
+
"cron-parser": "^5.5.0",
|
|
26
31
|
"dotenv": "^17.4.2",
|
|
32
|
+
"eventemitter2": "^6.4.9",
|
|
27
33
|
"express": "^5.1.0",
|
|
28
34
|
"langchain": "^1.4.0",
|
|
29
35
|
"minimatch": "^10.2.5",
|
|
36
|
+
"multer": "^1.4.5-lts.2",
|
|
37
|
+
"node-cron": "^4.2.1",
|
|
30
38
|
"node-pty": "^1.1.0",
|
|
31
39
|
"simple-git": "^3.36.0",
|
|
32
40
|
"typescript-language-server": "^5.2.0",
|
|
@@ -37,10 +45,14 @@
|
|
|
37
45
|
"@agent-spaces/shared": "0.2.1"
|
|
38
46
|
},
|
|
39
47
|
"devDependencies": {
|
|
48
|
+
"@types/adm-zip": "^0.5.6",
|
|
49
|
+
"@types/archiver": "^6.0.3",
|
|
40
50
|
"@types/cors": "^2.8.17",
|
|
41
51
|
"@types/express": "^5.0.2",
|
|
42
52
|
"@types/minimatch": "^6.0.0",
|
|
53
|
+
"@types/multer": "^2.1.0",
|
|
43
54
|
"@types/node": "^20.19.39",
|
|
55
|
+
"@types/node-cron": "^3.0.11",
|
|
44
56
|
"@types/uuid": "^10.0.0",
|
|
45
57
|
"@types/ws": "^8.18.1",
|
|
46
58
|
"tsx": "^4.19.4",
|
package/public/avatars/user.jpg
CHANGED
|
Binary file
|
|
@@ -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)},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)},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)},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(511588),x=e.i(244073),p=e.i(816709),g=e.i(437122),h=e.i(157408);let b=(0,p.create)((e,t)=>({board:null,loading:!1,wsAttached:!1,load:async t=>{e({loading:!0});try{let r=await (0,g.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,g.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))},attachWS:r=>{if(t().wsAttached)return;let a=(0,h.getWS)(r);a.on("kanban.updated",t=>{e({board:t})}),a.on("kanban.deleted",()=>{e({board:null})}),e({wsAttached:!0})}}));var f=e.i(67013),v=e.i(137340),k=e.i(810051),y=e.i(650654),j=e.i(249673);let w=(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"}]]),N=(0,i.default)("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]),C=(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 S=e.i(244996),z=e.i(511800);let D={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 T({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,x.useTranslations)("kanban"),m=a?{transform:"rotate(2.5deg) scale(1.04)",cursor:"grabbing"}:{transform:f.CSS.Transform.toString(i),transition:d,opacity:c?.35:1,cursor:c?"grabbing":"pointer"},p=D[e.priority]||D.medium,g={low:u("low"),medium:u("medium"),high:u("high")},h=e=>{try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return e}};return(0,r.jsxs)("div",{ref:n,style:m,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)(C,{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)(N,{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)(S.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)(z.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)(w,{className:"h-3 w-3"}),h(e.dueDate)]}):(0,r.jsx)("span",{className:"text-[10px] text-stone-300",children:h(new Date(e.createdAt).toISOString())})]})]})}let I=[{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"}],M={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 L({column:e,tasks:t,layoutMode:s,onCardClick:n,onAddTask:i,onEditColumn:d,onDeleteColumn:c}){let{attributes:u,listeners:m,setNodeRef:p,transform:g,transition:h,isDragging:b,isOver:w}=(0,l.useSortable)({id:e.id}),N={transform:f.CSS.Transform.toString(g),transition:h},[C,S]=(0,a.useState)(!1),[z,D]=(0,a.useState)(!1),B=I.find(t=>t.name===e.color)||I[0],A=t.map(e=>e.id),$=(0,x.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 ${b?"opacity-30 border-dashed":""} ${w&&!b?"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,...m,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 ${M[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)(k.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)(y.ChevronDown,{className:"h-4 w-4"}):(0,r.jsx)(j.ChevronUp,{className:"h-4 w-4"})}),z?(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),D(!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:$("confirm")}),(0,r.jsx)("button",{onClick:()=>D(!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:$("no")})]}):(0,r.jsx)("button",{onClick:()=>D(!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)(v.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:A,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)(T,{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:$("emptySection")}),(0,r.jsx)("p",{className:"text-[10px] mt-1",children:$("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"}),$("addTask")]})]})]})}var B=e.i(989484),A=e.i(444204),$=e.i(681622),E=e.i(788010),P=e.i(817854),O=e.i(260218),R=e.i(188815),H=e.i(209988);e.i(8890);var F=e.i(29905),G=e.i(535270),K=e.i(139236),U=e.i(969490),V=e.i(267805);let W=a.createContext(void 0);var q=e.i(931709),_=e.i(122702),J=e.i(602453),Q=e.i(742665);let X=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,K.useBaseUiId)(m||void 0),b=function(e=!0){let t=a.useContext(W);if(void 0===t&&!e)throw Error((0,V.default)(7));return t}(),f=b?.value??[],v=b?void 0:l,k=(o||b?.disabled)??!1,[y,j]=(0,G.useControlled)({controlled:b?void 0!==h&&f.indexOf(h)>-1:d,default:v,name:"Toggle",state:"pressed"}),w=(0,F.useStableCallback)((e,t)=>{h&&b?.setGroupValue?.(h,e,t),i?.(e,t)}),{getButtonProps:N,buttonRef:C}=(0,q.useButton)({disabled:k,native:x}),S={disabled:k,pressed:y},z=[C,t],D=[{"aria-pressed":y,onClick(e){let t=!y,r=(0,J.createChangeEventDetails)(Q.REASONS.none,e.nativeEvent);w(t,r),r.isCanceled||j(t)}},g,N],T=(0,U.useRenderElement)("button",e,{enabled:!b,state:S,ref:z,props:D});return b?(0,r.jsx)(_.CompositeItem,{tag:"button",render:c,className:s,style:p,state:S,refs:z,props:D}):T});var Y=e.i(972308),Z=e.i(971109);let ee=((t={}).disabled="data-disabled",t.orientation="data-orientation",t.multiple="data-multiple",t),et={multiple:e=>e?{[ee.multiple]:""}:null},er=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,Z.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,G.useControlled)({controlled:c,default:h,name:"ToggleGroup",state:"value"}),y=(0,F.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,U.useRenderElement)("div",e,{enabled:!!g,state:j,ref:t,props:[N,p],stateAttributesMapping:et});return(0,r.jsx)(W.Provider,{value:w,children:g?C:(0,r.jsx)(Y.CompositeRoot,{render:m,className:u,style:x,state:j,refs:[t],props:[N,p],stateAttributesMapping:et,loopFocus:o,enableHomeAndEndKeys:!0,orientation:i})})});var ea=e.i(465458);let es=(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"}}),el=a.createContext({size:"default",variant:"default",spacing:2,orientation:"horizontal"});function eo({className:e,variant:t,size:a,spacing:s=2,orientation:l="horizontal",children:o,...n}){return(0,r.jsx)(er,{"data-slot":"toggle-group","data-variant":t,"data-size":a,"data-spacing":s,"data-orientation":l,style:{"--gap":s},className:(0,ea.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)(el.Provider,{value:{variant:t,size:a,spacing:s,orientation:l},children:o})})}function en({className:e,children:t,variant:s="default",size:l="default",...o}){let n=a.useContext(el);return(0,r.jsx)(X,{"data-slot":"toggle-group-item","data-variant":n.variant||s,"data-size":n.size||l,"data-spacing":n.spacing,className:(0,ea.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",es({variant:n.variant||s,size:n.size||l}),e),...o,children:t})}let ei={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 ed({task:e,columns:t,isOpen:s,onClose:l,onSave:o,onDelete:i}){let[d,c]=(0,a.useState)(""),[u,m]=(0,a.useState)(""),[p,g]=(0,a.useState)("medium"),[h,b]=(0,a.useState)(""),[f,k]=(0,a.useState)(""),[y,j]=(0,a.useState)(!1),N=(0,x.useTranslations)("kanban"),C=(0,x.useTranslations)("common");if((0,a.useEffect)(()=>{e&&(c(e.title),m(e.description),g(e.priority),b(e.columnId),k(e.dueDate||""),j(!1))},[e,s]),!s||!e)return null;let S=t=>{t.preventDefault(),d.trim()&&(o({...e,title:d.trim(),description:u.trim(),priority:p,columnId:h,dueDate:f||void 0}),l())},D={low:N("low"),medium:N("medium"),high:N("high")};return(0,r.jsx)(H.Dialog,{open:s,onOpenChange:e=>{e||l()},children:(0,r.jsxs)(H.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden",children:[(0,r.jsx)(H.DialogHeader,{className:"px-6 py-4 border-b",children:(0,r.jsxs)(H.DialogTitle,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider flex items-center gap-1.5",children:[(0,r.jsx)(B.FileText,{className:"h-3.5 w-3.5"}),N("taskDetails")]})}),(0,r.jsxs)("form",{onSubmit:S,className:"px-6 py-5 space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(B.FileText,{className:"h-3.5 w-3.5"}),N("title")]}),(0,r.jsx)($.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)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(z.AlertCircle,{className:"h-3.5 w-3.5"}),N("descriptionLabel")]}),(0,r.jsx)(E.Textarea,{rows:4,placeholder:N("descriptionPlaceholder"),value:u,onChange:e=>m(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)(P.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)(R.SearchSelect,{value:h,onChange:b,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)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(w,{className:"h-3.5 w-3.5"}),N("dueDate")]}),(0,r.jsx)($.Input,{type:"date",value:f,onChange:e=>k(e.target.value),className:"h-8"})]})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(A.Clock,{className:"h-3.5 w-3.5"}),N("priority")]}),(0,r.jsx)(eo,{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=ei[e],a=p===e;return(0,r.jsxs)(en,{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)(H.DialogFooter,{className:"!-mx-0 !-mb-0 px-6 py-4 border-t flex-row justify-between sm:justify-between",children:[y?(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)(O.Button,{size:"xs",variant:"destructive",onClick:()=>{i(e.id),l()},children:N("yes")}),(0,r.jsx)(O.Button,{size:"xs",variant:"outline",onClick:()=>j(!1),children:C("cancel")})]}):(0,r.jsxs)(O.Button,{size:"sm",variant:"destructive",onClick:()=>j(!0),children:[(0,r.jsx)(v.Trash2,{className:"h-4 w-4"}),C("delete")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,r.jsx)(O.Button,{size:"sm",variant:"outline",onClick:l,children:C("cancel")}),(0,r.jsx)(O.Button,{size:"sm",onClick:S,disabled:!d.trim(),children:C("save")})]})]})]})})}var ec=e.i(415360);let eu={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 em({isOpen:e,onClose:t,onCreate:s,onEdit:l,editingColumn:o}){let[n,i]=(0,a.useState)(""),[c,u]=(0,a.useState)("sky"),m=(0,x.useTranslations)("kanban"),p=(0,x.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)(H.Dialog,{open:e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(H.DialogContent,{className:"sm:max-w-md p-0 gap-0 overflow-hidden",children:[(0,r.jsx)(H.DialogHeader,{className:"px-6 py-4 border-b",children:(0,r.jsx)(H.DialogTitle,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:m(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)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(d,{className:"h-3.5 w-3.5"}),m("sectionName")]}),(0,r.jsx)($.Input,{type:"text",required:!0,autoFocus:!0,placeholder:m("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)(P.Label,{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,r.jsx)(ec.Sparkles,{className:"h-3.5 w-3.5"}),m("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 ${eu[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)(H.DialogFooter,{className:"!-mx-0 !-mb-0 px-6 py-4 border-t flex-row justify-end sm:justify-end",children:[(0,r.jsx)(O.Button,{size:"sm",variant:"outline",onClick:t,children:p("cancel")}),(0,r.jsx)(O.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:p,updateColumns:g,updateTasks:h,setBoard:f,attachWS:v}=b(),[k,y]=(0,a.useState)(""),[j,w]=(0,a.useState)("all"),[N,C]=(0,a.useState)(null),[S,z]=(0,a.useState)(!1),[D,I]=(0,a.useState)(null),[M,B]=(0,a.useState)(null),[A,$]=(0,a.useState)(!1),[E,P]=(0,a.useState)(null),O=(0,x.useTranslations)("kanban"),R=(0,x.useTranslations)("common");(0,a.useEffect)(()=>{i(e),v(e)},[e,i,v]);let H=t?.columns??[],F=t?.tasks??[],G=t?.layoutMode??"horizontal",K=(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})),U=F.filter(e=>{let t=e.title.toLowerCase().includes(k.toLowerCase())||e.description.toLowerCase().includes(k.toLowerCase()),r="all"===j||e.priority===j;return t&&r}),V=(0,a.useCallback)(({active:e})=>{let t=F.find(t=>t.id===e.id);if(t)I(t);else{let t=H.find(t=>t.id===e.id);t&&B(t)}},[F,H]),W=(0,a.useCallback)(({active:t,over:r})=>{if(!r)return;let a=t.id.toString(),s=r.id.toString();if(a===s)return;if(H.some(e=>e.id===a)){let t=F.find(e=>e.id===s),r=t?t.columnId:s,o=H.findIndex(e=>e.id===a),n=H.findIndex(e=>e.id===r);-1!==o&&-1!==n&&o!==n&&g(e,(0,l.arrayMove)(H,o,n));return}let o=F.find(e=>e.id===a);if(!o)return;let n=H.some(e=>e.id===s)?s:F.find(e=>e.id===s)?.columnId;n&&o.columnId!==n&&h(e,F.map(e=>e.id===a?{...e,columnId:n}:e))},[H,F,e,g,h]),q=(0,a.useCallback)(({active:t,over:r})=>{if(I(null),B(null),!r)return;let a=t.id.toString(),s=r.id.toString();if(H.some(e=>e.id===a)){let t=F.find(e=>e.id===s),r=t?t.columnId:s,o=H.findIndex(e=>e.id===a),n=H.findIndex(e=>e.id===r);-1!==o&&-1!==n&&o!==n&&g(e,(0,l.arrayMove)(H,o,n));return}if(!F.find(e=>e.id===a))return;let o=H.some(e=>e.id===s)?s:F.find(e=>e.id===s)?.columnId;if(!o)return;let n=F.findIndex(e=>e.id===a),i=F.findIndex(e=>e.id===s),d=F.map(e=>e.id===a?{...e,columnId:o}:e);-1!==i?h(e,(0,l.arrayMove)(d,n,i)):h(e,d)},[H,F,e,g,h]),_=e=>{C({id:`task-${Date.now()}`,title:O("newTask"),description:"",priority:"medium",columnId:e,order:F.filter(t=>t.columnId===e).length,createdAt:Date.now()}),z(!0)},J=t=>{g(e,H.filter(e=>e.id!==t)),h(e,F.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:R("loading")});let Q={all:O("priorityAll"),high:O("priorityHigh"),medium:O("priorityMedium"),low:O("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:O("searchPlaceholder"),value:k,onChange:e=>y(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:()=>w(e),className:`px-2.5 py-1 text-[10px] rounded-full border transition font-medium cursor-pointer ${j===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:Q[e]},e))}),(0,r.jsxs)("button",{onClick:()=>_(H[0]?.id||""),disabled:0===H.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"}),O("newCard")]}),(0,r.jsxs)("button",{onClick:()=>$(!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"}),O("section")]}),(0,r.jsxs)("button",{onClick:()=>p(e,"horizontal"===G?"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"===G?O("vertical"):O("horizontal")]})]}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden p-4",children:0===H.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:O("noSections")}),(0,r.jsxs)("div",{className:"flex gap-2 mt-4",children:[(0,r.jsxs)("button",{onClick:()=>{let t=Date.now();g(e,[...H,...[{title:"Draft",color:"slate"},{title:"Todo",color:"sky"},{title:"In Progress",color:"amber"},{title:"Done",color:"emerald"},{title:"Bug",color:"rose"}].map((e,r)=>({id:`col-${t+r}`,title:e.title,color:e.color,order:r}))])},className:"px-4 py-2 bg-white dark:bg-neutral-800 border border-stone-200 dark:border-neutral-600 text-stone-600 dark:text-neutral-300 rounded-xl text-xs font-bold cursor-pointer hover:bg-stone-50 dark:hover:bg-neutral-700 transition",children:[(0,r.jsx)(m.WandSparkles,{className:"h-3.5 w-3.5 inline mr-1 -mt-0.5"}),O("useTemplate")]}),(0,r.jsx)("button",{onClick:()=>$(!0),className:"px-4 py-2 bg-primary text-primary-foreground rounded-xl text-xs font-bold cursor-pointer",children:O("addSection")})]})]}):(0,r.jsxs)(s.DndContext,{sensors:K,onDragStart:V,onDragOver:W,onDragEnd:q,children:[(0,r.jsxs)("div",{className:`flex-1 h-full ${"horizontal"===G?"flex flex-row overflow-x-auto items-start gap-4 pb-4":"flex flex-col gap-4"}`,children:[(0,r.jsx)(l.SortableContext,{items:H.map(e=>e.id),strategy:"horizontal"===G?l.horizontalListSortingStrategy:l.verticalListSortingStrategy,children:H.map(e=>(0,r.jsx)(L,{column:e,tasks:U.filter(t=>t.columnId===e.id),layoutMode:G,onCardClick:e=>{C(e),z(!0)},onAddTask:_,onEditColumn:e=>{P(e),$(!0)},onDeleteColumn:J},e.id))}),"horizontal"===G&&(0,r.jsxs)("button",{onClick:()=>$(!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:O("newSection")})]})]}),(0,r.jsx)(s.DragOverlay,{dropAnimation:{sideEffects:(0,s.defaultDropAnimationSideEffects)({styles:{active:{opacity:"0.4"}}})},children:D?(0,r.jsx)(T,{task:D,onClick:()=>{},isOverlay:!0}):M?(0,r.jsx)("div",{className:"opacity-80 scale-98 pointer-events-none",children:(0,r.jsx)(L,{column:M,tasks:U.filter(e=>e.columnId===M.id),layoutMode:G,onCardClick:()=>{},onAddTask:()=>{},onEditColumn:()=>{},onDeleteColumn:()=>{}})}):null})]})}),(0,r.jsx)(ed,{task:N,columns:H,isOpen:S,onClose:()=>{z(!1),C(null)},onSave:t=>{h(e,F.some(e=>e.id===t.id)?F.map(e=>e.id===t.id?t:e):[...F,t])},onDelete:t=>{h(e,F.filter(e=>e.id!==t))}}),(0,r.jsx)(em,{isOpen:A,onClose:()=>{$(!1),P(null)},onCreate:(t,r)=>{let a={id:`col-${Date.now()}`,title:t,color:r,order:H.length};g(e,[...H,a])},onEdit:(t,r,a)=>{g(e,H.map(e=>e.id===t?{...e,title:r,color:a}:e))},editingColumn:E})]})}],770138)},683223,e=>{e.n(e.i(770138))}]);
|