@chorus-aidlc/chorus 0.6.8 → 0.7.1
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/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +335 -333
- package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +36 -36
- package/.next/standalone/.next/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +1 -1
- package/.next/standalone/.next/server/app/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +6 -6
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +1 -1
- package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +1 -1
- package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
- package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.rsc +2 -2
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/onboarding/page.js +5 -4
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
- package/.next/standalone/.next/server/chunks/1596.js +1 -1
- package/.next/standalone/.next/server/chunks/1639.js +1 -0
- package/.next/standalone/.next/server/chunks/1871.js +1 -0
- package/.next/standalone/.next/server/chunks/2570.js +1 -1
- package/.next/standalone/.next/server/chunks/2618.js +1 -1
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/{3408.js → 3300.js} +1 -1
- package/.next/standalone/.next/server/chunks/3611.js +158 -0
- package/.next/standalone/.next/server/chunks/3890.js +1 -1
- package/.next/standalone/.next/server/chunks/5300.js +1 -1
- package/.next/standalone/.next/server/chunks/5869.js +16 -0
- package/.next/standalone/.next/server/chunks/6113.js +1 -1
- package/.next/standalone/.next/server/chunks/6207.js +1 -1
- package/.next/standalone/.next/server/chunks/6753.js +3 -3
- package/.next/standalone/.next/server/chunks/7368.js +1 -1
- package/.next/standalone/.next/server/chunks/8251.js +1 -0
- package/.next/standalone/.next/server/chunks/8584.js +1 -0
- package/.next/standalone/.next/server/chunks/9051.js +1 -0
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/937.js +1 -1
- package/.next/standalone/.next/server/chunks/9508.js +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/10739-5c185aa0432f5d56.js +1 -0
- package/.next/standalone/.next/static/chunks/{14945-45ab8dcd7d1460b0.js → 14945-0bc0086add441ba7.js} +1 -1
- package/.next/standalone/.next/static/chunks/19126-858a24cab6fd338a.js +1 -0
- package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +1 -0
- package/.next/standalone/.next/static/chunks/29445-04c4ab36da85b7da.js +1 -0
- package/.next/standalone/.next/static/chunks/34775-387b9a9967a35ccb.js +1 -0
- package/.next/standalone/.next/static/chunks/39611-cc227784ed679a6d.js +1 -0
- package/.next/standalone/.next/static/chunks/4457-b86052b2e954e357.js +1 -0
- package/.next/standalone/.next/static/chunks/4842-95cf4b7efd540e89.js +1 -0
- package/.next/standalone/.next/static/chunks/4860.15c9ae5b6268c6fc.js +1 -0
- package/.next/standalone/.next/static/chunks/53298-82b9c818cd70686d.js +1 -0
- package/.next/standalone/.next/static/chunks/{72156-693a7612a0a1927c.js → 53664-a2be2eaacce03f0f.js} +1 -1
- package/.next/standalone/.next/static/chunks/55434-622522b242e7747f.js +1 -0
- package/.next/standalone/.next/static/chunks/95750-3d0d1d48995d1088.js +1 -0
- package/.next/standalone/.next/static/chunks/96919-8cbf6310c703e7af.js +1 -0
- package/.next/standalone/.next/static/chunks/{52162.90c7520be06645a7.js → 96924.93f7dab7363f09ac.js} +1 -1
- package/.next/standalone/.next/static/chunks/{99373.dddf0d83066106d0.js → 99373.9939e11f5b4e0615.js} +1 -1
- package/.next/standalone/.next/static/chunks/99513-24849ff68a8098e1.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/{layout-bf420c745be7631b.js → layout-acddb9c84f5d1607.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-cb9454c2d5a8390c.js → page-63a6a5b6cf9ecf87.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b4c6141dd26cc506.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4bf7bff8d68509f9.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-37a0cea0ba40c31b.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-2d820769aa7bcaf6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-dec0e71221d77928.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-355321010dd82e56.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-59f6f1967c3dfcad.js → page-bc66567cb9c40bf0.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-a4995a788651e9bc.js → page-86cfeb421fa97830.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-7fe70579023330da.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-8c51993bb3866a55.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-7c30b3f9f2b8f520.js → page-80566dcc1cd42bee.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-8db25385236a9bbf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/page-8d755192f0f67938.js +1 -0
- package/.next/standalone/.next/static/chunks/{webpack-121b5a7960550fef.js → webpack-1bb984dd0934fa96.js} +1 -1
- package/.next/standalone/.next/static/css/ca9796ac54f96058.css +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
- package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +11 -4
- package/.next/standalone/public/chorus-plugin/bin/on-subagent-start.sh +1 -1
- package/.next/standalone/public/chorus-plugin/bin/on-subagent-stop.sh +5 -5
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +43 -18
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +2 -2
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +3 -3
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +15 -18
- package/.next/standalone/public/install-opencode.sh +284 -0
- package/.next/standalone/public/skill/chorus/SKILL.md +44 -19
- package/.next/standalone/public/skill/proposal-chorus/SKILL.md +2 -2
- package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +3 -3
- package/README.md +12 -5
- package/README.zh.md +12 -5
- package/package.json +1 -1
- package/prisma/migrations/20260430034110_add_agent_permissions/migration.sql +2 -0
- package/prisma/schema.prisma +1 -0
- package/.next/standalone/.next/server/chunks/1386.js +0 -1
- package/.next/standalone/.next/server/chunks/1526.js +0 -1
- package/.next/standalone/.next/server/chunks/3088.js +0 -1
- package/.next/standalone/.next/server/chunks/4152.js +0 -1
- package/.next/standalone/.next/server/chunks/4772.js +0 -158
- package/.next/standalone/.next/server/chunks/8104.js +0 -16
- package/.next/standalone/.next/server/chunks/9408.js +0 -1
- package/.next/standalone/.next/static/chunks/10739-f8a95983c740edff.js +0 -1
- package/.next/standalone/.next/static/chunks/19126-ce11a472a7b46715.js +0 -1
- package/.next/standalone/.next/static/chunks/192-2fe41d1be4cf52c7.js +0 -1
- package/.next/standalone/.next/static/chunks/36940-1a052dcfd7a51c42.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.32370b32f23e5ea7.js +0 -1
- package/.next/standalone/.next/static/chunks/53011-6c6e5c3c761b4229.js +0 -1
- package/.next/standalone/.next/static/chunks/55203-e226f28d874a003b.js +0 -1
- package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +0 -1
- package/.next/standalone/.next/static/chunks/59703-726546958cd4cf44.js +0 -1
- package/.next/standalone/.next/static/chunks/62326-65d43abf563d7ce2.js +0 -1
- package/.next/standalone/.next/static/chunks/67312-2b0c88796d8a1f83.js +0 -1
- package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +0 -1
- package/.next/standalone/.next/static/chunks/89310-e7dd1f2b9518aeb2.js +0 -1
- package/.next/standalone/.next/static/chunks/96924-847b528f7abad0e5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-61ad25356f1bcf61.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-cfd59c5238497200.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d721a820e1058b5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-9199629492f0d6cc.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-164acb03167c8257.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-642981c5c760bfef.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-38e4430e5591fbff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-cb3978ef57e7197a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-94169bdcca8cb817.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-1aadff0d5227df18.js +0 -1
- package/.next/standalone/.next/static/css/5d7e316311e46db1.css +0 -1
- /package/.next/standalone/.next/static/{oJIidfE9Dj5iwDkFfuZP9 → TJ6qFSxjQGUSajvwbI2qu}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{oJIidfE9Dj5iwDkFfuZP9 → TJ6qFSxjQGUSajvwbI2qu}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4860],{4860:e=>{e.exports=JSON.parse('{"common":{"appName":"Chorus","loading":"加载中...","save":"保存","cancel":"取消","delete":"删除","edit":"编辑","create":"创建","search":"搜索","done":"完成","copy":"复制","copied":"已复制!","back":"返回","viewAll":"查看全部","signOut":"退出登录","optional":"可选","unassigned":"未分配","agent":"智能体","user":"用户","status":"状态","priority":"优先级","type":"类型","created":"创建时间","updated":"更新时间","version":"版本","description":"描述","details":"详情","content":"内容","assignment":"分配","noDescription":"暂无描述","noContent":"暂无内容","creating":"创建中...","processing":"处理中...","saving":"保存中...","claim":"认领","release":"释放","assign":"分配","reassign":"重新分配","verify":"验证","reject":"拒绝","approve":"批准","selectProject":"请先选择一个项目","assignee":"负责人","activity":"动态","noActivity":"暂无动态","source":"来源","currentAssignee":"当前负责人","failedToAssign":"分配失败","actions":"操作","genericError":"发生错误,请重试。","unknown":"未知","system":"系统","confirmDelete":"确定要删除吗?"},"activity":{"taskCreated":"{actor} 创建了此任务","taskAssigned":"{actor} 被分配到此任务","taskClaimed":"{actor} 认领了此任务","taskStarted":"{actor} 开始处理此任务","taskSubmitted":"{actor} 提交了此任务待审核","taskCompleted":"{actor} 完成了此任务","taskReleased":"{actor} 释放了此任务","taskStatusChanged":"{actor} 更改了任务状态","ideaCreated":"{actor} 创建了此想法","ideaAssigned":"{actor} 被分配到此想法","ideaClaimed":"{actor} 认领了此想法","ideaReleased":"{actor} 释放了此想法","ideaStatusChanged":"{actor} 更改了想法状态","elaborationStarted":"{actor} 发起了需求澄清","elaborationAnswered":"{actor} 回答了需求澄清","elaborationSkipped":"{actor} 跳过了需求澄清","elaborationResolved":"{actor} 完成了需求澄清","elaborationFollowup":"{actor} 发起了追加需求澄清","genericAction":"{actor} 执行了 {action}","entityIdea":"想法","entityProposal":"提案","entityTask":"任务","entityDocument":"文档","entityProject":"项目","actionCreated":"创建了","actionUpdated":"更新了","actionApproved":"批准了","actionRejected":"拒绝了","actionClaimed":"认领了","actionCompleted":"完成了","actionRevoked":"已撤回","title":"动态","subtitle":"项目最近活动","noActivity":"暂无动态","noActivityDesc":"当您和智能体在此项目上工作时,动态将在此显示。","loadingActivity":"加载动态中..."},"comments":{"title":"评论","noComments":"暂无评论","addComment":"添加评论...(输入 @ 提及他人)","roleAgent":"Agent","roleHuman":"用户","onBehalfOf":"代表 {name}","showMore":"展开更多","showLess":"收起","loadError":"加载评论失败","retry":"重试"},"mentions":{"noResults":"无结果","searchPlaceholder":"输入名称以提及..."},"assign":{"selectAssignee":"选择如何分配此任务","assignToMyself":"分配给我自己","assignToMyselfDesc":"您的所有开发智能体都可以查看并处理此任务","orAssignToUser":"分配给其他用户","orAssignToAgent":"分配给特定智能体","releaseAssignee":"释放(清除负责人)","releaseAssigneeDesc":"移除当前负责人,使此任务重新可用"},"time":{"justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","today":"今天","yesterday":"昨天"},"nav":{"projects":"项目","settings":"设置","overview":"概览","ideas":"想法","documents":"文档","proposals":"提案","tasks":"任务","activity":"动态","logout":"退出登录","newProject":"新建项目","backToProjects":"项目","openMenu":"打开菜单"},"priority":{"low":"低","medium":"中","high":"高","lowPriority":"低优先级","mediumPriority":"中优先级","highPriority":"高优先级","critical":"紧急","criticalPriority":"紧急优先级"},"status":{"open":"开放","active":"进行中","draft":"草稿","pending":"待审核","pendingReview":"待审核","approved":"已批准","rejected":"已拒绝","done":"已完成","inProgress":"进行中","todo":"待办","toVerify":"待验证","claimed":"已认领","current":"当前","assigned":"已分配","completed":"已完成","closed":"已关闭","elaborating":"需求澄清中","elaborated":"已细化","proposalCreated":"方案已创建","proposal_created":"方案已创建","needHumanInput":"需要人工介入","humanConductRequired":"需要指挥"},"admin":{"title":"超级管理员","dashboard":"仪表盘","welcome":"欢迎使用 Chorus 超级管理后台","password":"密码","passwordPlaceholder":"输入密码","signingIn":"登录中...","signInAsAdmin":"以超级管理员身份登录","backToEmail":"返回邮箱输入","totalCompanies":"公司总数","registeredOrgs":"已注册的组织","registeredOrgsCount":"{count} 个已注册组织","totalUsers":"用户总数","humanUsers":"所有公司的人类用户","totalAgents":"智能体总数","aiAgents":"所有公司的 AI 智能体","quickActions":"快捷操作","commonTasks":"常用管理任务","addCompany":"添加公司","addCompanyDesc":"注册新的组织","manageCompanies":"管理公司","manageCompaniesDesc":"查看和配置组织","companies":"公司","oidcRedirectUri":"OIDC 重定向 URI(回调地址)","oidcRedirectUriDesc":"在您的 OIDC 提供商中配置此 URL 作为允许的重定向 URI","tableName":"名称","tableEmailDomains":"邮箱域名","tableOidcStatus":"OIDC 状态","tableUsers":"用户","tableAgents":"智能体","tableActions":"操作","noCompanies":"暂无公司。","addFirstCompany":"添加您的第一个公司","oidcConfigured":"已配置","oidcNotConfigured":"未配置","deleteCompanyConfirm":"确定要删除「{name}」吗?此操作无法撤销。","deleteCompanyConfirmFull":"确定要删除「{name}」吗?此操作无法撤销,并将删除所有关联数据。","failedToDelete":"删除公司失败","networkError":"网络错误,请重试。","backToCompanies":"返回公司列表","deleteCompany":"删除公司","createdOn":"创建于 {date}","companyNotFound":"公司未找到","failedToLoad":"加载公司失败","failedToUpdate":"更新公司失败","companyUpdated":"公司更新成功","projects":"项目","basicInfo":"基本信息","companyName":"公司名称","emailDomains":"邮箱域名","emailDomainsPlaceholder":"acme.com, acme.org","emailDomainsHelp":"以逗号分隔的邮箱域名列表","oidcConfig":"OIDC 配置","oidcEnabled":"已启用","oidcConfigDesc":"配置 OpenID Connect (PKCE) 以实现单点登录认证。当 Issuer URL 和 Client ID 都填写后,OIDC 将自动启用。","oidcIssuerUrl":"OIDC Issuer URL","oidcIssuerUrlPlaceholder":"https://login.microsoftonline.com/tenant-id/v2.0","oidcIssuerUrlHelp":"OpenID Connect 发现端点 URL","clientId":"Client ID","clientIdPlaceholder":"例如:12345678-abcd-efgh-ijkl-123456789012","clientIdHelp":"OAuth 2.0 Client ID(PKCE 模式,无需密钥)","saveChanges":"保存更改","createCompany":"创建公司","createCompanyDesc":"设置新公司并配置 OIDC 认证","emailDomain":"邮箱域名","emailDomainHelp":"使用此邮箱域名的用户将被路由到此公司","required":"必填","companyNamePlaceholder":"例如:Acme 公司","emailDomainPlaceholder":"例如:acme.com","invalidCredentials":"凭证无效","createCompanyFailed":"创建公司失败"},"dashboard":{"title":"仪表盘","subtitle":"项目活动概览","welcome":"欢迎使用 Chorus","welcomeDesc":"创建您的第一个项目或选择现有项目开始。","viewProjects":"查看项目","createProject":"创建项目","quickActions":"快捷操作","addNewIdea":"新想法","reviewProposals":"审核提案","viewTaskBoard":"任务看板","recentActivity":"最近动态","activityPlaceholder":"动态信息将在此显示","taskPipeline":"任务流水线","totalTasks":"共 {count} 个","todoCount":"待办 ({count})","inProgressCount":"进行中 ({count})","toVerifyCount":"待验证 ({count})","doneCount":"已完成 ({count})","noRecentTasks":"暂无任务","noRecentActivity":"暂无动态","viewAll":"查看全部","settings":"设置"},"projectSettings":{"title":"项目设置","basicInfo":"基本信息","projectName":"项目名称","description":"描述","saveChanges":"保存更改","saving":"保存中...","saveSuccess":"项目已更新","saveFailed":"更新项目失败","dangerZone":"危险区域","deleteTitle":"删除此项目","deleteDescription":"永久删除此项目及其所有数据,此操作无法撤销。"},"projects":{"title":"项目","subtitle":"管理您的项目并跟踪进度","newProject":"新建项目","noProjects":"暂无项目","noProjectsDesc":"创建您的第一个项目,开始与 AI 智能体协作。","createFirst":"创建第一个项目","onboarding":{"welcomeTitle":"欢迎使用 Chorus","welcomeDesc":"Chorus 通过项目组和项目来组织工作。让我们来设置您的工作空间。","whatIsGroupTitle":"项目组","whatIsGroupDesc":"用于归类相关项目的容器。可以理解为一个团队、产品线或计划 —— 例如「移动应用」或「Q3 发布」。","whatIsProjectTitle":"项目","whatIsProjectDesc":"实际工作发生的地方。每个项目有自己的想法、提案、文档和任务。AI 智能体在项目内协作。","step1Title":"第一步:创建项目组","step1Desc":"先组织您的工作空间。创建一个分组来归类相关项目。","step2Title":"第二步:创建项目","step2Desc":"在分组中添加一个项目。这是您收集想法和分配 AI 智能体工作的地方。","createGroupBtn":"创建项目组","agentTipTitle":"有管理员智能体?让 AI 帮你完成设置","agentTipDesc":"复制以下提示词发送给管理员智能体,自动创建项目组和项目:","agentPrompt":"请帮我设置工作空间。创建一个名为「{groupName}」的项目组,描述为「{groupDesc}」,然后在其中创建一个名为「{projectName}」的项目。","agentPromptDefault":"请帮我设置工作空间。创建一个名为「我的团队」的项目组并添加简要描述,然后在其中创建一个初始项目。","copiedPrompt":"提示词已复制!"},"ideas":"个想法","tasks":"个任务","docs":"个文档","loadingProjects":"加载项目中...","createFailed":"创建项目失败","activeProjects":"活跃项目","totalTasks":"总任务数","openProposals":"待审提案","ideasCaptured":"已收集想法","taskProgress":"任务进度","createNewProject":"创建新项目","createNewProjectDesc":"开始一个新项目并邀请团队","updated":"更新于","listView":"列表","gridView":"网格","empty":"空","complete":"完成","createNew":{"title":"创建新项目","subtitle":"设置项目详情,之后再将想法分配给 产品经理智能体","gettingStartedTitle":"开始使用","gettingStartedDesc":"填写以下基本信息。创建后,您可以添加想法并分配给 产品经理智能体生成提案。","basicInfo":"基本信息","projectName":"项目名称","projectNamePlaceholder":"例如:项目 Alpha","descriptionLabel":"描述","descriptionPlaceholder":"简要描述这个项目是关于什么的...","initialIdeas":"初始想法","initialIdeasDesc":"分享任何初始想法或需求,供 产品经理智能体在生成提案时参考","ideaPlaceholder":"例如:我们需要支持 OAuth 的用户认证...","addAnother":"添加另一个想法","documents":"文档","documentsDesc":"上传 PRD、技术设计或任何参考文档供 产品经理智能体分析","dragDrop":"拖放文件到此处,或点击浏览","fileTypes":"Markdown(.md)文档","createProject":"创建项目"}},"ideas":{"title":"想法","subtitle":"捕捉并跟踪项目想法","newIdea":"新想法","all":"全部","whatIsYourIdea":"您的想法是什么?","addMoreDetails":"添加更多详情...","noIdeas":"暂无想法","noIdeasFiltered":"暂无{status}的想法","startByAdding":"从添加您的第一个想法开始。想法可以被 AI 智能体拾取进行分析。","ideasWithStatus":"此状态的想法将在此显示。","addFirstIdea":"添加第一个想法","loadingIdeas":"加载想法中...","ideaNotFound":"想法未找到","backToIdeas":"返回想法列表","claimIdea":"认领想法","assignIdea":"分配想法","source":"来源:","assignedToMe":"分配给我","usedInProposal":"已用于提案","noIdeasWithStatus":"暂无{status}的想法","selectIdeaAssignee":"选择如何分配此想法","assignToMyselfIdeaDesc":"您的所有 产品经理智能体都可以查看并处理此想法","orAssignToPmAgent":"分配给特定 产品经理智能体","onlySelectedPmAgentCanWork":"只有选中的 产品经理智能体可以处理此想法","selectPmAgent":"选择一个 产品经理智能体","noPmAgentsAvailable":"没有可用的 产品经理智能体","releaseIdeaAssigneeDesc":"移除当前负责人,使此想法重新可用","proposalGenerated":"已生成提案","viewProposal":"查看提案","assignedTo":"分配给","titleLabel":"标题","submit":"提交","editIdea":"编辑想法","saveChanges":"保存更改","completed":"已完成","titleRequired":"标题不能为空","updateFailed":"更新想法失败","deleteIdea":"删除想法","deleteIdeaConfirm":"确定要删除「{title}」吗?此操作无法撤销。","createFailed":"创建想法失败","moveToProject":"移动到项目","moveIdeaTitle":"移动想法到其他项目","moveIdeaDescription":"选择要移动到的项目。关联的草稿或待审提案也会一并移动。","searchProjects":"搜索项目...","noProjectsFound":"未找到项目","moveFailed":"移动想法失败","moving":"移动中...","ungrouped":"未分组"},"tasks":{"title":"任务","subtitle":"任务管理看板","newTask":"新任务","agentHours":"智能体工时总计","noTasks":"暂无任务","loadingTasks":"加载任务中...","taskNotFound":"任务未找到","backToTasks":"返回任务列表","claimTask":"认领任务","assignTask":"分配任务","statusProgress":"状态进度","subtasks":"子任务","parentTask":"父任务","storyPoints":"故事点","acceptanceCriteria":"验收标准","startWork":"开始工作","submitForReview":"提交验证","markAsVerified":"标记为已验证","taskCompleted":"任务已完成","noActionsAvailable":"无可用操作","onlySelectedAgentCanWork":"仅选定的智能体可以处理此任务","selectAgent":"选择智能体","selectUser":"选择用户","noAgentsAvailable":"暂无可用的智能体","noUsersAvailable":"暂无其他用户","editTask":"编辑任务","createTaskTitle":"创建任务","deleteTask":"删除任务","deleteTaskConfirm":"确定要删除「{title}」吗?此操作无法撤销。","titleLabel":"标题","titleRequired":"标题不能为空","descriptionLabel":"描述","priorityLabel":"优先级","storyPointsLabel":"故事点(小时)","acceptanceCriteriaLabel":"验收标准","saveChanges":"保存更改","createFailed":"创建任务失败","updateFailed":"更新任务失败","dependencies":"依赖关系","dependsOn":"依赖于","blockedByThis":"被此任务阻塞","noDependencies":"无依赖","addDependency":"添加依赖","failedToAddDep":"添加依赖失败","failedToRemoveDep":"移除依赖失败","noTasksToDisplay":"暂无任务","kanbanView":"看板","dagView":"DAG","listView":"列表","allStatuses":"全部","dependencyBlocked":"依赖未完成","dependencyBlockedDescription":"此任务有未完成的前置依赖。在依赖未完成时开始工作可能会导致问题。","forceMove":"强制移动","forceMoveConfirm":"确定要将此任务移动到进行中吗?其前置依赖尚未完成。","blockerList":"阻塞任务","blockedTooltip":"被 {count} 个未完成的依赖阻塞","blockedBy":"阻塞于:{tasks}","noActiveSession":"无活跃会话","forceStatusChange":"强制状态变更","proposalFilter":{"label":"提案","allProposals":"所有提案","clear":"清除","search":"搜索提案...","taskCount":"{count} 个任务","filtered":"{filtered} / {total} 个提案","noResults":"未找到提案","filteredSubtitle":"显示 {filtered} / {total} 个任务(已筛选)"}},"proposals":{"pageTitle":"提案","subtitle":"审核和批准 AI 生成的提案","all":"全部","pendingReview":"待审核","noProposals":"暂无提案","noProposalsDesc":"当 产品经理智能体分析想法时会创建提案。它们将在此显示供您审核。","loadingProposals":"加载提案中...","proposalNotFound":"提案未找到","backToProposals":"返回提案列表","sourceIdea":"来源想法","sourceIdeas":"来源想法","noSourceIdeas":"无来源想法","awaitingReview":"等待您的审核","reviewInstructions":"审核内容并批准或拒绝此提案。","basedOn":"基于","documentDrafts":"文档草稿","documents":"文档","taskDrafts":"任务草稿","tasks":"任务","emptyContainer":"此提案容器为空。请添加文档或任务。","inputType":"输入类型","creatorType":"创建者类型","containerSummary":"容器摘要","inputs":"输入","discussion":"讨论","reviewInfo":"审核信息","reviewedBy":"审核人","reviewedAt":"审核时间","reviewNote":"审核备注","requestChanges":"请求修改","approveProposal":"批准提案","approveProposalDesc":"可选填备注给提案创建者(例如给 Agent 的指示)。","approveNotePlaceholder":"添加备注(可选)...","rejectProposal":"拒绝提案","rejectProposalDesc":"请填写拒绝此提案的原因。","rejectReasonPlaceholder":"请输入拒绝原因...","rejectionReason":"拒绝原因","createProposal":"创建提案","basicInfo":"基本信息","title":"标题","titlePlaceholder":"输入提案标题...","descriptionPlaceholder":"描述这个提案是关于什么的...","selectSourceIdeas":"选择来源想法","noAvailableIdeas":"没有可用的想法。您需要先认领一个想法。","titleRequired":"标题是必填的","selectAtLeastOneIdea":"请至少选择一个想法","createFailed":"创建提案失败","createAndEdit":"创建并编辑","addDocumentDraft":"添加文档","addTaskDraft":"添加任务","editDraft":"编辑","deleteDraft":"删除","documentType":"文档类型","documentTitle":"文档标题","documentContent":"内容(Markdown)","taskTitle":"任务标题","taskDescription":"描述","taskPriority":"优先级","taskStoryPoints":"故事点(小时)","taskAcceptanceCriteria":"验收标准","submitForReview":"提交审核","draftNotice":"此提案为草稿状态。添加内容后可提交审核。","draftStatus":"草稿","confirmSubmit":"提交此提案进行审核?","confirmSubmitDesc":"一旦提交,在审核完成前将无法编辑提案内容。","completed":"已完成","typeNewDocument":"新文档","typeDocumentUpdate":"文档更新","typeTaskBreakdown":"任务拆分","typeDocumentAndTasks":"文档 + 任务","tasksCount":"{count} 个任务","closeProposal":"关闭提案","closeProposalDesc":"关闭提案后将无法再编辑。请填写关闭原因。","closeReasonPlaceholder":"请输入关闭原因...","closedNotice":"此提案已被永久关闭。","revokeProposal":"撤回批准","revokeProposalDesc":"此操作将关闭所有由此提案生成的任务,并删除所有生成的文档。提案将回退为草稿状态。","revokeReasonPlaceholder":"请输入撤回原因...","revokeTasksToClose":"将关闭 {count} 个任务","revokeDocsToDelete":"将删除 {count} 个文档","failedToSaveDocDraft":"保存文档草稿失败","failedToSaveTaskDraft":"保存任务草稿失败","docTypePrd":"PRD","docTypeTechDesign":"技术设计","docTypeAdr":"ADR","docTypeSpec":"规格说明","docTypeGuide":"指南","docSubtitlePrd":"产品需求文档","docSubtitleTechDesign":"技术设计文档","docSubtitleAdr":"架构决策记录","docSubtitleSpec":"规格说明书","docSubtitleGuide":"指南","acCount":"{count} AC","depCount":"{count} 依赖","storyPointsPlaceholder":"例如 4","cardsView":"卡片","dependencyExists":"此依赖关系已存在","cyclicDependency":"无法添加依赖:会产生循环","failedToAddDependency":"添加依赖失败","taskDraftDetails":"任务草稿详情","newTaskDraft":"新建任务草稿","editTaskDraft":"编辑","deleteTaskDraft":"删除任务草稿","deleteTaskDraftConfirm":"确定要删除此任务草稿吗?","dependsOn":"依赖任务","noDependencies":"无依赖关系","addDependency":"添加依赖","selectDependency":"选择任务...","removeDependency":"移除","viewMode":"查看","taskDraftSaved":"任务草稿已保存","deleteProposal":"删除提案","deleteProposalDesc":"确定要删除此提案吗?此操作无法撤销。"},"proposalValidation":{"title":"提交检查清单","passed":"所有检查已通过","hasErrors":"请先修复错误再提交","loading":"正在检查...","error":"错误","warning":"警告","info":"提示","errorCount":"{count} 个错误","warningCount":"{count} 个警告","E1":"必须包含至少一个 PRD 文档","E2":"文档「{title}」内容不足(最少 100 个字符)","E3":"必须包含至少一个任务","E4":"必须关联至少一个 Idea","E5":"Idea「{title}」尚未完成需求澄清","W1":"建议添加技术设计文档","W2":"任务「{title}」缺少描述","E-AC":"任务「{title}」缺少验收标准","W4":"存在多个任务但未定义依赖关系","W5":"Proposal 缺少描述","I1":"任务「{title}」未设置优先级","I2":"任务「{title}」未设置故事点"},"documents":{"title":"文档","subtitle":"PRD、规格说明和项目文档","newDocument":"新文档","all":"全部","noDocuments":"暂无文档","noDocumentsDesc":"当提案被批准时会创建文档。您也可以手动创建文档。","createDocument":"创建文档","loadingDocuments":"加载文档中...","documentNotFound":"文档未找到","backToDocuments":"返回文档列表","updated":"更新于 {date}","sourceProposal":"来源提案","viewProposal":"查看提案","versionHistory":"版本历史","previousVersions":"个历史版本","documentContent":"文档内容...","saveChanges":"保存更改","titleLabel":"标题","titleRequired":"标题不能为空","titlePlaceholder":"输入文档标题","typeLabel":"类型","uploadMarkdown":"Markdown 文件(可选)","clickToUpload":"点击上传 Markdown 文件","characters":"个字符","createFailed":"创建文档失败","typePrd":"PRD","typeSpec":"技术规格","typeDesign":"设计文档","typeTechDesign":"技术设计","typeAdr":"ADR","typeGuide":"指南","typeNote":"笔记","typeOther":"其他"},"export":{"exportDocument":"导出","exportAs":"导出为 {format}","formatMd":"Markdown (.md)","formatPdf":"PDF (.pdf)","formatDocx":"Word (.docx)","exporting":"导出中...","exportSuccess":"文档导出成功","exportError":"文档导出失败","fetchingContent":"加载文档中..."},"settings":{"title":"设置","subtitle":"管理您的账户和智能体配置","breadcrumb":"Chorus / 设置","language":"语言","languageDesc":"选择您的首选语言","agents":"智能体","agentsDesc":"创建 API 密钥,让您的个人智能体访问 Chorus。每个密钥可以分配不同的角色。","createApiKey":"创建 API 密钥","noApiKeys":"暂无 API 密钥。创建一个开始使用。","roles":"角色:","developerAgent":"开发智能体","developerAgentDesc":"执行任务、编写代码、报告问题、提交代码","pmAgent":"产品经理智能体","pmAgentDesc":"分析需求、撰写提案、管理任务","adminAgent":"管理员智能体","adminAgentDesc":"人类级别权限:审批提案、验证任务、创建项目","created":"创建于","apiKeyCreated":"API 密钥已创建","apiKeyCreatedDesc":"请立即复制此密钥。您将无法再次查看它!","name":"名称","namePlaceholder":"我的智能体密钥","agentRoles":"智能体角色","agentRolesDesc":"选择此 API 密钥可以访问的角色。","agentPersona":"智能体人设","agentPersonaDesc":"选择预设或编写您自己的人设。这定义了智能体在所有交互中的行为方式。","agentPersonaDescNoRoles":"定义此智能体在所有交互中的行为方式。","personaPlaceholder":"描述此智能体应如何行为。例如:\'您是一个专注于清晰和简洁的助手...\'","personaHint":"人设会在每次 check-in 时自动注入到智能体的上下文。","personaHintNoRoles":"为您的智能体编写自定义人设。","creating":"创建中...","confirmDelete":"确定要删除此 API 密钥吗?","confirmDeleteTitle":"删除 API 密钥","confirmDeleteDesc":"确定要删除此 API 密钥吗?此操作无法撤销。","editAgent":"编辑智能体","saveChanges":"保存更改","saving":"保存中...","editAgentDesc":"更新此智能体的名称、角色和人设。","updateSuccess":"智能体更新成功","updateFailed":"更新智能体失败","setupGuide":"设置向导","setupGuideDesc":"逐步设置您的 AI 智能体连接","openSetupGuide":"打开设置向导","effectivePermissions":"生效的权限","noEffectivePermissions":"尚未授予任何权限","customRole":"自定义"},"login":{"title":"Chorus","subtitle":"AI 与人类协作平台","email":"邮箱","emailPlaceholder":"you@company.com","continue":"继续","checking":"检查中...","helpText":"输入您的邮箱以登录或创建账户","networkError":"网络错误,请重试。","processingLogin":"正在处理登录...","sessionExpired":"会话已过期,请重新登录。","completingAuth":"正在完成认证...","registeringUser":"正在注册用户...","loginSuccess":"登录成功!正在跳转...","authFailed":"认证失败","backToLogin":"返回登录","noOrganizationFound":"未找到该邮箱对应的组织","defaultAuth":{"title":"登录","email":"邮箱","password":"密码","submit":"登录","error":"邮箱或密码错误","ssoLink":"使用 SSO 登录","orDivider":"或"},"pickWorkspace":{"title":"选择一个 workspace","subtitle":"该邮箱关联 {count} 个 workspace,请选择一个登录。","differentEmail":"换个邮箱","loading":"加载 workspace...","noCandidates":"未找到该邮箱对应的 workspace。","errorLoading":"加载 workspace 失败,请重试。"}},"projectOverview":{"loadingProject":"加载项目中...","notFoundTitle":"项目未找到","backToProjects":"返回项目列表","settings":"设置","quickActions":"快捷操作","addIdea":"添加想法","viewKanban":"查看看板","browseDocuments":"浏览文档","ideasSubtext":"{open} 待处理, {inProgress} 进行中","tasksSubtext":"{open} 待处理, {toVerify} 待验证","documentsSubtext":"PRD、规格说明、笔记","proposalsSubtext":"{pending} 待审核","deleteProject":"删除项目","deleteProjectConfirm":"确定要删除「{name}」吗?此操作无法撤销,将永久删除所有关联的想法、提案、任务、文档和动态。"},"personas":{"devPm":"开发导向产品经理","devPmDesc":"您是一位优先考虑开发者体验并构建开发者优先产品的产品经理。您理解技术约束,并能与工程团队有效沟通。","fullPm":"全能产品经理","fullPmDesc":"您是一位全面的产品经理,以构建能为目标受众解决实际问题的产品为己任。您平衡业务目标、用户需求和技术可行性。","simplePm":"简约产品经理","simplePmDesc":"您是一位专注的产品经理,优先考虑核心功能,避免过度设计。您相信快速交付、收集反馈、快速迭代。","seniorDev":"高级开发者","seniorDevDesc":"您是一位经验丰富的高级软件开发者,擅长构建可扩展的系统。您编写简洁、可维护的代码并遵循最佳实践。您指导初级开发者并做出架构决策。","fullstackDev":"全栈开发者","fullstackDevDesc":"您是一位多才多艺的全栈开发者,能够在整个技术栈中自如工作。您可以构建 API、设计数据库和创建响应式 UI。您优先考虑用户体验和性能。","pragmaticDev":"务实开发者","pragmaticDevDesc":"您是一位务实的开发者,专注于快速交付可工作的解决方案。您避免过早优化,为关键路径编写测试,并偏好简单解决方案而非复杂抽象。","carefulAdmin":"谨慎管理员","carefulAdminDesc":"您是一位谨慎的管理员,在批准前会仔细审查所有提案和任务。您会验证验收标准是否满足,检查潜在问题,并记录您的推理过程。如有疑问,您更倾向于询问澄清而非盲目批准。","efficientAdmin":"高效管理员","efficientAdminDesc":"您是一位高效的管理员,在保持质量标准的同时简化审批流程。您信任团队的工作,但仍会进行必要的检查。您专注于快速解除阻塞,同时确保满足基本质量要求。"},"sessions":{"title":"会话","activeSessions":"活跃会话","noSessions":"暂无会话","close":"关闭","reopen":"重新打开","closeConfirm":"确定要关闭此会话吗?","statusActive":"活跃","statusInactive":"不活跃","statusClosed":"已关闭","activeWorkers":"活跃工作者","workerCount":"{count} 个工作者","checkedInSince":"签入于 {time}","lastActive":"最后活跃 {time}","checkins":"{count} 个任务"},"pixelCanvas":{"title":"工作区"},"notifications":{"title":"通知","markAllRead":"全部标记已读","noNotifications":"暂无通知","noUnread":"没有未读通知","viewAll":"查看全部","tabAll":"全部","tabUnread":"未读","justNow":"刚刚","minutesAgo":"{count} 分钟前","hoursAgo":"{count} 小时前","daysAgo":"{count} 天前","projectBadge":"项目","notificationPreferences":"通知偏好","loadMore":"加载更多","viewDetail":"查看","types":{"proposal_approved":"提案已通过","proposal_rejected":"提案已拒绝","proposal_submitted":"提案已提交","task_assigned":"任务已分配给你","task_status_changed":"任务状态已变更","task_submitted_for_verify":"任务已提交验证","task_verified":"任务已验证","task_reopened":"任务已重新打开","comment_added":"新评论","idea_claimed":"想法已认领","elaboration_requested":"需求澄清已请求","elaboration_answered":"需求澄清已回答","mentioned":"你被提及了","agent_checkin":"Agent 已成功连接"},"preferences":{"title":"通知偏好","description":"配置哪些事件触发通知","taskEvents":"任务事件","proposalEvents":"提案事件","ideaEvents":"想法事件","commentEvents":"评论事件","taskAssigned":"任务分配","taskStatusChanged":"任务状态变更","taskVerified":"任务验证","taskReopened":"任务重新打开","proposalSubmitted":"提案提交","proposalApproved":"提案通过","proposalRejected":"提案拒绝","ideaClaimed":"想法认领","commentAdded":"新增评论","elaborationEvents":"需求澄清事件","elaborationRequested":"需求澄清请求","elaborationAnswered":"需求澄清回答","mentionEvents":"提及事件","mentioned":"在评论或内容中被提及"}},"elaboration":{"title":"需求澄清","answeredCounter":"已回答 {answered} / {total}","roundLabel":"第 {number} 轮","validated":"已验证","pendingAnswers":"待回答","statusAnswered":"已回答","noAnswer":"未回答","otherOption":"其他","otherPlaceholder":"请说明...","submitAnswers":"提交回答","submitting":"提交中...","submitFailed":"提交回答失败","navCounter":"{current} / {total}","questionCount":"{count} 个问题","somethingElse":"其他答案","skipButton":"跳过需求澄清","skipConfirmTitle":"跳过需求澄清?","skipConfirmDescription":"这将跳过结构化问答,直接将需求标记为已澄清。仅建议在需求非常明确时跳过。","skipReasonLabel":"跳过原因","skipReasonPlaceholder":"例如:有明确复现步骤的bug修复","skipReasonRequired":"请提供跳过原因","elaborationRequiredHint":"完成或跳过需求澄清后才能创建方案","category":{"functional":"功能性","nonFunctional":"非功能性","businessContext":"业务背景","technicalContext":"技术背景","userScenario":"用户场景","scope":"范围"}},"projectGroups":{"newProjectGroup":"新建项目组","projectCount":"个项目","complete":"完成","openIdeas":"个待处理想法","viewDashboard":"查看仪表盘","ungrouped":"未分组","noProjectsInGroup":"此组中暂无项目。","newGroupTitle":"新建项目组","groupName":"组名称","groupNamePlaceholder":"例如:移动应用","descriptionOptional":"描述(可选)","descriptionPlaceholder":"简要描述此分组...","createGroup":"创建分组","createFailed":"创建项目组失败","newProjectTitle":"新建项目","creatingIn":"创建到:{groupName}","projectTitle":"项目标题","projectTitlePlaceholder":"例如:项目 Alpha","projectDescriptionPlaceholder":"简要描述此项目...","createProject":"创建项目","moveTitle":"将项目移动到其他分组?","moveDescription":"将「{projectName}」从 {sourceGroupName} 移动到 {targetGroupName} 分组。","confirmMove":"确认移动","moveFailed":"移动项目失败","manageGroup":"管理分组","saveChanges":"保存更改","saving":"保存中...","cancel":"取消","deleteGroup":"删除此分组","deleteConfirmTitle":"确定要删除吗?","deleteConfirmDesc":"此操作不可撤销。请选择如何处理分组内的项目。","deleteKeepProjects":"将 {count, plural, one {# 个项目} other {# 个项目}} 移至未分组","deleteWithProjects":"永久删除 {count, plural, one {# 个项目} other {# 个项目}}","confirmDelete":"删除分组","deleting":"删除中..."},"groupDashboard":{"subtitle":"{count, plural, one {# 个项目} other {# 个项目}} \xb7 聚合仪表盘","editGroup":"编辑分组","manageProjects":"管理项目","statProjects":"项目","statTotalTasks":"总任务数","statCompletionRate":"完成率","statOpenIdeas":"待处理想法","statActiveProposals":"活跃提案","projectsInGroup":"此分组中的项目","newProject":"新建项目","projectStats":"{tasks} 个任务 \xb7 {completion}% 完成","noProjects":"此分组中暂无项目","noProjectsHint":"点击上方「新建项目」添加"},"acceptanceCriteria":{"title":"验收标准","noItems":"暂无结构化验收标准","status":{"pending":"待处理","passed":"通过","failed":"未通过","notStarted":"未开始","inProgress":"进行中"},"acceptanceStatus":{"not_started":"未开始","in_progress":"进行中","passed":"全部通过","failed":"未通过"},"required":"必需","optional":"可选","devSelfCheck":"开发自检","verification":"验证","evidence":"依据","pass":"通过","fail":"不通过","undoVerification":"撤销","devEvidence":"开发依据","verifyEvidence":"验证依据","noEvidence":"暂无依据","dismiss":"知道了","progress":"已验证 {passed}/{total}","requiredProgress":"必需项 {passed}/{required} 已通过","gateBlocked":"无法验证:{count} 项必需标准尚未通过","gateReady":"所有必需标准已通过","addCriterion":"添加标准","removeCriterion":"移除","criterionPlaceholder":"描述验收标准..."},"onboarding":{"skip":"暂时跳过","next":"下一步","back":"返回","steps":{"welcome":"欢迎","createAgent":"创建智能体","copyKey":"复制密钥","installGuide":"安装","testConnection":"测试","completion":"完成"},"welcome":{"title":"欢迎使用 Chorus","description":"Chorus 是一个 AI 与人类协作平台。AI 智能体提出方案,人类验证 — 通过结构化的开发生命周期。","getStarted":"开始使用","pipelineTitle":"AI 驱动开发生命周期","pipeline":{"idea":"想法","proposal":"方案","task":"任务","execute":"执行","verify":"验证","done":"完成"}},"completion":{"title":"一切就绪!","description":"您的智能体已配置完成,可以开始协作了。创建一个项目或探索设置来开始使用。","summary":"配置摘要","agentName":"智能体名称","agentRoles":"角色","agentPreset":"预设","agentPermissions":"权限","permissionsCount":"{count} 项权限","goToProjects":"前往项目","goToSettings":"前往设置"},"createAgent":{"title":"创建您的 AI 智能体","description":"设置一个具有匹配您工作流程的权限和人设的 AI 智能体。这将为智能体生成一个 API 密钥。","nameLabel":"智能体名称","namePlaceholder":"例如:my-dev-agent","personaLabel":"人设(可选)","personaPlaceholder":"描述该智能体的行为方式——语气、优先级、约束。","personaHint":"人设会追加到智能体的系统提示词中,用于塑造其行为。","submit":"创建智能体","creating":"正在创建..."},"copyKey":{"title":"复制您的 API 密钥","description":"请将此 API 密钥保存到安全的地方。您需要它来配置 AI 智能体客户端。","warning":"请立即复制此密钥。此后将无法再次查看!","copy":"复制密钥","copied":"已复制!"},"install":{"description":"选择您的 AI 智能体客户端,然后按照以下说明进行设置。","tabs":{"claudeCode":"Claude Code","codex":"Codex","opencode":"OpenCode","openClaw":"OpenClaw","other":"其他智能体"},"claudeCode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc 以实现持久化。","step2Title":"第 2 步:打开 Claude Code 并运行"},"codex":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc 以实现持久化。","step2Title":"第 2 步:运行 Codex 安装脚本","step2Tip":"脚本会自动注册 plugin marketplace 并写入 ~/.codex/config.toml 的 MCP 服务器配置。","step3Title":"第 3 步:验证连接","step3Desc":"打开 Codex,让它 check in 到 Chorus,例如输入 \\"check in to chorus\\"。"},"opencode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc,插件会在 OpenCode 启动时读取这两个变量。","step2Title":"第 2 步:启用 Chorus 插件","step2Tip":"安装脚本会幂等地把 \\"opencode-chorus\\" 加入 ~/.config/opencode/opencode.json 的 \\"plugin\\" 数组,不会修改你的 shell rc。OpenCode 首次启动时 Bun 会自动安装该插件。","step3Title":"第 3 步:验证连接","step3Desc":"打开 OpenCode,告诉 agent \\"check in to chorus\\"。连接成功后本步骤会自动跳转。","troubleshootingTitle":"故障排除","issueCache":{"title":"插件未加载","fix":"清空插件缓存:`rm -rf ~/.cache/opencode/packages/opencode-chorus@latest`,然后重启 OpenCode。"},"issueEnv":{"title":"环境变量未生效","fix":"确认启动 OpenCode 的 shell 已 export CHORUS_URL 和 CHORUS_API_KEY。如有需要,先 re-source 一下 shell rc。"},"issueCheckin":{"title":"check-in 无响应","fix":"核对 CHORUS_API_KEY 是否有错字或多余空格。如果插件仍然加载失败,尝试升级 OpenCode。"}},"openClaw":{"step1Title":"第 1 步:安装插件","step2Title":"第 2 步:编辑 ~/.openclaw/openclaw.json","step3Title":"第 3 步:重启 OpenClaw 网关","step3Desc":"重启 OpenClaw 网关进程以加载新的配置。","step4Title":"第 4 步:验证连接","step4Desc":"在 OpenClaw 聊天窗口中,输入以下命令:","troubleshootingTitle":"故障排除","troubleshootingError":"\\"Wake agent failed: HTTP 405\\"","troubleshootingFix":"此错误表示 hooks 未启用。请在 openclaw.json 配置中将 \\"hooks.enabled\\" 设置为 true,然后重启网关。"},"other":{"description":"复制以下提示词并发送给您的 AI 智能体以配置 Chorus 连接。"}},"testConnection":{"title":"测试连接","waiting":"等待智能体连接...","waitingFor":"正在监听 {name} 的签到","connected":"智能体连接成功!","checkinHint":"复制以下提示词并发送给你的智能体,以验证连接:","checkinPrompt":"请连接到 Chorus 并执行 chorus_checkin() 验证连接。"},"placeholder":{"createAgent":"此步骤将用于创建 AI 智能体。即将推出。","copyKey":"此步骤将用于复制 API 密钥。即将推出。","installGuide":"此步骤将引导您完成安装。即将推出。","testConnection":"此步骤将测试智能体连接。即将推出。"}},"ideaTracker":{"overview":"总览","overviewSubtitle":"追踪想法、提案和任务进展","tabs":{"ideas":"想法","stats":"统计"},"badge":{"open":"待开始","researching":"调研中","answerQuestions":"回答问题","planning":"规划中","reviewProposal":"审批提案","building":"开发中","verifyWork":"验收成果","done":"已完成","closed":"已关闭"},"status":{"todo":"待处理","inProgress":"进行中","humanConductRequired":"需要指挥","done":"已完成"},"actions":{"newIdea":"新建想法","untitledIdea":"未命名想法","search":"搜索想法...","retry":"重试","assign":"分配","reassign":"重新分配"},"empty":{"noIdeas":"暂无想法","getStarted":"想法会经过需求细化、提案和任务执行——从创建第一个想法开始","noResults":"没有匹配的想法","groupEmpty":"此状态下暂无想法"},"newIdea":{"title":"新建想法","ideaTitle":"标题","titlePlaceholder":"你的想法是什么?","description":"描述","descriptionPlaceholder":"添加背景、目标或其他有助于说明想法的细节..."},"error":{"loadFailed":"加载想法失败","createFailed":"创建想法失败"},"loading":"加载中...","justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","stats":{"totalIdeas":"想法总数","totalTasks":"任务总数","totalProposals":"提案总数","totalDocuments":"文档总数","openCount":"{count} 个待处理","activeCount":"{count} 个进行中","pendingCount":"{count} 个待审核","taskPipeline":"任务流水线","totalCount":"共 {count} 个","todoCount":"待处理:{count}","inProgressCount":"进行中:{count}","toVerifyCount":"待验证:{count}","doneCount":"已完成:{count}","noTasks":"暂无任务","recentActivity":"最近活动","viewAll":"查看全部","noActivity":"暂无活动"},"panel":{"notFound":"未找到想法","loadFailed":"加载想法失败","verifyingPlaceholder":"验证进行中...","donePlaceholder":"此想法已完成。","elaborationStatus":"细化状态","elaborationRounds":"细化问答","elaborationNotStarted":"尚未开始","elaborationNotStartedDesc":"分配给智能体以开始需求细化。","elaborationWaiting":"等待智能体","elaborationWaitingDesc":"产品经理智能体将很快开始细化。","elaboration":{"pendingAnswers":"待回答","validating":"验证中","resolved":"已完成"},"noProposals":"暂无与此想法关联的提案","viewProposal":"查看完整提案","tabs":{"overview":"概览","elaboration":"需求细化","proposal":"提案","tasks":"任务","activity":"动态"},"timeline":{"ideaCreated":"创建 Idea","elaboration":"需求细化","proposal":"提案","tasksProgress":"任务进度","noElaboration":"未开始","elaborationComplete":"已完成({count} 个问题)","elaborationInProgress":"进行中","elaborationSkipped":"已跳过","noProposal":"尚未创建","proposalApproved":"已批准","proposalsApproved":"{count}/{total} 已批准","proposalPending":"待审核","proposalDraft":"草稿","proposalRejected":"已拒绝","tasksComplete":"{done}/{total} 已完成","noTasks":"暂无任务","createdBy":"由 {name} 创建","documents":"{count} 个文档","tasks":"{count} 个任务","rounds":"{count} 轮问答","moreItems":"+{count} 更多"},"taskList":{"inProgress":"进行中","toVerify":"待验证","open":"待处理","done":"已完成","noTasks":"暂无可用任务","assigned":"已分配","closed":"已关闭","summary":"{done}/{total} 任务完成","acSummary":"{passed}/{total} 验收通过","agentWorking":"{count} 个 Agent 正在工作","workersActive":"{count} 个工作者","viewKanban":"看板"},"activityTab":{"activity":"动态","comments":"评论"}}},"search":{"placeholder":"搜索任务、想法、提案、文档...","scopeGlobal":"全局","scopeGroup":"分组","scopeProject":"当前项目","filterAll":"全部","filterTasks":"任务","filterIdeas":"想法","filterProposals":"提案","filterDocuments":"文档","filterProjects":"项目","noResults":"未找到结果","resultCount":"{count} 个结果","entityType":{"task":"任务","idea":"想法","proposal":"提案","document":"文档","project":"项目","project_group":"分组"}},"agent":{"permissions":{"title":"权限","description":"从预设开始,或直接自定义权限矩阵。","presetLabel":"预设","presetAdmin":"管理员","presetPm":"产品经理","presetDev":"开发者","presetCustom":"自定义","resourceHeader":"资源","resources":{"idea":"想法","proposal":"提案","document":"文档","task":"任务","project":"项目"},"actions":{"read":"读取","write":"写入","admin":"管理"},"help":{"admin":"对所有资源拥有完整权限,包含审批 / 验收 / 重开。推荐用于管理员 Agent。","pm":"推进工作:管理想法、提案、文档、任务、项目。没有审批或验收权限。","dev":"执行工作:可读取想法、提案、文档与项目;可创建与更新任务。无审批或验收权限。","custom":"自由勾选权限位。只有在自定义模式下,才能开启「管理」列的审批 / 验收 / 关闭动作。"}}}}')}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[53298],{3705:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(1856),l=r(99457);function o(e){let[t,r]=n.useState(void 0);return(0,l.N)(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,l;if(!Array.isArray(t)||!t.length)return;let o=t[0];if("borderBoxSize"in o){let e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,l=t.blockSize}else n=e.offsetWidth,l=e.offsetHeight;r({width:n,height:l})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}},48218:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>eU,Content:()=>eD,Group:()=>eB,Icon:()=>eM,Item:()=>eF,ItemIndicator:()=>eK,ItemText:()=>e_,Label:()=>ez,Portal:()=>eI,Root:()=>eO,ScrollDownButton:()=>eW,ScrollUpButton:()=>eV,Select:()=>F,SelectArrow:()=>eT,SelectContent:()=>X,SelectGroup:()=>es,SelectIcon:()=>G,SelectItem:()=>eh,SelectItemIndicator:()=>ew,SelectItemText:()=>ev,SelectLabel:()=>ec,SelectPortal:()=>U,SelectScrollDownButton:()=>eS,SelectScrollUpButton:()=>ex,SelectSeparator:()=>eC,SelectTrigger:()=>K,SelectValue:()=>W,SelectViewport:()=>el,Separator:()=>eG,Trigger:()=>eL,Value:()=>eN,Viewport:()=>eH,createSelectScope:()=>M});var n=r(1856),l=r(38129),o=r(91722),i=r(33328),a=r(81369),s=r(34124),u=r(21032),c=r(72599),f=r(63569),d=r(12139),p=r(80491),h=r(40577),m=r(67221),v=r(17533),g=r(93367),w=r(54154),y=r(32313),x=r(66249),b=r(99457),S=r(72009),R=r(78134),C=r(2188),A=r(46523),T=r(90508),j=[" ","Enter","ArrowUp","ArrowDown"],P=[" ","Enter"],E="Select",[k,O,L]=(0,a.N)(E),[N,M]=(0,u.A)(E,[L,m.Bk]),I=(0,m.Bk)(),[D,H]=N(E),[B,z]=N(E),F=e=>{let{__scopeSelect:t,children:r,open:l,defaultOpen:o,onOpenChange:i,value:a,defaultValue:s,onValueChange:u,dir:f,name:d,autoComplete:p,disabled:v,required:g,form:w}=e,y=I(t),[b,S]=n.useState(null),[R,C]=n.useState(null),[A,j]=n.useState(!1),P=(0,c.jH)(f),[O,L]=(0,x.i)({prop:l,defaultProp:null!=o&&o,onChange:i,caller:E}),[N,M]=(0,x.i)({prop:a,defaultProp:s,onChange:u,caller:E}),H=n.useRef(null),z=!b||w||!!b.closest("form"),[F,_]=n.useState(new Set),K=Array.from(F).map(e=>e.props.value).join(";");return(0,T.jsx)(m.bL,{...y,children:(0,T.jsxs)(D,{required:g,scope:t,trigger:b,onTriggerChange:S,valueNode:R,onValueNodeChange:C,valueNodeHasChildren:A,onValueNodeHasChildrenChange:j,contentId:(0,h.B)(),value:N,onValueChange:M,open:O,onOpenChange:L,dir:P,triggerPointerDownPosRef:H,disabled:v,children:[(0,T.jsx)(k.Provider,{scope:t,children:(0,T.jsx)(B,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{_(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{_(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),z?(0,T.jsxs)(ej,{"aria-hidden":!0,required:g,tabIndex:-1,name:d,autoComplete:p,value:N,onChange:e=>M(e.target.value),disabled:v,form:w,children:[void 0===N?(0,T.jsx)("option",{value:""}):null,Array.from(F)]},K):null]})})};F.displayName=E;var _="SelectTrigger",K=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:l=!1,...o}=e,a=I(r),u=H(_,r),c=u.disabled||l,f=(0,s.s)(t,u.onTriggerChange),d=O(r),p=n.useRef("touch"),[h,v,w]=eE(e=>{let t=d().filter(e=>!e.disabled),r=t.find(e=>e.value===u.value),n=ek(t,e,r);void 0!==n&&u.onValueChange(n.value)}),y=e=>{c||(u.onOpenChange(!0),w()),e&&(u.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,T.jsx)(m.Mz,{asChild:!0,...a,children:(0,T.jsx)(g.sG.button,{type:"button",role:"combobox","aria-controls":u.contentId,"aria-expanded":u.open,"aria-required":u.required,"aria-autocomplete":"none",dir:u.dir,"data-state":u.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":eP(u.value)?"":void 0,...o,ref:f,onClick:(0,i.mK)(o.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&y(e)}),onPointerDown:(0,i.mK)(o.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(y(e),e.preventDefault())}),onKeyDown:(0,i.mK)(o.onKeyDown,e=>{let t=""!==h.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||v(e.key),(!t||" "!==e.key)&&j.includes(e.key)&&(y(),e.preventDefault())})})})});K.displayName=_;var V="SelectValue",W=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:l,children:o,placeholder:i="",...a}=e,u=H(V,r),{onValueNodeHasChildrenChange:c}=u,f=void 0!==o,d=(0,s.s)(t,u.onValueNodeChange);return(0,b.N)(()=>{c(f)},[c,f]),(0,T.jsx)(g.sG.span,{...a,ref:d,style:{pointerEvents:"none"},children:eP(u.value)?(0,T.jsx)(T.Fragment,{children:i}):o})});W.displayName=V;var G=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...l}=e;return(0,T.jsx)(g.sG.span,{"aria-hidden":!0,...l,ref:t,children:n||"▼"})});G.displayName="SelectIcon";var U=e=>(0,T.jsx)(v.Portal,{asChild:!0,...e});U.displayName="SelectPortal";var q="SelectContent",X=n.forwardRef((e,t)=>{let r=H(q,e.__scopeSelect),[o,i]=n.useState();return((0,b.N)(()=>{i(new DocumentFragment)},[]),r.open)?(0,T.jsx)(Q,{...e,ref:t}):o?l.createPortal((0,T.jsx)(Y,{scope:e.__scopeSelect,children:(0,T.jsx)(k.Slot,{scope:e.__scopeSelect,children:(0,T.jsx)("div",{children:e.children})})}),o):null});X.displayName=q;var[Y,Z]=N(q),$=(0,w.TL)("SelectContent.RemoveScroll"),Q=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:l="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:a,onPointerDownOutside:u,side:c,sideOffset:h,align:m,alignOffset:v,arrowPadding:g,collisionBoundary:w,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:S,...R}=e,j=H(q,r),[P,E]=n.useState(null),[k,L]=n.useState(null),N=(0,s.s)(t,e=>E(e)),[M,I]=n.useState(null),[D,B]=n.useState(null),z=O(r),[F,_]=n.useState(!1),K=n.useRef(!1);n.useEffect(()=>{if(P)return(0,C.Eq)(P)},[P]),(0,d.Oh)();let V=n.useCallback(e=>{let[t,...r]=z().map(e=>e.ref.current),[n]=r.slice(-1),l=document.activeElement;for(let r of e)if(r===l||(null==r||r.scrollIntoView({block:"nearest"}),r===t&&k&&(k.scrollTop=0),r===n&&k&&(k.scrollTop=k.scrollHeight),null==r||r.focus(),document.activeElement!==l))return},[z,k]),W=n.useCallback(()=>V([M,P]),[V,M,P]);n.useEffect(()=>{F&&W()},[F,W]);let{onOpenChange:G,triggerPointerDownPosRef:U}=j;n.useEffect(()=>{if(P){let e={x:0,y:0},t=t=>{var r,n,l,o;e={x:Math.abs(Math.round(t.pageX)-(null!=(l=null==(r=U.current)?void 0:r.x)?l:0)),y:Math.abs(Math.round(t.pageY)-(null!=(o=null==(n=U.current)?void 0:n.y)?o:0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():P.contains(r.target)||G(!1),document.removeEventListener("pointermove",t),U.current=null};return null!==U.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[P,G,U]),n.useEffect(()=>{let e=()=>G(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[G]);let[X,Z]=eE(e=>{let t=z().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=ek(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),Q=n.useCallback((e,t,r)=>{let n=!K.current&&!r;(void 0!==j.value&&j.value===t||n)&&(I(e),n&&(K.current=!0))},[j.value]),et=n.useCallback(()=>null==P?void 0:P.focus(),[P]),er=n.useCallback((e,t,r)=>{let n=!K.current&&!r;(void 0!==j.value&&j.value===t||n)&&B(e)},[j.value]),en="popper"===l?ee:J,el=en===ee?{side:c,sideOffset:h,align:m,alignOffset:v,arrowPadding:g,collisionBoundary:w,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:S}:{};return(0,T.jsx)(Y,{scope:r,content:P,viewport:k,onViewportChange:L,itemRefCallback:Q,selectedItem:M,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:W,selectedItemText:D,position:l,isPositioned:F,searchRef:X,children:(0,T.jsx)(A.A,{as:$,allowPinchZoom:!0,children:(0,T.jsx)(p.n,{asChild:!0,trapped:j.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,i.mK)(o,e=>{var t;null==(t=j.trigger)||t.focus({preventScroll:!0}),e.preventDefault()}),children:(0,T.jsx)(f.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>j.onOpenChange(!1),children:(0,T.jsx)(en,{role:"listbox",id:j.contentId,"data-state":j.open?"open":"closed",dir:j.dir,onContextMenu:e=>e.preventDefault(),...R,...el,onPlaced:()=>_(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:(0,i.mK)(R.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Z(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=z().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})});Q.displayName="SelectContentImpl";var J=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:l,...i}=e,a=H(q,r),u=Z(q,r),[c,f]=n.useState(null),[d,p]=n.useState(null),h=(0,s.s)(t,e=>p(e)),m=O(r),v=n.useRef(!1),w=n.useRef(!0),{viewport:y,selectedItem:x,selectedItemText:S,focusSelectedItem:R}=u,C=n.useCallback(()=>{if(a.trigger&&a.valueNode&&c&&d&&y&&x&&S){let e=a.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),r=a.valueNode.getBoundingClientRect(),n=S.getBoundingClientRect();if("rtl"!==a.dir){let l=n.left-t.left,i=r.left-l,a=e.left-i,s=e.width+a,u=Math.max(s,t.width),f=window.innerWidth-10,d=(0,o.q)(i,[10,Math.max(10,f-u)]);c.style.minWidth=s+"px",c.style.left=d+"px"}else{let l=t.right-n.right,i=window.innerWidth-r.right-l,a=window.innerWidth-e.right-i,s=e.width+a,u=Math.max(s,t.width),f=window.innerWidth-10,d=(0,o.q)(i,[10,Math.max(10,f-u)]);c.style.minWidth=s+"px",c.style.right=d+"px"}let i=m(),s=window.innerHeight-20,u=y.scrollHeight,f=window.getComputedStyle(d),p=parseInt(f.borderTopWidth,10),h=parseInt(f.paddingTop,10),g=parseInt(f.borderBottomWidth,10),w=p+h+u+parseInt(f.paddingBottom,10)+g,b=Math.min(5*x.offsetHeight,w),R=window.getComputedStyle(y),C=parseInt(R.paddingTop,10),A=parseInt(R.paddingBottom,10),T=e.top+e.height/2-10,j=x.offsetHeight/2,P=p+h+(x.offsetTop+j);if(P<=T){let e=i.length>0&&x===i[i.length-1].ref.current;c.style.bottom="0px";let t=Math.max(s-T,j+(e?A:0)+(d.clientHeight-y.offsetTop-y.offsetHeight)+g);c.style.height=P+t+"px"}else{let e=i.length>0&&x===i[0].ref.current;c.style.top="0px";let t=Math.max(T,p+y.offsetTop+(e?C:0)+j);c.style.height=t+(w-P)+"px",y.scrollTop=P-T+y.offsetTop}c.style.margin="".concat(10,"px 0"),c.style.minHeight=b+"px",c.style.maxHeight=s+"px",null==l||l(),requestAnimationFrame(()=>v.current=!0)}},[m,a.trigger,a.valueNode,c,d,y,x,S,a.dir,l]);(0,b.N)(()=>C(),[C]);let[A,j]=n.useState();(0,b.N)(()=>{d&&j(window.getComputedStyle(d).zIndex)},[d]);let P=n.useCallback(e=>{e&&!0===w.current&&(C(),null==R||R(),w.current=!1)},[C,R]);return(0,T.jsx)(et,{scope:r,contentWrapper:c,shouldExpandOnScrollRef:v,onScrollButtonChange:P,children:(0,T.jsx)("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:(0,T.jsx)(g.sG.div,{...i,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});J.displayName="SelectItemAlignedPosition";var ee=n.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:l=10,...o}=e,i=I(r);return(0,T.jsx)(m.UC,{...i,...o,ref:t,align:n,collisionPadding:l,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ee.displayName="SelectPopperPosition";var[et,er]=N(q,{}),en="SelectViewport",el=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:l,...o}=e,a=Z(en,r),u=er(en,r),c=(0,s.s)(t,a.onViewportChange),f=n.useRef(0);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,T.jsx)(k.Slot,{scope:r,children:(0,T.jsx)(g.sG.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:(0,i.mK)(o.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=u;if((null==n?void 0:n.current)&&r){let e=Math.abs(f.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,l=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(l<n){let o=l+e,i=Math.min(n,o),a=o-i;r.style.height=i+"px","0px"===r.style.bottom&&(t.scrollTop=a>0?a:0,r.style.justifyContent="flex-end")}}}f.current=t.scrollTop})})})]})});el.displayName=en;var eo="SelectGroup",[ei,ea]=N(eo),es=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=(0,h.B)();return(0,T.jsx)(ei,{scope:r,id:l,children:(0,T.jsx)(g.sG.div,{role:"group","aria-labelledby":l,...n,ref:t})})});es.displayName=eo;var eu="SelectLabel",ec=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=ea(eu,r);return(0,T.jsx)(g.sG.div,{id:l.id,...n,ref:t})});ec.displayName=eu;var ef="SelectItem",[ed,ep]=N(ef),eh=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:l,disabled:o=!1,textValue:a,...u}=e,c=H(ef,r),f=Z(ef,r),d=c.value===l,[p,m]=n.useState(null!=a?a:""),[v,w]=n.useState(!1),y=(0,s.s)(t,e=>{var t;return null==(t=f.itemRefCallback)?void 0:t.call(f,e,l,o)}),x=(0,h.B)(),b=n.useRef("touch"),S=()=>{o||(c.onValueChange(l),c.onOpenChange(!1))};if(""===l)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,T.jsx)(ed,{scope:r,value:l,disabled:o,textId:x,isSelected:d,onItemTextChange:n.useCallback(e=>{m(t=>{var r;return t||(null!=(r=null==e?void 0:e.textContent)?r:"").trim()})},[]),children:(0,T.jsx)(k.ItemSlot,{scope:r,value:l,disabled:o,textValue:p,children:(0,T.jsx)(g.sG.div,{role:"option","aria-labelledby":x,"data-highlighted":v?"":void 0,"aria-selected":d&&v,"data-state":d?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...u,ref:y,onFocus:(0,i.mK)(u.onFocus,()=>w(!0)),onBlur:(0,i.mK)(u.onBlur,()=>w(!1)),onClick:(0,i.mK)(u.onClick,()=>{"mouse"!==b.current&&S()}),onPointerUp:(0,i.mK)(u.onPointerUp,()=>{"mouse"===b.current&&S()}),onPointerDown:(0,i.mK)(u.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:(0,i.mK)(u.onPointerMove,e=>{if(b.current=e.pointerType,o){var t;null==(t=f.onItemLeave)||t.call(f)}else"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,i.mK)(u.onPointerLeave,e=>{if(e.currentTarget===document.activeElement){var t;null==(t=f.onItemLeave)||t.call(f)}}),onKeyDown:(0,i.mK)(u.onKeyDown,e=>{var t;((null==(t=f.searchRef)?void 0:t.current)===""||" "!==e.key)&&(P.includes(e.key)&&S()," "===e.key&&e.preventDefault())})})})})});eh.displayName=ef;var em="SelectItemText",ev=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:o,style:i,...a}=e,u=H(em,r),c=Z(em,r),f=ep(em,r),d=z(em,r),[p,h]=n.useState(null),m=(0,s.s)(t,e=>h(e),f.onItemTextChange,e=>{var t;return null==(t=c.itemTextRefCallback)?void 0:t.call(c,e,f.value,f.disabled)}),v=null==p?void 0:p.textContent,w=n.useMemo(()=>(0,T.jsx)("option",{value:f.value,disabled:f.disabled,children:v},f.value),[f.disabled,f.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:x}=d;return(0,b.N)(()=>(y(w),()=>x(w)),[y,x,w]),(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(g.sG.span,{id:f.textId,...a,ref:m}),f.isSelected&&u.valueNode&&!u.valueNodeHasChildren?l.createPortal(a.children,u.valueNode):null]})});ev.displayName=em;var eg="SelectItemIndicator",ew=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return ep(eg,r).isSelected?(0,T.jsx)(g.sG.span,{"aria-hidden":!0,...n,ref:t}):null});ew.displayName=eg;var ey="SelectScrollUpButton",ex=n.forwardRef((e,t)=>{let r=Z(ey,e.__scopeSelect),l=er(ey,e.__scopeSelect),[o,i]=n.useState(!1),a=(0,s.s)(t,l.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){i(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,T.jsx)(eR,{...e,ref:a,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=ey;var eb="SelectScrollDownButton",eS=n.forwardRef((e,t)=>{let r=Z(eb,e.__scopeSelect),l=er(eb,e.__scopeSelect),[o,i]=n.useState(!1),a=(0,s.s)(t,l.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;i(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,T.jsx)(eR,{...e,ref:a,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eS.displayName=eb;var eR=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:l,...o}=e,a=Z("SelectScrollButton",r),s=n.useRef(null),u=O(r),c=n.useCallback(()=>{null!==s.current&&(window.clearInterval(s.current),s.current=null)},[]);return n.useEffect(()=>()=>c(),[c]),(0,b.N)(()=>{var e;let t=u().find(e=>e.ref.current===document.activeElement);null==t||null==(e=t.ref.current)||e.scrollIntoView({block:"nearest"})},[u]),(0,T.jsx)(g.sG.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:(0,i.mK)(o.onPointerDown,()=>{null===s.current&&(s.current=window.setInterval(l,50))}),onPointerMove:(0,i.mK)(o.onPointerMove,()=>{var e;null==(e=a.onItemLeave)||e.call(a),null===s.current&&(s.current=window.setInterval(l,50))}),onPointerLeave:(0,i.mK)(o.onPointerLeave,()=>{c()})})}),eC=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,T.jsx)(g.sG.div,{"aria-hidden":!0,...n,ref:t})});eC.displayName="SelectSeparator";var eA="SelectArrow",eT=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=I(r),o=H(eA,r),i=Z(eA,r);return o.open&&"popper"===i.position?(0,T.jsx)(m.i3,{...l,...n,ref:t}):null});eT.displayName=eA;var ej=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:l,...o}=e,i=n.useRef(null),a=(0,s.s)(t,i),u=(0,S.Z)(l);return n.useEffect(()=>{let e=i.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(u!==l&&t){let r=new Event("change",{bubbles:!0});t.call(e,l),e.dispatchEvent(r)}},[u,l]),(0,T.jsx)(g.sG.select,{...o,style:{...R.Qg,...o.style},ref:a,defaultValue:l})});function eP(e){return""===e||void 0===e}function eE(e){let t=(0,y.c)(e),r=n.useRef(""),l=n.useRef(0),o=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(l.current),""!==t&&(l.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),i=n.useCallback(()=>{r.current="",window.clearTimeout(l.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(l.current),[]),[r,o,i]}function ek(e,t,r){var n,l;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=r?e.indexOf(r):-1,a=(n=e,l=Math.max(i,0),n.map((e,t)=>n[(l+t)%n.length]));1===o.length&&(a=a.filter(e=>e!==r));let s=a.find(e=>e.textValue.toLowerCase().startsWith(o.toLowerCase()));return s!==r?s:void 0}ej.displayName="SelectBubbleInput";var eO=F,eL=K,eN=W,eM=G,eI=U,eD=X,eH=el,eB=es,ez=ec,eF=eh,e_=ev,eK=ew,eV=ex,eW=eS,eG=eC,eU=eT},52217:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return n.callServer},createServerReference:function(){return o.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}});let n=r(53874),l=r(11550),o=r(31802)},67221:(e,t,r)=>{r.d(t,{Mz:()=>e1,i3:()=>e5,UC:()=>e2,bL:()=>e0,Bk:()=>eB});var n=r(1856);let l=["top","right","bottom","left"],o=Math.min,i=Math.max,a=Math.round,s=Math.floor,u=e=>({x:e,y:e}),c={left:"right",right:"left",bottom:"top",top:"bottom"},f={start:"end",end:"start"};function d(e,t){return"function"==typeof e?e(t):e}function p(e){return e.split("-")[0]}function h(e){return e.split("-")[1]}function m(e){return"x"===e?"y":"x"}function v(e){return"y"===e?"height":"width"}let g=new Set(["top","bottom"]);function w(e){return g.has(p(e))?"y":"x"}function y(e){return e.replace(/start|end/g,e=>f[e])}let x=["left","right"],b=["right","left"],S=["top","bottom"],R=["bottom","top"];function C(e){return e.replace(/left|right|bottom|top/g,e=>c[e])}function A(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function T(e){let{x:t,y:r,width:n,height:l}=e;return{width:n,height:l,top:r,left:t,right:t+n,bottom:r+l,x:t,y:r}}function j(e,t,r){let n,{reference:l,floating:o}=e,i=w(t),a=m(w(t)),s=v(a),u=p(t),c="y"===i,f=l.x+l.width/2-o.width/2,d=l.y+l.height/2-o.height/2,g=l[s]/2-o[s]/2;switch(u){case"top":n={x:f,y:l.y-o.height};break;case"bottom":n={x:f,y:l.y+l.height};break;case"right":n={x:l.x+l.width,y:d};break;case"left":n={x:l.x-o.width,y:d};break;default:n={x:l.x,y:l.y}}switch(h(t)){case"start":n[a]-=g*(r&&c?-1:1);break;case"end":n[a]+=g*(r&&c?-1:1)}return n}async function P(e,t){var r;void 0===t&&(t={});let{x:n,y:l,platform:o,rects:i,elements:a,strategy:s}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:f="floating",altBoundary:p=!1,padding:h=0}=d(t,e),m=A(h),v=a[p?"floating"===f?"reference":"floating":f],g=T(await o.getClippingRect({element:null==(r=await (null==o.isElement?void 0:o.isElement(v)))||r?v:v.contextElement||await (null==o.getDocumentElement?void 0:o.getDocumentElement(a.floating)),boundary:u,rootBoundary:c,strategy:s})),w="floating"===f?{x:n,y:l,width:i.floating.width,height:i.floating.height}:i.reference,y=await (null==o.getOffsetParent?void 0:o.getOffsetParent(a.floating)),x=await (null==o.isElement?void 0:o.isElement(y))&&await (null==o.getScale?void 0:o.getScale(y))||{x:1,y:1},b=T(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:w,offsetParent:y,strategy:s}):w);return{top:(g.top-b.top+m.top)/x.y,bottom:(b.bottom-g.bottom+m.bottom)/x.y,left:(g.left-b.left+m.left)/x.x,right:(b.right-g.right+m.right)/x.x}}let E=async(e,t,r)=>{let{placement:n="bottom",strategy:l="absolute",middleware:o=[],platform:i}=r,a=o.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(t)),u=await i.getElementRects({reference:e,floating:t,strategy:l}),{x:c,y:f}=j(u,n,s),d=n,p={},h=0;for(let r=0;r<a.length;r++){var m;let{name:o,fn:v}=a[r],{x:g,y:w,data:y,reset:x}=await v({x:c,y:f,initialPlacement:n,placement:d,strategy:l,middlewareData:p,rects:u,platform:{...i,detectOverflow:null!=(m=i.detectOverflow)?m:P},elements:{reference:e,floating:t}});c=null!=g?g:c,f=null!=w?w:f,p={...p,[o]:{...p[o],...y}},x&&h<=50&&(h++,"object"==typeof x&&(x.placement&&(d=x.placement),x.rects&&(u=!0===x.rects?await i.getElementRects({reference:e,floating:t,strategy:l}):x.rects),{x:c,y:f}=j(u,d,s)),r=-1)}return{x:c,y:f,placement:d,strategy:l,middlewareData:p}};function k(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function O(e){return l.some(t=>e[t]>=0)}let L=new Set(["left","top"]);async function N(e,t){let{placement:r,platform:n,elements:l}=e,o=await (null==n.isRTL?void 0:n.isRTL(l.floating)),i=p(r),a=h(r),s="y"===w(r),u=L.has(i)?-1:1,c=o&&s?-1:1,f=d(t,e),{mainAxis:m,crossAxis:v,alignmentAxis:g}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return a&&"number"==typeof g&&(v="end"===a?-1*g:g),s?{x:v*c,y:m*u}:{x:m*u,y:v*c}}function M(){return"undefined"!=typeof window}function I(e){return B(e)?(e.nodeName||"").toLowerCase():"#document"}function D(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function H(e){var t;return null==(t=(B(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function B(e){return!!M()&&(e instanceof Node||e instanceof D(e).Node)}function z(e){return!!M()&&(e instanceof Element||e instanceof D(e).Element)}function F(e){return!!M()&&(e instanceof HTMLElement||e instanceof D(e).HTMLElement)}function _(e){return!!M()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof D(e).ShadowRoot)}let K=new Set(["inline","contents"]);function V(e){let{overflow:t,overflowX:r,overflowY:n,display:l}=ee(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!K.has(l)}let W=new Set(["table","td","th"]),G=[":popover-open",":modal"];function U(e){return G.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let q=["transform","translate","scale","rotate","perspective"],X=["transform","translate","scale","rotate","perspective","filter"],Y=["paint","layout","strict","content"];function Z(e){let t=$(),r=z(e)?ee(e):e;return q.some(e=>!!r[e]&&"none"!==r[e])||!!r.containerType&&"normal"!==r.containerType||!t&&!!r.backdropFilter&&"none"!==r.backdropFilter||!t&&!!r.filter&&"none"!==r.filter||X.some(e=>(r.willChange||"").includes(e))||Y.some(e=>(r.contain||"").includes(e))}function $(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let Q=new Set(["html","body","#document"]);function J(e){return Q.has(I(e))}function ee(e){return D(e).getComputedStyle(e)}function et(e){return z(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function er(e){if("html"===I(e))return e;let t=e.assignedSlot||e.parentNode||_(e)&&e.host||H(e);return _(t)?t.host:t}function en(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);let l=function e(t){let r=er(t);return J(r)?t.ownerDocument?t.ownerDocument.body:t.body:F(r)&&V(r)?r:e(r)}(e),o=l===(null==(n=e.ownerDocument)?void 0:n.body),i=D(l);if(o){let e=el(i);return t.concat(i,i.visualViewport||[],V(l)?l:[],e&&r?en(e):[])}return t.concat(l,en(l,[],r))}function el(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eo(e){let t=ee(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,l=F(e),o=l?e.offsetWidth:r,i=l?e.offsetHeight:n,s=a(r)!==o||a(n)!==i;return s&&(r=o,n=i),{width:r,height:n,$:s}}function ei(e){return z(e)?e:e.contextElement}function ea(e){let t=ei(e);if(!F(t))return u(1);let r=t.getBoundingClientRect(),{width:n,height:l,$:o}=eo(t),i=(o?a(r.width):r.width)/n,s=(o?a(r.height):r.height)/l;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}let es=u(0);function eu(e){let t=D(e);return $()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:es}function ec(e,t,r,n){var l;void 0===t&&(t=!1),void 0===r&&(r=!1);let o=e.getBoundingClientRect(),i=ei(e),a=u(1);t&&(n?z(n)&&(a=ea(n)):a=ea(e));let s=(void 0===(l=r)&&(l=!1),n&&(!l||n===D(i))&&l)?eu(i):u(0),c=(o.left+s.x)/a.x,f=(o.top+s.y)/a.y,d=o.width/a.x,p=o.height/a.y;if(i){let e=D(i),t=n&&z(n)?D(n):n,r=e,l=el(r);for(;l&&n&&t!==r;){let e=ea(l),t=l.getBoundingClientRect(),n=ee(l),o=t.left+(l.clientLeft+parseFloat(n.paddingLeft))*e.x,i=t.top+(l.clientTop+parseFloat(n.paddingTop))*e.y;c*=e.x,f*=e.y,d*=e.x,p*=e.y,c+=o,f+=i,l=el(r=D(l))}}return T({width:d,height:p,x:c,y:f})}function ef(e,t){let r=et(e).scrollLeft;return t?t.left+r:ec(H(e)).left+r}function ed(e,t){let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-ef(e,r),y:r.top+t.scrollTop}}let ep=new Set(["absolute","fixed"]);function eh(e,t,r){let n;if("viewport"===t)n=function(e,t){let r=D(e),n=H(e),l=r.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;if(l){o=l.width,i=l.height;let e=$();(!e||e&&"fixed"===t)&&(a=l.offsetLeft,s=l.offsetTop)}let u=ef(n);if(u<=0){let e=n.ownerDocument,t=e.body,r=getComputedStyle(t),l="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,i=Math.abs(n.clientWidth-t.clientWidth-l);i<=25&&(o-=i)}else u<=25&&(o+=u);return{width:o,height:i,x:a,y:s}}(e,r);else if("document"===t)n=function(e){let t=H(e),r=et(e),n=e.ownerDocument.body,l=i(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=i(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),a=-r.scrollLeft+ef(e),s=-r.scrollTop;return"rtl"===ee(n).direction&&(a+=i(t.clientWidth,n.clientWidth)-l),{width:l,height:o,x:a,y:s}}(H(e));else if(z(t))n=function(e,t){let r=ec(e,!0,"fixed"===t),n=r.top+e.clientTop,l=r.left+e.clientLeft,o=F(e)?ea(e):u(1),i=e.clientWidth*o.x,a=e.clientHeight*o.y;return{width:i,height:a,x:l*o.x,y:n*o.y}}(t,r);else{let r=eu(e);n={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return T(n)}function em(e){return"static"===ee(e).position}function ev(e,t){if(!F(e)||"fixed"===ee(e).position)return null;if(t)return t(e);let r=e.offsetParent;return H(e)===r&&(r=r.ownerDocument.body),r}function eg(e,t){var r;let n=D(e);if(U(e))return n;if(!F(e)){let t=er(e);for(;t&&!J(t);){if(z(t)&&!em(t))return t;t=er(t)}return n}let l=ev(e,t);for(;l&&(r=l,W.has(I(r)))&&em(l);)l=ev(l,t);return l&&J(l)&&em(l)&&!Z(l)?n:l||function(e){let t=er(e);for(;F(t)&&!J(t);){if(Z(t))return t;if(U(t))break;t=er(t)}return null}(e)||n}let ew=async function(e){let t=this.getOffsetParent||eg,r=this.getDimensions,n=await r(e.floating);return{reference:function(e,t,r){let n=F(t),l=H(t),o="fixed"===r,i=ec(e,!0,o,t),a={scrollLeft:0,scrollTop:0},s=u(0);if(n||!n&&!o)if(("body"!==I(t)||V(l))&&(a=et(t)),n){let e=ec(t,!0,o,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else l&&(s.x=ef(l));o&&!n&&l&&(s.x=ef(l));let c=!l||n||o?u(0):ed(l,a);return{x:i.left+a.scrollLeft-s.x-c.x,y:i.top+a.scrollTop-s.y-c.y,width:i.width,height:i.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},ey={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:n,strategy:l}=e,o="fixed"===l,i=H(n),a=!!t&&U(t.floating);if(n===i||a&&o)return r;let s={scrollLeft:0,scrollTop:0},c=u(1),f=u(0),d=F(n);if((d||!d&&!o)&&(("body"!==I(n)||V(i))&&(s=et(n)),F(n))){let e=ec(n);c=ea(n),f.x=e.x+n.clientLeft,f.y=e.y+n.clientTop}let p=!i||d||o?u(0):ed(i,s);return{width:r.width*c.x,height:r.height*c.y,x:r.x*c.x-s.scrollLeft*c.x+f.x+p.x,y:r.y*c.y-s.scrollTop*c.y+f.y+p.y}},getDocumentElement:H,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:l}=e,a=[..."clippingAncestors"===r?U(t)?[]:function(e,t){let r=t.get(e);if(r)return r;let n=en(e,[],!1).filter(e=>z(e)&&"body"!==I(e)),l=null,o="fixed"===ee(e).position,i=o?er(e):e;for(;z(i)&&!J(i);){let t=ee(i),r=Z(i);r||"fixed"!==t.position||(l=null),(o?!r&&!l:!r&&"static"===t.position&&!!l&&ep.has(l.position)||V(i)&&!r&&function e(t,r){let n=er(t);return!(n===r||!z(n)||J(n))&&("fixed"===ee(n).position||e(n,r))}(e,i))?n=n.filter(e=>e!==i):l=t,i=er(i)}return t.set(e,n),n}(t,this._c):[].concat(r),n],s=a[0],u=a.reduce((e,r)=>{let n=eh(t,r,l);return e.top=i(n.top,e.top),e.right=o(n.right,e.right),e.bottom=o(n.bottom,e.bottom),e.left=i(n.left,e.left),e},eh(t,s,l));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:eg,getElementRects:ew,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:r}=eo(e);return{width:t,height:r}},getScale:ea,isElement:z,isRTL:function(e){return"rtl"===ee(e).direction}};function ex(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let eb=e=>({name:"arrow",options:e,async fn(t){let{x:r,y:n,placement:l,rects:a,platform:s,elements:u,middlewareData:c}=t,{element:f,padding:p=0}=d(e,t)||{};if(null==f)return{};let g=A(p),y={x:r,y:n},x=m(w(l)),b=v(x),S=await s.getDimensions(f),R="y"===x,C=R?"clientHeight":"clientWidth",T=a.reference[b]+a.reference[x]-y[x]-a.floating[b],j=y[x]-a.reference[x],P=await (null==s.getOffsetParent?void 0:s.getOffsetParent(f)),E=P?P[C]:0;E&&await (null==s.isElement?void 0:s.isElement(P))||(E=u.floating[C]||a.floating[b]);let k=E/2-S[b]/2-1,O=o(g[R?"top":"left"],k),L=o(g[R?"bottom":"right"],k),N=E-S[b]-L,M=E/2-S[b]/2+(T/2-j/2),I=i(O,o(M,N)),D=!c.arrow&&null!=h(l)&&M!==I&&a.reference[b]/2-(M<O?O:L)-S[b]/2<0,H=D?M<O?M-O:M-N:0;return{[x]:y[x]+H,data:{[x]:I,centerOffset:M-I-H,...D&&{alignmentOffset:H}},reset:D}}});var eS=r(38129),eR="undefined"!=typeof document?n.useLayoutEffect:function(){};function eC(e,t){let r,n,l;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((r=e.length)!==t.length)return!1;for(n=r;0!=n--;)if(!eC(e[n],t[n]))return!1;return!0}if((r=(l=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=r;0!=n--;)if(!({}).hasOwnProperty.call(t,l[n]))return!1;for(n=r;0!=n--;){let r=l[n];if(("_owner"!==r||!e.$$typeof)&&!eC(e[r],t[r]))return!1}return!0}return e!=e&&t!=t}function eA(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function eT(e,t){let r=eA(e);return Math.round(t*r)/r}function ej(e){let t=n.useRef(e);return eR(()=>{t.current=e}),t}var eP=r(93367),eE=r(90508),ek=n.forwardRef((e,t)=>{let{children:r,width:n=10,height:l=5,...o}=e;return(0,eE.jsx)(eP.sG.svg,{...o,ref:t,width:n,height:l,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:(0,eE.jsx)("polygon",{points:"0,0 30,0 15,10"})})});ek.displayName="Arrow";var eO=r(34124),eL=r(21032),eN=r(32313),eM=r(99457),eI=r(3705),eD="Popper",[eH,eB]=(0,eL.A)(eD),[ez,eF]=eH(eD),e_=e=>{let{__scopePopper:t,children:r}=e,[l,o]=n.useState(null);return(0,eE.jsx)(ez,{scope:t,anchor:l,onAnchorChange:o,children:r})};e_.displayName=eD;var eK="PopperAnchor",eV=n.forwardRef((e,t)=>{let{__scopePopper:r,virtualRef:l,...o}=e,i=eF(eK,r),a=n.useRef(null),s=(0,eO.s)(t,a),u=n.useRef(null);return n.useEffect(()=>{let e=u.current;u.current=(null==l?void 0:l.current)||a.current,e!==u.current&&i.onAnchorChange(u.current)}),l?null:(0,eE.jsx)(eP.sG.div,{...o,ref:s})});eV.displayName=eK;var eW="PopperContent",[eG,eU]=eH(eW),eq=n.forwardRef((e,t)=>{var r,l,a,u,c,f,g,A;let{__scopePopper:T,side:j="bottom",sideOffset:P=0,align:M="center",alignOffset:I=0,arrowPadding:D=0,avoidCollisions:B=!0,collisionBoundary:z=[],collisionPadding:F=0,sticky:_="partial",hideWhenDetached:K=!1,updatePositionStrategy:V="optimized",onPlaced:W,...G}=e,U=eF(eW,T),[q,X]=n.useState(null),Y=(0,eO.s)(t,e=>X(e)),[Z,$]=n.useState(null),Q=(0,eI.X)(Z),J=null!=(g=null==Q?void 0:Q.width)?g:0,ee=null!=(A=null==Q?void 0:Q.height)?A:0,et="number"==typeof F?F:{top:0,right:0,bottom:0,left:0,...F},er=Array.isArray(z)?z:[z],el=er.length>0,eo={padding:et,boundary:er.filter(e$),altBoundary:el},{refs:ea,floatingStyles:es,placement:eu,isPositioned:ef,middlewareData:ed}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:l=[],platform:o,elements:{reference:i,floating:a}={},transform:s=!0,whileElementsMounted:u,open:c}=e,[f,d]=n.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[p,h]=n.useState(l);eC(p,l)||h(l);let[m,v]=n.useState(null),[g,w]=n.useState(null),y=n.useCallback(e=>{e!==R.current&&(R.current=e,v(e))},[]),x=n.useCallback(e=>{e!==C.current&&(C.current=e,w(e))},[]),b=i||m,S=a||g,R=n.useRef(null),C=n.useRef(null),A=n.useRef(f),T=null!=u,j=ej(u),P=ej(o),k=ej(c),O=n.useCallback(()=>{if(!R.current||!C.current)return;let e={placement:t,strategy:r,middleware:p};P.current&&(e.platform=P.current),((e,t,r)=>{let n=new Map,l={platform:ey,...r},o={...l.platform,_c:n};return E(e,t,{...l,platform:o})})(R.current,C.current,e).then(e=>{let t={...e,isPositioned:!1!==k.current};L.current&&!eC(A.current,t)&&(A.current=t,eS.flushSync(()=>{d(t)}))})},[p,t,r,P,k]);eR(()=>{!1===c&&A.current.isPositioned&&(A.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let L=n.useRef(!1);eR(()=>(L.current=!0,()=>{L.current=!1}),[]),eR(()=>{if(b&&(R.current=b),S&&(C.current=S),b&&S){if(j.current)return j.current(b,S,O);O()}},[b,S,O,j,T]);let N=n.useMemo(()=>({reference:R,floating:C,setReference:y,setFloating:x}),[y,x]),M=n.useMemo(()=>({reference:b,floating:S}),[b,S]),I=n.useMemo(()=>{let e={position:r,left:0,top:0};if(!M.floating)return e;let t=eT(M.floating,f.x),n=eT(M.floating,f.y);return s?{...e,transform:"translate("+t+"px, "+n+"px)",...eA(M.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:t,top:n}},[r,s,M.floating,f.x,f.y]);return n.useMemo(()=>({...f,update:O,refs:N,elements:M,floatingStyles:I}),[f,O,N,M,I])}({strategy:"fixed",placement:j+("center"!==M?"-"+M:""),whileElementsMounted:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e,t,r,n){let l;void 0===n&&(n={});let{ancestorScroll:a=!0,ancestorResize:u=!0,elementResize:c="function"==typeof ResizeObserver,layoutShift:f="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,p=ei(e),h=a||u?[...p?en(p):[],...en(t)]:[];h.forEach(e=>{a&&e.addEventListener("scroll",r,{passive:!0}),u&&e.addEventListener("resize",r)});let m=p&&f?function(e,t){let r,n=null,l=H(e);function a(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return!function u(c,f){void 0===c&&(c=!1),void 0===f&&(f=1),a();let d=e.getBoundingClientRect(),{left:p,top:h,width:m,height:v}=d;if(c||t(),!m||!v)return;let g=s(h),w=s(l.clientWidth-(p+m)),y={rootMargin:-g+"px "+-w+"px "+-s(l.clientHeight-(h+v))+"px "+-s(p)+"px",threshold:i(0,o(1,f))||1},x=!0;function b(t){let n=t[0].intersectionRatio;if(n!==f){if(!x)return u();n?u(!1,n):r=setTimeout(()=>{u(!1,1e-7)},1e3)}1!==n||ex(d,e.getBoundingClientRect())||u(),x=!1}try{n=new IntersectionObserver(b,{...y,root:l.ownerDocument})}catch(e){n=new IntersectionObserver(b,y)}n.observe(e)}(!0),a}(p,r):null,v=-1,g=null;c&&(g=new ResizeObserver(e=>{let[n]=e;n&&n.target===p&&g&&(g.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var e;null==(e=g)||e.observe(t)})),r()}),p&&!d&&g.observe(p),g.observe(t));let w=d?ec(e):null;return d&&function t(){let n=ec(e);w&&!ex(w,n)&&r(),w=n,l=requestAnimationFrame(t)}(),r(),()=>{var e;h.forEach(e=>{a&&e.removeEventListener("scroll",r),u&&e.removeEventListener("resize",r)}),null==m||m(),null==(e=g)||e.disconnect(),g=null,d&&cancelAnimationFrame(l)}}(...t,{animationFrame:"always"===V})},elements:{reference:U.anchor},middleware:[((e,t)=>({...function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var r,n;let{x:l,y:o,placement:i,middlewareData:a}=t,s=await N(t,e);return i===(null==(r=a.offset)?void 0:r.placement)&&null!=(n=a.arrow)&&n.alignmentOffset?{}:{x:l+s.x,y:o+s.y,data:{...s,placement:i}}}}}(e),options:[e,t]}))({mainAxis:P+ee,alignmentAxis:I}),B&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:l,platform:a}=t,{mainAxis:s=!0,crossAxis:u=!1,limiter:c={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...f}=d(e,t),h={x:r,y:n},v=await a.detectOverflow(t,f),g=w(p(l)),y=m(g),x=h[y],b=h[g];if(s){let e="y"===y?"top":"left",t="y"===y?"bottom":"right",r=x+v[e],n=x-v[t];x=i(r,o(x,n))}if(u){let e="y"===g?"top":"left",t="y"===g?"bottom":"right",r=b+v[e],n=b-v[t];b=i(r,o(b,n))}let S=c.fn({...t,[y]:x,[g]:b});return{...S,data:{x:S.x-r,y:S.y-n,enabled:{[y]:s,[g]:u}}}}}}(e),options:[e,t]}))({mainAxis:!0,crossAxis:!1,limiter:"partial"===_?((e,t)=>({...function(e){return void 0===e&&(e={}),{options:e,fn(t){let{x:r,y:n,placement:l,rects:o,middlewareData:i}=t,{offset:a=0,mainAxis:s=!0,crossAxis:u=!0}=d(e,t),c={x:r,y:n},f=w(l),h=m(f),v=c[h],g=c[f],y=d(a,t),x="number"==typeof y?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(s){let e="y"===h?"height":"width",t=o.reference[h]-o.floating[e]+x.mainAxis,r=o.reference[h]+o.reference[e]-x.mainAxis;v<t?v=t:v>r&&(v=r)}if(u){var b,S;let e="y"===h?"width":"height",t=L.has(p(l)),r=o.reference[f]-o.floating[e]+(t&&(null==(b=i.offset)?void 0:b[f])||0)+(t?0:x.crossAxis),n=o.reference[f]+o.reference[e]+(t?0:(null==(S=i.offset)?void 0:S[f])||0)-(t?x.crossAxis:0);g<r?g=r:g>n&&(g=n)}return{[h]:v,[f]:g}}}}(e),options:[e,t]}))():void 0,...eo}),B&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var r,n,l,o,i;let{placement:a,middlewareData:s,rects:u,initialPlacement:c,platform:f,elements:g}=t,{mainAxis:A=!0,crossAxis:T=!0,fallbackPlacements:j,fallbackStrategy:P="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:k=!0,...O}=d(e,t);if(null!=(r=s.arrow)&&r.alignmentOffset)return{};let L=p(a),N=w(c),M=p(c)===c,I=await (null==f.isRTL?void 0:f.isRTL(g.floating)),D=j||(M||!k?[C(c)]:function(e){let t=C(e);return[y(e),t,y(t)]}(c)),H="none"!==E;!j&&H&&D.push(...function(e,t,r,n){let l=h(e),o=function(e,t,r){switch(e){case"top":case"bottom":if(r)return t?b:x;return t?x:b;case"left":case"right":return t?S:R;default:return[]}}(p(e),"start"===r,n);return l&&(o=o.map(e=>e+"-"+l),t&&(o=o.concat(o.map(y)))),o}(c,k,E,I));let B=[c,...D],z=await f.detectOverflow(t,O),F=[],_=(null==(n=s.flip)?void 0:n.overflows)||[];if(A&&F.push(z[L]),T){let e=function(e,t,r){void 0===r&&(r=!1);let n=h(e),l=m(w(e)),o=v(l),i="x"===l?n===(r?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=C(i)),[i,C(i)]}(a,u,I);F.push(z[e[0]],z[e[1]])}if(_=[..._,{placement:a,overflows:F}],!F.every(e=>e<=0)){let e=((null==(l=s.flip)?void 0:l.index)||0)+1,t=B[e];if(t&&("alignment"!==T||N===w(t)||_.every(e=>w(e.placement)!==N||e.overflows[0]>0)))return{data:{index:e,overflows:_},reset:{placement:t}};let r=null==(o=_.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:o.placement;if(!r)switch(P){case"bestFit":{let e=null==(i=_.filter(e=>{if(H){let t=w(e.placement);return t===N||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:i[0];e&&(r=e);break}case"initialPlacement":r=c}if(a!==r)return{reset:{placement:r}}}return{}}}}(e),options:[e,t]}))({...eo}),((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var r,n;let l,a,{placement:s,rects:u,platform:c,elements:f}=t,{apply:m=()=>{},...v}=d(e,t),g=await c.detectOverflow(t,v),y=p(s),x=h(s),b="y"===w(s),{width:S,height:R}=u.floating;"top"===y||"bottom"===y?(l=y,a=x===(await (null==c.isRTL?void 0:c.isRTL(f.floating))?"start":"end")?"left":"right"):(a=y,l="end"===x?"top":"bottom");let C=R-g.top-g.bottom,A=S-g.left-g.right,T=o(R-g[l],C),j=o(S-g[a],A),P=!t.middlewareData.shift,E=T,k=j;if(null!=(r=t.middlewareData.shift)&&r.enabled.x&&(k=A),null!=(n=t.middlewareData.shift)&&n.enabled.y&&(E=C),P&&!x){let e=i(g.left,0),t=i(g.right,0),r=i(g.top,0),n=i(g.bottom,0);b?k=S-2*(0!==e||0!==t?e+t:i(g.left,g.right)):E=R-2*(0!==r||0!==n?r+n:i(g.top,g.bottom))}await m({...t,availableWidth:k,availableHeight:E});let O=await c.getDimensions(f.floating);return S!==O.width||R!==O.height?{reset:{rects:!0}}:{}}}}(e),options:[e,t]}))({...eo,apply:e=>{let{elements:t,rects:r,availableWidth:n,availableHeight:l}=e,{width:o,height:i}=r.reference,a=t.floating.style;a.setProperty("--radix-popper-available-width","".concat(n,"px")),a.setProperty("--radix-popper-available-height","".concat(l,"px")),a.setProperty("--radix-popper-anchor-width","".concat(o,"px")),a.setProperty("--radix-popper-anchor-height","".concat(i,"px"))}}),Z&&((e,t)=>({...(e=>({name:"arrow",options:e,fn(t){let{element:r,padding:n}="function"==typeof e?e(t):e;return r&&({}).hasOwnProperty.call(r,"current")?null!=r.current?eb({element:r.current,padding:n}).fn(t):{}:r?eb({element:r,padding:n}).fn(t):{}}}))(e),options:[e,t]}))({element:Z,padding:D}),eQ({arrowWidth:J,arrowHeight:ee}),K&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){let{rects:r,platform:n}=t,{strategy:l="referenceHidden",...o}=d(e,t);switch(l){case"referenceHidden":{let e=k(await n.detectOverflow(t,{...o,elementContext:"reference"}),r.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:O(e)}}}case"escaped":{let e=k(await n.detectOverflow(t,{...o,altBoundary:!0}),r.floating);return{data:{escapedOffsets:e,escaped:O(e)}}}default:return{}}}}}(e),options:[e,t]}))({strategy:"referenceHidden",...eo})]}),[ep,eh]=eJ(eu),em=(0,eN.c)(W);(0,eM.N)(()=>{ef&&(null==em||em())},[ef,em]);let ev=null==(r=ed.arrow)?void 0:r.x,eg=null==(l=ed.arrow)?void 0:l.y,ew=(null==(a=ed.arrow)?void 0:a.centerOffset)!==0,[ek,eL]=n.useState();return(0,eM.N)(()=>{q&&eL(window.getComputedStyle(q).zIndex)},[q]),(0,eE.jsx)("div",{ref:ea.setFloating,"data-radix-popper-content-wrapper":"",style:{...es,transform:ef?es.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ek,"--radix-popper-transform-origin":[null==(u=ed.transformOrigin)?void 0:u.x,null==(c=ed.transformOrigin)?void 0:c.y].join(" "),...(null==(f=ed.hide)?void 0:f.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,eE.jsx)(eG,{scope:T,placedSide:ep,onArrowChange:$,arrowX:ev,arrowY:eg,shouldHideArrow:ew,children:(0,eE.jsx)(eP.sG.div,{"data-side":ep,"data-align":eh,...G,ref:Y,style:{...G.style,animation:ef?void 0:"none"}})})})});eq.displayName=eW;var eX="PopperArrow",eY={top:"bottom",right:"left",bottom:"top",left:"right"},eZ=n.forwardRef(function(e,t){let{__scopePopper:r,...n}=e,l=eU(eX,r),o=eY[l.placedSide];return(0,eE.jsx)("span",{ref:l.onArrowChange,style:{position:"absolute",left:l.arrowX,top:l.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[l.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[l.placedSide],visibility:l.shouldHideArrow?"hidden":void 0},children:(0,eE.jsx)(ek,{...n,ref:t,style:{...n.style,display:"block"}})})});function e$(e){return null!==e}eZ.displayName=eX;var eQ=e=>({name:"transformOrigin",options:e,fn(t){var r,n,l,o,i;let{placement:a,rects:s,middlewareData:u}=t,c=(null==(r=u.arrow)?void 0:r.centerOffset)!==0,f=c?0:e.arrowWidth,d=c?0:e.arrowHeight,[p,h]=eJ(a),m={start:"0%",center:"50%",end:"100%"}[h],v=(null!=(o=null==(n=u.arrow)?void 0:n.x)?o:0)+f/2,g=(null!=(i=null==(l=u.arrow)?void 0:l.y)?i:0)+d/2,w="",y="";return"bottom"===p?(w=c?m:"".concat(v,"px"),y="".concat(-d,"px")):"top"===p?(w=c?m:"".concat(v,"px"),y="".concat(s.floating.height+d,"px")):"right"===p?(w="".concat(-d,"px"),y=c?m:"".concat(g,"px")):"left"===p&&(w="".concat(s.floating.width+d,"px"),y=c?m:"".concat(g,"px")),{data:{x:w,y}}}});function eJ(e){let[t,r="center"]=e.split("-");return[t,r]}var e0=e_,e1=eV,e2=eq,e5=eZ},72009:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(1856);function l(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},72599:(e,t,r)=>{r.d(t,{jH:()=>o});var n=r(1856);r(90508);var l=n.createContext(void 0);function o(e){let t=n.useContext(l);return e||t||"ltr"}},78134:(e,t,r)=>{r.d(t,{Qg:()=>i,bL:()=>s,s6:()=>a});var n=r(1856),l=r(93367),o=r(90508),i=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),a=n.forwardRef((e,t)=>(0,o.jsx)(l.sG.span,{...e,ref:t,style:{...i,...e.style}}));a.displayName="VisuallyHidden";var s=a},81369:(e,t,r)=>{function n(e,t,r){if(!t.has(e))throw TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function l(e,t){var r=n(e,t,"get");return r.get?r.get.call(e):r.value}function o(e,t,r){var l=n(e,t,"set");if(l.set)l.set.call(e,r);else{if(!l.writable)throw TypeError("attempted to set read only private field");l.value=r}return r}r.d(t,{N:()=>d,C:()=>g});var i,a=r(1856),s=r(21032),u=r(34124),c=r(54154),f=r(90508);function d(e){let t=e+"CollectionProvider",[r,n]=(0,s.A)(t),[l,o]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=a.useRef(null),o=a.useRef(new Map).current;return(0,f.jsx)(l,{scope:t,itemMap:o,collectionRef:n,children:r})};i.displayName=t;let d=e+"CollectionSlot",p=(0,c.TL)(d),h=a.forwardRef((e,t)=>{let{scope:r,children:n}=e,l=o(d,r),i=(0,u.s)(t,l.collectionRef);return(0,f.jsx)(p,{ref:i,children:n})});h.displayName=d;let m=e+"CollectionItemSlot",v="data-radix-collection-item",g=(0,c.TL)(m),w=a.forwardRef((e,t)=>{let{scope:r,children:n,...l}=e,i=a.useRef(null),s=(0,u.s)(t,i),c=o(m,r);return a.useEffect(()=>(c.itemMap.set(i,{ref:i,...l}),()=>void c.itemMap.delete(i))),(0,f.jsx)(g,{...{[v]:""},ref:s,children:n})});return w.displayName=m,[{Provider:i,Slot:h,ItemSlot:w},function(t){let r=o(e+"CollectionConsumer",t);return a.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(v,"]")));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}var p=new WeakMap,h=(i=new WeakMap,class e extends Map{set(e,t){return p.get(this)&&(this.has(e)?l(this,i)[l(this,i).indexOf(e)]=e:l(this,i).push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),a=l(this,i).length,s=v(e),u=s>=0?s:a+s,c=u<0||u>=a?-1:u;if(c===this.size||o&&c===this.size-1||-1===c)return this.set(t,r),this;let f=this.size+ +!o;s<0&&u++;let d=[...l(this,i)],p=!1;for(let e=u;e<f;e++)if(u===e){let l=d[e];d[e]===t&&(l=d[e+1]),o&&this.delete(t),n=this.get(l),this.set(t,r)}else{p||d[e-1]!==t||(p=!0);let r=d[p?e:e-1],l=n;n=this.get(r),this.delete(r),this.set(r,l)}return this}with(t,r,n){let l=new e(this);return l.insert(t,r,n),l}before(e){let t=l(this,i).indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let n=l(this,i).indexOf(e);return -1===n?this:this.insert(n,t,r)}after(e){let t=l(this,i).indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let n=l(this,i).indexOf(e);return -1===n?this:this.insert(n+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return o(this,i,[]),super.clear()}delete(e){let t=super.delete(e);return t&&l(this,i).splice(l(this,i).indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=m(l(this,i),e);if(void 0!==t)return this.get(t)}entryAt(e){let t=m(l(this,i),e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return l(this,i).indexOf(e)}keyAt(e){return m(l(this,i),e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],l=0;for(let e of this)Reflect.apply(t,r,[e,l,this])&&n.push(e),l++;return new e(n)}map(t,r){let n=[],l=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,l,this])]),l++;return new e(n)}reduce(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let[n,l]=t,o=0,i=null!=l?l:this.at(0);for(let e of this)i=0===o&&1===t.length?e:Reflect.apply(n,this,[i,e,o,this]),o++;return i}reduceRight(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let[n,l]=t,o=null!=l?l:this.at(-1);for(let e=this.size-1;e>=0;e--){let r=this.at(e);o=e===this.size-1&&1===t.length?r:Reflect.apply(n,this,[o,r,e,this])}return o}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];let l=[...this.entries()];return l.splice(...r),new e(l)}slice(t,r){let n=new e,l=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(l=r-1);for(let e=t;e<=l;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}constructor(e){super(e),function(e,t,r){if(t.has(e))throw TypeError("Cannot initialize the same private elements twice on an object");t.set(e,r)}(this,i,{writable:!0,value:void 0}),o(this,i,[...super.keys()]),p.set(this,!0)}});function m(e,t){if("at"in Array.prototype)return Array.prototype.at.call(e,t);let r=function(e,t){let r=e.length,n=v(t),l=n>=0?n:r+n;return l<0||l>=r?-1:l}(e,t);return -1===r?void 0:e[r]}function v(e){return e!=e||0===e?0:Math.trunc(e)}function g(e){let t=e+"CollectionProvider",[r,n]=(0,s.A)(t),[l,o]=r(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new h,setItemMap:()=>void 0}),i=e=>{let{state:t,...r}=e;return t?(0,f.jsx)(p,{...r,state:t}):(0,f.jsx)(d,{...r})};i.displayName=t;let d=e=>{let t=S();return(0,f.jsx)(p,{...e,state:t})};d.displayName=t+"Init";let p=e=>{let{scope:t,children:r,state:n}=e,o=a.useRef(null),[i,s]=a.useState(null),c=(0,u.s)(o,s),[d,p]=n;return a.useEffect(()=>{var e;if(!i)return;let t=(e=()=>{},new MutationObserver(t=>{for(let r of t)if("childList"===r.type)return void e()}));return t.observe(i,{childList:!0,subtree:!0}),()=>{t.disconnect()}},[i]),(0,f.jsx)(l,{scope:t,itemMap:d,setItemMap:p,collectionRef:c,collectionRefObject:o,collectionElement:i,children:r})};p.displayName=t+"Impl";let m=e+"CollectionSlot",v=(0,c.TL)(m),g=a.forwardRef((e,t)=>{let{scope:r,children:n}=e,l=o(m,r),i=(0,u.s)(t,l.collectionRef);return(0,f.jsx)(v,{ref:i,children:n})});g.displayName=m;let y=e+"CollectionItemSlot",x=(0,c.TL)(y),b=a.forwardRef((e,t)=>{let{scope:r,children:n,...l}=e,i=a.useRef(null),[s,c]=a.useState(null),d=(0,u.s)(t,i,c),{setItemMap:p}=o(y,r),m=a.useRef(l);!function(e,t){if(e===t)return!0;if("object"!=typeof e||"object"!=typeof t||null==e||null==t)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let n of r)if(!Object.prototype.hasOwnProperty.call(t,n)||e[n]!==t[n])return!1;return!0}(m.current,l)&&(m.current=l);let v=m.current;return a.useEffect(()=>(p(e=>s?e.has(s)?e.set(s,{...v,element:s}).toSorted(w):(e.set(s,{...v,element:s}),e.toSorted(w)):e),()=>{p(e=>s&&e.has(s)?(e.delete(s),new h(e)):e)}),[s,v,p]),(0,f.jsx)(x,{"data-radix-collection-item":"",ref:d,children:n})});function S(){return a.useState(new h)}return b.displayName=y,[{Provider:i,Slot:g,ItemSlot:b},{createCollectionScope:n,useCollection:function(t){let{itemMap:r}=o(e+"CollectionConsumer",t);return r},useInitCollection:S}]}function w(e,t){var r;return e[1].element&&t[1].element?(r=e[1].element,t[1].element.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_PRECEDING)?-1:1:0}},91722:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,[t,r]){return Math.min(r,Math.max(t,e))}}}]);
|
package/.next/standalone/.next/static/chunks/{72156-693a7612a0a1927c.js → 53664-a2be2eaacce03f0f.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[72156],{72156:(e,s,t)=>{t.d(s,{D:()=>G});var a=t(90508),i=t(1856),n=t(23675),l=t(12790),r=t.n(l),c=t(39268),d=t(95900),o=t(57893),u=t(9160),m=t(5425),x=t(85226),h=t(60532),p=t(94903),j=t(56770),g=t(97413),v=t(57731),b=t(22922),f=t(14554),N=t(15972),A=t(88064),w=t(64993),C=t(4365),y=t(97438),E=t(51817),k=t(73693),F=t(20763),S=t(56197),B=t(69083),D=t(19854),U=t(37021),_=t(51708),R=t(43592),$=t(60603),T=t(38040),z=t(52217);let L=(0,z.createServerReference)("602890c9422ea07604ec0728f0486c48f543fd709f",z.callServer,void 0,z.findSourceMapURL,"skipElaborationAction");var P=t(63964),I=t(16544),M=t(65626),q=t(38106);let J={open:"bg-[#FFF3E0] text-[#E65100]",elaborating:"bg-[#E3F2FD] text-[#1976D2]",elaborated:"bg-[#E0F2F1] text-[#00796B]"},O={open:"open",elaborating:"elaborating",elaborated:"elaborated"};function G(e){var s;let{idea:t,projectUuid:l,currentUserUuid:z,isUsedInProposal:G,onClose:H,onDeleted:Z}=e,V=(0,c.c)(),K=(0,n.useRouter)(),[Q,W]=(0,i.useState)([]),[X,Y]=(0,i.useState)(!0),[ee,es]=(0,i.useState)(!1),[et,ea]=(0,i.useState)(null),ei=(0,i.useCallback)(async()=>{let e=await (0,T.z)(t.uuid);e.success&&e.data&&ea(e.data)},[t.uuid]);(0,i.useEffect)(()=>{ei()},[ei]),(0,P.eV)("idea",ei);let[en,el]=(0,i.useState)(!1),[er,ec]=(0,i.useState)(""),[ed,eo]=(0,i.useState)(!1),[eu,em]=(0,i.useState)(null),[ex,eh]=(0,i.useState)(!1),[ep,ej]=(0,i.useState)(t.title),[eg,ev]=(0,i.useState)(t.content||""),[eb,ef]=(0,i.useState)(!1),[eN,eA]=(0,i.useState)(null),[ew,eC]=(0,i.useState)(!1),[ey,eE]=(0,i.useState)(!1),[ek,eF]=(0,i.useState)([]),[eS,eB]=(0,i.useState)(!1),[eD,eU]=(0,i.useState)(null),[e_,eR]=(0,i.useState)(!1),[e$,eT]=(0,i.useState)(null),[ez,eL]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=setTimeout(()=>eL(!0),300);return()=>clearTimeout(e)},[]);let eP="elaborated"!==t.status,eI="resolved"===t.elaborationStatus,eM=("elaborating"===t.status||"elaborated"===t.status)&&eI,eq="elaborating"===t.status&&(!t.elaborationStatus||"resolved"!==t.elaborationStatus)&&(null==(s=t.assignee)?void 0:s.uuid)===z,eJ="elaborated"!==t.status;(0,i.useEffect)(()=>{!async function(){Y(!0),W((await (0,S.x)(t.uuid)).activities),Y(!1)}()},[t.uuid]),(0,i.useEffect)(()=>{eh(!1),ej(t.title),ev(t.content||""),eA(null)},[t.uuid,t.title,t.content]);let eO=()=>{eh(!1),ej(t.title),ev(t.content||""),eA(null)},eG=async()=>{if(!ep.trim())return void eA(V("ideas.titleRequired"));ef(!0),eA(null);let e=await (0,B.J)({ideaUuid:t.uuid,projectUuid:l,title:ep.trim(),content:eg.trim()||null});ef(!1),e.success?(eh(!1),K.refresh()):eA(e.error||V("ideas.updateFailed"))},eH=async()=>{eC(!0);let e=await (0,D.Z)(t.uuid,l);eC(!1),e.success&&(null==Z||Z(),H(),K.refresh())},eZ=async()=>{if(!er.trim())return void em(V("elaboration.skipReasonRequired"));eo(!0),em(null);let e=await L(t.uuid,er.trim());eo(!1),e.success?(el(!1),ec(""),K.refresh()):em(e.error||V("common.genericError"))},eV=async()=>{eE(!0),eU(null),eT(null),eB(!0);try{let[e,s]=await Promise.all([fetch("/api/projects?pageSize=100"),fetch("/api/project-groups")]),[t,a]=await Promise.all([e.json(),s.json()]);if(t.success){let e=t.data.filter(e=>e.uuid!==l).map(e=>({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})),s=new Map;if(a.success)for(let e of a.data.groups||a.data)s.set(e.uuid,e.name);let i=new Map,n=[];for(let t of e)t.groupUuid&&s.has(t.groupUuid)?(i.has(t.groupUuid)||i.set(t.groupUuid,{uuid:t.groupUuid,name:s.get(t.groupUuid),projects:[]}),i.get(t.groupUuid).projects.push({uuid:t.uuid,name:t.name})):n.push({uuid:t.uuid,name:t.name});let r=[...i.values()];n.length>0&&r.push({uuid:"ungrouped",name:V("ideas.ungrouped"),projects:n}),eF(r)}}catch(e){eF([])}eB(!1)},eK=async()=>{if(eD&&!e_){eR(!0),eT(null);try{let s=await fetch("/api/ideas/".concat(t.uuid,"/move"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetProjectUuid:eD.uuid})}),a=await s.json();if(a.success)eE(!1),H(),K.refresh();else{var e;eT("string"==typeof a.error?a.error:(null==(e=a.error)?void 0:e.message)||V("ideas.moveFailed"))}}catch(e){eT(V("ideas.moveFailed"))}eR(!1)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:H}),(0,a.jsxs)("div",{className:"fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ".concat(ez?"":"animate-in slide-in-from-right duration-300"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:ex?(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:V("ideas.editIdea")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:t.title}),(0,a.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,a.jsx)(v.E,{className:J[t.status]||"",children:V("status.".concat(O[t.status]||t.status))}),(0,a.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:(0,q.r)(t.createdAt)})]})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[eJ&&!ex&&(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:eV,title:V("ideas.moveToProject"),children:(0,a.jsx)(d.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),eJ&&!ex&&(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>{ej(t.title),ev(t.content||""),eA(null),eh(!0)},children:(0,a.jsx)(o.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:ex?eO:H,children:(0,a.jsx)(u.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),(0,a.jsx)(w.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,a.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:ex?(0,a.jsxs)("div",{className:"space-y-5",children:[eN&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:eN}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("ideas.titleLabel")}),(0,a.jsx)(f.p,{id:"edit-title",value:ep,onChange:e=>ej(e.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("common.content")}),(0,a.jsx)(N.T,{id:"edit-content",value:eg,onChange:e=>ev(e.target.value),rows:8,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]})]}):(0,a.jsxs)(I.P.div,{variants:M.qG,initial:"initial",animate:"animate",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.assignee")}),(0,a.jsx)("div",{className:"mt-2 flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-3",children:t.assignee?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k.eu,{className:"h-7 w-7",children:(0,a.jsx)(k.q5,{className:"agent"===t.assignee.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]",children:"agent"===t.assignee.type?(0,a.jsx)(m.A,{className:"h-3.5 w-3.5"}):t.assignee.name.charAt(0).toUpperCase()})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-sm font-medium text-[#2C2C2C]",children:t.assignee.name}),(0,a.jsx)("div",{className:"text-xs text-[#6B6B6B]",children:"agent"===t.assignee.type?"".concat(V("common.agent")," • ").concat(t.assignee.assignedAt?(0,q.r)(t.assignee.assignedAt):""):V("common.user")})]})]}):(0,a.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:V("common.unassigned")})})]}),et&&et.rounds.length>0&&(0,a.jsx)("div",{className:"mt-5",children:(0,a.jsx)($.R,{ideaUuid:t.uuid,elaboration:et,onRefresh:async()=>{let e=await (0,T.z)(t.uuid);e.success&&e.data&&ea(e.data)}})}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.content")}),(0,a.jsx)("div",{className:"mt-2",children:t.content?(0,a.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,a.jsx)(U.jH,{plugins:{code:_.a},children:t.content})}):(0,a.jsx)("p",{className:"text-sm italic text-[#9A9A9A]",children:V("common.noContent")})})]}),(0,a.jsxs)("div",{className:"mt-5 flex-1",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.activity")}),(0,a.jsx)("div",{className:"mt-2 space-y-3",children:X?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===Q.length?(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:V("common.noActivity")}):Q.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[#9A9A9A]"}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("p",{className:"text-[13px] text-[#2C2C2C]",children:function(e,s){let{action:t,actorName:a}=e;switch(t){case"created":case"idea_created":return s("activity.ideaCreated",{actor:a});case"assigned":case"idea_assigned":return s("activity.ideaAssigned",{actor:a});case"claimed":case"idea_claimed":return s("activity.ideaClaimed",{actor:a});case"released":case"idea_released":return s("activity.ideaReleased",{actor:a});case"status_changed":case"idea_status_changed":return s("activity.ideaStatusChanged",{actor:a});case"elaboration_started":return s("activity.elaborationStarted",{actor:a});case"elaboration_answered":return s("activity.elaborationAnswered",{actor:a});case"elaboration_skipped":return s("activity.elaborationSkipped",{actor:a});case"elaboration_resolved":return s("activity.elaborationResolved",{actor:a});case"elaboration_followup":return s("activity.elaborationFollowup",{actor:a});default:return"".concat(a,": ").concat(t)}}(e,V)}),(0,a.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:function(e,s){let t=new Date(e),a=new Date().getTime()-t.getTime(),i=Math.floor(a/6e4),n=Math.floor(a/36e5),l=Math.floor(a/864e5);return i<1?s("time.justNow"):i<60?s("time.minutesAgo",{minutes:i}):n<24?s("time.hoursAgo",{hours:n}):l<7?s("time.daysAgo",{days:l}):(0,q.r)(t)}(e.createdAt,V)})]})]},e.uuid))})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("comments.title")}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(F.$,{targetType:"idea",targetUuid:t.uuid,currentUserUuid:z,compact:!0})})]})]})})}),(0,a.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:(0,a.jsx)("div",{className:"flex items-center justify-between gap-3",children:ex?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:eO,disabled:eb,children:V("common.cancel")}),(0,a.jsx)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:eG,disabled:eb||!ep.trim(),children:eb?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.saving")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4"}),V("ideas.saveChanges")]})})]}):(0,a.jsxs)(a.Fragment,{children:[eP&&(0,a.jsxs)(b.$,{variant:"outline",className:"shrink-0 border-[#E5E0D8] rounded-md px-4 py-2 text-[13px] font-medium",onClick:()=>es(!0),children:[(0,a.jsx)(p.A,{className:"mr-2 h-4 w-4"}),t.assignee?V("common.reassign"):V("common.assign")]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[eq&&(0,a.jsx)(b.$,{variant:"outline",size:"sm",className:"border-[#E5E0D8]",onClick:()=>{ec(""),em(null),el(!0)},children:V("elaboration.skipButton")}),eM&&(0,a.jsx)(r(),{href:"/projects/".concat(l,"/proposals/new?ideaUuid=").concat(t.uuid),children:(0,a.jsxs)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:[(0,a.jsx)(j.A,{className:"mr-2 h-4 w-4"}),V("proposals.createProposal")]})}),"elaborating"===t.status&&!eI&&!eq&&(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:V("elaboration.elaborationRequiredHint")})]}),(0,a.jsxs)(E.Lt,{children:[(0,a.jsx)(E.tv,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8] text-[#EF4444] hover:bg-[#FFEBEE] hover:text-[#EF4444] hover:border-[#EF4444]",children:(0,a.jsx)(g.A,{className:"h-4 w-4"})})}),(0,a.jsxs)(E.EO,{children:[(0,a.jsxs)(E.wd,{children:[(0,a.jsx)(E.r7,{children:V("ideas.deleteIdea")}),(0,a.jsx)(E.$v,{children:V("ideas.deleteIdeaConfirm",{title:t.title})})]}),(0,a.jsxs)(E.ck,{children:[(0,a.jsx)(E.Zr,{children:V("common.cancel")}),(0,a.jsx)(E.Rx,{variant:"destructive",onClick:eH,disabled:ew,children:ew?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.delete")]}):V("common.delete")})]})]})]})]})})})]}),(0,a.jsx)(E.Lt,{open:en,onOpenChange:el,children:(0,a.jsxs)(E.EO,{children:[(0,a.jsxs)(E.wd,{children:[(0,a.jsx)(E.r7,{children:V("elaboration.skipConfirmTitle")}),(0,a.jsx)(E.$v,{children:V("elaboration.skipConfirmDescription")})]}),(0,a.jsxs)("div",{className:"space-y-2 py-2",children:[(0,a.jsx)(A.J,{htmlFor:"skip-reason",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("elaboration.skipReasonLabel")}),(0,a.jsx)(f.p,{id:"skip-reason",value:er,onChange:e=>{ec(e.target.value),eu&&em(null)},placeholder:V("elaboration.skipReasonPlaceholder"),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0}),eu&&(0,a.jsx)("p",{className:"text-xs text-destructive",children:eu})]}),(0,a.jsxs)(E.ck,{children:[(0,a.jsx)(E.Zr,{disabled:ed,children:V("common.cancel")}),(0,a.jsx)(E.Rx,{onClick:e=>{e.preventDefault(),eZ()},disabled:ed||!er.trim(),className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:ed?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.processing")]}):V("elaboration.skipButton")})]})]})}),(0,a.jsx)(y.lG,{open:ey,onOpenChange:eE,children:(0,a.jsxs)(y.Cf,{children:[(0,a.jsxs)(y.c7,{children:[(0,a.jsx)(y.L3,{children:V("ideas.moveIdeaTitle")}),(0,a.jsx)(y.rr,{children:V("ideas.moveIdeaDescription")})]}),e$&&(0,a.jsx)("p",{className:"text-xs text-destructive",children:e$}),eS?(0,a.jsx)("div",{className:"flex items-center justify-center h-[320px] border border-[#E5E0D8] rounded-lg",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(C.uB,{className:"border border-[#E5E0D8] rounded-lg",filter:(e,s,t)=>{let a=s.toLowerCase();return e.toLowerCase().includes(a)||(null==t?void 0:t.some(e=>e.toLowerCase().includes(a)))?1:0},children:[(0,a.jsx)(C.G7,{placeholder:V("ideas.searchProjects")}),(0,a.jsxs)(C.oI,{className:"h-[280px]",children:[(0,a.jsx)(C.xL,{children:V("ideas.noProjectsFound")}),ek.map(e=>(0,a.jsx)(C.L$,{heading:e.name,children:e.projects.map(s=>(0,a.jsxs)(C.h_,{value:s.name,keywords:[e.name],onSelect:()=>eU(s),className:(null==eD?void 0:eD.uuid)===s.uuid?"bg-[#C67A52] text-white data-[selected=true]:bg-[#B56A42] data-[selected=true]:text-white":"",children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4 ".concat((null==eD?void 0:eD.uuid)===s.uuid?"opacity-100":"opacity-0")}),s.name]},s.uuid))},e.uuid))]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,a.jsx)(b.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>eE(!1),disabled:e_,children:V("common.cancel")}),(0,a.jsx)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:eK,disabled:!eD||e_,children:e_?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("ideas.moving")]}):V("ideas.moveToProject")})]})]})}),ee&&(0,a.jsx)(R.i,{idea:{uuid:t.uuid,title:t.title,content:t.content,status:t.status,assignee:t.assignee?{type:t.assignee.type,uuid:t.assignee.uuid,name:t.assignee.name}:null},projectUuid:l,currentUserUuid:z,onClose:()=>{es(!1),H()}})]})}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[53664],{53664:(e,s,t)=>{t.d(s,{D:()=>G});var a=t(90508),i=t(1856),n=t(23675),l=t(12790),r=t.n(l),c=t(39268),d=t(95900),o=t(57893),u=t(9160),m=t(5425),x=t(85226),h=t(60532),p=t(94903),j=t(56770),g=t(97413),v=t(57731),b=t(22922),f=t(14554),N=t(15972),A=t(88064),w=t(64993),C=t(4365),y=t(97438),E=t(51817),k=t(73693),F=t(37486),S=t(77247),B=t(64847),D=t(18885),U=t(37021),_=t(51708),R=t(59809),$=t(42641),T=t(80439),z=t(52217);let L=(0,z.createServerReference)("60beceb03c0f9caf18b244a0bd6e2987b282ae7dea",z.callServer,void 0,z.findSourceMapURL,"skipElaborationAction");var P=t(63964),I=t(16544),M=t(65626),q=t(38106);let J={open:"bg-[#FFF3E0] text-[#E65100]",elaborating:"bg-[#E3F2FD] text-[#1976D2]",elaborated:"bg-[#E0F2F1] text-[#00796B]"},O={open:"open",elaborating:"elaborating",elaborated:"elaborated"};function G(e){var s;let{idea:t,projectUuid:l,currentUserUuid:z,isUsedInProposal:G,onClose:H,onDeleted:Z}=e,V=(0,c.c)(),K=(0,n.useRouter)(),[Q,W]=(0,i.useState)([]),[X,Y]=(0,i.useState)(!0),[ee,es]=(0,i.useState)(!1),[et,ea]=(0,i.useState)(null),ei=(0,i.useCallback)(async()=>{let e=await (0,T.z)(t.uuid);e.success&&e.data&&ea(e.data)},[t.uuid]);(0,i.useEffect)(()=>{ei()},[ei]),(0,P.eV)("idea",ei);let[en,el]=(0,i.useState)(!1),[er,ec]=(0,i.useState)(""),[ed,eo]=(0,i.useState)(!1),[eu,em]=(0,i.useState)(null),[ex,eh]=(0,i.useState)(!1),[ep,ej]=(0,i.useState)(t.title),[eg,ev]=(0,i.useState)(t.content||""),[eb,ef]=(0,i.useState)(!1),[eN,eA]=(0,i.useState)(null),[ew,eC]=(0,i.useState)(!1),[ey,eE]=(0,i.useState)(!1),[ek,eF]=(0,i.useState)([]),[eS,eB]=(0,i.useState)(!1),[eD,eU]=(0,i.useState)(null),[e_,eR]=(0,i.useState)(!1),[e$,eT]=(0,i.useState)(null),[ez,eL]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=setTimeout(()=>eL(!0),300);return()=>clearTimeout(e)},[]);let eP="elaborated"!==t.status,eI="resolved"===t.elaborationStatus,eM=("elaborating"===t.status||"elaborated"===t.status)&&eI,eq="elaborating"===t.status&&(!t.elaborationStatus||"resolved"!==t.elaborationStatus)&&(null==(s=t.assignee)?void 0:s.uuid)===z,eJ="elaborated"!==t.status;(0,i.useEffect)(()=>{!async function(){Y(!0),W((await (0,S.x)(t.uuid)).activities),Y(!1)}()},[t.uuid]),(0,i.useEffect)(()=>{eh(!1),ej(t.title),ev(t.content||""),eA(null)},[t.uuid,t.title,t.content]);let eO=()=>{eh(!1),ej(t.title),ev(t.content||""),eA(null)},eG=async()=>{if(!ep.trim())return void eA(V("ideas.titleRequired"));ef(!0),eA(null);let e=await (0,B.J)({ideaUuid:t.uuid,projectUuid:l,title:ep.trim(),content:eg.trim()||null});ef(!1),e.success?(eh(!1),K.refresh()):eA(e.error||V("ideas.updateFailed"))},eH=async()=>{eC(!0);let e=await (0,D.Z)(t.uuid,l);eC(!1),e.success&&(null==Z||Z(),H(),K.refresh())},eZ=async()=>{if(!er.trim())return void em(V("elaboration.skipReasonRequired"));eo(!0),em(null);let e=await L(t.uuid,er.trim());eo(!1),e.success?(el(!1),ec(""),K.refresh()):em(e.error||V("common.genericError"))},eV=async()=>{eE(!0),eU(null),eT(null),eB(!0);try{let[e,s]=await Promise.all([fetch("/api/projects?pageSize=100"),fetch("/api/project-groups")]),[t,a]=await Promise.all([e.json(),s.json()]);if(t.success){let e=t.data.filter(e=>e.uuid!==l).map(e=>({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})),s=new Map;if(a.success)for(let e of a.data.groups||a.data)s.set(e.uuid,e.name);let i=new Map,n=[];for(let t of e)t.groupUuid&&s.has(t.groupUuid)?(i.has(t.groupUuid)||i.set(t.groupUuid,{uuid:t.groupUuid,name:s.get(t.groupUuid),projects:[]}),i.get(t.groupUuid).projects.push({uuid:t.uuid,name:t.name})):n.push({uuid:t.uuid,name:t.name});let r=[...i.values()];n.length>0&&r.push({uuid:"ungrouped",name:V("ideas.ungrouped"),projects:n}),eF(r)}}catch(e){eF([])}eB(!1)},eK=async()=>{if(eD&&!e_){eR(!0),eT(null);try{let s=await fetch("/api/ideas/".concat(t.uuid,"/move"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetProjectUuid:eD.uuid})}),a=await s.json();if(a.success)eE(!1),H(),K.refresh();else{var e;eT("string"==typeof a.error?a.error:(null==(e=a.error)?void 0:e.message)||V("ideas.moveFailed"))}}catch(e){eT(V("ideas.moveFailed"))}eR(!1)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:H}),(0,a.jsxs)("div",{className:"fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ".concat(ez?"":"animate-in slide-in-from-right duration-300"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:ex?(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:V("ideas.editIdea")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:t.title}),(0,a.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,a.jsx)(v.E,{className:J[t.status]||"",children:V("status.".concat(O[t.status]||t.status))}),(0,a.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:(0,q.r)(t.createdAt)})]})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[eJ&&!ex&&(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:eV,title:V("ideas.moveToProject"),children:(0,a.jsx)(d.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),eJ&&!ex&&(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>{ej(t.title),ev(t.content||""),eA(null),eh(!0)},children:(0,a.jsx)(o.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:ex?eO:H,children:(0,a.jsx)(u.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),(0,a.jsx)(w.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,a.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:ex?(0,a.jsxs)("div",{className:"space-y-5",children:[eN&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:eN}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("ideas.titleLabel")}),(0,a.jsx)(f.p,{id:"edit-title",value:ep,onChange:e=>ej(e.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("common.content")}),(0,a.jsx)(N.T,{id:"edit-content",value:eg,onChange:e=>ev(e.target.value),rows:8,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]})]}):(0,a.jsxs)(I.P.div,{variants:M.qG,initial:"initial",animate:"animate",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.assignee")}),(0,a.jsx)("div",{className:"mt-2 flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-3",children:t.assignee?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k.eu,{className:"h-7 w-7",children:(0,a.jsx)(k.q5,{className:"agent"===t.assignee.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]",children:"agent"===t.assignee.type?(0,a.jsx)(m.A,{className:"h-3.5 w-3.5"}):t.assignee.name.charAt(0).toUpperCase()})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-sm font-medium text-[#2C2C2C]",children:t.assignee.name}),(0,a.jsx)("div",{className:"text-xs text-[#6B6B6B]",children:"agent"===t.assignee.type?"".concat(V("common.agent")," • ").concat(t.assignee.assignedAt?(0,q.r)(t.assignee.assignedAt):""):V("common.user")})]})]}):(0,a.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:V("common.unassigned")})})]}),et&&et.rounds.length>0&&(0,a.jsx)("div",{className:"mt-5",children:(0,a.jsx)($.R,{ideaUuid:t.uuid,elaboration:et,onRefresh:async()=>{let e=await (0,T.z)(t.uuid);e.success&&e.data&&ea(e.data)}})}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.content")}),(0,a.jsx)("div",{className:"mt-2",children:t.content?(0,a.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,a.jsx)(U.jH,{plugins:{code:_.a},children:t.content})}):(0,a.jsx)("p",{className:"text-sm italic text-[#9A9A9A]",children:V("common.noContent")})})]}),(0,a.jsxs)("div",{className:"mt-5 flex-1",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("common.activity")}),(0,a.jsx)("div",{className:"mt-2 space-y-3",children:X?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===Q.length?(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:V("common.noActivity")}):Q.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[#9A9A9A]"}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("p",{className:"text-[13px] text-[#2C2C2C]",children:function(e,s){let{action:t,actorName:a}=e;switch(t){case"created":case"idea_created":return s("activity.ideaCreated",{actor:a});case"assigned":case"idea_assigned":return s("activity.ideaAssigned",{actor:a});case"claimed":case"idea_claimed":return s("activity.ideaClaimed",{actor:a});case"released":case"idea_released":return s("activity.ideaReleased",{actor:a});case"status_changed":case"idea_status_changed":return s("activity.ideaStatusChanged",{actor:a});case"elaboration_started":return s("activity.elaborationStarted",{actor:a});case"elaboration_answered":return s("activity.elaborationAnswered",{actor:a});case"elaboration_skipped":return s("activity.elaborationSkipped",{actor:a});case"elaboration_resolved":return s("activity.elaborationResolved",{actor:a});case"elaboration_followup":return s("activity.elaborationFollowup",{actor:a});default:return"".concat(a,": ").concat(t)}}(e,V)}),(0,a.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:function(e,s){let t=new Date(e),a=new Date().getTime()-t.getTime(),i=Math.floor(a/6e4),n=Math.floor(a/36e5),l=Math.floor(a/864e5);return i<1?s("time.justNow"):i<60?s("time.minutesAgo",{minutes:i}):n<24?s("time.hoursAgo",{hours:n}):l<7?s("time.daysAgo",{days:l}):(0,q.r)(t)}(e.createdAt,V)})]})]},e.uuid))})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:V("comments.title")}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(F.$,{targetType:"idea",targetUuid:t.uuid,currentUserUuid:z,compact:!0})})]})]})})}),(0,a.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:(0,a.jsx)("div",{className:"flex items-center justify-between gap-3",children:ex?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:eO,disabled:eb,children:V("common.cancel")}),(0,a.jsx)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:eG,disabled:eb||!ep.trim(),children:eb?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.saving")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4"}),V("ideas.saveChanges")]})})]}):(0,a.jsxs)(a.Fragment,{children:[eP&&(0,a.jsxs)(b.$,{variant:"outline",className:"shrink-0 border-[#E5E0D8] rounded-md px-4 py-2 text-[13px] font-medium",onClick:()=>es(!0),children:[(0,a.jsx)(p.A,{className:"mr-2 h-4 w-4"}),t.assignee?V("common.reassign"):V("common.assign")]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[eq&&(0,a.jsx)(b.$,{variant:"outline",size:"sm",className:"border-[#E5E0D8]",onClick:()=>{ec(""),em(null),el(!0)},children:V("elaboration.skipButton")}),eM&&(0,a.jsx)(r(),{href:"/projects/".concat(l,"/proposals/new?ideaUuid=").concat(t.uuid),children:(0,a.jsxs)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:[(0,a.jsx)(j.A,{className:"mr-2 h-4 w-4"}),V("proposals.createProposal")]})}),"elaborating"===t.status&&!eI&&!eq&&(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:V("elaboration.elaborationRequiredHint")})]}),(0,a.jsxs)(E.Lt,{children:[(0,a.jsx)(E.tv,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8] text-[#EF4444] hover:bg-[#FFEBEE] hover:text-[#EF4444] hover:border-[#EF4444]",children:(0,a.jsx)(g.A,{className:"h-4 w-4"})})}),(0,a.jsxs)(E.EO,{children:[(0,a.jsxs)(E.wd,{children:[(0,a.jsx)(E.r7,{children:V("ideas.deleteIdea")}),(0,a.jsx)(E.$v,{children:V("ideas.deleteIdeaConfirm",{title:t.title})})]}),(0,a.jsxs)(E.ck,{children:[(0,a.jsx)(E.Zr,{children:V("common.cancel")}),(0,a.jsx)(E.Rx,{variant:"destructive",onClick:eH,disabled:ew,children:ew?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.delete")]}):V("common.delete")})]})]})]})]})})})]}),(0,a.jsx)(E.Lt,{open:en,onOpenChange:el,children:(0,a.jsxs)(E.EO,{children:[(0,a.jsxs)(E.wd,{children:[(0,a.jsx)(E.r7,{children:V("elaboration.skipConfirmTitle")}),(0,a.jsx)(E.$v,{children:V("elaboration.skipConfirmDescription")})]}),(0,a.jsxs)("div",{className:"space-y-2 py-2",children:[(0,a.jsx)(A.J,{htmlFor:"skip-reason",className:"text-[13px] font-medium text-[#2C2C2C]",children:V("elaboration.skipReasonLabel")}),(0,a.jsx)(f.p,{id:"skip-reason",value:er,onChange:e=>{ec(e.target.value),eu&&em(null)},placeholder:V("elaboration.skipReasonPlaceholder"),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0}),eu&&(0,a.jsx)("p",{className:"text-xs text-destructive",children:eu})]}),(0,a.jsxs)(E.ck,{children:[(0,a.jsx)(E.Zr,{disabled:ed,children:V("common.cancel")}),(0,a.jsx)(E.Rx,{onClick:e=>{e.preventDefault(),eZ()},disabled:ed||!er.trim(),className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:ed?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("common.processing")]}):V("elaboration.skipButton")})]})]})}),(0,a.jsx)(y.lG,{open:ey,onOpenChange:eE,children:(0,a.jsxs)(y.Cf,{children:[(0,a.jsxs)(y.c7,{children:[(0,a.jsx)(y.L3,{children:V("ideas.moveIdeaTitle")}),(0,a.jsx)(y.rr,{children:V("ideas.moveIdeaDescription")})]}),e$&&(0,a.jsx)("p",{className:"text-xs text-destructive",children:e$}),eS?(0,a.jsx)("div",{className:"flex items-center justify-center h-[320px] border border-[#E5E0D8] rounded-lg",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(C.uB,{className:"border border-[#E5E0D8] rounded-lg",filter:(e,s,t)=>{let a=s.toLowerCase();return e.toLowerCase().includes(a)||(null==t?void 0:t.some(e=>e.toLowerCase().includes(a)))?1:0},children:[(0,a.jsx)(C.G7,{placeholder:V("ideas.searchProjects")}),(0,a.jsxs)(C.oI,{className:"h-[280px]",children:[(0,a.jsx)(C.xL,{children:V("ideas.noProjectsFound")}),ek.map(e=>(0,a.jsx)(C.L$,{heading:e.name,children:e.projects.map(s=>(0,a.jsxs)(C.h_,{value:s.name,keywords:[e.name],onSelect:()=>eU(s),className:(null==eD?void 0:eD.uuid)===s.uuid?"bg-[#C67A52] text-white data-[selected=true]:bg-[#B56A42] data-[selected=true]:text-white":"",children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4 ".concat((null==eD?void 0:eD.uuid)===s.uuid?"opacity-100":"opacity-0")}),s.name]},s.uuid))},e.uuid))]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,a.jsx)(b.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>eE(!1),disabled:e_,children:V("common.cancel")}),(0,a.jsx)(b.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:eK,disabled:!eD||e_,children:e_?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),V("ideas.moving")]}):V("ideas.moveToProject")})]})]})}),ee&&(0,a.jsx)(R.i,{idea:{uuid:t.uuid,title:t.title,content:t.content,status:t.status,assignee:t.assignee?{type:t.assignee.type,uuid:t.assignee.uuid,name:t.assignee.name}:null},projectUuid:l,currentUserUuid:z,onClose:()=>{es(!1),H()}})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[55434],{23675:(e,r,t)=>{var o=t(84675);t.o(o,"useParams")&&t.d(r,{useParams:function(){return o.useParams}}),t.o(o,"usePathname")&&t.d(r,{usePathname:function(){return o.usePathname}}),t.o(o,"useRouter")&&t.d(r,{useRouter:function(){return o.useRouter}}),t.o(o,"useSearchParams")&&t.d(r,{useSearchParams:function(){return o.useSearchParams}})},65326:(e,r,t)=>{t.r(r),t.d(r,{Corner:()=>J,Root:()=>Y,ScrollArea:()=>b,ScrollAreaCorner:()=>K,ScrollAreaScrollbar:()=>R,ScrollAreaThumb:()=>N,ScrollAreaViewport:()=>y,Scrollbar:()=>V,Thumb:()=>Z,Viewport:()=>q,createScrollAreaScope:()=>g});var o=t(1856),n=t(93367),l=t(19900),i=t(21032),a=t(34124),s=t(32313),c=t(72599),u=t(99457),d=t(91722),f=t(33328),p=t(90508),v="ScrollArea",[h,g]=(0,i.A)(v),[w,m]=h(v),b=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,type:l="hover",dir:i,scrollHideDelay:s=600,...u}=e,[d,f]=o.useState(null),[v,h]=o.useState(null),[g,m]=o.useState(null),[b,S]=o.useState(null),[y,x]=o.useState(null),[R,C]=o.useState(0),[D,E]=o.useState(0),[T,P]=o.useState(!1),[j,A]=o.useState(!1),_=(0,a.s)(r,e=>f(e)),I=(0,c.jH)(i);return(0,p.jsx)(w,{scope:t,type:l,dir:I,scrollHideDelay:s,scrollArea:d,viewport:v,onViewportChange:h,content:g,onContentChange:m,scrollbarX:b,onScrollbarXChange:S,scrollbarXEnabled:T,onScrollbarXEnabledChange:P,scrollbarY:y,onScrollbarYChange:x,scrollbarYEnabled:j,onScrollbarYEnabledChange:A,onCornerWidthChange:C,onCornerHeightChange:E,children:(0,p.jsx)(n.sG.div,{dir:I,...u,ref:_,style:{position:"relative","--radix-scroll-area-corner-width":R+"px","--radix-scroll-area-corner-height":D+"px",...e.style}})})});b.displayName=v;var S="ScrollAreaViewport",y=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,children:l,nonce:i,...s}=e,c=m(S,t),u=o.useRef(null),d=(0,a.s)(r,u,c.onViewportChange);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),(0,p.jsx)(n.sG.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,p.jsx)("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:l})})]})});y.displayName=S;var x="ScrollAreaScrollbar",R=o.forwardRef((e,r)=>{let{forceMount:t,...n}=e,l=m(x,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=l,s="horizontal"===e.orientation;return o.useEffect(()=>(s?i(!0):a(!0),()=>{s?i(!1):a(!1)}),[s,i,a]),"hover"===l.type?(0,p.jsx)(C,{...n,ref:r,forceMount:t}):"scroll"===l.type?(0,p.jsx)(D,{...n,ref:r,forceMount:t}):"auto"===l.type?(0,p.jsx)(E,{...n,ref:r,forceMount:t}):"always"===l.type?(0,p.jsx)(T,{...n,ref:r}):null});R.displayName=x;var C=o.forwardRef((e,r)=>{let{forceMount:t,...n}=e,i=m(x,e.__scopeScrollArea),[a,s]=o.useState(!1);return o.useEffect(()=>{let e=i.scrollArea,r=0;if(e){let t=()=>{window.clearTimeout(r),s(!0)},o=()=>{r=window.setTimeout(()=>s(!1),i.scrollHideDelay)};return e.addEventListener("pointerenter",t),e.addEventListener("pointerleave",o),()=>{window.clearTimeout(r),e.removeEventListener("pointerenter",t),e.removeEventListener("pointerleave",o)}}},[i.scrollArea,i.scrollHideDelay]),(0,p.jsx)(l.C,{present:t||a,children:(0,p.jsx)(E,{"data-state":a?"visible":"hidden",...n,ref:r})})}),D=o.forwardRef((e,r)=>{var t;let{forceMount:n,...i}=e,a=m(x,e.__scopeScrollArea),s="horizontal"===e.orientation,c=M(()=>d("SCROLL_END"),100),[u,d]=(t={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},o.useReducer((e,r)=>{let o=t[e][r];return null!=o?o:e},"hidden"));return o.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,a.scrollHideDelay,d]),o.useEffect(()=>{let e=a.viewport,r=s?"scrollLeft":"scrollTop";if(e){let t=e[r],o=()=>{let o=e[r];t!==o&&(d("SCROLL"),c()),t=o};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)}},[a.viewport,s,d,c]),(0,p.jsx)(l.C,{present:n||"hidden"!==u,children:(0,p.jsx)(T,{"data-state":"hidden"===u?"hidden":"visible",...i,ref:r,onPointerEnter:(0,f.mK)(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:(0,f.mK)(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),E=o.forwardRef((e,r)=>{let t=m(x,e.__scopeScrollArea),{forceMount:n,...i}=e,[a,s]=o.useState(!1),c="horizontal"===e.orientation,u=M(()=>{if(t.viewport){let e=t.viewport.offsetWidth<t.viewport.scrollWidth,r=t.viewport.offsetHeight<t.viewport.scrollHeight;s(c?e:r)}},10);return X(t.viewport,u),X(t.content,u),(0,p.jsx)(l.C,{present:n||a,children:(0,p.jsx)(T,{"data-state":a?"visible":"hidden",...i,ref:r})})}),T=o.forwardRef((e,r)=>{let{orientation:t="vertical",...n}=e,l=m(x,e.__scopeScrollArea),i=o.useRef(null),a=o.useRef(0),[s,c]=o.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=H(s.viewport,s.content),d={...n,sizes:s,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:e=>a.current=e};function f(e,r){return function(e,r,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",n=G(t),l=r||n/2,i=t.scrollbar.paddingStart+l,a=t.scrollbar.size-t.scrollbar.paddingEnd-(n-l),s=t.content-t.viewport;return B([i,a],"ltr"===o?[0,s]:[-1*s,0])(e)}(e,a.current,s,r)}return"horizontal"===t?(0,p.jsx)(P,{...d,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=z(l.viewport.scrollLeft,s,l.dir);i.current.style.transform="translate3d(".concat(e,"px, 0, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=f(e,l.dir))}}):"vertical"===t?(0,p.jsx)(j,{...d,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=z(l.viewport.scrollTop,s);i.current.style.transform="translate3d(0, ".concat(e,"px, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=f(e))}}):null}),P=o.forwardRef((e,r)=>{let{sizes:t,onSizesChange:n,...l}=e,i=m(x,e.__scopeScrollArea),[s,c]=o.useState(),u=o.useRef(null),d=(0,a.s)(r,u,i.onScrollbarXChange);return o.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,p.jsx)(I,{"data-orientation":"horizontal",...l,ref:d,sizes:t,style:{bottom:0,left:"rtl"===i.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===i.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":G(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.x),onDragScroll:r=>e.onDragScroll(r.x),onWheelScroll:(r,t)=>{if(i.viewport){let o=i.viewport.scrollLeft+r.deltaX;e.onWheelScroll(o),function(e,r){return e>0&&e<r}(o,t)&&r.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&n({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:W(s.paddingLeft),paddingEnd:W(s.paddingRight)}})}})}),j=o.forwardRef((e,r)=>{let{sizes:t,onSizesChange:n,...l}=e,i=m(x,e.__scopeScrollArea),[s,c]=o.useState(),u=o.useRef(null),d=(0,a.s)(r,u,i.onScrollbarYChange);return o.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,p.jsx)(I,{"data-orientation":"vertical",...l,ref:d,sizes:t,style:{top:0,right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":G(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.y),onDragScroll:r=>e.onDragScroll(r.y),onWheelScroll:(r,t)=>{if(i.viewport){let o=i.viewport.scrollTop+r.deltaY;e.onWheelScroll(o),function(e,r){return e>0&&e<r}(o,t)&&r.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&n({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:W(s.paddingTop),paddingEnd:W(s.paddingBottom)}})}})}),[A,_]=h(x),I=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,sizes:l,hasThumb:i,onThumbChange:c,onThumbPointerUp:u,onThumbPointerDown:d,onThumbPositionChange:v,onDragScroll:h,onWheelScroll:g,onResize:w,...b}=e,S=m(x,t),[y,R]=o.useState(null),C=(0,a.s)(r,e=>R(e)),D=o.useRef(null),E=o.useRef(""),T=S.viewport,P=l.content-l.viewport,j=(0,s.c)(g),_=(0,s.c)(v),I=M(w,10);function L(e){D.current&&h({x:e.clientX-D.current.left,y:e.clientY-D.current.top})}return o.useEffect(()=>{let e=e=>{let r=e.target;(null==y?void 0:y.contains(r))&&j(e,P)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[T,y,P,j]),o.useEffect(_,[l,_]),X(y,I),X(S.content,I),(0,p.jsx)(A,{scope:t,scrollbar:y,hasThumb:i,onThumbChange:(0,s.c)(c),onThumbPointerUp:(0,s.c)(u),onThumbPositionChange:_,onThumbPointerDown:(0,s.c)(d),children:(0,p.jsx)(n.sG.div,{...b,ref:C,style:{position:"absolute",...b.style},onPointerDown:(0,f.mK)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),D.current=y.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),L(e))}),onPointerMove:(0,f.mK)(e.onPointerMove,L),onPointerUp:(0,f.mK)(e.onPointerUp,e=>{let r=e.target;r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=E.current,S.viewport&&(S.viewport.style.scrollBehavior=""),D.current=null})})})}),L="ScrollAreaThumb",N=o.forwardRef((e,r)=>{let{forceMount:t,...o}=e,n=_(L,e.__scopeScrollArea);return(0,p.jsx)(l.C,{present:t||n.hasThumb,children:(0,p.jsx)(F,{ref:r,...o})})}),F=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,style:l,...i}=e,s=m(L,t),c=_(L,t),{onThumbPositionChange:u}=c,d=(0,a.s)(r,e=>c.onThumbChange(e)),v=o.useRef(void 0),h=M(()=>{v.current&&(v.current(),v.current=void 0)},100);return o.useEffect(()=>{let e=s.viewport;if(e){let r=()=>{h(),v.current||(v.current=U(e,u),u())};return u(),e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[s.viewport,h,u]),(0,p.jsx)(n.sG.div,{"data-state":c.hasThumb?"visible":"hidden",...i,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:(0,f.mK)(e.onPointerDownCapture,e=>{let r=e.target.getBoundingClientRect(),t=e.clientX-r.left,o=e.clientY-r.top;c.onThumbPointerDown({x:t,y:o})}),onPointerUp:(0,f.mK)(e.onPointerUp,c.onThumbPointerUp)})});N.displayName=L;var O="ScrollAreaCorner",K=o.forwardRef((e,r)=>{let t=m(O,e.__scopeScrollArea),o=!!(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&o?(0,p.jsx)(k,{...e,ref:r}):null});K.displayName=O;var k=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,...l}=e,i=m(O,t),[a,s]=o.useState(0),[c,u]=o.useState(0),d=!!(a&&c);return X(i.scrollbarX,()=>{var e;let r=(null==(e=i.scrollbarX)?void 0:e.offsetHeight)||0;i.onCornerHeightChange(r),u(r)}),X(i.scrollbarY,()=>{var e;let r=(null==(e=i.scrollbarY)?void 0:e.offsetWidth)||0;i.onCornerWidthChange(r),s(r)}),d?(0,p.jsx)(n.sG.div,{...l,ref:r,style:{width:a,height:c,position:"absolute",right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:0,...e.style}}):null});function W(e){return e?parseInt(e,10):0}function H(e,r){let t=e/r;return isNaN(t)?0:t}function G(e){let r=H(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-t)*r,18)}function z(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",o=G(r),n=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,l=r.scrollbar.size-n,i=r.content-r.viewport,a=(0,d.q)(e,"ltr"===t?[0,i]:[-1*i,0]);return B([0,i],[0,l-o])(a)}function B(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];let o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(t-e[0])}}var U=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},t={left:e.scrollLeft,top:e.scrollTop},o=0;return!function n(){let l={left:e.scrollLeft,top:e.scrollTop},i=t.left!==l.left,a=t.top!==l.top;(i||a)&&r(),t=l,o=window.requestAnimationFrame(n)}(),()=>window.cancelAnimationFrame(o)};function M(e,r){let t=(0,s.c)(e),n=o.useRef(0);return o.useEffect(()=>()=>window.clearTimeout(n.current),[]),o.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(t,r)},[t,r])}function X(e,r){let t=(0,s.c)(r);(0,u.N)(()=>{let r=0;if(e){let o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,t])}var Y=b,q=y,V=R,Z=N,J=K},71350:(e,r,t)=>{t.r(r),t.d(r,{Close:()=>el,Content:()=>et,Description:()=>en,Dialog:()=>C,DialogClose:()=>M,DialogContent:()=>O,DialogDescription:()=>B,DialogOverlay:()=>I,DialogPortal:()=>A,DialogTitle:()=>G,DialogTrigger:()=>E,Overlay:()=>er,Portal:()=>ee,Root:()=>Q,Title:()=>eo,Trigger:()=>$,WarningProvider:()=>q,createDialogScope:()=>y});var o=t(1856),n=t(33328),l=t(34124),i=t(21032),a=t(40577),s=t(66249),c=t(63569),u=t(80491),d=t(17533),f=t(19900),p=t(93367),v=t(12139),h=t(46523),g=t(2188),w=t(54154),m=t(90508),b="Dialog",[S,y]=(0,i.A)(b),[x,R]=S(b),C=e=>{let{__scopeDialog:r,children:t,open:n,defaultOpen:l,onOpenChange:i,modal:c=!0}=e,u=o.useRef(null),d=o.useRef(null),[f,p]=(0,s.i)({prop:n,defaultProp:null!=l&&l,onChange:i,caller:b});return(0,m.jsx)(x,{scope:r,triggerRef:u,contentRef:d,contentId:(0,a.B)(),titleId:(0,a.B)(),descriptionId:(0,a.B)(),open:f,onOpenChange:p,onOpenToggle:o.useCallback(()=>p(e=>!e),[p]),modal:c,children:t})};C.displayName=b;var D="DialogTrigger",E=o.forwardRef((e,r)=>{let{__scopeDialog:t,...o}=e,i=R(D,t),a=(0,l.s)(r,i.triggerRef);return(0,m.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":X(i.open),...o,ref:a,onClick:(0,n.mK)(e.onClick,i.onOpenToggle)})});E.displayName=D;var T="DialogPortal",[P,j]=S(T,{forceMount:void 0}),A=e=>{let{__scopeDialog:r,forceMount:t,children:n,container:l}=e,i=R(T,r);return(0,m.jsx)(P,{scope:r,forceMount:t,children:o.Children.map(n,e=>(0,m.jsx)(f.C,{present:t||i.open,children:(0,m.jsx)(d.Portal,{asChild:!0,container:l,children:e})}))})};A.displayName=T;var _="DialogOverlay",I=o.forwardRef((e,r)=>{let t=j(_,e.__scopeDialog),{forceMount:o=t.forceMount,...n}=e,l=R(_,e.__scopeDialog);return l.modal?(0,m.jsx)(f.C,{present:o||l.open,children:(0,m.jsx)(N,{...n,ref:r})}):null});I.displayName=_;var L=(0,w.TL)("DialogOverlay.RemoveScroll"),N=o.forwardRef((e,r)=>{let{__scopeDialog:t,...o}=e,n=R(_,t);return(0,m.jsx)(h.A,{as:L,allowPinchZoom:!0,shards:[n.contentRef],children:(0,m.jsx)(p.sG.div,{"data-state":X(n.open),...o,ref:r,style:{pointerEvents:"auto",...o.style}})})}),F="DialogContent",O=o.forwardRef((e,r)=>{let t=j(F,e.__scopeDialog),{forceMount:o=t.forceMount,...n}=e,l=R(F,e.__scopeDialog);return(0,m.jsx)(f.C,{present:o||l.open,children:l.modal?(0,m.jsx)(K,{...n,ref:r}):(0,m.jsx)(k,{...n,ref:r})})});O.displayName=F;var K=o.forwardRef((e,r)=>{let t=R(F,e.__scopeDialog),i=o.useRef(null),a=(0,l.s)(r,t.contentRef,i);return o.useEffect(()=>{let e=i.current;if(e)return(0,g.Eq)(e)},[]),(0,m.jsx)(W,{...e,ref:a,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.mK)(e.onCloseAutoFocus,e=>{var r;e.preventDefault(),null==(r=t.triggerRef.current)||r.focus()}),onPointerDownOutside:(0,n.mK)(e.onPointerDownOutside,e=>{let r=e.detail.originalEvent,t=0===r.button&&!0===r.ctrlKey;(2===r.button||t)&&e.preventDefault()}),onFocusOutside:(0,n.mK)(e.onFocusOutside,e=>e.preventDefault())})}),k=o.forwardRef((e,r)=>{let t=R(F,e.__scopeDialog),n=o.useRef(!1),l=o.useRef(!1);return(0,m.jsx)(W,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:r=>{var o,i;null==(o=e.onCloseAutoFocus)||o.call(e,r),r.defaultPrevented||(n.current||null==(i=t.triggerRef.current)||i.focus(),r.preventDefault()),n.current=!1,l.current=!1},onInteractOutside:r=>{var o,i;null==(o=e.onInteractOutside)||o.call(e,r),r.defaultPrevented||(n.current=!0,"pointerdown"===r.detail.originalEvent.type&&(l.current=!0));let a=r.target;(null==(i=t.triggerRef.current)?void 0:i.contains(a))&&r.preventDefault(),"focusin"===r.detail.originalEvent.type&&l.current&&r.preventDefault()}})}),W=o.forwardRef((e,r)=>{let{__scopeDialog:t,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:a,...s}=e,d=R(F,t),f=o.useRef(null),p=(0,l.s)(r,f);return(0,v.Oh)(),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u.n,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,m.jsx)(c.qW,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":X(d.open),...s,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Z,{titleId:d.titleId}),(0,m.jsx)(J,{contentRef:f,descriptionId:d.descriptionId})]})]})}),H="DialogTitle",G=o.forwardRef((e,r)=>{let{__scopeDialog:t,...o}=e,n=R(H,t);return(0,m.jsx)(p.sG.h2,{id:n.titleId,...o,ref:r})});G.displayName=H;var z="DialogDescription",B=o.forwardRef((e,r)=>{let{__scopeDialog:t,...o}=e,n=R(z,t);return(0,m.jsx)(p.sG.p,{id:n.descriptionId,...o,ref:r})});B.displayName=z;var U="DialogClose",M=o.forwardRef((e,r)=>{let{__scopeDialog:t,...o}=e,l=R(U,t);return(0,m.jsx)(p.sG.button,{type:"button",...o,ref:r,onClick:(0,n.mK)(e.onClick,()=>l.onOpenChange(!1))})});function X(e){return e?"open":"closed"}M.displayName=U;var Y="DialogTitleWarning",[q,V]=(0,i.q)(Y,{contentName:F,titleName:H,docsSlug:"dialog"}),Z=e=>{let{titleId:r}=e,t=V(Y),n="`".concat(t.contentName,"` requires a `").concat(t.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(t.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(t.docsSlug);return o.useEffect(()=>{r&&(document.getElementById(r)||console.error(n))},[n,r]),null},J=e=>{let{contentRef:r,descriptionId:t}=e,n=V("DialogDescriptionWarning"),l="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(n.contentName,"}.");return o.useEffect(()=>{var e;let o=null==(e=r.current)?void 0:e.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(l))},[l,r,t]),null},Q=C,$=E,ee=A,er=I,et=O,eo=G,en=B,el=M},94782:(e,r,t)=>{t.d(r,{RG:()=>y,bL:()=>A,q7:()=>_});var o=t(1856),n=t(33328),l=t(81369),i=t(34124),a=t(21032),s=t(40577),c=t(93367),u=t(32313),d=t(66249),f=t(72599),p=t(90508),v="rovingFocusGroup.onEntryFocus",h={bubbles:!1,cancelable:!0},g="RovingFocusGroup",[w,m,b]=(0,l.N)(g),[S,y]=(0,a.A)(g,[b]),[x,R]=S(g),C=o.forwardRef((e,r)=>(0,p.jsx)(w.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(w.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(D,{...e,ref:r})})}));C.displayName=g;var D=o.forwardRef((e,r)=>{let{__scopeRovingFocusGroup:t,orientation:l,loop:a=!1,dir:s,currentTabStopId:w,defaultCurrentTabStopId:b,onCurrentTabStopIdChange:S,onEntryFocus:y,preventScrollOnEntryFocus:R=!1,...C}=e,D=o.useRef(null),E=(0,i.s)(r,D),T=(0,f.jH)(s),[P,A]=(0,d.i)({prop:w,defaultProp:null!=b?b:null,onChange:S,caller:g}),[_,I]=o.useState(!1),L=(0,u.c)(y),N=m(t),F=o.useRef(!1),[O,K]=o.useState(0);return o.useEffect(()=>{let e=D.current;if(e)return e.addEventListener(v,L),()=>e.removeEventListener(v,L)},[L]),(0,p.jsx)(x,{scope:t,orientation:l,dir:T,loop:a,currentTabStopId:P,onItemFocus:o.useCallback(e=>A(e),[A]),onItemShiftTab:o.useCallback(()=>I(!0),[]),onFocusableItemAdd:o.useCallback(()=>K(e=>e+1),[]),onFocusableItemRemove:o.useCallback(()=>K(e=>e-1),[]),children:(0,p.jsx)(c.sG.div,{tabIndex:_||0===O?-1:0,"data-orientation":l,...C,ref:E,style:{outline:"none",...e.style},onMouseDown:(0,n.mK)(e.onMouseDown,()=>{F.current=!0}),onFocus:(0,n.mK)(e.onFocus,e=>{let r=!F.current;if(e.target===e.currentTarget&&r&&!_){let r=new CustomEvent(v,h);if(e.currentTarget.dispatchEvent(r),!r.defaultPrevented){let e=N().filter(e=>e.focusable);j([e.find(e=>e.active),e.find(e=>e.id===P),...e].filter(Boolean).map(e=>e.ref.current),R)}}F.current=!1}),onBlur:(0,n.mK)(e.onBlur,()=>I(!1))})})}),E="RovingFocusGroupItem",T=o.forwardRef((e,r)=>{let{__scopeRovingFocusGroup:t,focusable:l=!0,active:i=!1,tabStopId:a,children:u,...d}=e,f=(0,s.B)(),v=a||f,h=R(E,t),g=h.currentTabStopId===v,b=m(t),{onFocusableItemAdd:S,onFocusableItemRemove:y,currentTabStopId:x}=h;return o.useEffect(()=>{if(l)return S(),()=>y()},[l,S,y]),(0,p.jsx)(w.ItemSlot,{scope:t,id:v,focusable:l,active:i,children:(0,p.jsx)(c.sG.span,{tabIndex:g?0:-1,"data-orientation":h.orientation,...d,ref:r,onMouseDown:(0,n.mK)(e.onMouseDown,e=>{l?h.onItemFocus(v):e.preventDefault()}),onFocus:(0,n.mK)(e.onFocus,()=>h.onItemFocus(v)),onKeyDown:(0,n.mK)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void h.onItemShiftTab();if(e.target!==e.currentTarget)return;let r=function(e,r,t){var o;let n=(o=e.key,"rtl"!==t?o:"ArrowLeft"===o?"ArrowRight":"ArrowRight"===o?"ArrowLeft":o);if(!("vertical"===r&&["ArrowLeft","ArrowRight"].includes(n))&&!("horizontal"===r&&["ArrowUp","ArrowDown"].includes(n)))return P[n]}(e,h.orientation,h.dir);if(void 0!==r){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let t=b().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===r)t.reverse();else if("prev"===r||"next"===r){"prev"===r&&t.reverse();let o=t.indexOf(e.currentTarget);t=h.loop?function(e,r){return e.map((t,o)=>e[(r+o)%e.length])}(t,o+1):t.slice(o+1)}setTimeout(()=>j(t))}}),children:"function"==typeof u?u({isCurrentTabStop:g,hasTabStop:null!=x}):u})})});T.displayName=E;var P={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function j(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=document.activeElement;for(let o of e)if(o===t||(o.focus({preventScroll:r}),document.activeElement!==t))return}var A=C,_=T}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[95750],{5616:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},9160:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},17475:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},23675:(e,t,n)=>{var r=n(84675);n.o(r,"useParams")&&n.d(t,{useParams:function(){return r.useParams}}),n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},52309:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},58057:(e,t,n)=>{n.r(t),n.d(t,{Label:()=>l,Root:()=>i});var r=n(1856),o=n(93367),a=n(90508),l=r.forwardRef((e,t)=>(0,a.jsx)(o.sG.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null==(n=e.onMouseDown)||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var i=l},60532:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},67103:(e,t,n)=>{n.d(t,{N:()=>x});var r=n(90508),o=n(1856),a=n(43827),l=n(66071),i=n(66506),s=n(95535),u=n(63605),c=n(8334);function d(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class p extends o.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if((0,u.s)(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,n=(0,u.s)(e)&&e.offsetWidth||0,r=(0,u.s)(e)&&e.offsetHeight||0,o=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(o.height),a.width=parseFloat(o.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=r-a.height-a.top}return null}componentDidUpdate(){}render(){return this.props.children}}function f(e){var t,n;let{children:a,isPresent:l,anchorX:i,anchorY:s,root:u,pop:f}=e,h=(0,o.useId)(),g=(0,o.useRef)(null),m=(0,o.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:v}=(0,o.useContext)(c.Q),y=function(...e){return o.useCallback(function(...e){return t=>{let n=!1,r=e.map(e=>{let r=d(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():d(e[t],null)}}}}(...e),e)}(g,null!=(n=null==(t=a.props)?void 0:t.ref)?n:null==a?void 0:a.ref);return(0,o.useInsertionEffect)(()=>{let{width:e,height:t,top:n,left:r,right:o,bottom:a}=m.current;if(l||!1===f||!g.current||!e||!t)return;g.current.dataset.motionPopId=h;let c=document.createElement("style");v&&(c.nonce=v);let d=null!=u?u:document.head;return d.appendChild(c),c.sheet&&c.sheet.insertRule('\n [data-motion-pop-id="'.concat(h,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===i?"left: ".concat(r):"right: ".concat(o),"px !important;\n ").concat("bottom"===s?"bottom: ".concat(a):"top: ".concat(n),"px !important;\n }\n ")),()=>{var e;null==(e=g.current)||e.removeAttribute("data-motion-pop-id"),d.contains(c)&&d.removeChild(c)}},[l]),(0,r.jsx)(p,{isPresent:l,childRef:g,sizeRef:m,pop:f,children:!1===f?a:o.cloneElement(a,{ref:y})})}let h=e=>{let{children:t,initial:n,isPresent:a,onExitComplete:i,custom:u,presenceAffectsLayout:c,mode:d,anchorX:p,anchorY:h,root:m}=e,v=(0,l.M)(g),y=(0,o.useId)(),x=!0,D=(0,o.useMemo)(()=>(x=!1,{id:y,initial:n,isPresent:a,custom:u,onExitComplete:e=>{for(let t of(v.set(e,!0),v.values()))if(!t)return;i&&i()},register:e=>(v.set(e,!1),()=>v.delete(e))}),[a,v,i]);return c&&x&&(D={...D}),(0,o.useMemo)(()=>{v.forEach((e,t)=>v.set(t,!1))},[a]),o.useEffect(()=>{a||v.size||!i||i()},[a]),t=(0,r.jsx)(f,{pop:"popLayout"===d,isPresent:a,anchorX:p,anchorY:h,root:m,children:t}),(0,r.jsx)(s.t.Provider,{value:D,children:t})};function g(){return new Map}var m=n(99672);let v=e=>e.key||"";function y(e){let t=[];return o.Children.forEach(e,e=>{(0,o.isValidElement)(e)&&t.push(e)}),t}let x=e=>{let{children:t,custom:n,initial:s=!0,onExitComplete:u,presenceAffectsLayout:c=!0,mode:d="sync",propagate:p=!1,anchorX:f="left",anchorY:g="top",root:x}=e,[D,R]=(0,m.xQ)(p),C=(0,o.useMemo)(()=>y(t),[t]),w=p&&!D?[]:C.map(v),b=(0,o.useRef)(!0),j=(0,o.useRef)(C),k=(0,l.M)(()=>new Map),A=(0,o.useRef)(new Set),[P,M]=(0,o.useState)(C),[E,I]=(0,o.useState)(C);(0,i.E)(()=>{b.current=!1,j.current=C;for(let e=0;e<E.length;e++){let t=v(E[e]);w.includes(t)?(k.delete(t),A.current.delete(t)):!0!==k.get(t)&&k.set(t,!1)}},[E,w.length,w.join("-")]);let N=[];if(C!==P){let e=[...C];for(let t=0;t<E.length;t++){let n=E[t],r=v(n);w.includes(r)||(e.splice(t,0,n),N.push(n))}return"wait"===d&&N.length&&(e=N),I(y(e)),M(C),null}let{forceRender:O}=(0,o.useContext)(a.L);return(0,r.jsx)(r.Fragment,{children:E.map(e=>{let t=v(e),o=(!p||!!D)&&(C===E||w.includes(t));return(0,r.jsx)(h,{isPresent:o,initial:(!b.current||!!s)&&void 0,custom:n,presenceAffectsLayout:c,mode:d,root:x,onExitComplete:o?void 0:()=>{if(A.current.has(t)||!k.has(t))return;A.current.add(t),k.set(t,!0);let e=!0;k.forEach(t=>{t||(e=!1)}),e&&(null==O||O(),I(j.current),p&&(null==R||R()),u&&u())},anchorX:f,anchorY:g,children:e},t)})})}},71350:(e,t,n)=>{n.r(t),n.d(t,{Close:()=>ea,Content:()=>en,Description:()=>eo,Dialog:()=>b,DialogClose:()=>V,DialogContent:()=>S,DialogDescription:()=>K,DialogOverlay:()=>N,DialogPortal:()=>E,DialogTitle:()=>B,DialogTrigger:()=>k,Overlay:()=>et,Portal:()=>ee,Root:()=>J,Title:()=>er,Trigger:()=>$,WarningProvider:()=>Q,createDialogScope:()=>R});var r=n(1856),o=n(33328),a=n(34124),l=n(21032),i=n(40577),s=n(66249),u=n(63569),c=n(80491),d=n(17533),p=n(19900),f=n(93367),h=n(12139),g=n(46523),m=n(2188),v=n(54154),y=n(90508),x="Dialog",[D,R]=(0,l.A)(x),[C,w]=D(x),b=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:a,onOpenChange:l,modal:u=!0}=e,c=r.useRef(null),d=r.useRef(null),[p,f]=(0,s.i)({prop:o,defaultProp:null!=a&&a,onChange:l,caller:x});return(0,y.jsx)(C,{scope:t,triggerRef:c,contentRef:d,contentId:(0,i.B)(),titleId:(0,i.B)(),descriptionId:(0,i.B)(),open:p,onOpenChange:f,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),modal:u,children:n})};b.displayName=x;var j="DialogTrigger",k=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,l=w(j,n),i=(0,a.s)(t,l.triggerRef);return(0,y.jsx)(f.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":H(l.open),...r,ref:i,onClick:(0,o.mK)(e.onClick,l.onOpenToggle)})});k.displayName=j;var A="DialogPortal",[P,M]=D(A,{forceMount:void 0}),E=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:a}=e,l=w(A,t);return(0,y.jsx)(P,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,y.jsx)(p.C,{present:n||l.open,children:(0,y.jsx)(d.Portal,{asChild:!0,container:a,children:e})}))})};E.displayName=A;var I="DialogOverlay",N=r.forwardRef((e,t)=>{let n=M(I,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=w(I,e.__scopeDialog);return a.modal?(0,y.jsx)(p.C,{present:r||a.open,children:(0,y.jsx)(F,{...o,ref:t})}):null});N.displayName=I;var O=(0,v.TL)("DialogOverlay.RemoveScroll"),F=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=w(I,n);return(0,y.jsx)(g.A,{as:O,allowPinchZoom:!0,shards:[o.contentRef],children:(0,y.jsx)(f.sG.div,{"data-state":H(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),_="DialogContent",S=r.forwardRef((e,t)=>{let n=M(_,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=w(_,e.__scopeDialog);return(0,y.jsx)(p.C,{present:r||a.open,children:a.modal?(0,y.jsx)(T,{...o,ref:t}):(0,y.jsx)(L,{...o,ref:t})})});S.displayName=_;var T=r.forwardRef((e,t)=>{let n=w(_,e.__scopeDialog),l=r.useRef(null),i=(0,a.s)(t,n.contentRef,l);return r.useEffect(()=>{let e=l.current;if(e)return(0,m.Eq)(e)},[]),(0,y.jsx)(q,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.mK)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null==(t=n.triggerRef.current)||t.focus()}),onPointerDownOutside:(0,o.mK)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.mK)(e.onFocusOutside,e=>e.preventDefault())})}),L=r.forwardRef((e,t)=>{let n=w(_,e.__scopeDialog),o=r.useRef(!1),a=r.useRef(!1);return(0,y.jsx)(q,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var r,l;null==(r=e.onCloseAutoFocus)||r.call(e,t),t.defaultPrevented||(o.current||null==(l=n.triggerRef.current)||l.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{var r,l;null==(r=e.onInteractOutside)||r.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let i=t.target;(null==(l=n.triggerRef.current)?void 0:l.contains(i))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),q=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:l,onCloseAutoFocus:i,...s}=e,d=w(_,n),p=r.useRef(null),f=(0,a.s)(t,p);return(0,h.Oh)(),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c.n,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:l,onUnmountAutoFocus:i,children:(0,y.jsx)(u.qW,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":H(d.open),...s,ref:f,onDismiss:()=>d.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Y,{titleId:d.titleId}),(0,y.jsx)(Z,{contentRef:p,descriptionId:d.descriptionId})]})]})}),z="DialogTitle",B=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=w(z,n);return(0,y.jsx)(f.sG.h2,{id:o.titleId,...r,ref:t})});B.displayName=z;var G="DialogDescription",K=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=w(G,n);return(0,y.jsx)(f.sG.p,{id:o.descriptionId,...r,ref:t})});K.displayName=G;var W="DialogClose",V=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=w(W,n);return(0,y.jsx)(f.sG.button,{type:"button",...r,ref:t,onClick:(0,o.mK)(e.onClick,()=>a.onOpenChange(!1))})});function H(e){return e?"open":"closed"}V.displayName=W;var U="DialogTitleWarning",[Q,X]=(0,l.q)(U,{contentName:_,titleName:z,docsSlug:"dialog"}),Y=e=>{let{titleId:t}=e,n=X(U),o="`".concat(n.contentName,"` requires a `").concat(n.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(n.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(n.docsSlug);return r.useEffect(()=>{t&&(document.getElementById(t)||console.error(o))},[o,t]),null},Z=e=>{let{contentRef:t,descriptionId:n}=e,o=X("DialogDescriptionWarning"),a="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(o.contentName,"}.");return r.useEffect(()=>{var e;let r=null==(e=t.current)?void 0:e.getAttribute("aria-describedby");n&&r&&(document.getElementById(n)||console.warn(a))},[a,t,n]),null},J=b,$=k,ee=E,et=N,en=S,er=B,eo=K,ea=V},71388:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},78948:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},85226:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},97413:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(66206).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[96919],{1868:(e,t,n)=>{n.d(t,{d:()=>a});var r=n(52217);let a=(0,r.createServerReference)("607d2caeb9721178dd2c04ee76b961254a265c6262",r.callServer,void 0,r.findSourceMapURL,"getCommentsAction")},22922:(e,t,n)=>{n.d(t,{$:()=>i});var r=n(90508);n(1856);var a=n(49499),c=n(54154),s=n(24377);let o=(0,a.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i(e){let{className:t,variant:n="default",size:a="default",asChild:i=!1,...l}=e,u=i?c.bL:"button";return(0,r.jsx)(u,{"data-slot":"button","data-variant":n,"data-size":a,className:(0,s.cn)(o({variant:n,size:a,className:t})),...l})}},24377:(e,t,n)=>{n.d(t,{cn:()=>c});var r=n(49251),a=n(58849);function c(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,a.QP)((0,r.$)(t))}},30423:(e,t,n)=>{n.d(t,{j:()=>a});let r=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function a(e){let t=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t)}(e)%r.length;return r[t]}},37486:(e,t,n)=>{n.d(t,{$:()=>U});var r=n(90508),a=n(1856),c=n(39268),s=n(94903),o=n(85226),i=n(95886),l=n(36755),u=n(5425),d=n(22922),m=n(73693),p=n(42242),f=n(85783),x=n(99783),h=n(24377);let g=x.A.extend({addAttributes(){var e;return{...null==(e=this.parent)?void 0:e.call(this),mentionType:{default:"user",parseHTML:e=>e.getAttribute("data-mention-type")||"user",renderHTML:e=>({"data-mention-type":e.mentionType||"user"})}}}});function v(e){let t=e.getJSON();return t.content?t.content.map(e=>(function e(t){if("mention"===t.type){let e=t.attrs;return e?"@[".concat(e.label||e.id,"](").concat(e.mentionType||"user",":").concat(e.id,")"):""}if("text"===t.type)return t.text||"";if("hardBreak"===t.type)return"\n";let n=t.content;return n?n.map(e).join(""):""})(e)).join("\n"):""}function y(e){if(!e)return{type:"doc",content:[{type:"paragraph"}]};let t=/@\[([^\]]+)\]\((user|agent):([a-f0-9-]+)\)/g;return{type:"doc",content:e.split("\n").map(e=>{let n,r=[],a=0,c=RegExp(t.source,"g");for(;null!==(n=c.exec(e));)n.index>a&&r.push({type:"text",text:e.slice(a,n.index)}),r.push({type:"mention",attrs:{id:n[3],label:n[1],mentionType:n[2]}}),a=n.index+n[0].length;return a<e.length&&r.push({type:"text",text:e.slice(a)}),{type:"paragraph",content:r.length>0?r:void 0}})}}function b(e,t,n,r,a){if(a.innerHTML="",t){let e=document.createElement("div");e.className="flex items-center justify-center py-3 px-4",e.innerHTML='<div class="h-4 w-4 animate-spin rounded-full border-2 border-[#9A9A9A] border-t-transparent"></div>',a.appendChild(e);return}if(0===e.length){let e=document.createElement("div");e.className="py-2 px-3 text-xs text-[#9A9A9A]",e.textContent="No results",a.appendChild(e);return}let c=document.createElement("div");c.className="py-1";let s=0,o=e=>{n({id:e.uuid,label:e.name,mentionType:e.type})},i=()=>{c.innerHTML="",e.forEach((e,t)=>{let n=document.createElement("button");n.type="button",n.className="flex w-full items-center gap-2.5 px-3 py-1.5 text-left text-sm transition-colors ".concat(t===s?"bg-[#FAF8F4] text-[#2C2C2C]":"text-[#6B6B6B] hover:bg-[#FAF8F4]"),n.onclick=()=>o(e);let r=document.createElement("div");r.className="flex h-6 w-6 shrink-0 items-center justify-center rounded-full ".concat("agent"===e.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]"),r.innerHTML="agent"===e.type?'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>':'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>';let a=document.createElement("div");a.className="min-w-0 flex-1";let i=document.createElement("div");if(i.className="truncate text-xs font-medium",i.textContent=e.name,a.appendChild(i),e.email){let t=document.createElement("div");t.className="truncate text-[10px] text-[#9A9A9A]",t.textContent=e.email,a.appendChild(t)}if("agent"===e.type&&e.roles&&e.roles.length>0){let t=document.createElement("div");t.className="truncate text-[10px] text-[#9A9A9A]",t.textContent=e.roles.join(", "),a.appendChild(t)}n.appendChild(r),n.appendChild(a),c.appendChild(n)})};i(),a.appendChild(c),r.current={onKeyDown:t=>{let{event:n}=t;return"ArrowUp"===n.key?(s=s<=0?e.length-1:s-1,i(),!0):"ArrowDown"===n.key?(s=s>=e.length-1?0:s+1,i(),!0):"Enter"===n.key?(e[s]&&o(e[s]),!0):"Escape"===n.key}}}let w=(0,a.forwardRef)((e,t)=>{let{value:n,onChange:c,placeholder:s,className:o,disabled:i,onSubmit:l}=e,u=(0,a.useRef)([]),d=(0,a.useRef)(!1),m=(0,a.useRef)(null),x=(0,a.useRef)(null),w=(0,a.useRef)(null),[,j]=(0,a.useState)(0),N=(0,a.useRef)(!1),E=function(e,t){let n=(0,a.useRef)(null),r=(0,a.useRef)(e);r.current=e;let c=(0,a.useCallback)(e=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>r.current(e),250)},[250]);return(0,a.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),c}((0,a.useCallback)(async e=>{d.current=!0,j(e=>e+1);try{let t=await fetch("/api/mentionables?q=".concat(encodeURIComponent(e),"&limit=10"));if(t.ok){let e=await t.json();e.success&&(u.current=e.data)}}catch(e){u.current=[]}finally{d.current=!1,j(e=>e+1)}},[]),250);(0,a.useEffect)(()=>{x.current&&w.current&&b(u.current,d.current,w.current,m,x.current)});let C=(0,p.hG)({immediatelyRender:!1,extensions:[f.A.configure({heading:!1,blockquote:!1,codeBlock:!1,bulletList:!1,orderedList:!1,listItem:!1,horizontalRule:!1}),g.configure({HTMLAttributes:{class:"text-blue-600 font-medium"},renderText(e){var t;let{node:n}=e;return"@".concat(null!=(t=n.attrs.label)?t:n.attrs.id)},suggestion:{char:"@",allowSpaces:!0,items:e=>{let{query:t}=e;return E(t),u.current},render:()=>({onStart:e=>{let t=document.createElement("div");if(t.className="z-[100] rounded-md border border-[#E5E0D8] bg-white shadow-md min-w-[200px] max-w-[300px] overflow-hidden",x.current=t,w.current=e.command,e.clientRect){let n="function"==typeof e.clientRect?e.clientRect():e.clientRect;n&&(t.style.position="fixed",t.style.left="".concat(n.left,"px"),window.innerHeight-n.bottom<220?t.style.bottom="".concat(window.innerHeight-n.top+4,"px"):t.style.top="".concat(n.bottom+4,"px"))}document.body.appendChild(t),b(u.current,d.current,e.command,m,t)},onUpdate:e=>{if(w.current=e.command,x.current&&e.clientRect){let t="function"==typeof e.clientRect?e.clientRect():e.clientRect;t&&(x.current.style.left="".concat(t.left,"px"),window.innerHeight-t.bottom<220?(x.current.style.top="",x.current.style.bottom="".concat(window.innerHeight-t.top+4,"px")):(x.current.style.bottom="",x.current.style.top="".concat(t.bottom+4,"px")))}x.current&&b(u.current,d.current,e.command,m,x.current)},onKeyDown:e=>!!m.current&&m.current.onKeyDown(e),onExit:()=>{var e;null==(e=x.current)||e.remove(),x.current=null,w.current=null,u.current=[],d.current=!1}})}})],content:y(n),editable:!i,editorProps:{attributes:{class:(0,h.cn)("min-h-[36px] max-h-[120px] overflow-y-auto px-3 py-2 text-sm outline-none","prose prose-sm max-w-none [&_p]:my-0"),"data-placeholder":s||""},handleKeyDown:(e,t)=>"Enter"===t.key&&!t.shiftKey&&!x.current&&!!l&&(t.preventDefault(),l(),!0)},onUpdate:e=>{let{editor:t}=e;N.current=!0,c(v(t))}});return(0,a.useEffect)(()=>{if(!C||N.current){N.current=!1;return}v(C)!==n&&C.commands.setContent(y(n))},[n,C]),(0,a.useEffect)(()=>{C&&C.setEditable(!i)},[i,C]),(0,a.useImperativeHandle)(t,()=>({focus:()=>null==C?void 0:C.commands.focus(),clear:()=>{null==C||C.commands.clearContent(),c("")}})),(0,r.jsxs)("div",{className:(0,h.cn)("relative rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow]","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",i&&"cursor-not-allowed opacity-50",o),children:[(0,r.jsx)(p.$Z,{editor:C}),(0,r.jsx)("style",{children:"\n .tiptap p.is-editor-empty:first-child::before {\n content: attr(data-placeholder);\n color: #9A9A9A;\n float: left;\n height: 0;\n pointer-events: none;\n }\n .tiptap .mention {\n color: #2563eb;\n font-weight: 500;\n }\n "})]})});w.displayName="MentionEditor";var j=n(1868),N=n(52217);let E=(0,N.createServerReference)("7042e4bd4e748b78e5378f1256a7824a4a64be3935",N.callServer,void 0,N.findSourceMapURL,"createCommentAction");var C=n(37021),A=n(51708);let k=/@\[([^\]]+)\]\((user|agent):([a-f0-9-]+)\)/g,T=/\u200B\u200BMENTION_(\d+)\u200B\u200B/g;function S(e){let{children:t}=e;if(!t||"string"!=typeof t)return null;if(!new RegExp(k.source).test(t))return(0,r.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,r.jsx)(C.jH,{plugins:{code:A.a},children:t})});let{processed:n,mentions:a}=function(e){let t=[],n=RegExp(k.source,"g");return{processed:e.replace(n,(e,n,r,a)=>{let c=t.length;return t.push({displayName:n,type:r,uuid:a}),"".concat("MENTION_").concat(c).concat("")}),mentions:t}}(t);return(0,r.jsx)(R,{mentions:a,children:(0,r.jsx)(C.jH,{plugins:{code:A.a},children:n})})}function R(e){let{children:t,mentions:n}=e,c=a.useRef(null);return a.useEffect(()=>{let e;if(!c.current||0===n.length)return;let t=document.createTreeWalker(c.current,NodeFilter.SHOW_TEXT,null),r=[];for(;e=t.nextNode();)T.test(e.textContent||"")&&r.push(e),T.lastIndex=0;for(let e of r){var a;let t,r=e.textContent||"",c=document.createDocumentFragment(),s=0,o=RegExp(T.source,"g");for(;null!==(t=o.exec(r));){t.index>s&&c.appendChild(document.createTextNode(r.slice(s,t.index)));let e=n[parseInt(t[1],10)];if(e){let t=document.createElement("span");t.className="text-blue-600 font-medium",t.title="".concat(e.type,": ").concat(e.uuid),t.textContent="@".concat(e.displayName),c.appendChild(t)}else c.appendChild(document.createTextNode(t[0]));s=t.index+t[0].length}s<r.length&&c.appendChild(document.createTextNode(r.slice(s))),null==(a=e.parentNode)||a.replaceChild(c,e)}},[n]),(0,r.jsx)("div",{ref:c,className:"overflow-hidden [&_pre]:overflow-x-auto",children:t})}var D=n(63964),_=n(96213),B=n(30423),M=n(38106),z=n(67587);function U(e){let{targetType:t,targetUuid:n,currentUserUuid:u,onCountChange:p,compact:f=!1}=e,x=(0,c.c)(),[h,g]=(0,a.useState)(""),[v,y]=(0,a.useState)([]),[b,N]=(0,a.useState)(!0),[C,A]=(0,a.useState)(null),[k,T]=(0,a.useState)(!1),S=(0,a.useRef)(null),R=f?"h-6 w-6":"h-[30px] w-[30px]",B=f?"gap-2":"gap-2.5",M=f?"h-3 w-3":"h-[15px] w-[15px]";(0,a.useEffect)(()=>{null==p||p(v.length)},[v.length,p]);let U=(0,a.useCallback)(async()=>{N(!0),A(null);let e=await (0,j.d)(t,n);e.success?y(e.comments):A(e.error),N(!1)},[t,n]);(0,a.useEffect)(()=>{U()},[U]),(0,D.w0)(t,n,e=>{u&&e.actorUuid===u||(0,j.d)(t,n).then(e=>{e.success&&y(e.comments)})});let H=async()=>{if(!h.trim()||k)return;T(!0);let e=await E(t,n,h);if(T(!1),e.success){var r;y(t=>[...t,e.comment]),g(""),null==(r=S.current)||r.clear()}else z.oR.error(e.error)},L=[...v].reverse();return(0,r.jsx)(_.D,{entityType:t,entityUuid:n,subEntityType:"comment",children:(0,r.jsxs)("div",{className:"flex flex-col gap-0",children:[(0,r.jsxs)("div",{className:"flex items-center ".concat(B," pb-3 border-b border-[#F0EDE8]"),children:[(0,r.jsx)(m.eu,{className:"".concat(f?"h-6 w-6":"h-7 w-7"," shrink-0"),children:(0,r.jsx)(m.q5,{className:"bg-[#E5E0D8] text-[#6B6B6B]",children:(0,r.jsx)(s.A,{className:"".concat(f?"h-3 w-3":"h-3.5 w-3.5")})})}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)(w,{ref:S,value:h,onChange:g,onSubmit:H,placeholder:x("comments.addComment"),className:"border border-[#E5E0D8] bg-white text-sm rounded-lg",disabled:k})}),(0,r.jsx)(d.$,{size:"sm",className:"shrink-0 gap-1 bg-[#E07A5F] text-white hover:bg-[#D06A4F]",disabled:!h.trim()||k,onClick:H,children:k?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(i.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{children:b?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)(o.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):C?(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-sm text-[#9A9A9A]",children:[(0,r.jsx)(l.A,{className:"h-4 w-4"}),(0,r.jsx)("p",{children:x("comments.loadError")}),(0,r.jsx)(d.$,{variant:"outline",size:"sm",onClick:U,children:x("comments.retry")})]}):0===L.length?(0,r.jsx)("p",{className:"py-8 text-center text-sm text-[#9A9A9A] italic",children:x("comments.noComments")}):L.map(e=>(0,r.jsx)(F,{comment:e,compact:f,avatarSize:R,gap:B,iconSize:M,t:x},e.uuid))})]})})}function F(e){let{comment:t,compact:n,avatarSize:c,gap:s,iconSize:o,t:i}=e,[l,p]=(0,a.useState)(!1),f="agent"===t.author.type,x=f?(0,B.j)(t.author.name):null,h=t.content.length>200,g=x?"".concat(x,"18"):void 0;return(0,r.jsxs)("div",{className:"flex ".concat(s," py-3 border-b border-[#F0EDE8] last:border-b-0"),children:[(0,r.jsx)(m.eu,{className:"".concat(c," shrink-0"),children:(0,r.jsx)(m.q5,{style:f?{backgroundColor:g,color:null!=x?x:void 0}:void 0,className:f?"":"bg-[#E5E0D8] text-[#6B6B6B] text-[11px] font-medium",children:f?(0,r.jsx)(u.A,{className:o}):t.author.name.charAt(0).toUpperCase()})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,r.jsx)("span",{className:"".concat(n?"text-xs":"text-[13px]"," font-semibold text-[#1A1A1A]"),children:t.author.name}),(0,r.jsx)("span",{style:f?{backgroundColor:g,color:null!=x?x:void 0}:void 0,className:"inline-flex items-center rounded px-1.5 py-px text-[9px] font-medium ".concat(f?"":"bg-[#F0EDE8] text-[#6B6B6B]"),children:i(f?"comments.roleAgent":"comments.roleHuman")}),(0,r.jsx)("span",{className:"text-[11px] text-[#BFBFBF]",children:function(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),a=Math.floor(r/6e4),c=Math.floor(r/36e5),s=Math.floor(r/864e5);return a<1?t("time.justNow"):a<60?t("time.minutesAgo",{minutes:a}):c<24?t("time.hoursAgo",{hours:c}):s<7?t("time.daysAgo",{days:s}):(0,M.r)(n)}(t.createdAt,i)})]}),f&&t.author.owner&&(0,r.jsx)("div",{className:"flex items-center gap-1 mt-0.5",children:(0,r.jsx)("span",{className:"text-[11px] text-[#A3A3A3] italic",children:i("comments.onBehalfOf",{name:t.author.owner.name})})}),(0,r.jsx)("div",{className:"mt-1 ".concat(n?"text-xs":"text-[13px]"," leading-relaxed text-[#3D3D3D] max-w-none [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5"),children:h&&!l?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S,{children:t.content.slice(0,200)+"..."}),(0,r.jsx)(d.$,{variant:"link",size:"sm",onClick:()=>p(!0),className:"h-auto p-0 text-[#E07A5F] text-xs font-medium mt-1",children:i("comments.showMore")})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S,{children:t.content}),h&&(0,r.jsx)(d.$,{variant:"link",size:"sm",onClick:()=>p(!1),className:"h-auto p-0 text-[#E07A5F] text-xs font-medium mt-1",children:i("comments.showLess")})]})})]})]})}},38106:(e,t,n)=>{function r(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),c=String(t.getHours()).padStart(2,"0"),s=String(t.getMinutes()).padStart(2,"0");return"".concat(n,"-").concat(r,"-").concat(a," ").concat(c,":").concat(s)}function a(e,t){let n="string"==typeof e?new Date(e):e;return isNaN(n.getTime())?"":n.toLocaleDateString(t,{month:"short",day:"numeric"})}n.d(t,{r:()=>r,s:()=>a})},47754:(e,t,n)=>{n.d(t,{fv:()=>x,xQ:()=>h});var r=n(1856),a=n(63964);let c=new Map,s=new Map,o=new Map,i=new Set,l=0;function u(e,t,n,r){return n?r?"".concat(e,":").concat(t,":").concat(n,":").concat(r):"".concat(e,":").concat(t,":").concat(n):"".concat(e,":").concat(t)}function d(){l++,i.forEach(e=>e())}function m(e){var t;let n=e.subEntityType,r=e.subEntityUuid,a=u(e.entityType,e.entityUuid,n,r),i=function(e,t,n,r,a){let c=u(e,t,r,a);return"".concat(c,":").concat(n)}(e.entityType,e.entityUuid,e.agentUuid,n,r),l=s.get(i);if(l&&Date.now()-l<3e3)return;s.set(i,Date.now());let m={agentUuid:e.agentUuid,agentName:e.agentName,action:e.action,timestamp:Date.now()},p=(null!=(t=c.get(a))?t:[]).filter(t=>t.agentUuid!==e.agentUuid);p.push(m),c.set(a,p);let f=o.get(i);f&&clearTimeout(f);let x=setTimeout(()=>{let t=c.get(a);if(t){let n=t.filter(t=>t.agentUuid!==e.agentUuid);0===n.length?c.delete(a):c.set(a,n)}s.delete(i),o.delete(i),d()},3e3);o.set(i,x),d()}function p(){return l}function f(e){return i.add(e),()=>{i.delete(e)}}function x(e){m({type:"presence",companyUuid:"",projectUuid:"",...e,timestamp:Date.now()})}function h(){return(0,r.useSyncExternalStore)(f,p,p),(0,a.S2)(m),{getPresence:(e,t,n,r)=>{if(n){var a;return null!=(a=c.get(u(e,t,n,r)))?a:[]}let s="".concat(e,":").concat(t),o=new Map;for(let[e,t]of c)if(e===s||e.startsWith(s+":"))for(let e of t){let t=o.get(e.agentUuid);(!t||e.timestamp>t.timestamp)&&o.set(e.agentUuid,e)}return[...o.values()]}}}},48416:(e,t,n)=>{n.d(t,{BT:()=>i,Wu:()=>u,X9:()=>l,ZB:()=>o,Zp:()=>c,aR:()=>s,wL:()=>d});var r=n(90508);n(1856);var a=n(24377);function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...n})}function s(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...n})}function o(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",t),...n})}function i(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",t),...n})}function l(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-action",className:(0,a.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",t),...n})}function u(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",t),...n})}function d(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-footer",className:(0,a.cn)("flex items-center px-6 [.border-t]:pt-6",t),...n})}},63964:(e,t,n)=>{n.d(t,{S2:()=>l,eV:()=>i,l9:()=>o,tS:()=>s,w0:()=>u});var r=n(90508),a=n(1856);n(23675);let c=(0,a.createContext)(null);function s(e){let{projectUuid:t,children:n}=e,s=(0,a.useRef)(new Set),o=(0,a.useRef)(new Set),i=(0,a.useRef)(new Set),l=(0,a.useCallback)(()=>{s.current.forEach(e=>e())},[]),u=(0,a.useCallback)(e=>{o.current.forEach(t=>t(e))},[]);(0,a.useEffect)(()=>{let e,n=null,r=0,a={};function c(){s(),(n=new EventSource(t?"/api/events?projectUuid=".concat(t):"/api/events")).onmessage=t=>{let n=null;try{n=JSON.parse(t.data)}catch(e){return}if(!n)return;if("presence"===n.type)return void i.current.forEach(e=>e(n));let c=n;clearTimeout(e);let s=Date.now(),o=s-r;o>=3e3?(r=s,l()):e=setTimeout(()=>{r=Date.now(),l()},Math.max(1e3,3e3-o));let d=c.entityType;clearTimeout(a[d]),a[d]=setTimeout(()=>{u(c)},300)},n.onerror=()=>{}}function s(){n&&(n.close(),n=null)}function o(){if("visible"===document.visibilityState&&(!n||n.readyState===EventSource.CLOSED))for(let e of(c(),l(),["task","idea","proposal","document","project","project_group"]))u({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})}return c(),document.addEventListener("visibilitychange",o),()=>{for(let t in s(),clearTimeout(e),a)clearTimeout(a[t]);document.removeEventListener("visibilitychange",o)}},[t,l,u]);let d=(0,a.useCallback)(e=>(s.current.add(e),()=>{s.current.delete(e)}),[]),m=(0,a.useCallback)(e=>(o.current.add(e),()=>{o.current.delete(e)}),[]),p=(0,a.useCallback)(e=>(i.current.add(e),()=>{i.current.delete(e)}),[]),f=(0,a.useMemo)(()=>({subscribe:d,subscribeEntity:m,subscribePresence:p}),[d,m,p]);return(0,r.jsx)(c.Provider,{value:f,children:n})}function o(e){let t=(0,a.useContext)(c),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=()=>n.current();return e(),t.subscribe(e)},[t])}function i(e,t){let n=(0,a.useContext)(c),r=(0,a.useRef)(t);r.current=t;let s=(0,a.useRef)(e);s.current=e,(0,a.useEffect)(()=>{if(n)return n.subscribeEntity(e=>{let t=s.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&r.current(e)})},[n])}function l(e){let t=(0,a.useContext)(c),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(t)return t.subscribePresence(e=>n.current(e))},[t])}function u(e,t,n){let r=(0,a.useContext)(c),s=(0,a.useRef)(n);s.current=n,(0,a.useEffect)(()=>{if(r)return r.subscribeEntity(n=>{n.entityType===e&&n.entityUuid===t&&s.current(n)})},[r,e,t])}},73693:(e,t,n)=>{n.d(t,{eu:()=>s,q5:()=>o});var r=n(90508);n(1856);var a=n(65514),c=n(24377);function s(e){let{className:t,size:n="default",...s}=e;return(0,r.jsx)(a.Root,{"data-slot":"avatar","data-size":n,className:(0,c.cn)("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",t),...s})}function o(e){let{className:t,...n}=e;return(0,r.jsx)(a.Fallback,{"data-slot":"avatar-fallback",className:(0,c.cn)("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",t),...n})}},96213:(e,t,n)=>{n.d(t,{D:()=>o});var r=n(90508),a=n(47754),c=n(30423),s=n(5425);function o(e){let{entityType:t,entityUuid:n,subEntityType:s,subEntityUuid:o,children:l,badgeInside:u}=e,{getPresence:d}=(0,a.xQ)(),m=d(t,n,s,o),p=m.length>0,f=p&&m.some(e=>"mutate"===e.action),x=p?f?m.find(e=>"mutate"===e.action):m[m.length-1]:null,h=x?(0,c.j)(x.agentName):"transparent";return(0,r.jsxs)("div",{className:"relative",style:p?{outline:"2px ".concat(f?"solid":"dashed"," ").concat(h),outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[p&&(0,r.jsxs)("div",{className:"absolute flex gap-1 z-10 justify-end ".concat(u?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"),children:[m.slice(0,3).map(e=>(0,r.jsx)(i,{entry:e},e.agentUuid)),m.length>3&&(0,r.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",m.length-3]})]}),l]})}function i(e){let{entry:t}=e,n=(0,c.j)(t.agentName);return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:n},children:[(0,r.jsx)(s.A,{className:"h-2.5 w-2.5"}),t.agentName]})}}}]);
|