@baique/pi-web-sky 0.1.32 → 0.1.34
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +17 -8
- package/.next/build-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +27 -6
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +70 -0
- package/.next/server/app/_global-error/page.js +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/bash-output/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js +31 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +30 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/route.js +30 -1
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -30
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -3
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -30
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/boards/[id]/canvas/route.js +1 -0
- package/.next/server/app/api/boards/[id]/canvas/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/canvas/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/[id]/edges/[eid]/route.js +1 -0
- package/.next/server/app/api/boards/[id]/edges/[eid]/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/edges/[eid]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/[id]/edges/route.js +1 -0
- package/.next/server/app/api/boards/[id]/edges/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/edges/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/[id]/nodes/[nid]/route.js +1 -0
- package/.next/server/app/api/boards/[id]/nodes/[nid]/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/nodes/[nid]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/[id]/nodes/route.js +1 -0
- package/.next/server/app/api/boards/[id]/nodes/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/nodes/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/[id]/route.js +1 -0
- package/.next/server/app/api/boards/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/reorder/route.js +1 -0
- package/.next/server/app/api/boards/reorder/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/reorder/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/boards/route.js +1 -0
- package/.next/server/app/api/boards/route.js.nft.json +1 -0
- package/.next/server/app/api/boards/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +2 -2
- package/.next/server/app/api/default-cwd/route.js +2 -2
- package/.next/server/app/api/file-index/route.js +2 -2
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -35
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/git/status/route.js +1 -35
- package/.next/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/models/route.js +2 -2
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +2 -2
- package/.next/server/app/api/project-trust/route.js +30 -1
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
- package/.next/server/app/api/quota/route.js +1 -1
- package/.next/server/app/api/search/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +31 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +30 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +30 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/todos/route.js +30 -1
- package/.next/server/app/api/sessions/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +30 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/board/route.js +1 -0
- package/.next/server/app/api/tasks/[id]/board/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/[id]/board/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/reorder/route.js +1 -30
- package/.next/server/app/api/tasks/reorder/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +1 -30
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
- package/.next/server/app/api/terminal/[id]/route.js +2 -2
- package/.next/server/app/api/terminal/route.js +2 -2
- package/.next/server/app/api/worktrees/route.js +2 -2
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +6 -6
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.segments/_full.segment.rsc +6 -6
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/page.js +8 -8
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +17 -8
- package/.next/server/chunks/2092.js +30 -0
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/402.js +1 -1
- package/.next/server/chunks/{3379.js → 5760.js} +1 -1
- package/.next/server/chunks/5794.js +35 -0
- package/.next/server/chunks/6429.js +1 -0
- package/.next/server/chunks/7513.js +1 -1
- package/.next/server/chunks/898.js +30 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/3178.73f47c1845fe51df.js +259 -0
- package/.next/static/chunks/3266.a491c09b3f6b57e6.js +1 -0
- package/.next/static/chunks/{3308.be8762955e7155d1.js → 3308.857c554428b3294e.js} +1 -1
- package/.next/static/chunks/3744.d362159c4d7b91f4.js +1 -0
- package/.next/static/chunks/54a60aa6.0e43cde7298ebcb7.js +78 -0
- package/.next/static/chunks/5518.79782f5b65bbefd6.js +1 -0
- package/.next/static/chunks/70e0d97a.337966195abe6fe0.js +1 -0
- package/.next/static/chunks/7268.7bf6d531e3905a52.js +1 -0
- package/.next/static/chunks/app/_global-error/page-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/canvas/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/edges/[eid]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/edges/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/nodes/[nid]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/nodes/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/[id]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/reorder/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/boards/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/home/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/models/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/quota/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/search/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/todos/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/skills/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/board/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/tasks/reorder/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/{layout-44c2a1db46fb38f3.js → layout-629d926928cb5e43.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/app/page-fca5ee35186517d3.js +89 -0
- package/.next/static/chunks/e3e7ddb2.a35db430b3564999.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9cbffd52890a7ee2.js +1 -0
- package/.next/static/chunks/webpack-a0d987c4f912a15f.js +1 -0
- package/.next/static/css/46396d55066d14af.css +1 -0
- package/.next/static/css/77c5948f82acf3c3.css +1 -0
- package/.next/static/css/80c818c5781fbadc.css +4 -0
- package/.next/static/rGUWWAqLz0cYSW8-IDVSA/_buildManifest.js +1 -0
- package/.next/trace +7 -7
- package/.next/trace-build +1 -1
- package/.next/types/app/api/boards/[id]/canvas/route.ts +353 -0
- package/.next/types/app/api/boards/[id]/edges/[eid]/route.ts +353 -0
- package/.next/types/app/api/boards/[id]/edges/route.ts +353 -0
- package/.next/types/app/api/boards/[id]/nodes/[nid]/route.ts +353 -0
- package/.next/types/app/api/boards/[id]/nodes/route.ts +353 -0
- package/.next/types/app/api/boards/[id]/route.ts +353 -0
- package/.next/types/app/api/boards/reorder/route.ts +353 -0
- package/.next/types/app/api/boards/route.ts +353 -0
- package/.next/types/app/api/tasks/[id]/board/route.ts +353 -0
- package/.next/types/routes.d.ts +10 -1
- package/.next/types/validator.ts +81 -0
- package/README.md +11 -0
- package/package.json +2 -1
- package/.next/server/chunks/1457.js +0 -30
- package/.next/static/chunks/3266.4c7192f2067645eb.js +0 -1
- package/.next/static/chunks/7268.236544be8e242c16.js +0 -1
- package/.next/static/chunks/app/_global-error/page-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/home/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/models/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/quota/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/search/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/todos/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/skills/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/tasks/reorder/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/app/page-255f2073b07c4d6f.js +0 -89
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-11d96eed20d5efa5.js +0 -1
- package/.next/static/chunks/webpack-09241b8782696d25.js +0 -1
- package/.next/static/css/ad030894558ed286.css +0 -1
- package/.next/static/css/de7b7ffe9688501b.css +0 -1
- package/.next/static/qwmfKj7b5-4hr-C6kFkRA/_buildManifest.js +0 -1
- /package/.next/static/{qwmfKj7b5-4hr-C6kFkRA → rGUWWAqLz0cYSW8-IDVSA}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3744],{13744:(e,t,r)=>{r.r(t),r.d(t,{SessionCanvas:()=>c});var a=r(95155),s=r(12115),n=r(37206),o=r(39247),i=r(96793),l=r(82208);let d=(0,n.default)(()=>Promise.all([r.e(6009),r.e(5518)]).then(r.bind(r,25518)).then(e=>e.CanvasStage),{loadableGenerated:{webpack:()=>[25518]},ssr:!1,loading:()=>(0,a.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,a.jsx)("span",{"aria-hidden":!0,style:{width:14,height:14,borderRadius:"50%",border:"2px solid color-mix(in srgb, var(--text) 15%, transparent)",borderTopColor:"var(--accent)",animation:"spin 0.8s linear infinite"}}),"Loading canvas…"]})})});function c({boardId:e,projectKey:t,taskId:r,newSessionCwd:n,onOpenSession:u,onRunningSessionIdsChange:h,wallSettings:f,updateWallSettings:y}){let{t:b}=(0,o.s)(),{isDark:g}=(0,i.D)(),x=(0,l.C6)({boardId:e,projectKey:t,taskId:r,newSessionCwd:n,onOpenSession:e=>u({id:e},!1)}),m=!!(x.board?.taskId??r),[v,w]=(0,s.useState)(!1),[k,I]=(0,s.useState)(!1),C=(0,s.useRef)(0);return(0,s.useEffect)(()=>{if(x.conflictCount>C.current){C.current=x.conflictCount,I(!0);let e=setTimeout(()=>I(!1),4e3);return()=>clearTimeout(e)}},[x.conflictCount]),(0,s.useEffect)(()=>{h?.(new Set(x.running?.runningSessionIds??[]))},[x.running,h]),(0,a.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative"},children:[k&&(0,a.jsxs)("div",{role:"status",style:{position:"absolute",top:12,left:"50%",transform:"translateX(-50%)",zIndex:80,display:"flex",alignItems:"center",gap:8,padding:"8px 14px",borderRadius:999,background:"var(--board-card-glass)",backdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",color:"var(--text)",fontSize:12.5,whiteSpace:"nowrap",animation:"toast-in 0.2s ease-out"},children:[(0,a.jsx)("span",{"aria-hidden":!0,style:{color:"#f59e0b",display:"inline-flex"},children:(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M12 9v4"}),(0,a.jsx)("path",{d:"M12 17h.01"}),(0,a.jsx)("path",{d:"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"})]})}),b("boards.conflictReload")]}),(0,a.jsxs)("div",{style:{position:"absolute",top:10,right:10,zIndex:30,display:"flex",flexDirection:"column",alignItems:"flex-end",gap:6},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:4,borderRadius:10,background:"var(--board-card-glass)",backdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)"},children:[(0,a.jsx)("button",{type:"button",onClick:()=>x.addDraftCard(),title:b("boards.newSession"),style:{...p,color:"var(--accent)"},children:(0,a.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,a.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}),(0,a.jsx)("button",{type:"button",onClick:()=>w(e=>!e),title:b("boards.scrimTitle"),"aria-expanded":v,style:{...p,color:v?"var(--accent)":"var(--text-muted)",background:v?"color-mix(in srgb, var(--accent) 12%, transparent)":"transparent"},children:(0,a.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M12 3v2"}),(0,a.jsx)("path",{d:"M12 19v2"}),(0,a.jsx)("path",{d:"M5 7l1.5 1.5"}),(0,a.jsx)("path",{d:"M17.5 15.5L19 17"}),(0,a.jsx)("path",{d:"M3 12h2"}),(0,a.jsx)("path",{d:"M19 12h2"}),(0,a.jsx)("path",{d:"M5 17l1.5-1.5"}),(0,a.jsx)("path",{d:"M17.5 8.5L19 7"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}),(0,a.jsx)("button",{type:"button",onClick:()=>{window.confirm(b("boards.clearConfirm"))&&x.clearBoard()},title:m?b("boards.taskBoardManaged"):b("boards.clearDesc"),disabled:m,style:{...p,opacity:m?.4:1,cursor:m?"not-allowed":"pointer"},children:(0,a.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M18 6 6 18"}),(0,a.jsx)("path",{d:"m6 6 12 12"})]})})]}),v&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"8px 10px",borderRadius:10,background:"var(--board-card-glass)",backdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",color:"var(--text)",fontSize:12.5,whiteSpace:"nowrap"},children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,a.jsx)("span",{style:{width:14,flexShrink:0,textAlign:"center",fontSize:12},children:"❄"}),(0,a.jsx)("span",{style:{flexShrink:0},children:b("boards.scrimBlur")}),(0,a.jsx)("input",{type:"range",min:0,max:30,value:f.scrimBlur,onChange:e=>y({scrimBlur:Number(e.target.value)}),style:{flex:1,minWidth:120,accentColor:"var(--accent)",cursor:"pointer"},"aria-label":b("boards.scrimBlur")}),(0,a.jsxs)("span",{style:{width:30,flexShrink:0,textAlign:"right",fontSize:11,color:"var(--text)"},children:[f.scrimBlur,"px"]})]})})]}),(0,a.jsx)(d,{board:x,isDark:g})]})}let p={display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",borderRadius:7,transition:"background 0.12s, color 0.12s"}},82208:(e,t,r)=>{r.d(t,{eo:()=>d,ZI:()=>l,C6:()=>c});var a=r(12115),s=r(91072),n=r(93647),o=r(79544),i=r(15934);let l=340,d=160;function c({boardId:e,projectKey:t,taskId:r,newSessionCwd:u,onOpenSession:h}){let[f,y]=(0,a.useState)(null),[b,g]=(0,a.useState)(!0),[x,m]=(0,a.useState)(null),[v,w]=(0,a.useState)(()=>globalThis.__piRunningSnapshot??null),k=(0,a.useCallback)(e=>{globalThis.__piRunningSnapshot=e,w(e)},[]),I=(0,a.useRef)(null),C=(0,a.useRef)(e);C.current=e;let S=(0,a.useRef)(null),j=(0,a.useCallback)(async()=>{try{g(!0);let[t,r]=await Promise.all([fetch(`/api/boards/${encodeURIComponent(e)}`,{cache:"no-store"}),fetch(`/api/boards/${encodeURIComponent(e)}/canvas`,{cache:"no-store"})]);if(!t.ok||!r.ok)return void m(`HTTP ${t.status??r.status}`);let a=await t.json(),s=await r.json();y(a.board),S.current=a.board.updated,R(s)}catch(e){m(e instanceof Error?e.message:String(e))}finally{g(!1)}},[e]);(0,a.useEffect)(()=>{j()},[j]);let[A,R]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!1,t=null,r=async()=>{if(!e&&"visible"===document.visibilityState)try{let t=await fetch("/api/agent/running",{cache:"no-store"});if(!t.ok)return;let r=await t.json();if(e)return;k(r)}catch{}},a=()=>{e||(t=setTimeout(async()=>{await r(),a()},2500))};r(),a();let s=()=>{"visible"===document.visibilityState&&r()};return document.addEventListener("visibilitychange",s),()=>{e=!0,t&&clearTimeout(t),document.removeEventListener("visibilitychange",s)}},[]);let[T,M]=(0,a.useState)({}),E=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/sessions",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),r={};for(let e of t.sessions)r[e.id]={title:e.name??e.firstMessage??"Untitled",messageCount:e.messageCount??0,projectName:e.projectKey??e.projectRoot??"",lastReply:e.lastReply??"",lastActivityAt:e.modified?Date.parse(e.modified):0};M(r)}catch{}},[]);(0,a.useEffect)(()=>{let e,t=!1,r=async()=>{await E(),t||(e=setTimeout(r,1e4))};r();let a=()=>{"visible"===document.visibilityState&&(e&&clearTimeout(e),r())};return document.addEventListener("visibilitychange",a),()=>{t=!0,e&&clearTimeout(e),document.removeEventListener("visibilitychange",a)}},[E]);let[P,L]=(0,a.useState)(!1),D=(0,a.useCallback)(e=>{I.current=e,L(!0);let t=e.deleteShapes.bind(e);if(e.deleteShapes=r=>{let a=Array.isArray(r)?r:[r],s=new Set(et.current),n=a.filter(t=>{let r="string"==typeof t?t:t.id,a=e.getShape(r);if(!a||"session-card"!==a.type)return!0;let n=a.props.sessionId;return!(s.has(n)&&en.current)});return n.length===a.length?t(r):n.length>0?t(n):e},C.current===o.p)return;let r=e.store.listen(()=>{_(e)});return()=>{r?.()}},[]);(0,a.useEffect)(()=>{let e=I.current;if(!e||!P||0===Object.keys(T).length||z.current)return;let t=[];for(let r of e.getCurrentPageShapes()){if("session-card"!==r.type)continue;let e=r.props,a=T[e.sessionId];a&&(e.title!==a.title||e.lastReply!==a.lastReply||e.messageCount!==a.messageCount||e.lastActivityAt!==a.lastActivityAt)&&t.push({id:r.id,type:"session-card",props:{title:a.title,lastReply:a.lastReply,messageCount:a.messageCount,lastActivityAt:a.lastActivityAt}})}t.length>0&&e.updateShapes(t)},[T,P]);let U=(0,a.useRef)(null),Y=(0,a.useRef)(!1),B=(0,a.useRef)(!1),z=(0,a.useRef)(!1),N=(0,a.useRef)(!1),_=(0,a.useCallback)(e=>{!z.current&&N.current&&(U.current&&clearTimeout(U.current),U.current=setTimeout(()=>void X(e),500))},[]),W=(0,a.useCallback)(async()=>{let e=I.current,t=C.current;if(e)try{let[r,a]=await Promise.all([fetch(`/api/boards/${encodeURIComponent(t)}`,{cache:"no-store"}),fetch(`/api/boards/${encodeURIComponent(t)}/canvas`,{cache:"no-store"})]);if(!r.ok||!a.ok)return;let s=await r.json(),n=await a.json();S.current=s.board.updated,z.current=!0,e.deleteShapes(e.getCurrentPageShapes().map(e=>e.id)),R(n)}catch(e){console.error("[board] reload failed",e)}},[]),[$,F]=(0,a.useState)(0),O=(0,a.useCallback)(async()=>{await W(),F(e=>e+1)},[W]),X=(0,a.useCallback)(async e=>{let t=C.current;if(t!==o.p&&N.current&&!z.current){if(Y.current){B.current=!0;return}Y.current=!0;try{let{nodes:r,edges:a}=J(e);if(0===r.length&&0===a.length)return;let s=e.getCamera(),n=await fetch(`/api/boards/${encodeURIComponent(t)}/canvas`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodes:r,edges:a,view:{boardId:t,cameraX:s.x,cameraY:s.y,cameraZ:s.z,updated:Date.now()},baseUpdated:S.current??void 0})});if(409===n.status){console.warn("[board] canvas save conflict (409) — reloading latest, local stale changes dropped"),await O();return}if(!n.ok)return void console.error("[board] canvas save failed",n.status);let o=await n.json().catch(()=>null);o?.updated&&(S.current=o.updated)}catch(e){console.error("[board] canvas save error",e)}finally{Y.current=!1,B.current&&(B.current=!1,X(e))}}},[O]),Z=(0,a.useCallback)((e,t,r)=>{let a=[],n=new Map;for(let e of t.nodes)n.set(e.id,{x:e.x,y:e.y,w:e.w||l,h:e.h||d});for(let e of t.nodes){if("shape"!==e.kind)continue;let t=e.props;t?.type&&t.shapeProps&&a.push({id:(0,s.n6Y)(e.id),type:t.type,x:e.x,y:e.y,rotation:t.rotation??0,parentId:t.parentId?(0,s.n6Y)(t.parentId):void 0,props:t.shapeProps})}for(let e of t.nodes){if("session"!==e.kind)continue;let t=e.refId?r[e.refId]:void 0,n=e.props;a.push({id:(0,s.n6Y)(e.id),type:"session-card",x:e.x,y:e.y,parentId:n.parentId?(0,s.n6Y)(n.parentId):void 0,props:{sessionId:e.refId??"",title:t?.title??"Untitled",projectName:t?.projectName??"",messageCount:t?.messageCount??0,lastReply:t?.lastReply??"",lastActivityAt:t?.lastActivityAt??0,phase:"idle",runningMs:0,endedAt:0,stale:!!e.refId&&!r[e.refId],expanded:e.expanded,cwd:e.props.cwd??"",taskId:e.props.taskId??"",w:(280!==e.w||e.expanded)&&e.w||l,h:(120!==e.h||e.expanded)&&e.h||d}})}for(let e of t.edges){let t=n.get(e.fromId),r=n.get(e.toId);t&&r&&a.push({id:(0,s.n6Y)(e.id),type:"arrow",x:0,y:0,props:{start:{x:t.x+t.w/2,y:t.y+t.h/2},end:{x:r.x+r.w/2,y:r.y+r.h/2},color:e.color??"blue",dash:e.dashed?"dashed":"solid",arrowheadStart:"none",arrowheadEnd:"arrow",labelColor:"black",font:"sans",richText:e.label?p(e.label):p(""),scale:1,size:"m",bend:0,kind:"elbow",labelPosition:.5,elbowMidPoint:.5}})}a.length>0&&e.createShapes(a);let o=[];for(let e of t.edges)n.has(e.fromId)&&n.has(e.toId)&&o.push({type:"arrow",fromId:(0,s.n6Y)(e.id),toId:(0,s.n6Y)(e.fromId),props:{terminal:"start",isPrecise:!1,isExact:!1,normalizedAnchor:{x:.5,y:.5},snap:"none"}},{type:"arrow",fromId:(0,s.n6Y)(e.id),toId:(0,s.n6Y)(e.toId),props:{terminal:"end",isPrecise:!1,isExact:!1,normalizedAnchor:{x:.5,y:.5},snap:"none"}});o.length>0&&e.createBindings(o)},[]);(0,a.useEffect)(()=>{let e=I.current;!e||!P||!A||A.nodes.some(e=>"session"===e.kind&&e.refId)&&0===Object.keys(T).length||(console.log("[board] hydrate",A.nodes.length,"nodes",A.edges.length,"edges, titles",Object.keys(T).length),z.current=!0,Z(e,A,T),setTimeout(()=>{z.current=!1},800),A.view&&C.current!==o.p&&e.setCamera({x:A.view.cameraX,y:A.view.cameraY,z:A.view.cameraZ}),R(null),N.current=!0)},[A,T,Z,P]);let J=(0,a.useCallback)(e=>{let t=[],r=[],a=C.current,s=Date.now();for(let i of e.getCurrentPageShapesSorted()){let l=(0,n.xhT)(i.parentId)?null:i.parentId.replace("shape:","");if("session-card"===i.type){let e=i.props;t.push({id:i.id.replace("shape:",""),boardId:a,kind:"session",refId:e.sessionId||null,x:i.x,y:i.y,w:e.w,h:e.h,expanded:!!e.expanded,props:{parentId:l,cwd:e.cwd??"",taskId:e.taskId??""},created:s,updated:s})}else if("arrow"===i.type){var o;let t=e.getBindingsInvolvingShape(i.id,"arrow"),n="",l="";for(let e of t){let t=e.props,r=t?.terminal;"start"===r&&(n=e.toId.replace("shape:","")),"end"===r&&(l=e.toId.replace("shape:",""))}r.push({id:i.id.replace("shape:",""),boardId:a,fromId:n,toId:l,label:i.props.richText?(o=i.props.richText)&&"object"==typeof o&&Array.isArray(o.content)?o.content.map(e=>(e.content??[]).map(e=>e.text??"").join("")).join("\n").trim():"":null,color:i.props.color,dashed:"dashed"===i.props.dash,created:s,updated:s})}else{let{x:e,y:r,rotation:n,props:o}=i;t.push({id:i.id.replace("shape:",""),boardId:a,kind:"shape",refId:null,x:e,y:r,w:"w"in o&&Number(o.w)||0,h:"h"in o&&Number(o.h)||0,expanded:!1,props:{type:i.type,rotation:n,shapeProps:o,parentId:l},created:s,updated:s})}}return{nodes:t,edges:r}},[]);(0,a.useEffect)(()=>{let t=I.current;t&&v&&(e===o.p?G(t,v,T):H(t,v))},[v,e,T]);let G=(0,a.useCallback)((e,t,r)=>{let a=new Map;for(let t of e.getCurrentPageShapes())if("session-card"===t.type){let e=t.props.sessionId;e&&a.set(e,t)}let n=new Set(t.runningSessionIds),o=[],i=[],c=Date.now(),p=0;for(let e of t.runningSessionIds){let n=t.states[e],u=a.get(e),h=n?n.phase:"waiting_model",f=n?.startedAt?c-n.startedAt:0,y=r[e];u?i.push({id:u.id,type:"session-card",props:{phase:h,runningMs:f,title:y?.title??u.props.title,lastActivityAt:y?.lastActivityAt??u.props.lastActivityAt??0}}):(o.push({id:(0,s.n6Y)(),type:"session-card",x:60,y:60+p*(d+24),props:{sessionId:e,title:y?.title??"Running session",projectName:y?.projectName??"",messageCount:y?.messageCount??0,lastReply:y?.lastReply??"",lastActivityAt:y?.lastActivityAt??0,phase:h,runningMs:f,endedAt:0,stale:!1,expanded:!1,w:l,h:d}}),p+=1)}let u=Date.now();for(let[t,r]of a){if(n.has(t))continue;let a=r.props;"just-ended"===a.phase?function(e,t,r,a=3e4){return"just-ended"===e&&t>0&&r-t>a}(a.phase,a.endedAt,u)&&e.deleteShapes([r.id]):i.push({id:r.id,type:"session-card",props:{phase:"just-ended",endedAt:u}})}o.length>0&&e.createShapes(o),i.length>0&&e.updateShapes(i)},[]),H=(0,a.useCallback)((e,t)=>{let r=[],a=Date.now();for(let s of e.getCurrentPageShapes()){if("session-card"!==s.type)continue;let e=s.props;if(!e.sessionId)continue;let n=t.states[e.sessionId],o=t.runningSessionIds.includes(e.sessionId);if(o&&n){let t=n.phase,o=n.startedAt?a-n.startedAt:0;(e.phase!==t||e.runningMs!==o||0!==e.endedAt)&&r.push({id:s.id,type:"session-card",props:{phase:t,runningMs:o,endedAt:0}})}else o||"idle"===e.phase||r.push({id:s.id,type:"session-card",props:{phase:"idle",runningMs:0,endedAt:0}})}r.length>0&&e.updateShapes(r)},[]),K=(0,a.useCallback)((e,t,r)=>{let a=I.current;if(!a)return;let n=T[e],o=C.current,i={id:crypto.randomUUID(),boardId:o,kind:"session",refId:e,x:t??60+120*Math.random(),y:r??60+120*Math.random(),w:l,h:d,expanded:!1,props:{},created:Date.now(),updated:Date.now()};a.createShapes([{id:(0,s.n6Y)(i.id),type:"session-card",x:i.x,y:i.y,props:{sessionId:e,title:n?.title??"Untitled",projectName:n?.projectName??"",messageCount:n?.messageCount??0,lastReply:n?.lastReply??"",lastActivityAt:n?.lastActivityAt??0,phase:"idle",runningMs:0,endedAt:0,stale:!1,expanded:!1,w:l,h:d}}])},[T]),V=(0,a.useCallback)(e=>{let t=e.getCurrentPageShapes().filter(e=>"session-card"===e.type).map(e=>({x:e.x,y:e.y,w:e.props.w||l,h:e.props.h||d})),r=(e,r)=>t.some(t=>e<t.x+t.w+24&&e+l+24>t.x&&r<t.y+t.h+24&&r+d+24>t.y),a=60,s=0;for(;s<2e3;){for(let e=0;e<4;e+=1){let t=60+e*(l+24);if(!r(t,a))return{x:t,y:a}}a+=d+24,s+=1}return{x:60+120*Math.random(),y:60+120*Math.random()}},[]),q=(0,a.useCallback)(()=>{let e=I.current;if(!e)return;let t=V(e);e.createShapes([{id:(0,s.n6Y)(),type:"session-card",x:t.x,y:t.y,props:{sessionId:"",title:"",projectName:"",messageCount:0,lastReply:"",phase:"idle",runningMs:0,endedAt:0,stale:!1,expanded:!0,cwd:er.current??"",taskId:en.current??"",w:840,h:600}}])},[V]),Q=(0,a.useCallback)((e,t)=>{let r=I.current;r&&r.updateShapes([{id:(0,s.n6Y)(e),type:"session-card",props:{sessionId:t}}])},[]);(0,a.useEffect)(()=>{let e=e=>{let t=e.detail;if(!t?.sessionId||!t?.nodeId)return;let r=I.current;if(!r)return;let a=(0,s.n6Y)(t.nodeId),n=r.getShape(a);n&&"session-card"===n.type&&(r.updateShapes([{id:a,type:"session-card",props:{sessionId:t.sessionId,cwd:"",taskId:""}}]),E())};return window.addEventListener("pi-web:board-session-created",e),()=>window.removeEventListener("pi-web:board-session-created",e)},[E]);let ee=(0,a.useCallback)(async()=>{let e=I.current,t=en.current;if(e&&t)try{let r=await fetch(`/api/tasks/${encodeURIComponent(t)}`,{cache:"no-store"});if(!r.ok)return;let a=await r.json(),s=a.task?.sessionIds??[];et.current=s;let n=new Set,o=!1;for(let r of e.getCurrentPageShapes()){if("session-card"!==r.type)continue;let e=r.props;e.sessionId?n.add(e.sessionId):e.taskId===t&&(o=!0)}if(o)return;let i=s.filter(e=>!n.has(e));if(0===i.length)return;for(let t of i){let r=V(e);K(t,r.x,r.y)}}catch{}},[K,V]);(0,a.useRef)(r).current=r;let et=(0,a.useRef)([]),er=(0,a.useRef)(u);er.current=u;let ea=f?.taskId??null,es=r??ea,en=(0,a.useRef)(es);en.current=es,(0,a.useEffect)(()=>{let e;if(!es)return;let t=!1,r=async()=>{!t&&(await ee(),t||(e=setTimeout(r,1e4)))},a=setTimeout(()=>{r()},1e3),s=()=>{"visible"===document.visibilityState&&(e&&clearTimeout(e),r())};return document.addEventListener("visibilitychange",s),()=>{t=!0,e&&clearTimeout(e),clearTimeout(a),document.removeEventListener("visibilitychange",s)}},[es,ee]);let eo=(0,a.useCallback)((e,t,r,a,n)=>{let o=I.current;if(!o)return;let i=o.getShape(e),l=o.getShape(t);if(!i||!l||e===t)return;let d=crypto.randomUUID();o.createShapes([{id:(0,s.n6Y)(d),type:"arrow",x:0,y:0,props:{start:{x:i.x,y:i.y},end:{x:l.x,y:l.y},color:a??"blue",dash:n?"dashed":"solid",arrowheadStart:"none",arrowheadEnd:"arrow",labelColor:"black",font:"sans",richText:p(r??""),scale:1,size:"m",bend:0,kind:"elbow",labelPosition:.5,elbowMidPoint:.5},meta:{fromId:e,toId:t}}])},[]),ei=(0,a.useCallback)(e=>{let t=I.current;if(!t)return null;for(let r of t.getCurrentPageShapes())if("session-card"===r.type&&r.props.sessionId===e)return r.id.replace("shape:","");return null},[]),el=(0,a.useCallback)(async()=>{let e=C.current;if(e===o.p)return;let t=I.current;if(!t)return;let r=t.getCurrentPageShapes().map(e=>e.id);r.length>0&&t.deleteShapes(r);let a=t.getCamera();try{let t=await fetch(`/api/boards/${encodeURIComponent(e)}/canvas`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodes:[],edges:[],view:{boardId:e,cameraX:a.x,cameraY:a.y,cameraZ:a.z,updated:Date.now()},baseUpdated:S.current??void 0,allowEmpty:!0})});if(409===t.status){console.warn("[board] clear conflict (409) — reloading latest"),await O();return}if(!t.ok)return void console.error("[board] clear failed",t.status);let r=await t.json().catch(()=>null);r?.updated&&(S.current=r.updated),(0,i.VF)(e)}catch(e){console.error("[board] clear error",e)}},[O]);return(0,a.useMemo)(()=>({board:f,loading:b,error:x,running:v,runningCount:v?.runningSessionIds.length??0,onMount:D,addSessionNode:K,addDraftCard:q,bindDraftSession:Q,connectNodes:eo,clearBoard:el,getNodeIdForSession:ei,reloadCanvas:O,conflictCount:$,sessionTitles:T,loadSessionSummaries:E,hydrateShapes:Z,reconcileTaskSessions:ee}),[f,b,x,v,D,K,q,Q,eo,el,ei,O,$,T,E,Z,ee])}function p(e){return{type:"doc",content:e?[{type:"paragraph",content:[{type:"text",text:e}]}]:[]}}}}]);
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[277],{82159:(e,t,n)=>{n.d(t,{AB:()=>tW,BQ:()=>tn,CU:()=>tX,Ce:()=>nm,Dd:()=>tJ,Df:()=>eQ,FF:()=>e0,H_:()=>e3,JJ:()=>ng,J_:()=>e5,KE:()=>nd,KV:()=>ez,Nx:()=>eT,OX:()=>nf,Op:()=>tt,Pg:()=>k,QN:()=>e7,T7:()=>eO,XO:()=>ni,YY:()=>t3,Zc:()=>nb,Zx:()=>eq,_n:()=>t0,_w:()=>eH,bP:()=>nv,fV:()=>tG,fl:()=>e2,gk:()=>eR,gu:()=>eX,hO:()=>e1,hs:()=>tH,iI:()=>eA,kj:()=>tZ,rU:()=>ed,tG:()=>ny,ve:()=>D,yQ:()=>eJ,zU:()=>eL});var r=n(89908),o=n(8242),i=n(97144),s=n(76865),a=n(27050),l=n(42080),d=n(63197),c=n(12894),u=n(41463);function p(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:o}=n,{storedMarks:i}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return i},get selection(){return r},get doc(){return o},get tr(){return r=n.selection,o=n.doc,i=n.storedMarks,n}}}var h=class e{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:o}=n,i=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,(...e)=>{let n=t(...e)(i);return o.getMeta("preventDispatch")||this.hasCustomState||r.dispatch(o),n}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:i}=r,s=[],a=!!e,l=e||o.tr,d=()=>(a||!t||l.getMeta("preventDispatch")||this.hasCustomState||i.dispatch(l),s.every(e=>!0===e)),c={...Object.fromEntries(Object.entries(n).map(([e,n])=>[e,(...e)=>{let r=this.buildProps(l,t),o=n(...e)(r);return s.push(o),c}])),run:d};return c}static createFakeChain(){let e=new Proxy({},{get:(t,n)=>{if("then"!==n)return"run"===n?()=>!1:()=>e}});return e}createCan(e){let{rawCommands:t,state:n}=this,r=e||n.tr,o=this.buildProps(r,!1);return{...Object.fromEntries(Object.entries(t).map(([e,t])=>[e,(...e)=>t(...e)({...o,dispatch:void 0})])),chain:()=>this.createChain(r,!1)}}static createFallbackCan(){let t=e.createFakeChain();return new Proxy({chain:()=>t},{get:(e,t)=>{if("then"!==t)return"chain"===t?e.chain:()=>!1}})}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:i}=r,s={tr:e,editor:r,view:i,state:p({state:o,transaction:e}),dispatch:t?()=>void 0:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(...e)=>t(...e)(s)]))}};return s}};let f=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{if(!e.isDestroyed){var n;t.dom.blur(),null==(n=window)||null==(n=n.getSelection())||n.removeAllRanges()}}),!0),m=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),g=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:i}=r;return!n||(i.forEach(({$from:n,$to:r})=>{e.doc.nodesBetween(n.pos,r.pos,(e,n)=>{if(e.type.isText)return;let{doc:r,mapping:i}=t,s=r.resolve(i.map(n)),a=r.resolve(i.map(n+e.nodeSize)),l=s.blockRange(a);if(!l)return;let d=(0,o.jP)(l);if(e.type.isTextblock){let{defaultType:e}=s.parent.contentMatchAt(s.index());t.setNodeMarkup(l.start,e)}(d||0===d)&&t.lift(l,d)})}),!0)},y=e=>t=>e(t),v=()=>({state:e,dispatch:t})=>(0,i.Z1)(e,t),b=(e,t)=>({editor:n,tr:r})=>{let{state:o}=n,i=o.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let a=r.mapping.map(t);return r.insert(a,i.content),r.setSelection(new s.U3(r.doc.resolve(Math.max(a-1,0)))),!0},w=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let o=e.selection.$anchor;for(let n=o.depth;n>0;n-=1)if(o.node(n).type===r.type){if(t){let t=o.before(n),r=o.after(n);e.delete(t,r).scrollIntoView()}return!0}return!1};function k(e,t){if("string"==typeof e){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}let x=e=>({tr:t,state:n,dispatch:r})=>{let o=k(e,n.schema),i=t.selection.$anchor;for(let e=i.depth;e>0;e-=1)if(i.node(e).type===o){if(r){let n=i.before(e),r=i.after(e);t.delete(n,r).scrollIntoView()}return!0}return!1},M=e=>({tr:t,dispatch:n})=>{let{from:r,to:o}=e;return n&&t.delete(r,o),!0},S=(e,t,n)=>{var r;return!e.parent.isInline||"left"===n&&e.pos>e.start()||"right"===n&&e.pos<e.end()?e.pos:(r=t.nodes[e.parent.type.name].spec).content&&/^text(\*|\+)/.test(r.content)?"left"===n?e.start()-1:e.end()+1:e.pos},E=()=>({state:e,dispatch:t})=>{if(e.selection.empty)return!1;if(t){let n=e.tr,{ranges:r}=e.selection,o=n.steps.length;r.forEach(t=>{let r,i=n.mapping.slice(o),s=n.doc.resolve(i.map(t.$from.pos)),a=n.doc.resolve(i.map(t.$to.pos)),{from:l,to:d}={from:S(s,r=e.schema,"left"),to:S(a,r,"right")};n.deleteRange(l,d)}),n.selection.empty||n.setSelection(s.U3.near(n.doc.resolve(n.selection.from))),n.scrollIntoView(),t(n)}return!0},C=()=>({commands:e})=>e.keyboardShortcut("Enter"),O=()=>({state:e,dispatch:t})=>(0,i.I$)(e,t);function T(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function P(e,t,n={strict:!0}){let r=Object.keys(t);return!r.length||r.every(r=>n.strict?t[r]===e[r]:T(t[r])?t[r].test(e[r]):t[r]===e[r])}function A(e,t,n={}){return e.find(e=>e.type===t&&P(Object.fromEntries(Object.keys(n).map(t=>[t,e.attrs[t]])),n))}function $(e,t,n={}){return!!A(e,t,n)}function D(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if(r.node&&r.node.marks.some(e=>e.type===t)||(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(e=>e.type===t))return;if(!n){let e=r.node.marks.find(e=>e.type===t);e&&(n=e.attrs)}if(!A([...r.node.marks],t,n))return;let o=r.index,i=e.start()+r.offset,s=o+1,a=i+r.node.nodeSize;for(;o>0&&$([...e.parent.child(o-1).marks],t,n);)o-=1,i-=e.parent.child(o).nodeSize;for(;s<e.parent.childCount&&$([...e.parent.child(s).marks],t,n);)a+=e.parent.child(s).nodeSize,s+=1;return{from:i,to:a}}function j(e,t){if("string"==typeof e){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}let R=(e,t)=>({tr:n,state:r,dispatch:o})=>{let i=j(e,r.schema),{doc:a,selection:l}=n,{$from:d,from:c,to:u}=l;if(o){let e=D(d,i,t);if(e&&e.from<=c&&e.to>=u){let t=s.U3.create(a,e.from,e.to);n.setSelection(t)}}return!0},I=e=>t=>{let n="function"==typeof e?e(t):e;for(let e=0;e<n.length;e+=1)if(n[e](t))return!0;return!1};function N(e){return e instanceof s.U3}function B(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function z(e,t=null){if(!t)return null;let n=s.LN.atStart(e),r=s.LN.atEnd(e);if("start"===t||!0===t)return n;if("end"===t)return r;let o=n.from,i=r.to;return"all"===t?s.U3.create(e,B(0,o,i),B(e.content.size,o,i)):s.U3.create(e,B(t,o,i),B(t,o,i))}function L(){return["Android"].includes(navigator.platform)||/android/i.test(navigator.userAgent)}function F(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}let V=(e=null,t={})=>({editor:n,view:r,tr:o,dispatch:i})=>{t={scrollIntoView:!0,...t};let s=()=>{(F()||L())&&r.dom.focus(),"u">typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!F()&&!L()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{!n.isDestroyed&&(r.focus(),(null==t?void 0:t.scrollIntoView)&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&null===e||!1===e)return!0}catch{return!1}if(i&&null===e&&!N(n.state.selection))return s(),!0;let a=z(o.doc,e)||n.state.selection,l=n.state.selection.eq(a);return i&&(l||o.setSelection(a),l&&o.storedMarks&&o.setStoredMarks(o.storedMarks),s()),!0},_=(e,t)=>n=>e.every((e,r)=>t(e,{...n,index:r})),K=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),U=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){let r=t[n];3===r.nodeType&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):1===r.nodeType&&U(r)}return e};function W(e){if("u"<typeof window)throw Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`;return U(new window.DOMParser().parseFromString(t,"text/html").body)}function H(e){return"function"==typeof(null==e?void 0:e.nodesBetween)}function q(e,t,n){if(H(e))return e;let r="object"==typeof e&&null!==e;n={slice:!0,parseOptions:{},...n};let o="string"==typeof e;if(r)try{if(Array.isArray(e)&&e.length>0)return a.FK.fromArray(e.map(e=>t.nodeFromJSON(e)));let r=t.nodeFromJSON(e);return n.errorOnInvalidContent&&r.check(),r}catch(r){if(n.errorOnInvalidContent)throw Error("[tiptap error]: Invalid JSON content",{cause:r});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",r),q("",t,n)}if(o){if(n.errorOnInvalidContent){let r=!1,o="",i=new a.Sj({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:e=>(r=!0,o="string"==typeof e?e:e.outerHTML,null)}]}})});if(n.slice?a.S4.fromSchema(i).parseSlice(W(e),n.parseOptions):a.S4.fromSchema(i).parse(W(e),n.parseOptions),n.errorOnInvalidContent&&r)throw Error("[tiptap error]: Invalid HTML content",{cause:Error(`Invalid element found: ${o}`)})}let r=a.S4.fromSchema(t);return n.slice?r.parseSlice(W(e),n.parseOptions).content:r.parse(W(e),n.parseOptions)}return q("",t,n)}function J(e){return!("type"in e)}function Z(e,t,n){let r=e.steps.length-1;if(r<t)return;let i=e.steps[r];if(!(i instanceof o.Ln||i instanceof o.Wg))return;let a=e.mapping.maps[r],l=0;a.forEach((e,t,n,r)=>{0===l&&(l=r)}),e.setSelection(s.LN.near(e.doc.resolve(l),n))}let G=(e,t,n)=>({tr:r,dispatch:o,editor:i})=>{if(o){let o,l;n={parseOptions:i.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let d=e=>{i.emit("contentError",{editor:i,error:e,disableCollaboration:()=>{"collaboration"in i.storage&&"object"==typeof i.storage.collaboration&&i.storage.collaboration&&(i.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!i.options.enableContentCheck&&i.options.emitContentError)try{q(t,i.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(e){d(e)}try{var s;o=q(t,i.schema,{parseOptions:c,errorOnInvalidContent:null!=(s=n.errorOnInvalidContent)?s:i.options.enableContentCheck})}catch(e){return d(e),!1}let{from:u,to:p}="number"==typeof e?{from:e,to:e}:{from:e.from,to:e.to},h=!0,f=!0,m=J(o)?o.content:[o];if(m.forEach(e=>{e.check(),h=!!h&&e.isText&&0===e.marks.length,f=!!f&&e.isBlock}),u===p&&f){let{parent:e}=r.doc.resolve(u);!e.isTextblock||e.type.spec.code||e.childCount||(u-=1,p+=1)}if(h)l=Array.isArray(t)?t.map(e=>e.text||"").join(""):H(t)?m.map(e=>{var t;return null!=(t=e.text)?t:""}).join(""):"object"==typeof t&&t&&t.text?t.text:t,r.insertText(l,u,p);else{l=a.FK.from(m);let e=r.doc.resolve(u),t=e.node(),n=0===e.parentOffset,o=t.isText||t.isTextblock,i=t.content.size>0;n&&o&&i&&f&&(u=Math.max(0,u-1)),r.replaceWith(u,p,m)}n.updateSelection&&Z(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:u,text:l}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:u,text:l})}return!0};function Y(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}let Q=(e={})=>({tr:t,dispatch:n,editor:r})=>{let o,i,{pos:s,attrs:a,content:l,updateSelection:d=!0}=e,c=Y((o="number"==typeof s?t.doc.resolve(s):s||t.selection.$from).parent.contentMatchAt(o.index()));if(!c)return!1;let u=Object.keys(c.spec.attrs||{}),p=a?Object.fromEntries(Object.entries(a).filter(([e])=>u.includes(e))):{};if(l){let e=q(l,r.schema);i=c.createAndFill(p,e)}else i=c.createAndFill(p);return!!i&&(n&&(t.insert(o.pos,i),d&&Z(t,t.steps.length-1,-1)),!0)},X=()=>({state:e,dispatch:t})=>(0,i.G2)(e,t),ee=()=>({state:e,dispatch:t})=>(0,i.bh)(e,t),et=()=>({state:e,dispatch:t})=>(0,i.Qv)(e,t),en=()=>({state:e,dispatch:t})=>(0,i.eT)(e,t),er=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,o.N0)(e.doc,e.selection.$from.pos,-1);if(null==r)return!1;return n.join(r,2),t&&t(n),!0}catch{return!1}},eo=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,o.N0)(e.doc,e.selection.$from.pos,1);if(null==r)return!1;return n.join(r,2),t&&t(n),!0}catch{return!1}},ei=()=>({state:e,dispatch:t})=>(0,i.eB)(e,t),es=()=>({state:e,dispatch:t})=>(0,i._G)(e,t);function ea(){return"u">typeof navigator&&/Mac/.test(navigator.platform)}let el=e=>({editor:t,view:n,tr:r,dispatch:o})=>{let i=(function(e){let t,n,r,o,i=e.split(/-(?!$)/),s=i[i.length-1];"Space"===s&&(s=" ");for(let e=0;e<i.length-1;e+=1){let s=i[e];if(/^(cmd|meta|m)$/i.test(s))o=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))n=!0;else if(/^s(hift)?$/i.test(s))r=!0;else if(/^mod$/i.test(s))F()||ea()?o=!0:n=!0;else throw Error(`Unrecognized modifier name: ${s}`)}return t&&(s=`Alt-${s}`),n&&(s=`Ctrl-${s}`),o&&(s=`Meta-${s}`),r&&(s=`Shift-${s}`),s})(e).split(/-(?!$)/),s=i.find(e=>!["Alt","Ctrl","Meta","Shift"].includes(e)),a=new KeyboardEvent("keydown",{key:"Space"===s?" ":s,altKey:i.includes("Alt"),ctrlKey:i.includes("Ctrl"),metaKey:i.includes("Meta"),shiftKey:i.includes("Shift"),bubbles:!0,cancelable:!0}),l=t.captureTransaction(()=>{n.someProp("handleKeyDown",e=>e(n,a))});return null==l||l.steps.forEach(e=>{let t=e.map(r.mapping);t&&o&&r.maybeStep(t)}),!0};function ed(e,t,n={}){let{from:r,to:o,empty:i}=e.selection,s=t?k(t,e.schema):null,a=[];e.doc.nodesBetween(r,o,(e,t)=>{if(e.isText)return;let n=Math.max(r,t),i=Math.min(o,t+e.nodeSize);a.push({node:e,from:n,to:i})});let l=o-r,d=a.filter(e=>!s||s.name===e.node.type.name).filter(e=>P(e.node.attrs,n,{strict:!1}));return i?!!d.length:d.reduce((e,t)=>e+t.to-t.from,0)>=l}let ec=(e,t={})=>({state:n,dispatch:r})=>!!ed(n,k(e,n.schema),t)&&(0,i.yY)(n,r),eu=()=>({state:e,dispatch:t})=>(0,i.iz)(e,t),ep=e=>({state:t,dispatch:n})=>{let r=k(e,t.schema);return(0,l.T2)(r)(t,n)},eh=()=>({state:e,dispatch:t})=>(0,i.pC)(e,t);function ef(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function em(e,t){let n="string"==typeof t?[t]:t;return Object.keys(e).reduce((t,r)=>(n.includes(r)||(t[r]=e[r]),t),{})}let eg=(e,t)=>({tr:n,state:r,dispatch:o})=>{let i=null,s=null,a=ef("string"==typeof e?e:e.name,r.schema);if(!a)return!1;"node"===a&&(i=k(e,r.schema)),"mark"===a&&(s=j(e,r.schema));let l=!1;return n.selection.ranges.forEach(e=>{r.doc.nodesBetween(e.$from.pos,e.$to.pos,(e,r)=>{i&&i===e.type&&(l=!0,o&&n.setNodeMarkup(r,void 0,em(e.attrs,t))),s&&e.marks.length&&e.marks.forEach(i=>{s===i.type&&(l=!0,o&&n.addMark(r,r+e.nodeSize,s.create(em(i.attrs,t))))})})}),l},ey=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),ev=()=>({tr:e,dispatch:t})=>{if(t){let t=new s.i5(e.doc);e.setSelection(t)}return!0},eb=()=>({state:e,dispatch:t})=>(0,i._e)(e,t),ew=()=>({state:e,dispatch:t})=>(0,i.Sd)(e,t),ek=()=>({state:e,dispatch:t})=>(0,i.hy)(e,t),ex=()=>({state:e,dispatch:t})=>(0,i.ec)(e,t),eM=()=>({state:e,dispatch:t})=>(0,i.$f)(e,t);function eS(e,t,n={},r={}){return q(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}let eE=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:o,tr:i,dispatch:s,commands:a})=>{let{doc:l}=i;if("full"!==r.preserveWhitespace){let a=eS(e,o.schema,r,{errorOnInvalidContent:null!=t?t:o.options.enableContentCheck});if(s){let e=J(a)?a.content:[a];i.replaceWith(0,l.content.size,e).setMeta("preventUpdate",!n)}return!0}return s&&i.setMeta("preventUpdate",!n),a.insertContentAt({from:0,to:l.content.size},e,{parseOptions:r,errorOnInvalidContent:null!=t?t:o.options.enableContentCheck})};function eC(e,t){let n=j(t,e.schema),{from:r,to:o,empty:i}=e.selection,s=[];i?(e.storedMarks&&s.push(...e.storedMarks),s.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,o,e=>{s.push(...e.marks)});let a=s.find(e=>e.type.name===n.name);return a?{...a.attrs}:{}}function eO(e,t){let n=new o.dL(e);return t.forEach(e=>{e.steps.forEach(e=>{n.step(e)})}),n}function eT(e,t,n){let r=[];return e.nodesBetween(t.from,t.to,(e,t)=>{n(e)&&r.push({node:e,pos:t})}),r}function eP(e){return t=>(function(e,t){for(let n=e.depth;n>0;n-=1){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}})(t.$from,e)}function eA(e,t,n){return void 0===e.config[t]&&e.parent?eA(e.parent,t,n):"function"==typeof e.config[t]?e.config[t].bind({...n,parent:e.parent?eA(e.parent,t,n):null}):e.config[t]}function e$(e){return e.map(e=>{let t=eA(e,"addExtensions",{name:e.name,options:e.options,storage:e.storage});return t?[e,...e$(t())]:e}).flat(10)}function eD(e,t){let n=a.ZF.fromSchema(t).serializeFragment(e),r=document.implementation.createHTMLDocument().createElement("div");return r.appendChild(n),r.innerHTML}function ej(e){return"function"==typeof e}function eR(e,t,...n){return ej(e)?t?e.bind(t)(...n):e(...n):e}function eI(e){return{baseExtensions:e.filter(e=>"extension"===e.type),nodeExtensions:e.filter(e=>"node"===e.type),markExtensions:e.filter(e=>"mark"===e.type)}}function eN(e){let t=[],{nodeExtensions:n,markExtensions:r}=eI(e),o=[...n,...r],i={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},s=n.filter(e=>"text"!==e.name).map(e=>e.name),a=r.map(e=>e.name),l=[...s,...a];return e.forEach(e=>{let n=eA(e,"addGlobalAttributes",{name:e.name,options:e.options,storage:e.storage,extensions:o});n&&n().forEach(e=>{(Array.isArray(e.types)?e.types:"*"===e.types?l:"nodes"===e.types?s:"marks"===e.types?a:[]).forEach(n=>{Object.entries(e.attributes).forEach(([e,r])=>{t.push({type:n,name:e,attribute:{...i,...r}})})})})}),o.forEach(e=>{let n=eA(e,"addAttributes",{name:e.name,options:e.options,storage:e.storage});n&&Object.entries(n()).forEach(([n,r])=>{let o={...i,...r};"function"==typeof(null==o?void 0:o.default)&&(o.default=o.default()),(null==o?void 0:o.isRequired)&&(null==o?void 0:o.default)===void 0&&delete o.default,t.push({type:e.name,name:n,attribute:o})})}),t}function eB(e){let t=[],n=function(e){let t=[],n="",r=!1,o=!1,i=0,s=e.length;for(let a=0;a<s;a+=1){let s=e[a];if("'"===s&&!o){r=!r,n+=s;continue}if('"'===s&&!r){o=!o,n+=s;continue}if(!r&&!o){if("("===s){i+=1,n+=s;continue}if(")"===s&&i>0){i-=1,n+=s;continue}if(";"===s&&0===i){t.push(n),n="";continue}}n+=s}return n&&t.push(n),t}(e||""),r=n.length;for(let e=0;e<r;e+=1){let r=n[e],o=r.indexOf(":");if(-1===o)continue;let i=r.slice(0,o).trim(),s=r.slice(o+1).trim();i&&s&&t.push([i,s])}return t}function ez(...e){return e.filter(e=>!!e).reduce((e,t)=>{let n={...e};return Object.entries(t).forEach(([e,t])=>{if("__proto__"===e)return void Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0});if(!n[e]){n[e]=t;return}if("class"===e){let r=t?String(t).split(" "):[],o=n[e]?n[e].split(" "):[],i=r.filter(e=>!o.includes(e));n[e]=[...o,...i].join(" ")}else if("style"===e){let r=new Map([...eB(n[e]),...eB(t)]);n[e]=Array.from(r.entries()).map(([e,t])=>`${e}: ${t}`).join("; ")}else n[e]=t}),n},{})}function eL(e,t){return t.filter(t=>t.type===e.type.name).filter(e=>e.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(e.attrs)||{}:{[t.name]:e.attrs[t.name]}).reduce((e,t)=>ez(e,t),{})}function eF(e,t){return"style"in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(!1===r)return!1;let o=t.reduce((e,t)=>{var r;let o=t.attribute.parseHTML?t.attribute.parseHTML(n):"string"!=typeof(r=n.getAttribute(t.name))?r:r.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(r):"true"===r||"false"!==r&&r;return null==o?e:{...e,[t.name]:o}},{});return{...r,...o}}}}function eV(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>!("attrs"===e&&function(e={}){return 0===Object.keys(e).length&&e.constructor===Object}(t))&&null!=t))}function e_(e){var t,n;let r={};return!(null==e||null==(t=e.attribute)?void 0:t.isRequired)&&"default"in((null==e?void 0:e.attribute)||{})&&(r.default=e.attribute.default),(null==e||null==(n=e.attribute)?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function eK(e,t){var n;let r=eN(e),{nodeExtensions:o,markExtensions:i}=eI(e),s=null==(n=o.find(e=>eA(e,"topNode")))?void 0:n.name,l=Object.fromEntries(o.map(n=>{let o=r.filter(e=>e.type===n.name),i={name:n.name,options:n.options,storage:n.storage,editor:t},s=eV({...e.reduce((e,t)=>{let r=eA(t,"extendNodeSchema",i);return{...e,...r?r(n):{}}},{}),content:eR(eA(n,"content",i)),marks:eR(eA(n,"marks",i)),group:eR(eA(n,"group",i)),inline:eR(eA(n,"inline",i)),atom:eR(eA(n,"atom",i)),selectable:eR(eA(n,"selectable",i)),draggable:eR(eA(n,"draggable",i)),code:eR(eA(n,"code",i)),whitespace:eR(eA(n,"whitespace",i)),linebreakReplacement:eR(eA(n,"linebreakReplacement",i)),defining:eR(eA(n,"defining",i)),isolating:eR(eA(n,"isolating",i)),attrs:Object.fromEntries(o.map(e_))}),a=eR(eA(n,"parseHTML",i));a&&(s.parseDOM=a.map(e=>eF(e,o)));let l=eA(n,"renderHTML",i);l&&(s.toDOM=e=>l({node:e,HTMLAttributes:eL(e,o)}));let d=eA(n,"renderText",i);return d&&(s.toText=d),[n.name,s]})),d=Object.fromEntries(i.map(n=>{let o=r.filter(e=>e.type===n.name),i={name:n.name,options:n.options,storage:n.storage,editor:t},s=eV({...e.reduce((e,t)=>{let r=eA(t,"extendMarkSchema",i);return{...e,...r?r(n):{}}},{}),inclusive:eR(eA(n,"inclusive",i)),excludes:eR(eA(n,"excludes",i)),group:eR(eA(n,"group",i)),spanning:eR(eA(n,"spanning",i)),code:eR(eA(n,"code",i)),attrs:Object.fromEntries(o.map(e_))}),a=eR(eA(n,"parseHTML",i));a&&(s.parseDOM=a.map(e=>eF(e,o)));let l=eA(n,"renderHTML",i);return l&&(s.toDOM=e=>l({mark:e,HTMLAttributes:eL(e,o)})),[n.name,s]}));return new a.Sj({topNode:s,nodes:l,marks:d})}function eU(e){return e.sort((e,t)=>{let n=eA(e,"priority")||100,r=eA(t,"priority")||100;return n>r?-1:+(n<r)})}function eW(e){var t;let n=eU(e$(e)),r=Array.from(new Set((t=n.map(e=>e.name)).filter((e,n)=>t.indexOf(e)!==n)));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(e=>`'${e}'`).join(", ")}]. This can lead to issues.`),n}function eH(e,t){return eK(eW(e),t)}function eq(e,t){let n=eH(t);return eD(a.bP.fromJSON(n,e).content,n)}function eJ(e,t){let n=eH(t),r=W(e);return a.S4.fromSchema(n).parse(r).toJSON()}function eZ(e,t,n){let{from:r,to:o}=t,{blockSeparator:i="\n\n",textSerializers:s={}}=n||{},a="";return e.nodesBetween(r,o,(e,n,l,d)=>{e.isBlock&&n>r&&(a+=i);let c=null==s?void 0:s[e.type.name];if(c)return l&&(a+=c({node:e,pos:n,parent:l,index:d,range:t})),!1;if(e.isText){var u;a+=null==e||null==(u=e.text)?void 0:u.slice(Math.max(r,n)-n,o-n)}}),a}function eG(e,t){return eZ(e,{from:0,to:e.content.size},t)}function eY(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}function eQ(e,t,n){let{blockSeparator:r="\n\n",textSerializers:o={}}=n||{},i=eH(t);return eG(a.bP.fromJSON(i,e),{blockSeparator:r,textSerializers:{...eY(i),...o}})}function eX(e,t){let n=ef("string"==typeof t?t:t.name,e.schema);return"node"===n?function(e,t){let n=k(t,e.schema),{from:r,to:o}=e.selection,i=[];e.doc.nodesBetween(r,o,e=>{i.push(e)});let s=i.reverse().find(e=>e.type.name===n.name);return s?{...s.attrs}:{}}(e,t):"mark"===n?eC(e,t):{}}function e0(e){let t,{mapping:n,steps:r}=e,o=[];return n.maps.forEach((e,t)=>{let i=[];if(e.ranges.length)e.forEach((e,t)=>{i.push({from:e,to:t})});else{let{from:e,to:n}=r[t];if(void 0===e||void 0===n)return;i.push({from:e,to:n})}i.forEach(({from:e,to:r})=>{let i=n.slice(t).map(e,-1),s=n.slice(t).map(r),a=n.invert().map(i,-1),l=n.invert().map(s);o.push({oldRange:{from:a,to:l},newRange:{from:i,to:s}})})}),1===(t=function(e,t=JSON.stringify){let n={};return e.filter(e=>{let r=t(e);return!Object.prototype.hasOwnProperty.call(n,r)&&(n[r]=!0)})}(o)).length?t:t.filter((e,n)=>!t.filter((e,t)=>t!==n).some(t=>e.oldRange.from>=t.oldRange.from&&e.oldRange.to<=t.oldRange.to&&e.newRange.from>=t.newRange.from&&e.newRange.to<=t.newRange.to))}function e1(e,t,n){let r=[];return e===t?n.resolve(e).marks().forEach(t=>{let o=D(n.resolve(e),t.type);o&&r.push({mark:t,...o})}):n.nodesBetween(e,t,(e,t)=>{e&&(null==e?void 0:e.nodeSize)!==void 0&&r.push(...e.marks.map(n=>({from:t,to:t+e.nodeSize,mark:n})))}),r}let e2=(e,t,n,r=20)=>{let o=e.doc.resolve(n),i=r,s=null;for(;i>0&&null===s;){let e=o.node(i);(null==e?void 0:e.type.name)===t?s=e:i-=1}return[s,i]},e3=e=>{let t=e.depth-1;if(t<0)return null;let n=e.index(t);return 0===n?null:e.node(t).child(n-1)};function e4(e,t){return t.nodes[e]||t.marks[e]||null}function e9(e,t,n){return Object.fromEntries(Object.entries(n).filter(([n])=>{let r=e.find(e=>e.type===t&&e.name===n);return!!r&&r.attribute.keepOnSplit}))}function e8(e,t,n={}){let{empty:r,ranges:o}=e.selection,i=t?j(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(e=>!i||i.name===e.type.name).find(e=>P(e.attrs,n,{strict:!1}));let s=0,a=[];if(o.forEach(({$from:t,$to:n})=>{let r=t.pos,o=n.pos;e.doc.nodesBetween(r,o,(e,t)=>{if(i&&e.inlineContent&&!e.type.allowsMarkType(i))return!1;if(!e.isText&&!e.marks.length)return;let n=Math.max(r,t),l=Math.min(o,t+e.nodeSize);s+=l-n,a.push(...e.marks.map(e=>({mark:e,from:n,to:l})))})}),0===s)return!1;let l=a.filter(e=>!i||i.name===e.mark.type.name).filter(e=>P(e.mark.attrs,n,{strict:!1})).reduce((e,t)=>e+t.to-t.from,0),d=a.filter(e=>!i||e.mark.type!==i&&e.mark.type.excludes(i)).reduce((e,t)=>e+t.to-t.from,0);return(l>0?l+d:l)>=s}let e7=(e,t)=>{let{$from:n,$to:r,$anchor:o}=e.selection;if(t){let n=eP(e=>e.type.name===t)(e.selection);if(!n)return!1;let r=e.doc.resolve(n.pos+1);return o.pos+1===r.end()}return!(r.parentOffset<r.parent.nodeSize-2)&&n.pos===r.pos},e5=e=>{let{$from:t,$to:n}=e.selection;return!(t.parentOffset>0)&&t.pos===n.pos};function e6(e,t){return Array.isArray(t)?t.some(t=>("string"==typeof t?t:t.name)===e.name):t}function te(e,t){let{nodeExtensions:n}=eI(t),r=n.find(t=>t.name===e);if(!r)return!1;let o=eR(eA(r,"group",{name:r.name,options:r.options,storage:r.storage}));return"string"==typeof o&&o.split(" ").includes("list")}function tt(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){if(n){if("hardBreak"===e.type.name)return!0;if(e.isText){var r;return!/\S/.test(null!=(r=e.text)?r:"")}}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(0===e.content.childCount)return!0;if(t){let r=!0;return e.content.forEach(e=>{!1!==r&&(tt(e,{ignoreWhitespace:n,checkChildren:t})||(r=!1))}),r}return!1}function tn(e){return e instanceof s.nh}var tr=class e{constructor(e){this.position=e}static fromJSON(t){return new e(t.position)}toJSON(){return{position:this.position}}};function to(e,t){let n=t.mapping.mapResult(e.position);return{position:new tr(n.pos),mapResult:n}}function ti(e){return new tr(e)}let ts=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let{selection:i}=n,{empty:s,ranges:a}=i,l=j(e,r.schema);if(o)if(s){let e=eC(r,l);n.addStoredMark(l.create({...e,...t}))}else a.forEach(e=>{let o=e.$from.pos,i=e.$to.pos;r.doc.nodesBetween(o,i,(e,r)=>{let s=Math.max(r,o),a=Math.min(r+e.nodeSize,i);e.marks.find(e=>e.type===l)?e.marks.forEach(e=>{l===e.type&&n.addMark(s,a,l.create({...e.attrs,...t}))}):n.addMark(s,a,l.create(t))})});return function(e,t,n){let{selection:r}=t,o=null;if(N(r)&&(o=r.$cursor),o){var i;let t=null!=(i=e.storedMarks)?i:o.marks();return o.parent.type.allowsMarkType(n)&&(!!n.isInSet(t)||!t.some(e=>e.type.excludes(n)))}let{ranges:s}=r;return s.some(({$from:t,$to:r})=>{let o=0===t.depth&&e.doc.inlineContent&&e.doc.type.allowsMarkType(n);return e.doc.nodesBetween(t.pos,r.pos,(e,t,r)=>{if(o)return!1;if(e.isInline){let t=!r||r.type.allowsMarkType(n),i=!!n.isInSet(e.marks)||!e.marks.some(e=>e.type.excludes(n));o=t&&i}return!o}),o})}(r,n,l)},ta=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),tl=(e,t={})=>({state:n,dispatch:r,chain:o})=>{let s,a=k(e,n.schema);return(n.selection.$anchor.sameParent(n.selection.$head)&&(s=n.selection.$anchor.parent.attrs),a.isTextblock)?o().command(({commands:e})=>!!(0,i.y_)(a,{...s,...t})(n)||e.clearNodes()).command(({state:e})=>(0,i.y_)(a,{...s,...t})(e,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},td=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,r=B(e,0,n.content.size),o=s.nh.create(n,r);t.setSelection(o)}return!0},tc=(e,t)=>({tr:n,state:r,dispatch:o})=>{let i,s,{selection:a}=r;return"number"==typeof t?(i=t,s=t):t&&"from"in t&&"to"in t?(i=t.from,s=t.to):(i=a.from,s=a.to),o&&n.doc.nodesBetween(i,s,(t,r)=>{t.isText||n.setNodeMarkup(r,void 0,{...t.attrs,dir:e})}),!0},tu=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,{from:r,to:o}="number"==typeof e?{from:e,to:e}:e,i=s.U3.atStart(n).from,a=s.U3.atEnd(n).to,l=B(r,i,a),d=B(o,i,a),c=s.U3.create(n,l,d);t.setSelection(c)}return!0},tp=e=>({state:t,dispatch:n})=>{let r=k(e,t.schema);return(0,l.$B)(r)(t,n)};function th(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(e=>null==t?void 0:t.includes(e.type.name));e.tr.ensureMarks(r)}}let tf=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:i})=>{let{selection:a,doc:l}=t,{$from:d,$to:c}=a,u=e9(i.extensionManager.attributes,d.node().type.name,d.node().attrs);if(a instanceof s.nh&&a.node.isBlock)return!!d.parentOffset&&!!(0,o.zy)(l,d.pos)&&(r&&(e&&th(n,i.extensionManager.splittableMarks),t.split(d.pos).scrollIntoView()),!0);if(!d.parent.isBlock)return!1;let p=c.parentOffset===c.parent.content.size,h=0===d.depth?void 0:Y(d.node(-1).contentMatchAt(d.indexAfter(-1))),f=p&&h?[{type:h,attrs:u}]:void 0,m=(0,o.zy)(t.doc,t.mapping.map(d.pos),1,f);if(!f&&!m&&(0,o.zy)(t.doc,t.mapping.map(d.pos),1,h?[{type:h}]:void 0)&&(m=!0,f=h?[{type:h,attrs:u}]:void 0),r){if(m&&(a instanceof s.U3&&t.deleteSelection(),t.split(t.mapping.map(d.pos),1,f),h&&!p&&!d.parentOffset&&d.parent.type!==h)){let e=t.mapping.map(d.before()),n=t.doc.resolve(e);d.node(-1).canReplaceWith(n.index(),n.index()+1,h)&&t.setNodeMarkup(t.mapping.map(d.before()),h)}e&&th(n,i.extensionManager.splittableMarks),t.scrollIntoView()}return m},tm=(e,t={})=>({tr:n,state:r,dispatch:i,editor:l})=>{let d=k(e,r.schema),{$from:c,$to:u}=r.selection,p=r.selection.node;if(p&&p.isBlock||c.depth<2||!c.sameParent(u))return!1;let h=c.node(-1);if(h.type!==d)return!1;let f=l.extensionManager.attributes;if(0===c.parent.content.size&&c.node(-1).childCount===c.indexAfter(-1)){if(2===c.depth||c.node(-3).type!==d||c.index(-2)!==c.node(-2).childCount-1)return!1;if(i){var m;let e=a.FK.empty,r=c.index(-1)?1:c.index(-2)?2:3;for(let t=c.depth-r;t>=c.depth-3;t-=1)e=a.FK.from(c.node(t).copy(e));let o=c.indexAfter(-1)<c.node(-2).childCount?1:c.indexAfter(-2)<c.node(-3).childCount?2:3,i={...e9(f,c.node().type.name,c.node().attrs),...t},l=(null==(m=d.contentMatch.defaultType)?void 0:m.createAndFill(i))||void 0;e=e.append(a.FK.from(d.createAndFill(null,l)||void 0));let u=c.before(c.depth-(r-1));n.replace(u,c.after(-o),new a.Ji(e,4-r,0));let p=-1;n.doc.nodesBetween(u,n.doc.content.size,(e,t)=>{if(p>-1)return!1;e.isTextblock&&0===e.content.size&&(p=t+1)}),p>-1&&n.setSelection(s.U3.near(n.doc.resolve(p))),n.scrollIntoView()}return!0}let g=u.pos===c.end()?h.contentMatchAt(0).defaultType:null,y={...e9(f,h.type.name,h.attrs),...t},v={...e9(f,c.node().type.name,c.node().attrs),...t};n.delete(c.pos,u.pos);let b=g?[{type:d,attrs:y},{type:g,attrs:v}]:[{type:d,attrs:y}];if(!(0,o.zy)(n.doc,c.pos,2))return!1;if(i){let{selection:e,storedMarks:t}=r,{splittableMarks:o}=l.extensionManager,s=t||e.$to.parentOffset&&e.$from.marks();if(n.split(c.pos,2,b).scrollIntoView(),!s||!i)return!0;let a=s.filter(e=>o.includes(e.type.name));n.ensureMarks(a)}return!0};function tg(e){return e&&"1"!==e?e:null}let ty=(e,t)=>{var n,r;let i=eP(e=>e.type===t)(e.selection);if(!i)return!0;let s=e.doc.resolve(Math.max(0,i.pos-1)).before(i.depth);if(void 0===s)return!0;let a=e.doc.nodeAt(s);return!(i.node.type===(null==a?void 0:a.type)&&(0,o.n9)(e.doc,i.pos))||(n=i.node.attrs.type,r=null==a?void 0:a.attrs.type,tg(n)!==tg(r)||(e.join(i.pos),!0))},tv=(e,t)=>{var n,r;let i=eP(e=>e.type===t)(e.selection);if(!i)return!0;let s=e.doc.resolve(i.start).after(i.depth);if(void 0===s)return!0;let a=e.doc.nodeAt(s);return!(i.node.type===(null==a?void 0:a.type)&&(0,o.n9)(e.doc,s))||(n=i.node.attrs.type,r=null==a?void 0:a.attrs.type,tg(n)!==tg(r)||(e.join(s),!0))},tb=(e,t,n,r={})=>({editor:o,tr:i,state:a,dispatch:l,chain:d,commands:c,can:u})=>{let{extensions:p,splittableMarks:h}=o.extensionManager,f=k(e,a.schema),m=k(t,a.schema),{selection:g,storedMarks:y}=a,{$from:v,$to:b}=g,w=v.blockRange(b),x=y||g.$to.parentOffset&&g.$from.marks();if(!w)return!1;let M=eP(e=>te(e.type.name,p))(g),S=0===g.from&&g.to===a.doc.content.size,E=a.doc.content.content,C=1===E.length?E[0]:null,O=S&&C&&te(C.type.name,p)?{node:C,pos:0,depth:0}:null,T=null!=M?M:O,P=!!M&&w.depth>=1&&w.depth-M.depth<=1,A=!!O;if((P||A)&&T){if(T.node.type===f)return S&&A?d().command(({tr:e,dispatch:t})=>{let n=function(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),o=t.resolve(n.nodeSize-1);return s.U3.between(r,o)}(e);return!!n&&(e.setSelection(n),t&&t(e),!0)}).liftListItem(m).run():c.liftListItem(m);if(te(T.node.type.name,p)&&f.validContent(T.node.content))return d().command(()=>(i.setNodeMarkup(T.pos,f),!0)).command(()=>ty(i,f)).command(()=>tv(i,f)).run()}return n&&x&&l?d().command(()=>{let e=u().wrapInList(f,r),t=x.filter(e=>h.includes(e.type.name));return i.ensureMarks(t),!!e||c.clearNodes()}).wrapInList(f,r).command(()=>ty(i,f)).command(()=>tv(i,f)).run():d().command(()=>!!u().wrapInList(f,r)||c.clearNodes()).wrapInList(f,r).command(()=>ty(i,f)).command(()=>tv(i,f)).run()},tw=(e,t={},n={})=>({state:r,commands:o})=>{let{extendEmptyMarkRange:i=!1}=n,s=j(e,r.schema);return e8(r,s,t)?o.unsetMark(s,{extendEmptyMarkRange:i}):o.setMark(s,t)},tk=(e,t,n={})=>({state:r,commands:o})=>{let i,s=k(e,r.schema),a=k(t,r.schema),l=ed(r,s,n);return(r.selection.$anchor.sameParent(r.selection.$head)&&(i=r.selection.$anchor.parent.attrs),l)?o.setNode(a,i):o.setNode(s,{...i,...n})},tx=(e,t={})=>({state:n,commands:r})=>{let o=k(e,n.schema);return ed(n,o,t)?r.lift(o):r.wrapIn(o,t)},tM=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let o,i=n[r];if(i.spec.isInputRules&&(o=i.getState(e))){if(t){let t=e.tr,n=o.transform;for(let e=n.steps.length-1;e>=0;e-=1)t.step(n.steps[e].invert(n.docs[e]));if(o.text){let n=t.doc.resolve(o.from).marks();t.replaceWith(o.from,o.to,e.schema.text(o.text,n))}else t.delete(o.from,o.to)}return!0}}return!1},tS=(e={})=>({tr:t,dispatch:n,editor:r})=>{let{ignoreClearable:o=!1}=e,{selection:i}=t,{empty:s,ranges:a}=i;if(s)return!0;let{nonClearableMarks:l}=r.extensionManager;if(n){let e=Object.values(r.schema.marks).filter(e=>o||!l.includes(e.name));a.forEach(n=>{for(let r of e)t.removeMark(n.$from.pos,n.$to.pos,r)})}return!0},tE=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let{extendEmptyMarkRange:i=!1}=t,{selection:s}=n,a=j(e,r.schema),{$from:l,empty:d,ranges:c}=s;if(!o)return!0;if(d&&i){var u;let{from:e,to:t}=s,r=D(l,a,null==(u=l.marks().find(e=>e.type===a))?void 0:u.attrs);r&&(e=r.from,t=r.to),n.removeMark(e,t,a)}else c.forEach(e=>{n.removeMark(e.$from.pos,e.$to.pos,a)});return n.removeStoredMark(a),!0},tC=e=>({tr:t,state:n,dispatch:r})=>{let o,i,{selection:s}=n;return"number"==typeof e?(o=e,i=e):e&&"from"in e&&"to"in e?(o=e.from,i=e.to):(o=s.from,i=s.to),r&&t.doc.nodesBetween(o,i,(e,n)=>{if(e.isText)return;let r={...e.attrs};delete r.dir,t.setNodeMarkup(n,void 0,r)}),!0},tO=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let i=null,s=null,a=ef("string"==typeof e?e:e.name,r.schema);if(!a)return!1;"node"===a&&(i=k(e,r.schema)),"mark"===a&&(s=j(e,r.schema));let l=!1;return n.selection.ranges.forEach(e=>{let a,d,c,u,p=e.$from.pos,h=e.$to.pos;n.selection.empty?r.doc.nodesBetween(p,h,(e,t)=>{i&&i===e.type&&(l=!0,c=Math.max(t,p),u=Math.min(t+e.nodeSize,h),a=t,d=e)}):r.doc.nodesBetween(p,h,(e,r)=>{r<p&&i&&i===e.type&&(l=!0,c=Math.max(r,p),u=Math.min(r+e.nodeSize,h),a=r,d=e),r>=p&&r<=h&&(i&&i===e.type&&(l=!0,o&&n.setNodeMarkup(r,void 0,{...e.attrs,...t})),s&&e.marks.length&&e.marks.forEach(i=>{if(s===i.type&&(l=!0,o)){let o=Math.max(r,p),a=Math.min(r+e.nodeSize,h);n.addMark(o,a,s.create({...i.attrs,...t}))}}))}),d&&(void 0!==a&&o&&n.setNodeMarkup(a,void 0,{...d.attrs,...t}),s&&d.marks.length&&d.marks.forEach(e=>{s===e.type&&o&&n.addMark(c,u,s.create({...e.attrs,...t}))}))}),l},tT=new s.hs("__tiptap_decorations__"),tP=e=>({tr:t,dispatch:n})=>(n&&t.setMeta(tT,{type:"force",name:e}),!0),tA=(e,t={})=>({state:n,dispatch:r})=>{let o=k(e,n.schema);return(0,i.Im)(o,t)(n,r)},t$=(e,t={})=>({state:n,dispatch:r})=>{let o=k(e,n.schema);return(0,l.Sd)(o,t)(n,r)};var tD=(0,r.t)({blur:()=>f,clearContent:()=>m,clearNodes:()=>g,command:()=>y,createParagraphNear:()=>v,cut:()=>b,deleteCurrentNode:()=>w,deleteNode:()=>x,deleteRange:()=>M,deleteSelection:()=>E,enter:()=>C,exitCode:()=>O,extendMarkRange:()=>R,first:()=>I,focus:()=>V,forEach:()=>_,insertContent:()=>K,insertContentAt:()=>G,insertDefaultBlock:()=>Q,joinBackward:()=>et,joinDown:()=>ee,joinForward:()=>en,joinItemBackward:()=>er,joinItemForward:()=>eo,joinTextblockBackward:()=>ei,joinTextblockForward:()=>es,joinUp:()=>X,keyboardShortcut:()=>el,lift:()=>ec,liftEmptyBlock:()=>eu,liftListItem:()=>ep,newlineInCode:()=>eh,resetAttributes:()=>eg,scrollIntoView:()=>ey,selectAll:()=>ev,selectNodeBackward:()=>eb,selectNodeForward:()=>ew,selectParentNode:()=>ek,selectTextblockEnd:()=>ex,selectTextblockStart:()=>eM,setContent:()=>eE,setMark:()=>ts,setMeta:()=>ta,setNode:()=>tl,setNodeSelection:()=>td,setTextDirection:()=>tc,setTextSelection:()=>tu,sinkListItem:()=>tp,splitBlock:()=>tf,splitListItem:()=>tm,toggleList:()=>tb,toggleMark:()=>tw,toggleNode:()=>tk,toggleWrap:()=>tx,undoInputRule:()=>tM,unsetAllMarks:()=>tS,unsetMark:()=>tE,unsetTextDirection:()=>tC,updateAttributes:()=>tO,updateDecorations:()=>tP,wrapIn:()=>tA,wrapInList:()=>t$});let tj=new WeakMap;var tR=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){let n=this.callbacks[e];return n&&n.forEach(e=>e.apply(this,t)),this}off(e,t){let n=this.callbacks[e];return n&&(t?this.callbacks[e]=n.filter(e=>e!==t):delete this.callbacks[e]),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n)}removeAllListeners(){this.callbacks={}}};let tI=void 0!==u&&!1;function tN(e,t){let n=[],r=new Set;for(let o of e)"widget"===o.kind&&"widget"===o.kind&&r.add(o.key),n.push(o.toPMDecoration(t));return{decorations:n,widgetKeys:r}}function tB({position:e,from:t,to:n,docSize:r}){return!(e<t)&&(e<n||e===n&&n===r)}function tz(e){var t;let n=null==(t=e.spec)?void 0:t.key;return"string"==typeof n?n:void 0}function tL(e){return"attr"===e.jsonID}function tF(e,t,n,r){return e.map(t,n,{onRemove:e=>{let t=null==e?void 0:e.key;"string"==typeof t&&r.delete(t)}})}function tV(e,t){let n=Object.values(t).flatMap(e=>e.find());return d.zF.create(e,n)}function t_(e){let t=new Set;for(let n of Object.values(e))for(let e of n)t.add(e);return t}let tK=new Set;var tU=class{constructor(e){this.warnedWidgetKeys=new Set,this.warnedOutOfRangeExtensions=new Set,this.handleBeforeTransaction=({nextState:e})=>{let t=tT.getState(e);t&&this.warnDuplicateWidgetKeys(t)},this.editor=e.editor,this.entries=this.resolveEntries(e.entries),this.entries.forEach(({name:e,spec:t})=>(function(e,t){var n;switch(null!=(n=t.update)?n:"document"){case"document":if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" provides createInRange() but does not use the "changedRanges" decoration update strategy.`);return;case"changedRanges":if(!t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "changedRanges" decoration update strategy but does not provide createInRange().`);return;case"manual":if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "manual" decoration update strategy, which is not compatible with createInRange(). createInRange() requires the "changedRanges" strategy.`);if(t.shouldUpdate)throw Error(`[tiptap error]: Extension "${e}" cannot combine the "manual" decoration update strategy with shouldUpdate().`);return;default:throw Error(`[tiptap error]: Extension "${e}" uses an unknown decoration update strategy. Expected "document", "changedRanges", or "manual".`)}})(e,t)),this.plugin=this.entries.length>0?this.createPlugin():null,this.editor.on("beforeTransaction",this.handleBeforeTransaction)}destroy(){this.editor.off("beforeTransaction",this.handleBeforeTransaction)}liveWidgetKeys(){var e,t;return null!=(e=null==(t=tT.getState(this.editor.state))?void 0:t.widgetKeys)?e:tK}get mountedView(){return this.editor.isDestroyed?null:this.editor.view}resolveEntries(e){let t=[];for(let{name:n,addDecorations:r}of e){let e=r();e&&t.push({name:n,spec:e})}return t}createPlugin(){let{editor:e,entries:t}=this;return new s.k_({key:tT,state:{init:(e,n)=>{let r={},o={};for(let{name:e,spec:i}of t){let{set:t,widgetKeys:s}=this.buildFullSet(e,i,n);r[e]=t,o[e]=s}let i={decorationSetsByExtension:r,widgetKeysByExtension:o,mergedDecorationSet:this.buildMergedSet(n.doc,r),widgetKeys:t_(o)};return this.warnDuplicateWidgetKeys(i),i},apply:(n,r,o,i)=>{let s=n.getMeta(tT),a=(null==s?void 0:s.type)==="force"&&!s.name,l=(null==s?void 0:s.type)==="force"?s.name:void 0,c={},u={},p=new Set;return(!function(e,t){var n,r;tj.set(e,(null!=(n=tj.get(e))?n:0)+1);try{return t()}finally{let t=(null!=(r=tj.get(e))?r:1)-1;t>0?tj.set(e,t):tj.delete(e)}}(e,()=>{for(let{name:h,spec:f}of t){var s;let t=a||l===h;if(s={editor:e,tr:n,oldState:o,newState:i},t||"manual"!==f.update&&(f.shouldUpdate?f.shouldUpdate(s):s.tr.docChanged))if("changedRanges"===f.update&&n.docChanged&&!t){let e=this.applyChangedRangesRecompute(h,f,r,n,i);c[h]=e.set,u[h]=e.widgetKeys,p.add(h)}else{let{set:e,widgetKeys:t}=this.buildFullSet(h,f,i);c[h]=e,u[h]=t,p.add(h)}else{let e=function(e,t,n){var r,o;let i=null!=(r=t.decorationSetsByExtension[e])?r:d.zF.empty,s=new Set(null!=(o=t.widgetKeysByExtension[e])?o:[]);return{set:tF(i,n.mapping,n.doc,s),widgetKeys:s}}(h,r,n);c[h]=e.set,u[h]=e.widgetKeys}}}),0!==p.size||n.docChanged)?{decorationSetsByExtension:c,widgetKeysByExtension:u,mergedDecorationSet:this.mergeAfterApply({entries:t,previous:r,tr:n,decorationSetsByExtension:c,recomputedNames:p}),widgetKeys:t_(u)}:r}},props:{decorations(e){var t,n;return null!=(t=null==(n=tT.getState(e))?void 0:n.mergedDecorationSet)?t:d.zF.empty}}})}applyChangedRangesRecompute(e,t,n,r,o){let i=function(e,t){if(e.steps.some(e=>{let t;return t=!1,e.getMap().forEach(()=>{t=!0}),!(t||tL(e))&&("number"!=typeof e.from||"number"!=typeof e.to)}))return{type:"full"};let n=e0(e).map(({newRange:e})=>e);e.steps.forEach((t,r)=>{if(!tL(t))return;let o=e.mapping.slice(r);n.push({from:o.map(t.pos,-1),to:o.map(t.pos+1)})});let r=[];for(let e of n){let n=function(e,t){let n=null,r=0,o=0;for(let i=0;i<e.childCount&&!(o>t.to);i+=1){let s=o+e.child(i).nodeSize;s>=t.from&&(null===n&&(n=o),r=s),o=s}return null===n?null:{from:n,to:r}}(t,e);n&&r.push(n)}r.sort((e,t)=>e.from-t.from);let o=[];for(let e of r){let t=o[o.length-1];t&&e.from<=t.to?t.to=Math.max(t.to,e.to):o.push({...e})}return{type:"ranges",ranges:o}}(r,o.doc);return"full"===i.type?this.buildFullSet(e,t,o):this.rebuildRanges(e,t,n,r,o,i.ranges)}rebuildRanges(e,t,n,r,o,i){var s,a;let l=null!=(s=n.decorationSetsByExtension[e])?s:d.zF.empty,c=new Set(null!=(a=n.widgetKeysByExtension[e])?a:[]),u=tF(l,r.mapping,r.doc,c),p=o.doc.content.size;for(let{from:n,to:r}of i){let i=u.find(n,r).filter(e=>tB({position:e.from,from:n,to:r,docSize:p}));for(let e of i){let t=tz(e);t&&c.delete(t)}u=u.remove(i);let{decorations:s,widgetKeys:a}=tN(function({decorations:e,from:t,to:n,docSize:r,extensionName:o,warnedExtensions:i}){return e.filter(e=>!!tB({position:e.anchor,from:t,to:n,docSize:r})||e.anchor!==n&&(i.has(o)||(i.add(o),console.warn(`[tiptap warn]: Extension "${o}" returned a decoration outside the requested range [${t}, ${n}). It was ignored.`)),!1))}({decorations:this.runCreate(e,"createInRange",()=>t.createInRange({editor:this.editor,state:o,view:this.mountedView,from:n,to:r})),from:n,to:r,docSize:p,extensionName:e,warnedExtensions:this.warnedOutOfRangeExtensions}),e);for(let e of(u=u.add(o.doc,s),a))c.add(e)}return{set:u,widgetKeys:c}}buildFullSet(e,t,n){let r=this.runCreate(e,"create",()=>t.create({editor:this.editor,state:n,view:this.mountedView}));return function(e,t,n){let{decorations:r,widgetKeys:o}=tN(t,n);return{set:d.zF.create(e,r),widgetKeys:o}}(n.doc,r,e)}runCreate(e,t,n){try{return n()}catch(n){return console.error(`[tiptap error]: Extension "${e}" threw in \`addDecorations().${t}()\`. Its decorations were dropped for this update.`,n),[]}}warnDuplicateWidgetKeys(e){if(!tI)return;if(0===e.widgetKeys.size)return void this.warnedWidgetKeys.clear();let t=function(e){let t=new Map,n=new Map;for(let s of e.find()){var r,o,i;let e=tz(s);if(!e)continue;let a=null!=(r=s.spec.extensionName)?r:"unknown",l=null!=(o=t.get(e))?o:new Set;l.add(a),t.set(e,l),n.set(e,(null!=(i=n.get(e))?i:0)+1)}return Array.from(t,([e,t])=>({key:e,extensions:t})).filter(({key:e})=>{var t;return(null!=(t=n.get(e))?t:0)>1})}(e.mergedDecorationSet),n=new Set(t.map(({key:e})=>e));for(let{key:e,extensions:n}of t){if(this.warnedWidgetKeys.has(e))continue;let t=Array.from(n).map(e=>`"${e}"`).join(", ");console.warn(`[tiptap warn]: Duplicate widget decoration key "${e}" in extension${1===n.size?"":"s"} ${t}. Widget decoration keys must be globally unique, otherwise ProseMirror misplaces the widget DOM. Use a stable, unique key (e.g. \`comment-\${id}\`).`)}this.warnedWidgetKeys=n}buildMergedSet(e,t){let n=Object.keys(t);return 1===n.length?t[n[0]]:tV(e,t)}mergeAfterApply({entries:e,previous:t,tr:n,decorationSetsByExtension:r,recomputedNames:o}){return 1===e.length?r[e[0].name]:0===o.size?t.mergedDecorationSet.map(n.mapping,n.doc):tV(n.doc,r)}};function tW(e,t){let{selection:n}=e,{$from:r}=n;if(n instanceof s.nh){let e=r.index();return r.parent.canReplaceWith(e,e+1,t)}let o=r.depth;for(;o>=0;){let e=r.index(o);if(r.node(o).contentMatchAt(e).matchType(t))return!0;o-=1}return!1}function tH(e,t){let n=e.getAttribute("style");if(!n)return null;let r=n.split(";").map(e=>e.trim()).filter(Boolean),o=t.toLowerCase();for(let e=r.length-1;e>=0;e-=1){let t=r[e],n=t.indexOf(":");if(-1!==n&&t.slice(0,n).trim().toLowerCase()===o)return t.slice(n+1).trim()}return null}function tq(e){return"Object"===Object.prototype.toString.call(e).slice(8,-1)&&e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function tJ(e,t,n){let r=e.split("\n"),o=[],i="",s=0,a=t.baseIndentSize||2;for(;s<r.length;){let e,c=r[s],u=c.match(t.itemPattern);if(!u)if(o.length>0)break;else{if(""!==c.trim())return;s+=1,i=`${i}${c}
|
|
2
|
+
`;continue}let p=t.extractItemData(u),{indentLevel:h,mainContent:f}=p;i=`${i}${c}
|
|
3
|
+
`;let m=[f];for(s+=1;s<r.length;){var l,d;let e=r[s];if(""===e.trim()){let t=r.slice(s+1).findIndex(e=>""!==e.trim());if(-1===t)break;if(((null==(d=r[s+1+t].match(/^(\s*)/))||null==(d=d[1])?void 0:d.length)||0)>h){m.push(e),i=`${i}${e}
|
|
4
|
+
`,s+=1;continue}break}if(((null==(l=e.match(/^(\s*)/))||null==(l=l[1])?void 0:l.length)||0)>h)m.push(e),i=`${i}${e}
|
|
5
|
+
`,s+=1;else break}let g=m.slice(1);if(g.length>0){let r=g.map(e=>e.slice(h+a)).join("\n");r.trim()&&(e=t.customNestedParser?t.customNestedParser(r):n.blockTokens(r))}let y=t.createToken(p,e);o.push(y)}if(0!==o.length)return{items:o,raw:i}}function tZ(e,t,n,r){if(!e||!Array.isArray(e.content))return"";let o="function"==typeof n?n(r):n,[i,...s]=e.content,a=`${o}${t.renderChildren([i])}`;return s&&s.length>0&&s.forEach((e,n)=>{var r,o;let i=null!=(r=null==(o=t.renderChild)?void 0:o.call(t,e,n+1))?r:t.renderChildren([e]);if(null!=i){let n=i.split("\n").map(e=>e?t.indent(e):t.indent("")).join("\n");a+="paragraph"===e.type?`
|
|
6
|
+
|
|
7
|
+
${n}`:`
|
|
8
|
+
${n}`}}),a}var tG=class{constructor(e){var t;this.find=e.find,this.handler=e.handler,this.undoable=null==(t=e.undoable)||t}};function tY(e){var t;let{editor:n,from:r,to:o,text:i,rules:s,plugin:a}=e,{view:l}=n;if(l.composing)return!1;let d=l.state.doc.resolve(r);if(d.parent.type.spec.code||(null==(t=d.nodeBefore||d.nodeAfter)?void 0:t.marks.find(e=>e.type.spec.code)))return!1;let c=!1,u=((e,t=500)=>{let n="",r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(e,t,o,i)=>{var s,a;let l=(null==(s=(a=e.type.spec).toText)?void 0:s.call(a,{node:e,pos:t,parent:o,index:i}))||e.textContent||"%leaf%";n+=e.isAtom&&!e.isText?l:l.slice(0,Math.max(0,r-t))}),n})(d)+i;return s.forEach(e=>{if(c)return;let t=((e,t)=>{if(T(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r})(u,e.find);if(!t)return;let s=t[0].length-i.length;if(s>0){let e=d.parentOffset-s;if(e<0||d.parent.textBetween(e,d.parentOffset)!==t[0].slice(0,s))return}let f=l.state.tr,m=p({state:l.state,transaction:f}),g={from:r-(t[0].length-i.length),to:o},{commands:y,chain:v,can:b}=new h({editor:n,state:m});null!==e.handler({state:m,range:g,match:t,commands:y,chain:v,can:b})&&f.steps.length&&(e.undoable&&f.setMeta(a,{transform:f,from:r,to:o,text:i}),l.dispatch(f),c=!0)}),c}var tQ=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...eR(eA(this,"addOptions",{name:this.name}))}}get storage(){return{...eR(eA(this,"addStorage",{name:this.name,options:this.options}))}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>(function e(t,n){let r={...t};return tq(t)&&tq(n)&&Object.keys(n).forEach(o=>{tq(n[o])&&tq(t[o])?r[o]=e(t[o],n[o]):r[o]=n[o]}),r})(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},tX=class e extends tQ{constructor(...e){super(...e),this.type="mark"}static create(t={}){return new e("function"==typeof t?t():t)}static handleExit({editor:e,mark:t}){let{tr:n}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){let o=r.marks();if(!o.find(e=>(null==e?void 0:e.type.name)===t.name))return!1;let i=o.find(e=>(null==e?void 0:e.type.name)===t.name);return i&&n.removeStoredMark(i),n.insertText(" ",r.pos),e.view.dispatch(n),!0}return!1}configure(e){return super.configure(e)}extend(e){let t="function"==typeof e?e():e;return super.extend(t)}},t0=class{constructor(e){this.find=e.find,this.handler=e.handler}};let t1=null;var t2=class{constructor(e,t){this.splittableMarks=[],this.nonClearableMarks=[],this.decorationManager=null,this.editor=t,this.baseExtensions=e,this.extensions=eW(e),this.schema=eK(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n=eA(t,"addCommands",{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:e4(t.name,this.schema)});return n?{...e,...n()}:e},{})}get plugins(){let{editor:e}=this,t=eU([...this.extensions].reverse()).flatMap(t=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:e4(t.name,this.schema)},r=[],o=eA(t,"addKeyboardShortcuts",n),i={};if("mark"===t.type&&eA(t,"exitable",n)&&(i.ArrowRight=()=>tX.handleExit({editor:e,mark:t})),o){let t=Object.fromEntries(Object.entries(o()).map(([t,n])=>[t,()=>n({editor:e})]));i={...i,...t}}let l=(0,c.w)(i);r.push(l);let d=eA(t,"addInputRules",n);if(e6(t,e.options.enableInputRules)&&d){let t=d();if(t&&t.length){let n=function(e){let{editor:t,rules:n}=e,r=new s.k_({state:{init:()=>null,apply(e,o,i){let s=e.getMeta(r);if(s)return s;let l=e.getMeta("applyInputRules");return l&&setTimeout(()=>{let{text:e}=l;"string"==typeof e||(e=eD(a.FK.from(e),i.schema));let{from:o}=l,s=o+e.length;tY({editor:t,from:o,to:s,text:e,rules:n,plugin:r})}),e.selectionSet||e.docChanged?null:o}},props:{handleTextInput:(e,o,i,s)=>tY({editor:t,from:o,to:i,text:s,rules:n,plugin:r}),handleDOMEvents:{compositionend:e=>(setTimeout(()=>{let{$cursor:o}=e.state.selection;o&&tY({editor:t,from:o.pos,to:o.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(e,o){if("Enter"!==o.key)return!1;let{$cursor:i}=e.state.selection;return!!i&&tY({editor:t,from:i.pos,to:i.pos,text:"\n",rules:n,plugin:r})}},isInputRules:!0});return r}({editor:e,rules:t}),o=Array.isArray(n)?n:[n];r.push(...o)}}let u=eA(t,"addPasteRules",n);if(e6(t,e.options.enablePasteRules)&&u){let t=u();if(t&&t.length){let n=function(e){let t,{editor:n,rules:r}=e,o=null,i=!1,l=!1,d="u">typeof ClipboardEvent?new ClipboardEvent("paste"):null;try{t="u">typeof DragEvent?new DragEvent("drop"):null}catch{t=null}let c=({state:e,from:r,to:o,rule:i,pasteEvt:s})=>{let a=e.tr;if(function(e){let{editor:t,state:n,from:r,to:o,rule:i,pasteEvent:s,dropEvent:a}=e,{commands:l,chain:d,can:c}=new h({editor:t,state:n}),u=[];return n.doc.nodesBetween(r,o,(e,t)=>{var p,h,f,m;if((null==(p=e.type)||null==(p=p.spec)?void 0:p.code)||!(e.isText||e.isTextblock||e.isInline))return;let g=null!=(h=null!=(f=null==(m=e.content)?void 0:m.size)?f:e.nodeSize)?h:0,y=Math.max(r,t),v=Math.min(o,t+g);y>=v||((e,t,n)=>{if(T(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(t=>{let n=[t.text];return n.index=t.index,n.input=e,n.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),n.push(t.replaceWith)),n}):[]})(e.isText?e.text||"":e.textBetween(y-t,v-t,void 0,""),i.find,s).forEach(e=>{if(void 0===e.index)return;let t=y+e.index+1,r=t+e[0].length,o={from:n.tr.mapping.map(t),to:n.tr.mapping.map(r)},p=i.handler({state:n,range:o,match:e,commands:l,chain:d,can:c,pasteEvent:s,dropEvent:a});u.push(p)})}),u.every(e=>null!==e)}({editor:n,state:p({state:e,transaction:a}),from:Math.max(r-1,0),to:o.b-1,rule:i,pasteEvent:s,dropEvent:t})&&a.steps.length){try{t="u">typeof DragEvent?new DragEvent("drop"):null}catch{t=null}return d="u">typeof ClipboardEvent?new ClipboardEvent("paste"):null,a}};return r.map(e=>new s.k_({view(e){let t=t=>{var r;(o=(null==(r=e.dom.parentElement)?void 0:r.contains(t.target))?e.dom.parentElement:null)&&(t1=n)},r=()=>{t1&&(t1=null)};return window.addEventListener("dragstart",t),window.addEventListener("dragend",r),{destroy(){window.removeEventListener("dragstart",t),window.removeEventListener("dragend",r)}}},props:{handleDOMEvents:{drop:(e,n)=>{if(l=o===e.dom.parentElement,t=n,!l){let e=t1;(null==e?void 0:e.isEditable)&&setTimeout(()=>{let t=e.state.selection;t&&e.commands.deleteRange({from:t.from,to:t.to})},10)}return!1},paste:(e,t)=>{var n;let r=null==(n=t.clipboardData)?void 0:n.getData("text/html");return d=t,i=!!(null==r?void 0:r.includes("data-pm-slice")),!1}}},appendTransaction:(t,n,r)=>{let o=t[0],s="paste"===o.getMeta("uiEvent")&&!i,u="drop"===o.getMeta("uiEvent")&&!l,p=o.getMeta("applyPasteRules"),h=!!p;if(!s&&!u&&!h)return;if(h){var f,m;let t,{text:n}=p;"string"==typeof n||(n=eD(a.FK.from(n),r.schema));let{from:o}=p,i=o+n.length;return c({rule:e,state:r,from:o,to:{b:i},pasteEvt:(f=n,null==(m=(t=new ClipboardEvent("paste",{clipboardData:new DataTransfer})).clipboardData)||m.setData("text/html",f),t)})}let g=n.doc.content.findDiffStart(r.doc.content),y=n.doc.content.findDiffEnd(r.doc.content);if("number"==typeof g&&y&&g!==y.b)return c({rule:e,state:r,from:g,to:y,pasteEvt:d})}}))}({editor:e,rules:t});r.push(...n)}}let f=eA(t,"addProseMirrorPlugins",n);if(f){let e=f();r.push(...e)}return r}),n=this.createDecorationPlugin();return n&&t.push(n),t}createDecorationPlugin(){var e;let{editor:t}=this;null==(e=this.decorationManager)||e.destroy();let n=[];return this.extensions.forEach(e=>{let r=eA(e,"addDecorations",{name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:t,type:e4(e.name,this.schema)});r&&n.push({name:e.name,addDecorations:r})}),this.decorationManager=new tU({editor:t,entries:n}),this.decorationManager.plugin}get attributes(){return eN(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=eI(this.extensions);return Object.fromEntries(t.filter(e=>!!eA(e,"addNodeView")).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=eA(t,"addNodeView",{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:k(t.name,this.schema)});if(!r)return[];let o=r();return o?[t.name,(r,i,s,a,l)=>{let d=eL(r,n);return o({node:r,view:i,getPos:s,decorations:a,innerDecorations:l,editor:e,extension:t,HTMLAttributes:d})}]:[]}))}dispatchTransaction(e){let{editor:t}=this;return eU([...this.extensions].reverse()).reduceRight((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:e4(n.name,this.schema)},o=eA(n,"dispatchTransaction",r);return o?t=>{o.call(r,{transaction:t,next:e})}:e},e)}transformPastedHTML(e){let{editor:t}=this;return eU([...this.extensions]).reduce((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:e4(n.name,this.schema)},o=eA(n,"transformPastedHTML",r);return o?(t,n)=>{let i=e(t,n);return o.call(r,i)}:e},e||(e=>e))}get markViews(){let{editor:e}=this,{markExtensions:t}=eI(this.extensions);return Object.fromEntries(t.filter(e=>!!eA(e,"addMarkView")).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=eA(t,"addMarkView",{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:j(t.name,this.schema)});return r?[t.name,(o,i,s)=>{let a=eL(o,n);return r()({mark:o,view:i,inline:s,editor:e,extension:t,HTMLAttributes:a,updateAttributes:t=>{!function(e,t,n={}){let{state:r}=t,{doc:o,tr:i}=r;o.descendants((t,r)=>{let o=i.mapping.map(r),s=i.mapping.map(r)+t.nodeSize,a=null;if(t.marks.forEach(t=>{if(t!==e)return!1;a=t}),!a)return;let l=!1;if(Object.keys(n).forEach(e=>{n[e]!==a.attrs[e]&&(l=!0)}),l){let t=e.type.create({...e.attrs,...n});i.removeMark(o,s,e.type),i.addMark(o,s,t)}}),i.docChanged&&t.view.dispatch(i)}(o,e,t)}})}]:[]}))}destroy(){var e;null==(e=this.decorationManager)||e.destroy(),this.extensions.forEach(e=>{let t=e;for(;t.parent;){let e=t.parent;e.child===t&&(e.child=null),t=e}}),this.extensions=[],this.baseExtensions=[],this.decorationManager=null,this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(e=>[e.name,e.storage])),e.forEach(e=>{let t={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:e4(e.name,this.schema)};if("mark"===e.type){var n,r;(null==(n=eR(eA(e,"keepOnSplit",t)))||n)&&this.splittableMarks.push(e.name),null==(r=eR(eA(e,"clearable",t)))||r||this.nonClearableMarks.push(e.name)}let o=eA(e,"onBeforeCreate",t),i=eA(e,"onCreate",t),s=eA(e,"onUpdate",t),a=eA(e,"onSelectionUpdate",t),l=eA(e,"onTransaction",t),d=eA(e,"onFocus",t),c=eA(e,"onBlur",t),u=eA(e,"onDestroy",t);o&&this.editor.on("beforeCreate",o),i&&this.editor.on("create",i),s&&this.editor.on("update",s),a&&this.editor.on("selectionUpdate",a),l&&this.editor.on("transaction",l),d&&this.editor.on("focus",d),c&&this.editor.on("blur",c),u&&this.editor.on("destroy",u)})}};t2.resolve=eW,t2.sort=eU,t2.flatten=e$;var t3=class e extends tQ{constructor(...e){super(...e),this.type="extension"}static create(t={}){return new e("function"==typeof t?t():t)}configure(e){return super.configure(e)}extend(e){let t="function"==typeof e?e():e;return super.extend(t)}};let t4=t3.create({name:"clipboardTextSerializer",addOptions:()=>({blockSeparator:void 0}),addProseMirrorPlugins(){return[new s.k_({key:new s.hs("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:o}=t,i=eY(n),{blockSeparator:s}=this.options,a={...void 0!==s?{blockSeparator:s}:{},textSerializers:i};return[...o.ranges].sort((e,t)=>e.$from.pos-t.$from.pos).map(({$from:e,$to:t})=>eZ(r,{from:e.pos,to:t.pos},a)).join(null!=s?s:"\n\n")}}})]}}),t9=t3.create({name:"commands",addCommands:()=>({...tD})}),t8=t3.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r;let i=()=>{var n,r,i;if(null!=(n=null==(r=this.editor.options.coreExtensionOptions)||null==(r=r.delete)||null==(i=r.filterTransaction)?void 0:i.call(r,e))?n:e.getMeta("y-sync$"))return;let s=eO(e.before,[e,...t]);e0(s).forEach(t=>{s.mapping.mapResult(t.oldRange.from).deletedAfter&&s.mapping.mapResult(t.oldRange.to).deletedBefore&&s.before.nodesBetween(t.oldRange.from,t.oldRange.to,(n,r)=>{let o=r+n.nodeSize-2,i=t.oldRange.from<=r&&o<=t.oldRange.to;this.editor.emit("delete",{type:"node",node:n,from:r,to:o,newFrom:s.mapping.map(r),newTo:s.mapping.map(o),deletedRange:t.oldRange,newRange:t.newRange,partial:!i,editor:this.editor,transaction:e,combinedTransform:s})})});let a=s.mapping;s.steps.forEach((t,n)=>{if(t instanceof o.Ys){var r,i;let o=a.slice(n).map(t.from,-1),l=a.slice(n).map(t.to),d=a.invert().map(o,-1),c=a.invert().map(l),u=o>0&&(null==(r=s.doc.nodeAt(o-1))?void 0:r.marks.some(e=>e.eq(t.mark))),p=null==(i=s.doc.nodeAt(l))?void 0:i.marks.some(e=>e.eq(t.mark));this.editor.emit("delete",{type:"mark",mark:t.mark,from:t.from,to:t.to,deletedRange:{from:d,to:c},newRange:{from:o,to:l},partial:!!(p||u),editor:this.editor,transaction:e,combinedTransform:s})}})};null==(n=null==(r=this.editor.options.coreExtensionOptions)||null==(r=r.delete)?void 0:r.async)||n?setTimeout(i,0):i()}}),t7=t3.create({name:"drop",addProseMirrorPlugins(){return[new s.k_({key:new s.hs("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),t5=t3.create({name:"editable",addProseMirrorPlugins(){return[new s.k_({key:new s.hs("editable"),props:{editable:()=>this.editor.options.editable}})]}}),t6=new s.hs("focusEvents"),ne=t3.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return[new s.k_({key:t6,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),nt=t3.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:e})=>[()=>e.undoInputRule(),()=>e.command(({tr:t})=>{let{selection:n,doc:r}=t,{empty:o,$anchor:i}=n,{pos:a,parent:l}=i,d=i.parent.isTextblock&&a>0?t.doc.resolve(a-1):i,c=d.parent.type.spec.isolating,u=i.pos-i.parentOffset,p=c&&1===d.parent.childCount?u===i.pos:s.LN.atStart(r).from===a;return!!o&&!!l.type.isTextblock&&!l.textContent.length&&!!p&&(!p||"paragraph"!==i.parent.type.name)&&e.clearNodes()}),()=>e.deleteSelection(),()=>e.joinBackward(),()=>e.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:e})=>[()=>e.deleteSelection(),()=>e.deleteCurrentNode(),()=>e.joinForward(),()=>e.selectNodeForward()]),n={Enter:()=>this.editor.commands.first(({commands:e})=>[()=>e.newlineInCode(),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},r={...n},o={...n,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return F()||ea()?o:r},addProseMirrorPlugins(){return[new s.k_({key:new s.hs("clearDocument"),appendTransaction:(e,t,n)=>{if(e.some(e=>e.getMeta("composition")))return;let r=e.some(e=>e.docChanged)&&!t.doc.eq(n.doc),o=e.some(e=>e.getMeta("preventClearDocument"));if(!r||o)return;let{empty:i,from:a,to:l}=t.selection,d=s.LN.atStart(t.doc).from,c=s.LN.atEnd(t.doc).to;if(i||a!==d||l!==c||!tt(n.doc))return;let u=n.tr,f=p({state:n,transaction:u}),{commands:m}=new h({editor:this.editor,state:f});if(m.clearNodes(),u.steps.length)return u}})]}}),nn=t3.create({name:"paste",addProseMirrorPlugins(){return[new s.k_({key:new s.hs("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),nr=t3.create({name:"tabindex",addOptions:()=>({value:void 0}),addProseMirrorPlugins(){return[new s.k_({key:new s.hs("tabindex"),props:{attributes:()=>{var e;return this.editor.isEditable||void 0!==this.options.value?{tabindex:null!=(e=this.options.value)?e:"0"}:{}}}})]}}),no=t3.create({name:"textDirection",addOptions:()=>({direction:void 0}),addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=eI(this.extensions);return[{types:e.filter(e=>"text"!==e.name).map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{let t=e.getAttribute("dir");return t&&("ltr"===t||"rtl"===t||"auto"===t)?t:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new s.k_({key:new s.hs("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var ni=(0,r.t)({ClipboardTextSerializer:()=>t4,Commands:()=>t9,Delete:()=>t8,Drop:()=>t7,Editable:()=>t5,FocusEvents:()=>ne,Keymap:()=>nt,Paste:()=>nn,Tabindex:()=>nr,TextDirection:()=>no,focusEventsPluginKey:()=>t6});let ns=!1;var na=class e{get name(){return this.node.type.name}constructor(e,t,n=!1,r=null){this.currentNode=null,this.actualDepth=null,this.isBlock=n,this.resolvedPos=e,this.editor=t,this.currentNode=r}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return null!=(e=this.actualDepth)?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let t=this.from,n=this.to;if(this.isBlock){if(0===this.content.size)return void console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);t=this.from+1,n=this.to-1}this.editor.commands.insertContentAt({from:t,to:n},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+ +!this.node.isText}get parent(){if(0===this.depth)return null;let t=this.resolvedPos.start(this.resolvedPos.depth-1);return new e(this.resolvedPos.doc.resolve(t),this.editor)}get before(){let t=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.from-3)),new e(t,this.editor)}get after(){let t=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.to+3)),new e(t,this.editor)}get children(){let t=[];return this.node.content.forEach((n,r)=>{let o=n.isBlock&&!n.isTextblock,i=n.isAtom&&!n.isText,s=n.isInline,a=this.pos+r+ +!i;if(a<0||a>this.resolvedPos.doc.nodeSize-2)return;let l=this.resolvedPos.doc.resolve(a);if(!o&&!s&&l.depth<=this.depth)return;let d=new e(l,this.editor,o,o||s?n:null);o&&(d.actualDepth=this.depth+1),t.push(d)}),t}get firstChild(){return this.children[0]||null}get lastChild(){let e=this.children;return e[e.length-1]||null}closest(e,t={}){let n=null,r=this.parent;for(;r&&!n;){if(r.node.type.name===e)if(Object.keys(t).length>0){let e=r.node.attrs,n=Object.keys(t);for(let r=0;r<n.length;r+=1){let o=n[r];if(e[o]!==t[o])break}}else n=r;r=r.parent}return n}querySelector(e,t={}){return this.querySelectorAll(e,t,!0)[0]||null}querySelectorAll(e,t={},n=!1){let r=[];if(!this.children||0===this.children.length)return r;let o=Object.keys(t);return this.children.forEach(i=>{n&&r.length>0||(i.node.type.name===e&&o.every(e=>t[e]===i.node.attrs[e])&&r.push(i),n&&r.length>0||(r=r.concat(i.querySelectorAll(e,t,n))))}),r}setAttribute(e){let{tr:t}=this.editor.state;t.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(t)}};let nl=`.ProseMirror {
|
|
9
|
+
position: relative;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.ProseMirror {
|
|
13
|
+
word-wrap: break-word;
|
|
14
|
+
white-space: pre-wrap;
|
|
15
|
+
white-space: break-spaces;
|
|
16
|
+
-webkit-font-variant-ligatures: none;
|
|
17
|
+
font-variant-ligatures: none;
|
|
18
|
+
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.ProseMirror [contenteditable="false"] {
|
|
22
|
+
white-space: normal;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.ProseMirror [contenteditable="false"] [contenteditable="true"] {
|
|
26
|
+
white-space: pre-wrap;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.ProseMirror pre {
|
|
30
|
+
white-space: pre-wrap;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
img.ProseMirror-separator {
|
|
34
|
+
display: inline !important;
|
|
35
|
+
border: none !important;
|
|
36
|
+
margin: 0 !important;
|
|
37
|
+
width: 0 !important;
|
|
38
|
+
height: 0 !important;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ProseMirror-gapcursor {
|
|
42
|
+
display: none;
|
|
43
|
+
pointer-events: none;
|
|
44
|
+
position: absolute;
|
|
45
|
+
margin: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.ProseMirror-gapcursor:after {
|
|
49
|
+
content: "";
|
|
50
|
+
display: block;
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: -2px;
|
|
53
|
+
width: 20px;
|
|
54
|
+
border-top: 1px solid black;
|
|
55
|
+
animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes ProseMirror-cursor-blink {
|
|
59
|
+
to {
|
|
60
|
+
visibility: hidden;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.ProseMirror-hideselection *::selection {
|
|
65
|
+
background: transparent;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ProseMirror-hideselection *::-moz-selection {
|
|
69
|
+
background: transparent;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ProseMirror-hideselection * {
|
|
73
|
+
caret-color: transparent;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.ProseMirror-focused .ProseMirror-gapcursor {
|
|
77
|
+
display: block;
|
|
78
|
+
}`;var nd=class extends tR{constructor(e={}){super(),this.css=null,this.className="tiptap",this.editorView=null,this.isFocused=!1,this.destroyed=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.hasWarnedStaleDecorationRead=!1,this.options={element:"u">typeof document?document.createElement("div"):null,content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:e})=>{throw e},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:to,createMappablePosition:ti},this.setOptions(e),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("mount",this.options.onMount),this.on("unmount",this.options.onUnmount),this.on("contentError",this.options.onContentError),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:e,slice:t,moved:n})=>this.options.onDrop(e,t,n)),this.on("paste",({event:e,slice:t})=>this.options.onPaste(e,t)),this.on("delete",this.options.onDelete);const t=this.createDoc();if(!this.editorState){const e=z(t,this.options.autofocus);this.editorState=s.$t.create({doc:t,schema:this.schema,selection:e||void 0})}!function(e){let t;if(!ns){ns=!0;try{t=o.Ln.fromJSON(e,{from:0,to:0}).slice.content}catch{return}t instanceof a.FK||console.warn("[tiptap warn]: prosemirror-model is loaded more than once. Wrapping and splitting nodes will fail. Deduplicate it in your lock file, or alias it to a single copy in your bundler.")}}(this.schema),this.options.element&&this.mount(this.options.element)}mount(e){if("u"<typeof document)throw Error("[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.");this.createView(e),this.emit("mount",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(!1!==this.options.autofocus&&null!==this.options.autofocus&&this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){this.editorState=this.editorView.state;let e=this.editorView.dom;(null==e?void 0:e.editor)&&delete e.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{"function"==typeof this.css.remove?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(e){console.warn("Failed to remove CSS element:",e)}this.css=null,this.emit("unmount",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager?this.commandManager.chain():h.createFakeChain()}can(){return this.commandManager?this.commandManager.can():h.createFallbackCan()}injectCSS(){this.options.injectCSS&&"u">typeof document&&(this.css=function(e,t){let n=document.querySelector("style[data-tiptap-style]");if(null!==n)return n;let r=document.createElement("style");return t&&r.setAttribute("nonce",t),r.setAttribute("data-tiptap-style",""),r.innerHTML=e,document.getElementsByTagName("head")[0].appendChild(r),r}(nl,this.options.injectNonce))}setOptions(e={}){this.options={...this.options,...e},this.editorView&&this.state&&!this.isDestroyed&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(e,t=!0){this.setOptions({editable:e}),t&&this.emit("update",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:e=>{this.editorState=e},dispatch:e=>{this.dispatchTransaction(e)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(e,t)=>{if(this.editorView)return this.editorView[t];if("state"===t)return this.editorState;if(t in e)return Reflect.get(e,t);throw Error(`[tiptap error]: The editor view is not available. Cannot access view['${t}']. The editor may not be mounted yet.`)}})}get state(){return tI&&!this.hasWarnedStaleDecorationRead&&tj.has(this)&&(this.hasWarnedStaleDecorationRead=!0,console.warn("[tiptap warn]: `editor.state` was read while decoration `create()` was running. It returns the pre-transaction document. Use the `state` argument passed to `create()` instead. Helpers like `editor.isActive()` read `editor.state` too, so pass `state` to their standalone versions instead of calling them on the editor.")),this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(e,t){let n=ej(t)?t(e,[...this.state.plugins]):[...this.state.plugins,e],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(e){if(this.isDestroyed)return;let t=this.state.plugins,n=t;if([].concat(e).forEach(e=>{let t="string"==typeof e?`${e}$`:e.key;n=n.filter(e=>!e.key.startsWith(t))}),t.length===n.length)return;let r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){var e,t;let n=[...this.options.enableCoreExtensions?[t5,t4.configure({blockSeparator:null==(e=this.options.coreExtensionOptions)||null==(e=e.clipboardTextSerializer)?void 0:e.blockSeparator}),t9,ne,nt,nr.configure({value:null==(t=this.options.coreExtensionOptions)||null==(t=t.tabindex)?void 0:t.value}),t7,nn,t8,no.configure({direction:this.options.textDirection})].filter(e=>"object"!=typeof this.options.enableCoreExtensions||!1!==this.options.enableCoreExtensions[e.name]):[],...this.options.extensions].filter(e=>["extension","node","mark"].includes(null==e?void 0:e.type));this.extensionManager=new t2(n,this)}createCommandManager(){this.commandManager=new h({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let e;try{e=eS(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(t){if(!(t instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(t.message))throw t;let e=eS(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1});return this.editorState=s.$t.create({doc:e,schema:this.schema,selection:z(e,this.options.autofocus)||void 0}),this.emit("contentError",{editor:this,error:t,disableCollaboration:()=>{"collaboration"in this.storage&&"object"==typeof this.storage.collaboration&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(e=>"collaboration"!==e.name),this.createExtensionManager()}}),this.editorState.doc}return e}createView(e){let{editorProps:t,enableExtensionDispatchTransaction:n}=this.options,r=t.dispatchTransaction||this.dispatchTransaction.bind(this),o=n?this.extensionManager.dispatchTransaction(r):r,i=t.transformPastedHTML,s=this.extensionManager.transformPastedHTML(i);this.editorView=new d.Lz(e,{...t,attributes:{role:"textbox",...null==t?void 0:t.attributes},dispatchTransaction:o,transformPastedHTML:s,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});let a=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(a),this.prependClass(),this.injectCSS(),this.view.dom.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(e){this.isCapturingTransaction=!0,e(),this.isCapturingTransaction=!1;let t=this.capturedTransaction;return this.capturedTransaction=null,t}dispatchTransaction(e){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=e;return}e.steps.forEach(e=>{var t;return null==(t=this.capturedTransaction)?void 0:t.step(e)});return}let{state:t,transactions:n}=this.state.applyTransaction(e),r=!this.state.selection.eq(t.selection),o=n.includes(e),i=this.state;if(this.emit("beforeTransaction",{editor:this,transaction:e,nextState:t}),!o)return;this.view.updateState(t),this.emit("transaction",{editor:this,transaction:e,appendedTransactions:n.slice(1)}),r&&this.emit("selectionUpdate",{editor:this,transaction:e});let s=n.findLast(e=>e.getMeta("focus")||e.getMeta("blur")),a=null==s?void 0:s.getMeta("focus"),l=null==s?void 0:s.getMeta("blur");a&&this.emit("focus",{editor:this,event:a.event,transaction:s}),l&&this.emit("blur",{editor:this,event:l.event,transaction:s}),e.getMeta("preventUpdate")||!n.some(e=>e.docChanged)||i.doc.eq(t.doc)||this.emit("update",{editor:this,transaction:e,appendedTransactions:n.slice(1)})}getAttributes(e){return eX(this.state,e)}isActive(e,t){let n="string"==typeof e?e:null,r="string"==typeof e?t:e;return function(e,t,n={}){if(!t)return ed(e,null,n)||e8(e,null,n);let r=ef(t,e.schema);return"node"===r?ed(e,t,n):"mark"===r&&e8(e,t,n)}(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return eD(this.state.doc.content,this.schema)}getText(e){let{blockSeparator:t="\n\n",textSerializers:n={}}=e||{};return eG(this.state.doc,{blockSeparator:t,textSerializers:{...eY(this.schema),...n}})}get isEmpty(){return tt(this.state.doc)}destroy(){this.destroyed||(this.destroyed=!0,this.emit("destroy"),this.unmount(),this.removeAllListeners(),this.extensionManager.destroy(),this.extensionManager=null,this.schema=null,this.commandManager=null,this.extensionStorage={})}get isDestroyed(){var e,t;return null==(e=null==(t=this.editorView)?void 0:t.isDestroyed)||e}$node(e,t){var n;return(null==(n=this.$doc)?void 0:n.querySelector(e,t))||null}$nodes(e,t){var n;return(null==(n=this.$doc)?void 0:n.querySelectorAll(e,t))||null}$pos(e){let t=this.state.doc.resolve(e),n=e>0&&t.nodeAfter&&!t.nodeAfter.isText&&t.nodeAfter.isAtom?t.nodeAfter:null;return new na(t,this,!1,n)}get $doc(){return this.$pos(0)}},nc=class{static Inline(e,t,n={},r){return new nu(e,t,n,r)}static Node(e,t,n={},r){return new np(e,t,n,r)}static Widget(e,t,n){let{key:r,...o}=n;return new nh(e,t,r,o)}},nu=class extends nc{constructor(e,t,n={},r){super(),this.kind="inline",this.from=e,this.to=t,this.attrs=n,this.spec=r}get anchor(){return this.from}toPMDecoration(e){let t=e?{...this.spec,extensionName:e}:this.spec;return d.NZ.inline(this.from,this.to,this.attrs,t)}},np=class extends nc{constructor(e,t,n={},r){super(),this.kind="node",this.from=e,this.to=t,this.attrs=n,this.spec=r}get anchor(){return this.from}toPMDecoration(e){let t=e?{...this.spec,extensionName:e}:this.spec;return d.NZ.node(this.from,this.to,this.attrs,t)}},nh=class extends nc{constructor(e,t,n,r){super(),this.kind="widget",this.pos=e,this.render=t,this.key=n,this.spec=r}get anchor(){return this.pos}toPMDecoration(e){let t=e?{...this.spec,key:this.key,extensionName:e}:{...this.spec,key:this.key};return d.NZ.widget(this.pos,this.render,t)}};function nf(e){return new tG({find:e.find,handler:({state:t,range:n,match:r})=>{let o=eR(e.getAttributes,void 0,r);if(!1===o||null===o)return null;let{tr:i}=t,s=r[r.length-1],a=r[0];if(s){let r=a.search(/\S/),l=n.from+a.indexOf(s),d=l+s.length;if(e1(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>l).length)return null;d<n.to&&i.delete(d,n.to),l>n.from&&i.delete(n.from+r,l);let c=n.from+r+s.length;i.addMark(n.from+r,c,e.type.create(o||{})),i.removeStoredMark(e.type)}},undoable:e.undoable})}function nm(e){return new tG({find:e.find,handler:({state:t,range:n,match:r})=>{let o=eR(e.getAttributes,void 0,r)||{},{tr:i}=t,s=n.from,a=n.to,l=e.type.create(o);if(r[1]){let e=s+r[0].lastIndexOf(r[1]);e>a?e=a:a=e+r[1].length;let t=r[0][r[0].length-1];i.insertText(t,s+r[0].length-1),i.replaceWith(e,a,l)}else if(r[0]){let t=e.type.isInline?s:s-1;i.insert(t,e.type.create(o)).delete(i.mapping.map(s),i.mapping.map(a))}i.scrollIntoView()},undoable:e.undoable})}function ng(e){return new tG({find:e.find,handler:({state:t,range:n,match:r})=>{let o=t.doc.resolve(n.from),i=eR(e.getAttributes,void 0,r)||{};if(!o.node(-1).canReplaceWith(o.index(-1),o.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,i)},undoable:e.undoable})}function ny(e){return new tG({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{let s=eR(e.getAttributes,void 0,r)||{},a=t.tr.delete(n.from,n.to),l=a.doc.resolve(n.from).blockRange(),d=l&&(0,o.oM)(l,e.type,s);if(!d)return null;if(a.wrap(l,d),e.keepMarks&&e.editor){let{selection:n,storedMarks:r}=t,{splittableMarks:o}=e.editor.extensionManager,i=r||n.$to.parentOffset&&n.$from.marks();if(i){let e=i.filter(e=>o.includes(e.type.name));a.ensureMarks(e)}}if(e.keepAttributes){let t="bulletList"===e.type.name||"orderedList"===e.type.name?"listItem":"taskList";i().updateAttributes(t,s).run()}let c=a.doc.resolve(n.from-1).nodeBefore;c&&c.type===e.type&&(0,o.n9)(a.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,c))&&a.join(n.from-1)},undoable:e.undoable})}var nv=class e extends tQ{constructor(...e){super(...e),this.type="node"}static create(t={}){return new e("function"==typeof t?t():t)}configure(e){return super.configure(e)}extend(e){let t="function"==typeof e?e():e;return super.extend(t)}};function nb(e){return new t0({find:e.find,handler:({state:t,range:n,match:r,pasteEvent:o})=>{let i=eR(e.getAttributes,void 0,r,o);if(!1===i||null===i)return null;let{tr:s}=t,a=r[r.length-1],l=r[0],d=n.to;if(a){let o=l.search(/\S/),c=n.from+l.indexOf(a),u=c+a.length;if(e1(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>c).length)return null;u<n.to&&s.delete(u,n.to),c>n.from&&s.delete(n.from+o,c),d=n.from+o+a.length,s.addMark(n.from+o,d,e.type.create(i||{})),void 0!==r.index&&void 0!==r.input&&r.index+r[0].length>=r.input.length||s.removeStoredMark(e.type)}}})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5518],{25518:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CanvasStage:()=>N});var r=n(95155);n(66648);var o=n(12115),i=n(91072),s=n(47650),a=n(60015),l=n(39247);function d({stats:e,contextUsage:t}){if(!e)return null;let n=e.tokens,o=e.cost??0,i=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),s=o>0?o>=.01?`$${o.toFixed(2)}`:"<$0.01":null,a="var(--text-muted)",l=null;if(t?.contextWindow){let e=t.percent;null!==e&&e>90?a="#ef4444":null!==e&&e>70&&(a="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${i(t.contextWindow)}`:`? / ${i(t.contextWindow)}`}let c={display:"flex",alignItems:"center",gap:4,flexShrink:0};return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:[n.input>0&&(0,r.jsxs)("span",{style:c,children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,r.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),i(n.input)]}),n.output>0&&(0,r.jsxs)("span",{style:c,children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,r.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),i(n.output)]}),n.cacheRead>0&&(0,r.jsxs)("span",{style:c,children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,r.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),i(n.cacheRead)]}),s&&(0,r.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500,flexShrink:0},children:s}),l&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:a,flexShrink:0},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})}let c=(0,o.forwardRef)(function({sessionId:e,stats:t,contextUsage:n,todos:i},s){let{t:a}=(0,l.s)(),[d,c]=(0,o.useState)(!1),[b,m]=(0,o.useState)(!1),y=(0,o.useRef)(null),k=(0,o.useRef)(null),j=(0,o.useRef)(null);(0,o.useImperativeHandle)(s,()=>({openStats:()=>{c(!0),m(!1)}}),[]);let w=e=>{c("stats"===e),m("todo"===e)},S=(0,o.useCallback)(()=>{window.open(`/api/sessions/${encodeURIComponent(e)}/export?inline=1`,"_blank","noopener,noreferrer")},[e]),C=i.filter(e=>"completed"!==e.status).length,L=(0,o.useCallback)(()=>y.current?.closest("[data-session-titlebar]")?.clientWidth??y.current?.closest(".tl-html-container")?.clientWidth??300,[]),E=d||b;return(0,o.useEffect)(()=>{if(!E)return;let e=e=>{let t=e.target;t instanceof Node&&(y.current?.contains(t)||document.querySelector("[data-session-nav-popover]")?.contains(t)||document.querySelector("[data-session-nav-todo]")?.contains(t)||document.querySelector(".glass-top-panel")?.contains(t))||(c(!1),m(!1))},t=e=>{"Escape"===e.key&&(c(!1),m(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[E]),(0,r.jsxs)("div",{ref:y,style:{display:"flex",alignItems:"center",gap:2,padding:"0 4px",position:"relative",pointerEvents:"all",height:"100%"},children:[(0,r.jsxs)("button",{type:"button",onClick:S,title:a("history.full"),"aria-label":a("history.full"),style:u,onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=x},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),(0,r.jsx)("span",{style:p,children:a("history.full")})]}),(0,r.jsx)("span",{style:h}),(0,r.jsxs)("button",{ref:k,type:"button",onClick:()=>w(d?"none":"stats"),title:a("session.title"),"aria-label":a("session.title"),"aria-expanded":d,style:{...u,background:d?g:"transparent",color:d?"var(--accent)":"var(--text-muted)"},onMouseEnter:e=>{d||(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=x)},onMouseLeave:e=>{d||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent")},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"10"}),(0,r.jsx)("line",{x1:"18",y1:"20",x2:"18",y2:"4"}),(0,r.jsx)("line",{x1:"6",y1:"20",x2:"6",y2:"16"})]}),(0,r.jsx)("span",{style:p,children:a("nav.stats")})]}),i.length>0&&(0,r.jsxs)("button",{ref:j,type:"button",onClick:()=>w(b?"none":"todo"),title:a("todo.title"),"aria-label":a("todo.title"),"aria-expanded":b,style:{...u,background:b?g:"transparent",color:b?"var(--accent)":"var(--text-muted)"},onMouseEnter:e=>{b||(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=x)},onMouseLeave:e=>{b||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent")},children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,r.jsx)("path",{d:"M8 9h8M8 13h5"})]}),(0,r.jsx)("span",{style:p,children:a("nav.todo")}),(0,r.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--text-muted)"},children:C>0?C:"✓"})]}),d&&t&&(0,r.jsx)(f,{navRef:y,navWidth:L(),stats:t,contextUsage:n,onClose:()=>c(!1)}),b&&i.length>0&&(0,r.jsx)(v,{navRef:y,navWidth:L(),todos:i,onClose:()=>m(!1)})]})}),u={flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",gap:4,width:"auto",height:26,padding:"0 6px",border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s, background 0.12s"},p={fontSize:11,fontWeight:600,lineHeight:1,whiteSpace:"nowrap"},h={flexShrink:0,width:1,height:16,alignSelf:"center",background:"color-mix(in srgb, var(--border) 70%, transparent)",margin:"0 3px"},x="color-mix(in srgb, var(--glass-bg-strong) 40%, transparent)",g="color-mix(in srgb, var(--glass-bg-strong) 60%, transparent)";function f({navRef:e,navWidth:t,stats:n,contextUsage:i,onClose:a}){let c,{t:u}=(0,l.s)(),[p,h]=(0,o.useState)(null),x=(0,o.useRef)(null);if((0,o.useEffect)(()=>{let n=()=>{let n=e.current;if(!n)return;let r=n.getBoundingClientRect(),o=n.closest("[data-session-titlebar]"),i=o?.getBoundingClientRect(),s=i?i.left:Math.min(r.right-t,Math.max(8,r.left));h({top:i?i.bottom:r.bottom,left:s})};n();let r=new ResizeObserver(n);return e.current&&r.observe(e.current),e.current?.closest("[data-session-titlebar]")&&r.observe(e.current.closest("[data-session-titlebar]")),window.addEventListener("resize",n),()=>{r.disconnect(),window.removeEventListener("resize",n)}},[e,t]),(0,o.useEffect)(()=>{let t=t=>{let n=t.target;x.current?.contains(n)||e.current?.contains(n)||a()};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[e,a]),!p)return null;let g=n.totalActiveMs??0,v=[...n.sessionName?[{label:u("session.name"),value:n.sessionName}]:[],{label:u("session.id"),value:n.sessionId},...g>0?[{label:u("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${o}s`:`${o}s`})(g)}]:[]],b=[[u("session.user"),n.userMessages.toLocaleString()],[u("session.assistant"),n.assistantMessages.toLocaleString()],[u("session.toolCalls"),n.toolCalls.toLocaleString()],[u("session.toolResults"),n.toolResults.toLocaleString()],[u("session.total"),n.totalMessages.toLocaleString()]],m=[[u("session.input"),n.tokens.input.toLocaleString()],[u("session.output"),n.tokens.output.toLocaleString()],...n.tokens.cacheRead>0?[[u("session.cacheRead"),n.tokens.cacheRead.toLocaleString()]]:[],...n.tokens.cacheWrite>0?[[u("session.cacheWrite"),n.tokens.cacheWrite.toLocaleString()]]:[],[u("session.total"),n.tokens.total.toLocaleString()],...n.cost>0?[[u("session.cost"),`$${n.cost.toFixed(4)}`]]:[],...n.contextUsage?.contextWindow?[[u("session.context"),`${null!==n.contextUsage.percent?`${n.contextUsage.percent.toFixed(1)}%`:"?"} / ${(c=n.contextUsage.contextWindow)>=1e6?`${(c/1e6).toFixed(1)}M`:c>=1e3?`${(c/1e3).toFixed(0)}k`:String(c)}`]]:[]],y=(e,t,n="left",o=!1)=>(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content minmax(0, 1fr)":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,o])=>(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("div",{style:{color:"var(--text-meta)",whiteSpace:"nowrap"},children:t}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",textAlign:n,whiteSpace:"normal"},children:o})]},`${e}:${t}`))})]}),k=(0,r.jsx)("div",{ref:x,"data-session-nav-popover":!0,role:"dialog","aria-label":u("session.title"),className:"glass-panel",style:{position:"fixed",top:p.top,left:p.left,width:t,maxHeight:"min(560px, calc(100dvh - 44px))",overflowY:"auto",zIndex:1200,padding:"12px 16px",fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)"},children:(0,r.jsxs)("div",{style:{display:"grid",gap:16,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,r.jsx)(d,{stats:n,contextUsage:i}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",columnGap:12,rowGap:8,alignItems:"start"},children:v.map(e=>(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("div",{style:{color:"var(--text-meta)",whiteSpace:"nowrap"},children:e.label}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value})]},e.label))}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(160px, 0.5fr) minmax(240px, 0.7fr)",gap:24},children:[y(u("session.messages"),b),y(u("session.tokens"),m,"right",!0)]})]})});return(0,s.createPortal)(k,document.body)}function v({navRef:e,navWidth:t,todos:n,onClose:i}){let{t:a}=(0,l.s)(),[d,c]=(0,o.useState)(null),u=(0,o.useRef)(null);if((0,o.useEffect)(()=>{let n=()=>{let n=e.current;if(!n)return;let r=n.getBoundingClientRect(),o=n.closest("[data-session-titlebar]"),i=o?.getBoundingClientRect(),s=i?i.left:Math.min(r.right-t,Math.max(8,r.left));c({top:i?i.bottom:r.bottom,left:s})};n();let r=new ResizeObserver(n);return e.current&&r.observe(e.current),e.current?.closest("[data-session-titlebar]")&&r.observe(e.current.closest("[data-session-titlebar]")),window.addEventListener("resize",n),()=>{r.disconnect(),window.removeEventListener("resize",n)}},[e,t]),(0,o.useEffect)(()=>{let t=t=>{let n=t.target;u.current?.contains(n)||e.current?.contains(n)||i()};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[e,i]),!d)return null;let p=(0,r.jsxs)("div",{ref:u,"data-session-nav-todo":!0,role:"menu","aria-label":a("todo.title"),className:"glass-panel",style:{position:"fixed",top:d.top,left:d.left,width:t,maxHeight:"min(440px, calc(100dvh - 44px))",overflowY:"auto",zIndex:1200,fontFamily:"inherit",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"9px 12px",borderBottom:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",fontSize:12,fontWeight:650,color:"var(--text)"},children:[a("todo.title"),(0,r.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-meta)",fontWeight:500},children:[n.filter(e=>"completed"===e.status).length,"/",n.length," ",a("todo.completed")]})]}),0===n.length?(0,r.jsx)("div",{style:{padding:"12px 14px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:a("todo.empty")}):(0,r.jsx)("div",{style:{maxHeight:330,overflowY:"auto"},children:n.map(e=>{let t="completed"===e.status,n="high"===e.priority?"#ef4444":"medium"===e.priority?"rgba(234,179,8,0.9)":"var(--text-meta)";return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"7px 12px",borderBottom:"1px solid color-mix(in srgb, var(--border) 45%, transparent)"},children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,marginTop:2,width:13,height:13,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:800,lineHeight:1,color:t?"#fff":"transparent",background:t?"#16a34a":"color-mix(in srgb, var(--border) 70%, transparent)",border:t?"none":"1px solid color-mix(in srgb, var(--border) 80%, transparent)"},children:"✓"}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,lineHeight:1.4,color:t?"var(--text-meta)":"var(--text)",textDecoration:t?"line-through":"none",wordBreak:"break-word"},children:e.content}),(0,r.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,marginTop:5,width:7,height:7,borderRadius:"50%",background:n}})]},e.id??e.content)})})]});return(0,s.createPortal)(p,document.body)}var b=n(32782),m=n(15934);function y({sessionId:e,cwd:t,taskId:n}){let{t:i}=(0,l.s)(),{soundEnabled:d,onSoundToggle:u,playDoneSound:p,unlockAudio:h}=(0,b.G)(),[x,g]=(0,o.useState)(null),[f,v]=(0,o.useState)(null),[j,w]=(0,o.useState)(0),S=(0,o.useRef)(null),C=(0,o.useRef)(null),L=(0,o.useRef)(null),E=!e,R=(0,o.useRef)(null);R.current=n?{taskId:n}:null;let P=(0,o.useRef)(`board-new:${Math.random().toString(36).slice(2,8)}`),T=(0,o.useRef)(!0);!E&&T.current&&(T.current=!1);let[M,D]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=S.current?.closest(".tl-html-container"),t=e?.querySelector("[data-session-navbar-slot]")??null;D(e=>e===t?e:t)});let[W,I]=(0,o.useState)(null),[z,$]=(0,o.useState)(null),[F,H]=(0,o.useState)([]),B=(0,o.useCallback)(e=>{I(e)},[]),A=(0,o.useCallback)(()=>{L.current?.openStats()},[]),N=(0,o.useCallback)(e=>{$(e)},[]),U=(0,o.useCallback)(e=>{H(e)},[]),_=(0,o.useCallback)(e=>{if(!e?.id)return;let t=S.current?.closest(".tl-html-container")?.getAttribute("data-node-id")??void 0;(0,m.PH)(e.id,t)},[]),Y=(0,o.useCallback)(t=>{(0,m.PK)(e,t)},[e]),O=(0,o.useCallback)(t=>{(0,m.Wd)(e,t)},[e]),G=(0,o.useCallback)(()=>{(0,m.Ho)(e,x?.name)},[e,x?.name]),K=(0,o.useCallback)(t=>{(0,m.sV)(e,{title:"custom"===t.method?void 0:t.title,method:t.method})},[e]);return((0,o.useEffect)(()=>{let e=S.current;if(!e)return;let t=e=>e.stopPropagation();return e.addEventListener("wheel",t,{capture:!0}),e.addEventListener("wheel",t),()=>{e.removeEventListener("wheel",t,{capture:!0}),e.removeEventListener("wheel",t)}}),(0,o.useEffect)(()=>{if(E)return;let t=!1;return g(null),v(null),(async()=>{try{let n=await fetch("/api/sessions",{cache:"no-store"});if(!n.ok)throw Error(`HTTP ${n.status}`);let r=(await n.json()).sessions.find(t=>t.id===e);if(t)return;if(!r)return void v(i("boards.sessionMissing"));g(r),w(e=>e+1)}catch(e){t||v(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[e,i,E]),f)?(0,r.jsx)("div",{style:k,children:(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:f})}):x||E?(0,r.jsxs)("div",{ref:S,className:"board-workbench",style:k,onPointerDown:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[M&&x&&(0,s.createPortal)((0,r.jsx)(c,{ref:L,sessionId:x.id,stats:W,contextUsage:z,todos:F}),M),(0,r.jsx)(a.l,{session:E||T.current?null:x,newSessionCwd:E||T.current?t??null:null,newSessionDraftKey:E||T.current?P.current:null,pendingNewSessionTaskRef:E||T.current?R:void 0,chatInputRef:C,inWorkbench:!0,onSessionStatsChange:B,onContextUsageChange:N,onSessionStatsPanelOpen:A,onTodosChange:U,onOpenFile:Y,onSessionCreated:E?e=>_(e):void 0,onSessionForked:O,onAgentEnd:G,onAttentionNeeded:K,soundEnabled:d,onSoundToggle:u,playDoneSound:p,unlockAudio:h},j)]}):(0,r.jsx)("div",{style:k,children:(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:i("boards.loadingSession")})})}let k={display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"hidden",color:"var(--text)"};var j=n(82208);let w={sessionId:i.T.string,title:i.T.string,projectName:i.T.string,messageCount:i.T.number,lastReply:i.T.string,phase:i.T.string,runningMs:i.T.number,endedAt:i.T.number,lastActivityAt:i.T.number,stale:i.T.boolean,expanded:i.T.boolean,cwd:i.T.string,taskId:i.T.string,w:i.T.number,h:i.T.number};class S extends i.A8{static{this.type="session-card"}static{this.props=w}getDefaultProps(){return{sessionId:"",title:"Untitled session",projectName:"",messageCount:0,lastReply:"",phase:"idle",runningMs:0,endedAt:0,lastActivityAt:0,stale:!1,expanded:!1,cwd:"",taskId:"",w:280,h:120}}component(e){return(0,r.jsx)(L,{shape:e})}getIndicatorPath(e){let{w:t,h:n}=e.props,r=new Path2D;return r.roundRect(0,0,t,n,14),r}canResize(){return!0}canScroll(){return!0}hideRotateHandle(){return!0}onResize(e,t){let n=e.props.expanded,r=n?600:j.ZI,o=n?500:j.eo;return(0,i.mfH)(e,t,{minWidth:r,minHeight:o})}onDoubleClick(e){let t=j.ZI,n=j.eo,r=e.props.expanded;return{id:e.id,type:"session-card",props:{expanded:!e.props.expanded,w:r?t:e.props.w===t?840:Math.max(t,e.props.w),h:r?n:600}}}}let C={waiting_model:{dot:"var(--accent)",label:"thinking"},running_tools:{dot:"#f59e0b",label:"tools"},running_command:{dot:"#f59e0b",label:"command"},waiting_input:{dot:"var(--text)",label:"waiting"},idle:{dot:"var(--text-dim)",label:"idle"},"just-ended":{dot:"#10b981",label:"done"}};function L({shape:e}){let{w:t,h:n,title:s,projectName:a,messageCount:l,phase:d,runningMs:c,endedAt:u,lastActivityAt:p,stale:h,sessionId:x,expanded:g,lastReply:f,cwd:v,taskId:b}=e.props,k=(0,i.hGv)(),w=!x,[S,R]=(0,o.useState)(!1),[P,T]=(0,o.useState)(""),M=(0,o.useRef)(null),D=e=>{e.stopPropagation(),T(s||""),R(!0),requestAnimationFrame(()=>{let e=M.current;e&&(e.focus(),e.select())})},W=async()=>{if(!x)return;let t=P.trim();if(R(!1),t&&t!==s){k?.updateShapes([{id:e.id,type:"session-card",props:{title:t}}]);try{(await fetch(`/api/sessions/${encodeURIComponent(x)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok?(0,m.z6)(x,t):k?.updateShapes([{id:e.id,type:"session-card",props:{title:s}}])}catch{k?.updateShapes([{id:e.id,type:"session-card",props:{title:s}}])}}},I=()=>{k?.bringToFront([e.id])},z=t=>{(t.stopPropagation(),w)?k?.deleteShapes([e.id]):k?.updateShapes([{id:e.id,type:"session-card",props:{expanded:!g,w:g?j.ZI:840,h:g?j.eo:600}}])};if(g)return(0,r.jsxs)(i.hDc,{"data-testid":`session-card-${x}`,"data-node-id":e.id.replace("shape:",""),onPointerDown:I,style:{width:t,height:n,overflow:"hidden",borderRadius:18,border:`1px solid ${h?"color-mix(in srgb, var(--border) 80%, transparent)":"color-mix(in srgb, var(--border) 60%, transparent)"}`,background:"var(--board-card-glass)",backdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",opacity:h?.55:1,pointerEvents:"all",display:"flex",flexDirection:"column",color:"var(--text)",userSelect:"none",padding:8},children:[(0,r.jsxs)("div",{"data-session-titlebar":!0,style:{flexShrink:0,display:"flex",alignItems:"center",gap:6,padding:"0 10px",height:"calc(36px + env(safe-area-inset-top))",borderTopLeftRadius:12,borderTopRightRadius:12,pointerEvents:"none",cursor:"grab",position:"relative"},children:[(0,r.jsx)("span",{"aria-hidden":!0,style:{width:7,height:7,borderRadius:"50%",background:C[d]?.dot??"var(--text-dim)",flexShrink:0}}),S?(0,r.jsx)("input",{ref:M,value:P,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&W(),"Escape"===e.key&&R(!1)},onBlur:()=>void W(),onPointerDown:e=>e.stopPropagation(),style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,padding:"2px 6px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--side-input)",color:"var(--text)"}}):(0,r.jsx)("span",{style:{fontSize:12.5,fontWeight:600,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},children:w?"New session":s||"Untitled"}),!w&&!S&&(0,r.jsx)("button",{type:"button",onClick:D,onPointerDown:e=>e.stopPropagation(),title:"Rename","aria-label":"Rename",style:{flexShrink:0,pointerEvents:"all",display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer"},children:(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),(0,r.jsx)("div",{style:{flex:1}}),(0,r.jsx)("div",{"data-session-navbar-slot":!0,style:{display:"flex",alignItems:"center",pointerEvents:"all"}}),(0,r.jsx)("button",{type:"button",onClick:z,onPointerDown:e=>e.stopPropagation(),title:w?"Discard":"Collapse",style:{flexShrink:0,pointerEvents:"all",display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer"},children:w?(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,r.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,r.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,r.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}):(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M18 15l-6-6-6 6"})})})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,padding:"0 4px 0",pointerEvents:"all"},children:(0,r.jsx)(y,{sessionId:x,cwd:v,taskId:b})})]});let $=C[d]??C.idle;return(0,r.jsxs)(i.hDc,{"data-testid":`session-card-${x}`,onPointerDown:I,style:{width:t,height:n,overflow:"hidden",borderRadius:14,border:`1px solid ${h?"color-mix(in srgb, var(--border) 80%, transparent)":"color-mix(in srgb, var(--border) 60%, transparent)"}`,background:"var(--board-card-glass)",backdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--board-blur)) saturate(var(--glass-saturate))",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",opacity:h?.55:1,pointerEvents:"all",display:"flex",flexDirection:"column",padding:"8px 10px 6px",color:"var(--text)",userSelect:"none",cursor:"grab"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minHeight:20,flexShrink:0},children:[(0,r.jsx)("span",{"aria-hidden":!0,style:{width:7,height:7,borderRadius:"50%",background:$.dot,flexShrink:0}}),(0,r.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",flexShrink:0,whiteSpace:"nowrap"},children:[$.label,c>0&&"idle"!==d?` \xb7 ${E(c)}`:""]}),S?(0,r.jsx)("input",{ref:M,value:P,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&W(),"Escape"===e.key&&R(!1)},onBlur:()=>void W(),onPointerDown:e=>e.stopPropagation(),style:{flex:1,minWidth:0,fontSize:12,fontWeight:600,padding:"2px 6px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--side-input)",color:"var(--text)"}}):(0,r.jsx)("span",{style:{fontSize:12.5,fontWeight:600,minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},children:s||"Untitled"}),!w&&!S&&(0,r.jsx)("button",{type:"button",onClick:D,onPointerDown:e=>e.stopPropagation(),title:"Rename","aria-label":"Rename",style:{flexShrink:0,pointerEvents:"all",display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer",opacity:.65},children:(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),h&&(0,r.jsx)("span",{style:{flexShrink:0,fontSize:9.5,color:"var(--text-dim)",border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",borderRadius:4,padding:"0 4px"},children:"stale"}),(0,r.jsx)("button",{type:"button",onClick:z,onPointerDown:e=>e.stopPropagation(),title:"Expand",style:{flexShrink:0,pointerEvents:"all",display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer"},children:(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M6 9l6 6 6-6"})})})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",gap:2,overflow:"hidden",padding:"2px 0"},children:f?(0,r.jsx)("div",{style:{fontSize:11.5,lineHeight:1.45,color:"var(--text-muted)",wordBreak:"break-word",whiteSpace:"pre-wrap",maxWidth:"100%"},children:f}):(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10.5,color:"var(--text-dim)"},children:[a&&(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:1},children:a}),l>0&&(0,r.jsxs)("span",{style:{flexShrink:0,whiteSpace:"nowrap"},children:[l," msgs"]})]})}),(0,r.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:6,fontSize:10,color:"var(--text-dim)",borderTop:"1px solid color-mix(in srgb, var(--border) 50%, transparent)",paddingTop:3},children:[(0,r.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0},children:"\uD83D\uDD52"}),(0,r.jsx)("span",{children:function(e,t){if(e>0)return`${E(e)} ago`;if(t<=0)return"";let n=new Date(t),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()?n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):`${n.getMonth()+1}/${n.getDate()} ${n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}`}(c,p)})]})]})}function E(e){let t=Math.max(1,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m${t%60}s`;let r=Math.floor(n/60);return`${r}h${n%60}m`}var R=n(32316);let P={blue:"#3184f8",green:"#10b981",red:"#ef4444",yellow:"#f59e0b",purple:"#8b5cf6"},T={blue:"蓝",green:"绿",red:"红",yellow:"黄",purple:"紫"},M={text:i.T.string,w:i.T.number,h:i.T.number,badge:i.T.string.optional(),createdAt:i.T.number.optional()};class D extends i.A8{static{this.type="sticky-note"}static{this.props=M}getDefaultProps(){return{text:"",w:260,h:200,badge:"blue",createdAt:Date.now()}}canEdit(){return!0}canResize(){return!0}hideRotateHandle(){return!0}onResize(e,t){return(0,i.mfH)(e,t,{minWidth:140,minHeight:100})}getIndicatorPath(e){let{w:t,h:n}=e.props,r=new Path2D;return r.roundRect(0,0,t,n,12),r}component(e){return(0,r.jsx)(W,{shape:e})}}function W({shape:e}){let t,n,{w:s,h:a,text:l}=e.props,d=(0,i.hGv)(),c=(0,i.hau)("editing",()=>d.getEditingShapeId()===e.id,[d,e.id]),u=(0,o.useCallback)(e=>e.stopPropagation(),[]),p=(0,o.useCallback)(t=>{t.stopPropagation(),d.getEditingShapeId()!==e.id&&d.select(e.id)},[d,e.id]),h=(0,o.useCallback)(t=>{t.stopPropagation(),d.setEditingShape(e.id)},[d,e.id]),[x]=(0,o.useState)(()=>e.props.createdAt??Date.now()),g=e.props.badge??"blue",[f,v]=(0,o.useState)(l),b=(0,o.useRef)(l),[m,y]=(0,o.useState)(g),k=(0,o.useRef)(null),j=(0,o.useRef)(!1),w=(0,o.useRef)(!1),[S,C]=(0,o.useState)(!1),L=(0,o.useRef)(null),E=(0,o.useCallback)(t=>{t.stopPropagation(),navigator.clipboard.writeText(e.props.text).then(()=>{C(!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>C(!1),1200)}).catch(()=>{try{let t=document.createElement("textarea");t.value=e.props.text,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),C(!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>C(!1),1200)}catch{}})},[e.props.text]);(0,o.useEffect)(()=>()=>{L.current&&clearTimeout(L.current)},[]),(0,o.useEffect)(()=>{c&&(v(l),b.current=l,y(g),requestAnimationFrame(()=>k.current?.focus()))},[c,l,g]);let M=(0,o.useCallback)(()=>{let t=b.current;(t!==e.props.text||m!==g)&&d.updateShapes([{id:e.id,type:"sticky-note",props:{text:t,badge:m}}])},[d,e.id,e.props.text,g,m]);(0,o.useEffect)(()=>{c||!w.current||j.current||M(),j.current=!1,w.current=c},[c,M]);let D=(0,o.useCallback)(()=>{d.setEditingShape(null)},[d]),z=(0,o.useCallback)(()=>{j.current=!0,d.setEditingShape(null)},[d]),$={width:s,height:a,borderRadius:"var(--bubble-radius, 12px)",border:"1px solid var(--bubble-border)",background:"var(--assistant-card-glass)",backdropFilter:"blur(var(--glass-blur-bubble)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--glass-blur-bubble)) saturate(var(--glass-saturate))",boxShadow:"0 2px 10px -6px rgba(0,0,0,0.2)",color:"var(--text)",display:"flex",flexDirection:"column",overflow:"hidden",fontSize:13,lineHeight:1.5,pointerEvents:"all",userSelect:"none"};return c?(0,r.jsx)(i.hDc,{"data-testid":`sticky-note-${e.id}`,style:{width:s,height:a,pointerEvents:"none"},children:(0,r.jsxs)("div",{style:$,children:[(0,r.jsxs)("div",{onPointerDown:e=>e.stopPropagation(),style:{flexShrink:0,display:"flex",alignItems:"center",gap:8,padding:"6px 10px",borderBottom:"1px solid var(--bubble-hairline)"},children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:5},children:Object.entries(P).map(([e,t])=>(0,r.jsx)("button",{type:"button",title:`徽记\xb7${T[e]??e}`,onClick:t=>{t.stopPropagation(),y(e)},style:{width:14,height:14,padding:0,border:"none",borderRadius:"50%",background:t,cursor:"pointer",boxShadow:m===e?`0 0 0 2px var(--bg-panel), 0 0 0 3.5px ${t}`:`0 0 0 1px color-mix(in srgb, ${t} 45%, transparent)`,opacity:m===e?1:.72}},e))}),(0,r.jsx)("div",{style:{flex:1}}),(0,r.jsx)("button",{type:"button",onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),z()},style:I,title:"放弃变更 (Esc)",children:"取消"}),(0,r.jsx)("button",{type:"button",onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),D()},style:I,title:"完成 (Ctrl+Enter)",children:"完成"})]}),(0,r.jsx)("textarea",{ref:k,value:f,onChange:e=>{v(e.target.value),b.current=e.target.value},onKeyDown:e=>{e.stopPropagation(),"Enter"===e.key&&(e.ctrlKey||e.metaKey)?(e.preventDefault(),D()):"Escape"===e.key&&(e.preventDefault(),z())},onPointerDown:e=>e.stopPropagation(),spellCheck:!1,placeholder:"Markdown 便笺…",className:"sticky-note-input",style:{flex:1,minHeight:0,resize:"none",border:"none",outline:"none",background:"transparent",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12.5,lineHeight:1.5,padding:"var(--bubble-pad-y, 8px) var(--bubble-pad-x, 12px)"}})]})}):(0,r.jsx)(i.hDc,{"data-testid":`sticky-note-${e.id}`,onPointerDown:()=>d.bringToFront([e.id]),style:{width:s,height:a,pointerEvents:"none"},children:(0,r.jsxs)("div",{style:$,children:[(0,r.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:6,padding:"6px var(--bubble-pad-x, 12px) 0",fontSize:10,color:"var(--text-muted)",cursor:"grab"},children:[(0,r.jsx)("span",{"aria-hidden":!0,title:`徽记\xb7${T[g]??g}`,style:{width:8,height:8,borderRadius:"50%",background:P[g]??P.blue,flexShrink:0}}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},children:(t=new Date(x),n=new Date,t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate()?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):`${t.getMonth()+1}/${t.getDate()}`)}),(0,r.jsx)("div",{style:{flex:1}}),(0,r.jsx)("button",{type:"button",title:S?"已复制":"复制内容",onClick:E,onPointerDown:e=>e.stopPropagation(),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:22,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:S?"var(--accent)":"var(--text-dim)",cursor:"pointer",pointerEvents:"all"},children:S?(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M20 6L9 17l-5-5"})}):(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"4px var(--bubble-pad-x, 12px) var(--bubble-pad-y, 8px)",textAlign:"left"},children:l.trim()?(0,r.jsx)("div",{className:"markdown-body",onPointerDown:u,onPointerUp:u,onClick:p,onDoubleClick:h,style:{wordBreak:"break-word",cursor:"text"},children:(0,r.jsx)(R.oz,{children:l})}):(0,r.jsx)("div",{onClick:p,onDoubleClick:h,style:{color:"var(--text-dim)",fontSize:12,cursor:"text"},children:"双击编辑 markdown"})})]})})}let I={border:"none",background:"color-mix(in srgb, var(--border) 30%, transparent)",color:"var(--text-muted)",borderRadius:5,padding:"2px 10px",fontSize:11,cursor:"pointer"};class z extends i.QVi{static{this.id="note"}static{this.initial="idle"}constructor(...e){super(...e),this.shapeType="sticky-note"}}let $=[...i.Ats,S,D],F=[{tools(e,t){let n=t.note;return n?{...t,note:{...n,onSelect(t){e.setCurrentTool("note"),n.onSelect?.(t)},onDragStart(t,n){let{x:r,y:o}=e.inputs.getCurrentPagePoint(),s=(0,i.n6Y)(),a=e.markHistoryStoppingPoint("drag sticky-note");e.createShape({id:s,type:"sticky-note",x:r,y:o});let l=e.getShape(s);if(!l)return void e.setCurrentTool("select.idle");let d=e.getShapePageBounds(s),c=d?.w??260,u=d?.h??200;e.updateShape({id:s,type:"sticky-note",x:r-c/2,y:o-u/2}),e.select(s),e.setCurrentTool("select.translating",{...n,target:"shape",shape:l,isCreating:!0,creatingMarkId:a,onCreate(){e.setCurrentTool("select.idle"),e.select(s)}})}}}:t}}];function H({children:e}){return(0,r.jsx)("div",{className:"tlui-style-panel__section",children:e})}function B(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(H,{children:(0,r.jsx)(i.pY9,{})}),(0,r.jsxs)(H,{children:[(0,r.jsx)(i.tJe,{}),(0,r.jsx)(i.Isx,{}),(0,r.jsx)(i.pPo,{})]}),(0,r.jsxs)(H,{children:[(0,r.jsx)(i.$EK,{}),(0,r.jsx)(i.k2C,{}),(0,r.jsx)(i.f1t,{})]}),(0,r.jsxs)(H,{children:[(0,r.jsx)(i.C_T,{}),(0,r.jsx)(i.dGg,{}),(0,r.jsx)(i.JGv,{}),(0,r.jsx)(i.hLL,{})]})]})}function A(e){return(0,r.jsx)("div",{style:{position:"absolute",right:10,bottom:10,zIndex:70,maxHeight:"70%",overflow:"hidden",pointerEvents:"none"},children:(0,r.jsx)(i.Hif,{...e,children:(0,r.jsx)(B,{})})})}function N({board:e,isDark:t}){let{t:n}=(0,l.s)(),[s,a]=(0,o.useState)(!1),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{let t=d.current;if(!t)return;let n=e=>{e.dataTransfer?.types.includes("text/session-id")&&(e.preventDefault(),e.dataTransfer.dropEffect="move",a(!0))},r=()=>a(!1),o=n=>{if(!n.dataTransfer?.types.includes("text/session-id"))return;n.preventDefault(),n.stopPropagation(),a(!1);let r=n.dataTransfer.getData("text/session-id");if(!r)return;let o=t.getBoundingClientRect(),i=n.clientX-o.left,s=n.clientY-o.top;e.addSessionNode(r,i,s)};return t.addEventListener("dragover",n,!0),t.addEventListener("dragleave",r,!0),t.addEventListener("drop",o,!0),()=>{t.removeEventListener("dragover",n,!0),t.removeEventListener("dragleave",r,!0),t.removeEventListener("drop",o,!0)}},[e]);let c=(0,o.useMemo)(()=>({ActionsMenu:null,HelpMenu:null,MainMenu:null,PageMenu:null,SharePanel:null,MenuPanel:null,TopPanel:null,LoadingScreen:null,StylePanel:e=>(0,r.jsx)(A,{...e}),KeyboardShortcutsDialog:null,DebugPanel:null,DebugMenu:null,Toolbar:()=>(0,r.jsx)(i.F0h,{children:(0,r.jsx)(i.y5O,{})})}),[]);return(0,r.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",position:"relative"},children:(0,r.jsxs)("div",{ref:d,style:{flex:1,minHeight:0,position:"relative"},children:[(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:0,pointerEvents:"none",background:"var(--board-scrim-bg)",backdropFilter:"var(--board-scrim-filter, none)",WebkitBackdropFilter:"var(--board-scrim-filter, none)"}}),s&&(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:30,display:"flex",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"2px dashed var(--accent)",borderRadius:10,pointerEvents:"none",color:"var(--accent)",fontSize:13,fontWeight:600},children:n("boards.dropToAdd")}),e.loading?(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:30,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:n("boards.loadingCanvas")}):e.error?(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:30,display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:e.error}):(0,r.jsx)(i.Z1z,{options:{maxPages:1},shapeUtils:$,tools:[z],overrides:F,onMount:t=>{t.user.updateUserPreferences({isSnapMode:!0}),e.onMount(t)},components:c,autoFocus:!1,colorScheme:t?"dark":"light"})]})})}},66648:()=>{}}]);
|