@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.
Files changed (313) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +335 -333
  3. package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +36 -36
  6. package/.next/standalone/.next/react-loadable-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  47. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  50. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  54. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  58. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  59. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  61. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  62. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/admin.html +1 -1
  64. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  65. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/mcp/route.js +6 -6
  101. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  115. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  161. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  167. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/index.html +1 -1
  169. package/.next/standalone/.next/server/app/index.rsc +2 -2
  170. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  172. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  173. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  175. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  176. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  179. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  180. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  182. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +2 -2
  183. package/.next/standalone/.next/server/app/login.html +1 -1
  184. package/.next/standalone/.next/server/app/login.rsc +2 -2
  185. package/.next/standalone/.next/server/app/onboarding/page.js +5 -4
  186. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  189. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  190. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/projects.html +1 -1
  192. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  193. package/.next/standalone/.next/server/app/settings.html +1 -1
  194. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  195. package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
  196. package/.next/standalone/.next/server/chunks/1596.js +1 -1
  197. package/.next/standalone/.next/server/chunks/1639.js +1 -0
  198. package/.next/standalone/.next/server/chunks/1871.js +1 -0
  199. package/.next/standalone/.next/server/chunks/2570.js +1 -1
  200. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  201. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  202. package/.next/standalone/.next/server/chunks/{3408.js → 3300.js} +1 -1
  203. package/.next/standalone/.next/server/chunks/3611.js +158 -0
  204. package/.next/standalone/.next/server/chunks/3890.js +1 -1
  205. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  206. package/.next/standalone/.next/server/chunks/5869.js +16 -0
  207. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  208. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  209. package/.next/standalone/.next/server/chunks/6753.js +3 -3
  210. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  211. package/.next/standalone/.next/server/chunks/8251.js +1 -0
  212. package/.next/standalone/.next/server/chunks/8584.js +1 -0
  213. package/.next/standalone/.next/server/chunks/9051.js +1 -0
  214. package/.next/standalone/.next/server/chunks/920.js +1 -1
  215. package/.next/standalone/.next/server/chunks/937.js +1 -1
  216. package/.next/standalone/.next/server/chunks/9508.js +2 -2
  217. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  218. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  219. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  220. package/.next/standalone/.next/server/pages/404.html +1 -1
  221. package/.next/standalone/.next/server/pages/500.html +1 -1
  222. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  224. package/.next/standalone/.next/static/chunks/10739-5c185aa0432f5d56.js +1 -0
  225. package/.next/standalone/.next/static/chunks/{14945-45ab8dcd7d1460b0.js → 14945-0bc0086add441ba7.js} +1 -1
  226. package/.next/standalone/.next/static/chunks/19126-858a24cab6fd338a.js +1 -0
  227. package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +1 -0
  228. package/.next/standalone/.next/static/chunks/29445-04c4ab36da85b7da.js +1 -0
  229. package/.next/standalone/.next/static/chunks/34775-387b9a9967a35ccb.js +1 -0
  230. package/.next/standalone/.next/static/chunks/39611-cc227784ed679a6d.js +1 -0
  231. package/.next/standalone/.next/static/chunks/4457-b86052b2e954e357.js +1 -0
  232. package/.next/standalone/.next/static/chunks/4842-95cf4b7efd540e89.js +1 -0
  233. package/.next/standalone/.next/static/chunks/4860.15c9ae5b6268c6fc.js +1 -0
  234. package/.next/standalone/.next/static/chunks/53298-82b9c818cd70686d.js +1 -0
  235. package/.next/standalone/.next/static/chunks/{72156-693a7612a0a1927c.js → 53664-a2be2eaacce03f0f.js} +1 -1
  236. package/.next/standalone/.next/static/chunks/55434-622522b242e7747f.js +1 -0
  237. package/.next/standalone/.next/static/chunks/95750-3d0d1d48995d1088.js +1 -0
  238. package/.next/standalone/.next/static/chunks/96919-8cbf6310c703e7af.js +1 -0
  239. package/.next/standalone/.next/static/chunks/{52162.90c7520be06645a7.js → 96924.93f7dab7363f09ac.js} +1 -1
  240. package/.next/standalone/.next/static/chunks/{99373.dddf0d83066106d0.js → 99373.9939e11f5b4e0615.js} +1 -1
  241. package/.next/standalone/.next/static/chunks/99513-24849ff68a8098e1.js +1 -0
  242. package/.next/standalone/.next/static/chunks/app/(dashboard)/{layout-bf420c745be7631b.js → layout-acddb9c84f5d1607.js} +1 -1
  243. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-cb9454c2d5a8390c.js → page-63a6a5b6cf9ecf87.js} +1 -1
  244. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b4c6141dd26cc506.js +1 -0
  245. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4bf7bff8d68509f9.js +1 -0
  246. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-37a0cea0ba40c31b.js +1 -0
  247. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-2d820769aa7bcaf6.js +1 -0
  248. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-dec0e71221d77928.js +1 -0
  249. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-355321010dd82e56.js +1 -0
  250. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-59f6f1967c3dfcad.js → page-bc66567cb9c40bf0.js} +1 -1
  251. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-a4995a788651e9bc.js → page-86cfeb421fa97830.js} +1 -1
  252. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-7fe70579023330da.js +1 -0
  253. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-8c51993bb3866a55.js +1 -0
  254. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-7c30b3f9f2b8f520.js → page-80566dcc1cd42bee.js} +1 -1
  255. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-8db25385236a9bbf.js +1 -0
  256. package/.next/standalone/.next/static/chunks/app/onboarding/page-8d755192f0f67938.js +1 -0
  257. package/.next/standalone/.next/static/chunks/{webpack-121b5a7960550fef.js → webpack-1bb984dd0934fa96.js} +1 -1
  258. package/.next/standalone/.next/static/css/ca9796ac54f96058.css +1 -0
  259. package/.next/standalone/package.json +1 -1
  260. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  261. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +11 -4
  262. package/.next/standalone/public/chorus-plugin/bin/on-subagent-start.sh +1 -1
  263. package/.next/standalone/public/chorus-plugin/bin/on-subagent-stop.sh +5 -5
  264. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +43 -18
  265. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  266. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  267. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +2 -2
  268. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +3 -3
  269. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  270. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +15 -18
  271. package/.next/standalone/public/install-opencode.sh +284 -0
  272. package/.next/standalone/public/skill/chorus/SKILL.md +44 -19
  273. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +2 -2
  274. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +3 -3
  275. package/README.md +12 -5
  276. package/README.zh.md +12 -5
  277. package/package.json +1 -1
  278. package/prisma/migrations/20260430034110_add_agent_permissions/migration.sql +2 -0
  279. package/prisma/schema.prisma +1 -0
  280. package/.next/standalone/.next/server/chunks/1386.js +0 -1
  281. package/.next/standalone/.next/server/chunks/1526.js +0 -1
  282. package/.next/standalone/.next/server/chunks/3088.js +0 -1
  283. package/.next/standalone/.next/server/chunks/4152.js +0 -1
  284. package/.next/standalone/.next/server/chunks/4772.js +0 -158
  285. package/.next/standalone/.next/server/chunks/8104.js +0 -16
  286. package/.next/standalone/.next/server/chunks/9408.js +0 -1
  287. package/.next/standalone/.next/static/chunks/10739-f8a95983c740edff.js +0 -1
  288. package/.next/standalone/.next/static/chunks/19126-ce11a472a7b46715.js +0 -1
  289. package/.next/standalone/.next/static/chunks/192-2fe41d1be4cf52c7.js +0 -1
  290. package/.next/standalone/.next/static/chunks/36940-1a052dcfd7a51c42.js +0 -1
  291. package/.next/standalone/.next/static/chunks/4860.32370b32f23e5ea7.js +0 -1
  292. package/.next/standalone/.next/static/chunks/53011-6c6e5c3c761b4229.js +0 -1
  293. package/.next/standalone/.next/static/chunks/55203-e226f28d874a003b.js +0 -1
  294. package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +0 -1
  295. package/.next/standalone/.next/static/chunks/59703-726546958cd4cf44.js +0 -1
  296. package/.next/standalone/.next/static/chunks/62326-65d43abf563d7ce2.js +0 -1
  297. package/.next/standalone/.next/static/chunks/67312-2b0c88796d8a1f83.js +0 -1
  298. package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +0 -1
  299. package/.next/standalone/.next/static/chunks/89310-e7dd1f2b9518aeb2.js +0 -1
  300. package/.next/standalone/.next/static/chunks/96924-847b528f7abad0e5.js +0 -1
  301. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-61ad25356f1bcf61.js +0 -1
  302. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-cfd59c5238497200.js +0 -1
  303. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d721a820e1058b5.js +0 -1
  304. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-9199629492f0d6cc.js +0 -1
  305. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-164acb03167c8257.js +0 -1
  306. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-642981c5c760bfef.js +0 -1
  307. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-38e4430e5591fbff.js +0 -1
  308. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-cb3978ef57e7197a.js +0 -1
  309. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-94169bdcca8cb817.js +0 -1
  310. package/.next/standalone/.next/static/chunks/app/onboarding/page-1aadff0d5227df18.js +0 -1
  311. package/.next/standalone/.next/static/css/5d7e316311e46db1.css +0 -1
  312. /package/.next/standalone/.next/static/{oJIidfE9Dj5iwDkFfuZP9 → TJ6qFSxjQGUSajvwbI2qu}/_buildManifest.js +0 -0
  313. /package/.next/standalone/.next/static/{oJIidfE9Dj5iwDkFfuZP9 → TJ6qFSxjQGUSajvwbI2qu}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
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":"设置项目详情,之后再将想法分配给 PM 智能体","gettingStartedTitle":"开始使用","gettingStartedDesc":"填写以下基本信息。创建后,您可以添加想法并分配给 PM 智能体生成提案。","basicInfo":"基本信息","projectName":"项目名称","projectNamePlaceholder":"例如:项目 Alpha","descriptionLabel":"描述","descriptionPlaceholder":"简要描述这个项目是关于什么的...","initialIdeas":"初始想法","initialIdeasDesc":"分享任何初始想法或需求,供 PM 智能体在生成提案时参考","ideaPlaceholder":"例如:我们需要支持 OAuth 的用户认证...","addAnother":"添加另一个想法","documents":"文档","documentsDesc":"上传 PRD、技术设计或任何参考文档供 PM 智能体分析","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":"您的所有 PM 智能体都可以查看并处理此想法","orAssignToPmAgent":"分配给特定 PM 智能体","onlySelectedPmAgentCanWork":"只有选中的 PM 智能体可以处理此想法","selectPmAgent":"选择一个 PM 智能体","noPmAgentsAvailable":"没有可用的 PM 智能体","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":"当 PM 智能体分析想法时会创建提案。它们将在此显示供您审核。","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":"人类级别权限:审批提案、验证任务、创建项目","adminWarningTitle":"危险:管理员智能体权限","adminWarningDesc":"您正在创建具有人类级别权限的智能体。此智能体将能够:","adminWarningItem1":"批准或拒绝提案","adminWarningItem2":"验证并关闭任务","adminWarningItem3":"创建和管理项目","adminWarningItem4":"删除任意内容(想法、任务、文档)","adminConfirmCheckbox":"我已了解风险,确认创建管理员智能体","created":"创建于","apiKeyCreated":"API 密钥已创建","apiKeyCreatedDesc":"请立即复制此密钥。您将无法再次查看它!","name":"名称","namePlaceholder":"我的智能体密钥","agentRoles":"智能体角色","agentRolesDesc":"选择此 API 密钥可以访问的角色。","agentPersona":"智能体人设","agentPersonaDesc":"选择预设或编写您自己的人设。这定义了智能体在所有交互中的行为方式。","agentPersonaDescNoRoles":"定义此智能体在所有交互中的行为方式。","personaPlaceholder":"描述此智能体应如何行为。例如:\'您是一个专注于清晰和简洁的助手...\'","personaHint":"您可以编辑上面的文字或编写自己的自定义人设。","personaHintNoRoles":"为您的智能体编写自定义人设。","creating":"创建中...","confirmDelete":"确定要删除此 API 密钥吗?","confirmDeleteTitle":"删除 API 密钥","confirmDeleteDesc":"确定要删除此 API 密钥吗?此操作无法撤销。","editAgent":"编辑智能体","saveChanges":"保存更改","saving":"保存中...","editAgentDesc":"更新此智能体的名称、角色和人设。","updateSuccess":"智能体更新成功","updateFailed":"更新智能体失败","setupGuide":"设置向导","setupGuideDesc":"逐步设置您的 AI 智能体连接","openSetupGuide":"打开设置向导"},"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":"开发者导向 PM","devPmDesc":"您是一位优先考虑开发者体验并构建开发者优先产品的产品经理。您理解技术约束,并能与工程团队有效沟通。","fullPm":"全能 PM","fullPmDesc":"您是一位全面的产品经理,以构建能为目标受众解决实际问题的产品为己任。您平衡业务目标、用户需求和技术可行性。","simplePm":"简约 PM","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":"角色","goToProjects":"前往项目","goToSettings":"前往设置"},"createAgent":{"title":"创建您的 AI 智能体","description":"设置一个具有匹配您工作流程的角色和人设的 AI 智能体。这将为智能体生成一个 API 密钥。"},"copyKey":{"title":"复制您的 API 密钥","description":"请将此 API 密钥保存到安全的地方。您需要它来配置 AI 智能体客户端。","warning":"请立即复制此密钥。此后将无法再次查看!","copy":"复制密钥","copied":"已复制!"},"install":{"description":"选择您的 AI 智能体客户端,然后按照以下说明进行设置。","tabs":{"claudeCode":"Claude Code","codex":"Codex","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\\"。"},"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":"PM 智能体将很快开始细化。","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":"分组"}}}')}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[53011],{5425:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},5616:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},10263:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},23675:(e,t,a)=>{var r=a(84675);a.o(r,"useParams")&&a.d(t,{useParams:function(){return r.useParams}}),a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},25373:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},38476:(e,t,a)=>{a.r(t),a.d(t,{Collapsible:()=>x,CollapsibleContent:()=>w,CollapsibleTrigger:()=>b,Content:()=>j,Root:()=>C,Trigger:()=>N,createCollapsibleScope:()=>y});var r=a(1856),n=a(33328),l=a(21032),o=a(66249),i=a(99457),s=a(34124),d=a(93367),u=a(19900),c=a(40577),p=a(90508),f="Collapsible",[h,y]=(0,l.A)(f),[m,v]=h(f),x=r.forwardRef((e,t)=>{let{__scopeCollapsible:a,open:n,defaultOpen:l,disabled:i,onOpenChange:s,...u}=e,[h,y]=(0,o.i)({prop:n,defaultProp:null!=l&&l,onChange:s,caller:f});return(0,p.jsx)(m,{scope:a,disabled:i,contentId:(0,c.B)(),open:h,onOpenToggle:r.useCallback(()=>y(e=>!e),[y]),children:(0,p.jsx)(d.sG.div,{"data-state":M(h),"data-disabled":i?"":void 0,...u,ref:t})})});x.displayName=f;var g="CollapsibleTrigger",b=r.forwardRef((e,t)=>{let{__scopeCollapsible:a,...r}=e,l=v(g,a);return(0,p.jsx)(d.sG.button,{type:"button","aria-controls":l.contentId,"aria-expanded":l.open||!1,"data-state":M(l.open),"data-disabled":l.disabled?"":void 0,disabled:l.disabled,...r,ref:t,onClick:(0,n.mK)(e.onClick,l.onOpenToggle)})});b.displayName=g;var k="CollapsibleContent",w=r.forwardRef((e,t)=>{let{forceMount:a,...r}=e,n=v(k,e.__scopeCollapsible);return(0,p.jsx)(u.C,{present:a||n.open,children:e=>{let{present:a}=e;return(0,p.jsx)(A,{...r,ref:t,present:a})}})});w.displayName=k;var A=r.forwardRef((e,t)=>{let{__scopeCollapsible:a,present:n,children:l,...o}=e,u=v(k,a),[c,f]=r.useState(n),h=r.useRef(null),y=(0,s.s)(t,h),m=r.useRef(0),x=m.current,g=r.useRef(0),b=g.current,w=u.open||c,A=r.useRef(w),C=r.useRef(void 0);return r.useEffect(()=>{let e=requestAnimationFrame(()=>A.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.N)(()=>{let e=h.current;if(e){C.current=C.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();m.current=t.height,g.current=t.width,A.current||(e.style.transitionDuration=C.current.transitionDuration,e.style.animationName=C.current.animationName),f(n)}},[u.open,n]),(0,p.jsx)(d.sG.div,{"data-state":M(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!w,...o,ref:y,style:{"--radix-collapsible-content-height":x?"".concat(x,"px"):void 0,"--radix-collapsible-content-width":b?"".concat(b,"px"):void 0,...e.style},children:w&&l})});function M(e){return e?"open":"closed"}var C=x,N=b,j=w},38931:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},51581:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]])},55764:(e,t,a)=>{a.d(t,{C1:()=>b,bL:()=>g});var r=a(1856),n=a(90508),l=a(81597),o="Progress",[i,s]=function(e,t=[]){let a=[],l=()=>{let t=a.map(e=>r.createContext(e));return function(a){let n=a?.[e]||t;return r.useMemo(()=>({[`__scope${e}`]:{...a,[e]:n}}),[a,n])}};return l.scopeName=e,[function(t,l){let o=r.createContext(l);o.displayName=t+"Context";let i=a.length;a=[...a,l];let s=t=>{let{scope:a,children:l,...s}=t,d=a?.[e]?.[i]||o,u=r.useMemo(()=>s,Object.values(s));return(0,n.jsx)(d.Provider,{value:u,children:l})};return s.displayName=t+"Provider",[s,function(a,n){let s=n?.[e]?.[i]||o,d=r.useContext(s);if(d)return d;if(void 0!==l)return l;throw Error(`\`${a}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let a=()=>{let a=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=a.reduce((t,{useScope:a,scopeName:r})=>{let n=a(e)[`__scope${r}`];return{...t,...n}},{});return r.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return a.scopeName=t.scopeName,a}(l,...t)]}(o),[d,u]=i(o),c=r.forwardRef((e,t)=>{var a,r,o,i;let{__scopeProgress:s,value:u=null,max:c,getValueLabel:p=h,...f}=e;(c||0===c)&&!v(c)&&console.error((a="".concat(c),r="Progress","Invalid prop `max` of value `".concat(a,"` supplied to `").concat(r,"`. Only numbers greater than 0 are valid max values. Defaulting to `").concat(100,"`.")));let g=v(c)?c:100;null===u||x(u,g)||console.error((o="".concat(u),i="Progress","Invalid prop `value` of value `".concat(o,"` supplied to `").concat(i,"`. The `value` prop must be:\n - a positive number\n - less than the value passed to `max` (or ").concat(100," if no `max` prop is set)\n - `null` or `undefined` if the progress is indeterminate.\n\nDefaulting to `null`.")));let b=x(u,g)?u:null,k=m(b)?p(b,g):void 0;return(0,n.jsx)(d,{scope:s,value:b,max:g,children:(0,n.jsx)(l.sG.div,{"aria-valuemax":g,"aria-valuemin":0,"aria-valuenow":m(b)?b:void 0,"aria-valuetext":k,role:"progressbar","data-state":y(b,g),"data-value":null!=b?b:void 0,"data-max":g,...f,ref:t})})});c.displayName=o;var p="ProgressIndicator",f=r.forwardRef((e,t)=>{var a;let{__scopeProgress:r,...o}=e,i=u(p,r);return(0,n.jsx)(l.sG.div,{"data-state":y(i.value,i.max),"data-value":null!=(a=i.value)?a:void 0,"data-max":i.max,...o,ref:t})});function h(e,t){return"".concat(Math.round(e/t*100),"%")}function y(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function m(e){return"number"==typeof e}function v(e){return m(e)&&!isNaN(e)&&e>0}function x(e,t){return m(e)&&!isNaN(e)&&e<=t&&e>=0}f.displayName=p;var g=c,b=f},56770:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},58057:(e,t,a)=>{a.r(t),a.d(t,{Label:()=>o,Root:()=>i});var r=a(1856),n=a(93367),l=a(90508),o=r.forwardRef((e,t)=>(0,l.jsx)(n.sG.label,{...e,ref:t,onMouseDown:t=>{var a;t.target.closest("button, input, select, textarea")||(null==(a=e.onMouseDown)||a.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label";var i=o},62898:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},71388:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(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,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},81597:(e,t,a)=>{a.d(t,{sG:()=>p});var r=a(1856),n=a.t(r,2);a(38129);var l=a(34124),o=a(90508),i=Symbol.for("react.lazy"),s=n[" use ".trim().toString()];function d(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===i&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var u=Symbol("radix.slottable");function c(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===u}var p=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let a=function(e){let t=function(e){let t=r.forwardRef((e,t)=>{let{children:a,...n}=e;if(d(a)&&"function"==typeof s&&(a=s(a._payload)),r.isValidElement(a)){var o;let e,i,s=(o=a,(i=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(i=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),d=function(e,t){let a={...t};for(let r in t){let n=e[r],l=t[r];/^on[A-Z]/.test(r)?n&&l?a[r]=(...e)=>{let t=l(...e);return n(...e),t}:n&&(a[r]=n):"style"===r?a[r]={...n,...l}:"className"===r&&(a[r]=[n,l].filter(Boolean).join(" "))}return{...e,...a}}(n,a.props);return a.type!==r.Fragment&&(d.ref=t?(0,l.t)(t,s):s),r.cloneElement(a,d)}return r.Children.count(a)>1?r.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}(e),a=r.forwardRef((e,a)=>{let{children:n,...l}=e;d(n)&&"function"==typeof s&&(n=s(n._payload));let i=r.Children.toArray(n),u=i.find(c);if(u){let e=u.props.children,n=i.map(t=>t!==u?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,o.jsx)(t,{...l,ref:a,children:r.isValidElement(e)?r.cloneElement(e,void 0,n):null})}return(0,o.jsx)(t,{...l,ref:a,children:n})});return a.displayName=`${e}.Slot`,a}(`Primitive.${t}`),n=r.forwardRef((e,r)=>{let{asChild:n,...l}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(n?a:t,{...l,ref:r})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{})},85226:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},88634:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]])},95900:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[55203],{1248:(e,s,t)=>{t.d(s,{h:()=>i});var a=t(52217);let i=(0,a.createServerReference)("4049dc3e059628e290908f0083c790c7607c1861ea",a.callServer,void 0,a.findSourceMapURL,"getBatchWorkerCountsAction")},3081:(e,s,t)=>{t.d(s,{v:()=>eg});var a=t(90508),i=t(1856),r=t(23675),c=t(39268),n=t(76111),l=t(9160),d=t(5616),o=t(70633),x=t(57893),m=t(5425),u=t(56770),h=t(85226),p=t(62898),g=t(42533),v=t(1861),f=t(66206);let j=(0,f.A)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);var b=t(17475),A=t(60532),N=t(94903),C=t(62482),y=t(6985);let w=(0,f.A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var k=t(97413),F=t(57731),E=t(48416),S=t(22922),D=t(14554),B=t(15972),_=t(88064),R=t(64993),T=t(91846),U=t(51817),L=t(73693),P=t(52217);let M=(0,P.createServerReference)("60fc6412a66d963fbb894017819bea66356e19b5f5",P.callServer,void 0,P.findSourceMapURL,"updateTaskStatusAction"),q=(0,P.createServerReference)("40357728332e1ec640d7177f7ac4c6c2816d9f2405",P.callServer,void 0,P.findSourceMapURL,"createTaskAction"),z=(0,P.createServerReference)("402f020928a463239761a6b3410450792fcfe3f31f",P.callServer,void 0,P.findSourceMapURL,"updateTaskFieldsAction"),$=(0,P.createServerReference)("604c55ec4c0922c3a9ec0007f8c6d8af4e10905e6b",P.callServer,void 0,P.findSourceMapURL,"deleteTaskAction"),V=(0,P.createServerReference)("601f33bf800e26b5d0b25b5778a8cfdccc4bbd8aa4",P.callServer,void 0,P.findSourceMapURL,"markCriteriaAction"),W=(0,P.createServerReference)("607f0ab99ad3340a5337764efaac2de338a3666b4b",P.callServer,void 0,P.findSourceMapURL,"resetCriterionAction");var J=t(20763);let O=(0,P.createServerReference)("405eefb03b1c1759e647d3f4bdf37eb362517b025f",P.callServer,void 0,P.findSourceMapURL,"getTaskActivitiesAction"),H=(0,P.createServerReference)("40dea86063ba378cbe90a07ae2070da856bbce4e92",P.callServer,void 0,P.findSourceMapURL,"getTaskSourceAction");var I=t(37021),G=t(51708),X=t(41033);let Z=(0,P.createServerReference)("00616de2d52bb8e77310fbe14c3e8133a62cee49d7",P.callServer,void 0,P.findSourceMapURL,"getDeveloperAgentsAction"),K=(0,P.createServerReference)("40fce8d7d0d349f7640901c5ef24ff1be7fd131d66",P.callServer,void 0,P.findSourceMapURL,"claimTaskAction"),Q=(0,P.createServerReference)("6031eb40ef45a1ede28d58fddd8cb3cc5529012f6d",P.callServer,void 0,P.findSourceMapURL,"claimTaskToAgentAction"),Y=(0,P.createServerReference)("60e7e9249f93231503071a49fccf2b7f16a3517765",P.callServer,void 0,P.findSourceMapURL,"claimTaskToUserAction"),ee=(0,P.createServerReference)("40f6ff93b5d24043d020215f88a5b18f49dd538a9f",P.callServer,void 0,P.findSourceMapURL,"releaseTaskAction");function es(e){var s;let{task:t,projectUuid:n,currentUserUuid:d,onClose:o}=e,x=(0,c.c)(),u=(0,r.useRouter)(),[p,g]=(0,i.useState)(!1),[v,f]=(0,i.useState)("self"),[j,b]=(0,i.useState)(""),[A,C]=(0,i.useState)(""),[y,w]=(0,i.useState)([]),[k,F]=(0,i.useState)([]),[E,D]=(0,i.useState)(!0),[B,R]=(0,i.useState)(null),U=!!t.assignee;(0,i.useEffect)(()=>{!async function(){D(!0);let e=await Z();w(e.agents||[]),F((e.users||[]).filter(e=>e.uuid!==d)),D(!1)}()},[d]);let L=async()=>{let e;if(g(!0),R(null),"self"===v)e=await K(t.uuid);else if("agent"===v&&j)e=await Q(t.uuid,j);else if("user"===v&&A)e=await Y(t.uuid,A);else{if("release"!==v)return void g(!1);e=await ee(t.uuid)}g(!1),(null==e?void 0:e.success)?(o(),u.refresh()):(null==e?void 0:e.error)&&R(e.error)},P="self"===v||"agent"===v&&j||"user"===v&&A||"release"===v&&U;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40",onClick:o}),(0,a.jsxs)("div",{className:"fixed left-1/2 top-1/2 z-50 w-[400px] -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white shadow-xl border border-[#E5E0D8]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#E5E0D8] px-6 py-5",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:x("tasks.assignTask")}),(0,a.jsx)("button",{onClick:o,className:"text-[#9A9A9A] hover:text-[#6B6B6B] transition-colors",children:(0,a.jsx)(l.A,{className:"h-5 w-5"})})]}),(0,a.jsxs)("div",{className:"p-6 space-y-4",children:[(0,a.jsxs)("div",{className:"rounded-lg bg-[#FAF8F4] p-3",children:[(0,a.jsx)("p",{className:"text-[13px] font-medium text-[#2C2C2C]",children:t.title}),t.description&&(0,a.jsx)("p",{className:"mt-1 text-[11px] text-[#6B6B6B] line-clamp-2",children:t.description})]}),U&&(0,a.jsx)("div",{className:"rounded-lg bg-[#E3F2FD] p-3",children:(0,a.jsxs)("p",{className:"text-xs text-[#1976D2]",children:[x("common.currentAssignee"),": ",(0,a.jsx)("span",{className:"font-medium",children:null==(s=t.assignee)?void 0:s.name})]})}),B&&(0,a.jsx)("div",{className:"rounded-lg bg-[#FEE2E2] p-3",children:(0,a.jsx)("p",{className:"text-xs text-[#D32F2F]",children:B})}),(0,a.jsx)("p",{className:"text-[13px] text-[#6B6B6B]",children:x("assign.selectAssignee")}),E?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)(h.A,{className:"h-6 w-6 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(X.z,{value:v,onValueChange:e=>f(e),className:"space-y-3",children:[(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("self"===v?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"),onClick:()=>f("self"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(X.C,{value:"self",id:"self",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(_.J,{htmlFor:"self",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.assignToMyself")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("assign.assignToMyselfDesc")})]}),(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("agent"===v?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>f("agent"),children:[(0,a.jsx)(X.C,{value:"agent",id:"agent",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(_.J,{htmlFor:"agent",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.orAssignToAgent")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("tasks.onlySelectedAgentCanWork")}),"agent"===v&&(0,a.jsx)("div",{className:"mt-3 ml-6",children:(0,a.jsxs)(T.l6,{value:j,onValueChange:b,children:[(0,a.jsx)(T.bq,{className:"w-full border-[#E5E0D8]",children:(0,a.jsx)(T.yv,{placeholder:x("tasks.selectAgent")})}),(0,a.jsx)(T.gC,{children:y.length>0?y.map(e=>(0,a.jsx)(T.eb,{value:e.uuid,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(m.A,{className:"h-4 w-4 text-[#C67A52]"}),(0,a.jsx)("span",{children:e.name})]})},e.uuid)):(0,a.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:x("tasks.noAgentsAvailable")})})]})})]}),(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("user"===v?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>f("user"),children:[(0,a.jsx)(X.C,{value:"user",id:"user",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(_.J,{htmlFor:"user",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.orAssignToUser")})]}),"user"===v&&(0,a.jsx)("div",{className:"mt-3 ml-6",children:(0,a.jsxs)(T.l6,{value:A,onValueChange:C,children:[(0,a.jsx)(T.bq,{className:"w-full border-[#E5E0D8]",children:(0,a.jsx)(T.yv,{placeholder:x("tasks.selectUser")})}),(0,a.jsx)(T.gC,{children:k.length>0?k.map(e=>(0,a.jsx)(T.eb,{value:e.uuid,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(N.A,{className:"h-4 w-4 text-[#6B6B6B]"}),(0,a.jsx)("span",{children:e.name||e.email})]})},e.uuid)):(0,a.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:x("tasks.noUsersAvailable")})})]})})]}),U&&(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("release"===v?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"),onClick:()=>f("release"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(X.C,{value:"release",id:"release",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(_.J,{htmlFor:"release",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.releaseAssignee")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("assign.releaseAssigneeDesc")})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-4 rounded-b-2xl bg-white px-6 py-6 border-t border-[#E5E0D8]",children:[(0,a.jsx)(S.$,{variant:"outline",onClick:o,disabled:p,className:"border-[#E5E0D8]",children:x("common.cancel")}),(0,a.jsx)(S.$,{onClick:L,disabled:p||!P,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:p?(0,a.jsx)(h.A,{className:"h-4 w-4 animate-spin"}):x("release"===v?"common.release":"common.assign")})]})]})]})}let et=(0,P.createServerReference)("40829355f4d02cf40318d3220ca6e0a25f735fe037",P.callServer,void 0,P.findSourceMapURL,"getTaskDependenciesAction"),ea=(0,P.createServerReference)("40ce0af7dfa1bd89d1e7a891abaf44bd1a719cfeb1",P.callServer,void 0,P.findSourceMapURL,"getProjectTasksForDependencyAction");var ei=t(62376);let er=(0,P.createServerReference)("60299137928c321338941f7df476f14870d86d9837",P.callServer,void 0,P.findSourceMapURL,"removeTaskDependencyAction"),ec=(0,P.createServerReference)("40fb8913e75b876ce47259fbbc11b87995a26413e7",P.callServer,void 0,P.findSourceMapURL,"getTaskSessionsAction");var en=t(38106),el=t(16544),ed=t(65626),eo=t(90795);let ex={open:"bg-[#FFF3E0] text-[#E65100]",assigned:"bg-[#E3F2FD] text-[#1976D2]",in_progress:"bg-[#E8F5E9] text-[#5A9E6F]",to_verify:"bg-[#F3E5F5] text-[#7B1FA2]",done:"bg-[#E0F2F1] text-[#00796B]",closed:"bg-[#F5F5F5] text-[#9A9A9A]"},em={open:"open",assigned:"assigned",in_progress:"inProgress",to_verify:"toVerify",done:"done",closed:"closed"},eu={low:"bg-[#F5F5F5] text-[#9A9A9A]",medium:"bg-[#FFF3E0] text-[#E65100]",high:"bg-[#FEE2E2] text-[#D32F2F]",critical:"bg-[#FFCDD2] text-[#B71C1C]"},eh={low:"lowPriority",medium:"mediumPriority",high:"highPriority",critical:"criticalPriority"};function ep(e,s){let t=new Date(e),a=new Date().getTime()-t.getTime(),i=Math.floor(a/6e4),r=Math.floor(a/36e5),c=Math.floor(a/864e5);return i<1?s("time.justNow"):i<60?s("time.minutesAgo",{minutes:i}):r<24?s("time.hoursAgo",{hours:r}):c<7?s("time.daysAgo",{days:c}):(0,en.r)(t)}function eg(e){var s;let{task:t,projectUuid:f,currentUserUuid:P,mode:X="overlay",onClose:Z,onCreated:K,onDependencyChange:Q,onBack:Y}=e,ee=(0,c.c)(),eg=(0,r.useRouter)(),[ev,ef]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=setTimeout(()=>ef(!0),300);return()=>clearTimeout(e)},[]);let[ej,eb]=(0,i.useState)(!1),[eA,eN]=(0,i.useState)([]),[eC,ey]=(0,i.useState)(!0),[ew,ek]=(0,i.useState)(null),[eF,eE]=(0,i.useState)(!1),[eS,eD]=(0,i.useState)([]),[eB,e_]=(0,i.useState)([]),[eR,eT]=(0,i.useState)(!1),[eU,eL]=(0,i.useState)([]),[eP,eM]=(0,i.useState)(null),[eq,ez]=(0,i.useState)([]),[e$,eV]=(0,i.useState)([]),eW=null===t,[eJ,eO]=(0,i.useState)(eW),[eH,eI]=(0,i.useState)((null==t?void 0:t.title)||""),[eG,eX]=(0,i.useState)((null==t?void 0:t.description)||""),[eZ,eK]=(0,i.useState)((null==t?void 0:t.priority)||"medium"),[eQ,eY]=(0,i.useState)((null==t?void 0:t.storyPoints)!=null?String(t.storyPoints):""),[e0,e2]=(0,i.useState)((null==t?void 0:t.acceptanceCriteria)||""),[e1,e5]=(0,i.useState)(!1),[e6,e9]=(0,i.useState)(null),[e3,e7]=(0,i.useState)(!1),e4=(null==t||null==(s=t.assignee)?void 0:s.uuid)===P,e8=e4&&(null==t?void 0:t.status)==="assigned",se=e4&&(null==t?void 0:t.status)==="in_progress",ss=(null==t?void 0:t.status)==="to_verify";(0,i.useEffect)(()=>{async function e(){ey(!0),eN((await O(t.uuid)).activities),ey(!1)}async function s(){t.proposalUuid&&ek(await H(t.proposalUuid))}async function a(){eT(!0);let[e,s]=await Promise.all([et(t.uuid),ea(f)]);eD(e.dependsOn),e_(e.dependedBy),eL(s.tasks),eT(!1)}async function i(){let e=await ec(t.uuid);e.success&&e.data&&ez(e.data)}t&&(e(),s(),a(),i())},[null==t?void 0:t.uuid,null==t?void 0:t.proposalUuid,f]),(0,i.useEffect)(()=>{eW&&e();async function e(){eL((await ea(f)).tasks)}},[eW,f]),(0,i.useEffect)(()=>{t&&(eO(!1),eI(t.title),eX(t.description||""),eK(t.priority),eY(null!=t.storyPoints?String(t.storyPoints):""),e2(t.acceptanceCriteria||""),e9(null))},[null==t?void 0:t.uuid,null==t?void 0:t.title,null==t?void 0:t.description,null==t?void 0:t.priority,null==t?void 0:t.storyPoints,null==t?void 0:t.acceptanceCriteria]);let st=async e=>{if(!t)return;eb(!0);let s=await M(t.uuid,e);eb(!1),s.success&&(Z(),eg.refresh())},sa=()=>{if(eW)return void Z();eO(!1),t&&(eI(t.title),eX(t.description||""),eK(t.priority),eY(null!=t.storyPoints?String(t.storyPoints):""),e2(t.acceptanceCriteria||"")),e9(null)},si=async()=>{if(!eH.trim())return void e9(ee("tasks.titleRequired"));e5(!0),e9(null);let e=eQ.trim()?parseFloat(eQ):null;if(eW){let s=await q({projectUuid:f,title:eH.trim(),description:eG.trim()||void 0,priority:eZ,storyPoints:e,acceptanceCriteria:e0.trim()||null});e5(!1),s.success?(e$.length>0&&s.taskUuid&&(await Promise.all(e$.map(e=>(0,ei.w)(s.taskUuid,e.uuid))),null==Q||Q()),null==K||K(),Z(),eg.refresh()):e9(s.error||ee("tasks.createFailed"))}else{let s=await z({taskUuid:t.uuid,projectUuid:f,title:eH.trim(),description:eG.trim()||null,priority:eZ,storyPoints:e,acceptanceCriteria:e0.trim()||null});e5(!1),s.success?(eO(!1),eg.refresh()):e9(s.error||ee("tasks.updateFailed"))}},sr=async()=>{if(!t)return;e7(!0);let e=await $(t.uuid,f);e7(!1),e.success&&(Z(),eg.refresh())},sc=async e=>{if(!t)return;eM(null);let s=await (0,ei.w)(t.uuid,e);if(s.success){let s=eU.find(s=>s.uuid===e);s&&eD(e=>[...e,s]),null==Q||Q()}else eM(s.error||ee("tasks.failedToAddDep"))},sn=async e=>{if(!t)return;eM(null);let s=await er(t.uuid,e);s.success?(eD(s=>s.filter(s=>s.uuid!==e)),null==Q||Q()):eM(s.error||ee("tasks.failedToRemoveDep"))},sl=async e=>{if(!t)return;eM(null);let s=await er(e,t.uuid);s.success?(e_(s=>s.filter(s=>s.uuid!==e)),null==Q||Q()):eM(s.error||ee("tasks.failedToRemoveDep"))},sd=eU.filter(e=>e.uuid!==(null==t?void 0:t.uuid)&&!eS.some(s=>s.uuid===e.uuid)),so=eU.filter(e=>!e$.some(s=>s.uuid===e.uuid)),sx="sidebyside"===X;return(0,a.jsxs)(a.Fragment,{children:[!sx&&(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:Z}),(0,a.jsxs)("div",{className:"fixed top-14 md:top-0 flex h-[calc(100%-3.5rem)] md:h-full w-full flex-col bg-white shadow-xl border-l border-[#E5E0D8] ".concat(sx?"z-40 ".concat(ev?"":"animate-in slide-in-from-right duration-300"):"z-50 right-0 ".concat(ev?"":"animate-in slide-in-from-right duration-300")),style:{maxWidth:"".concat(eo.L8,"px"),...sx?{right:"".concat(eo.L8,"px")}:{}},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[Y&&(0,a.jsx)(S.$,{variant:"ghost",size:"icon",className:"mr-2 h-8 w-8 shrink-0",onClick:Y,children:(0,a.jsx)(o.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:eJ?(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:eW?ee("tasks.createTaskTitle"):ee("tasks.editTask")}):t?(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)(F.E,{className:ex[t.status]||"",children:ee("status.".concat(em[t.status]||t.status))}),(0,a.jsx)(F.E,{className:eu[t.priority]||"",children:ee("priority.".concat(eh[t.priority]||t.priority))}),t.storyPoints&&(0,a.jsxs)("span",{className:"rounded bg-[#F5F2EC] px-2 py-0.5 text-xs font-medium text-[#6B6B6B]",children:[t.storyPoints,"h"]})]})]}):null}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[t&&!eJ&&(0,a.jsxs)(S.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-[#E5E0D8] text-[#2C2C2C]",onClick:()=>{t&&(eI(t.title),eX(t.description||""),eK(t.priority),eY(null!=t.storyPoints?String(t.storyPoints):""),e2(t.acceptanceCriteria||""),e9(null),eO(!0))},children:[(0,a.jsx)(x.A,{className:"h-3.5 w-3.5 text-[#6B6B6B]"}),(0,a.jsx)("span",{className:"text-xs",children:ee("common.edit")})]}),(0,a.jsx)(S.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:eJ&&!eW?sa:Z,children:(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),(0,a.jsx)(R.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:eJ?(0,a.jsxs)("div",{className:"space-y-5",children:[e6&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:e6}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(_.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.titleLabel")}),(0,a.jsx)(D.p,{id:"edit-title",value:eH,onChange:e=>eI(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)(_.J,{htmlFor:"edit-description",className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.descriptionLabel")}),(0,a.jsx)(B.T,{id:"edit-description",value:eG,onChange:e=>eX(e.target.value),rows:4,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(_.J,{htmlFor:"edit-priority",className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.priorityLabel")}),(0,a.jsxs)(T.l6,{value:eZ,onValueChange:eK,children:[(0,a.jsx)(T.bq,{className:"border-[#E5E0D8] text-sm focus:ring-[#C67A52]",children:(0,a.jsx)(T.yv,{})}),(0,a.jsxs)(T.gC,{children:[(0,a.jsx)(T.eb,{value:"low",children:ee("priority.low")}),(0,a.jsx)(T.eb,{value:"medium",children:ee("priority.medium")}),(0,a.jsx)(T.eb,{value:"high",children:ee("priority.high")})]})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(_.J,{htmlFor:"edit-story-points",className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.storyPointsLabel")}),(0,a.jsx)(D.p,{id:"edit-story-points",type:"number",min:"0",step:"0.5",value:eQ,onChange:e=>eY(e.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(_.J,{htmlFor:"edit-acceptance-criteria",className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.acceptanceCriteriaLabel")}),(0,a.jsx)(B.T,{id:"edit-acceptance-criteria",value:e0,onChange:e=>e2(e.target.value),rows:4,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]}),eW&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(_.J,{className:"text-[13px] font-medium text-[#2C2C2C]",children:ee("tasks.dependencies")}),e$.length>0&&(0,a.jsx)("div",{className:"space-y-1.5",children:e$.map(e=>(0,a.jsxs)("div",{className:"group flex items-center justify-between rounded-lg bg-[#FAF8F4] p-2.5",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C67A52]"}),(0,a.jsx)("span",{className:"text-xs text-[#2C2C2C] truncate",children:e.title}),(0,a.jsx)(F.E,{className:"shrink-0 text-[10px] ".concat(ex[e.status]||""),children:ee("status.".concat(em[e.status]||e.status))})]}),(0,a.jsx)(S.$,{type:"button",variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity ml-2 shrink-0",onClick:()=>eV(s=>s.filter(s=>s.uuid!==e.uuid)),children:(0,a.jsx)(l.A,{className:"h-3.5 w-3.5 text-[#9A9A9A] hover:text-[#D32F2F]"})})]},e.uuid))}),so.length>0&&(0,a.jsxs)(T.l6,{onValueChange:e=>{let s=eU.find(s=>s.uuid===e);s&&eV(e=>[...e,s])},children:[(0,a.jsx)(T.bq,{className:"h-8 border-[#E5E0D8] text-xs text-[#6B6B6B] focus:ring-[#C67A52]",children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(d.A,{className:"h-3 w-3"}),(0,a.jsx)(T.yv,{placeholder:ee("tasks.addDependency")})]})}),(0,a.jsx)(T.gC,{children:so.map(e=>(0,a.jsx)(T.eb,{value:e.uuid,children:(0,a.jsx)("span",{className:"truncate",children:e.title})},e.uuid))})]},e$.length)]})]}):t?(0,a.jsxs)(el.P.div,{variants:ed.qG,initial:"initial",animate:"animate",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("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)(L.eu,{className:"h-7 w-7",children:(0,a.jsx)(L.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(ee("common.agent")," • ").concat(t.assignee.assignedAt?(0,en.r)(t.assignee.assignedAt):""):ee("common.user")})]})]}):(0,a.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:ee("common.unassigned")})})]}),eq.length>0&&(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("sessions.activeWorkers")}),(0,a.jsx)("div",{className:"mt-2 space-y-1.5",children:eq.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-2.5",children:[(0,a.jsx)("div",{className:"h-2 w-2 rounded-full bg-green-500 flex-shrink-0"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-[#2C2C2C] truncate",children:e.sessionName}),(0,a.jsxs)("div",{className:"text-[10px] text-[#9A9A9A]",children:[e.agentName," \xb7 ",ep(e.checkinAt,ee)]})]})]},e.sessionUuid))})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("common.description")}),(0,a.jsx)("div",{className:"mt-2",children:t.description?(0,a.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,a.jsx)(I.jH,{plugins:{code:G.a},children:t.description})}):(0,a.jsx)("p",{className:"text-sm italic text-[#9A9A9A]",children:ee("common.noDescription")})})]}),t.acceptanceCriteria&&!(t.acceptanceCriteriaItems&&t.acceptanceCriteriaItems.length>0)&&(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("tasks.acceptanceCriteria")}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,a.jsx)(I.jH,{plugins:{code:G.a},children:t.acceptanceCriteria})})})]}),ew&&(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("common.source")}),(0,a.jsx)("a",{href:"/projects/".concat(f,"/proposals/").concat(ew.uuid),className:"mt-2 flex items-center justify-between rounded-lg bg-[#FAF8F4] p-3 hover:bg-[#F0EDE5] transition-colors",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(u.A,{className:"h-3.5 w-3.5 text-[#C67A52]"}),(0,a.jsx)("span",{className:"text-xs text-[#2C2C2C]",children:ew.title})]})})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("tasks.dependencies")}),eP&&(0,a.jsx)("div",{className:"mt-2 rounded-lg bg-destructive/10 p-2.5 text-xs text-destructive",children:eP}),eR?(0,a.jsx)("div",{className:"mt-2 flex items-center justify-center py-4",children:(0,a.jsx)(h.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(a.Fragment,{children:[eS.length>0&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5",children:[(0,a.jsx)(p.A,{className:"h-3 w-3 text-[#9A9A9A]"}),(0,a.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("tasks.dependsOn")})]}),(0,a.jsx)("div",{className:"space-y-1.5",children:eS.map(e=>(0,a.jsxs)("div",{className:"group flex items-center justify-between rounded-lg bg-[#FAF8F4] p-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C67A52]"}),(0,a.jsx)("span",{className:"text-xs text-[#2C2C2C] truncate",children:e.title}),(0,a.jsx)(F.E,{className:"shrink-0 text-[10px] ".concat(ex[e.status]||""),children:ee("status.".concat(em[e.status]||e.status))})]}),(0,a.jsx)(S.$,{variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity ml-2 shrink-0",onClick:()=>sn(e.uuid),children:(0,a.jsx)(l.A,{className:"h-3.5 w-3.5 text-[#9A9A9A] hover:text-[#D32F2F]"})})]},e.uuid))})]}),eB.length>0&&(0,a.jsxs)("div",{className:"mt-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5",children:[(0,a.jsx)(p.A,{className:"h-3 w-3 rotate-180 text-[#9A9A9A]"}),(0,a.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("tasks.blockedByThis")})]}),(0,a.jsx)("div",{className:"space-y-1.5",children:eB.map(e=>(0,a.jsxs)("div",{className:"group flex items-center justify-between rounded-lg bg-[#FAF8F4] p-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-[#6B6B6B]"}),(0,a.jsx)("span",{className:"text-xs text-[#2C2C2C] truncate",children:e.title}),(0,a.jsx)(F.E,{className:"shrink-0 text-[10px] ".concat(ex[e.status]||""),children:ee("status.".concat(em[e.status]||e.status))})]}),(0,a.jsx)(S.$,{variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity ml-2 shrink-0",onClick:()=>sl(e.uuid),children:(0,a.jsx)(l.A,{className:"h-3.5 w-3.5 text-[#9A9A9A] hover:text-[#D32F2F]"})})]},e.uuid))})]}),0===eS.length&&0===eB.length&&(0,a.jsx)("p",{className:"mt-2 text-sm italic text-[#9A9A9A]",children:ee("tasks.noDependencies")}),sd.length>0&&(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsxs)(T.l6,{onValueChange:e=>sc(e),children:[(0,a.jsx)(T.bq,{className:"h-8 border-[#E5E0D8] text-xs text-[#6B6B6B] focus:ring-[#C67A52]",children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(d.A,{className:"h-3 w-3"}),(0,a.jsx)(T.yv,{placeholder:ee("tasks.addDependency")})]})}),(0,a.jsx)(T.gC,{children:sd.map(e=>(0,a.jsx)(T.eb,{value:e.uuid,children:(0,a.jsx)("span",{className:"truncate",children:e.title})},e.uuid))})]},eS.length)})]})]}),t&&t.acceptanceCriteriaItems&&t.acceptanceCriteriaItems.length>0&&(()=>{let e=t.acceptanceCriteriaItems,s=t.acceptanceSummary,i=e=>"passed"===e?(0,a.jsx)(g.A,{className:"h-4 w-4 text-green-600"}):"failed"===e?(0,a.jsx)(v.A,{className:"h-4 w-4 text-red-600"}):(0,a.jsx)(j,{className:"h-4 w-4 text-yellow-600"}),r=e=>"passed"===e?"bg-green-50 text-green-700":"failed"===e?"bg-red-50 text-red-700":"bg-yellow-50 text-yellow-700",c=async(e,s)=>{(await V(t.uuid,[{uuid:e,status:s}])).success&&eg.refresh()};return(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("acceptanceCriteria.title")}),s&&(0,a.jsx)(F.E,{className:r(t.acceptanceStatus||"pending"),variant:"secondary",children:ee("acceptanceCriteria.progress",{passed:s.passed,total:s.total})})]}),(0,a.jsxs)("div",{className:"mt-2 space-y-2",children:[e.map(e=>(0,a.jsx)(E.Zp,{className:"p-3",children:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)("div",{className:"mt-0.5 shrink-0",children:i(e.status)}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,a.jsx)("span",{className:"text-xs text-[#2C2C2C]",children:e.description}),(0,a.jsx)(F.E,{variant:"outline",className:"text-[10px] shrink-0",children:e.required?ee("acceptanceCriteria.required"):ee("acceptanceCriteria.optional")})]}),(0,a.jsxs)("div",{className:"mt-2 space-y-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[10px]",children:[(0,a.jsx)("span",{className:"text-[#9A9A9A] w-20 shrink-0",children:ee("acceptanceCriteria.devSelfCheck")}),(0,a.jsxs)(F.E,{className:"text-[10px] ".concat(r(e.devStatus)),variant:"secondary",children:[i(e.devStatus),(0,a.jsx)("span",{className:"ml-1",children:ee("acceptanceCriteria.status.".concat(e.devStatus))})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[10px]",children:[(0,a.jsx)("span",{className:"text-[#9A9A9A] w-20 shrink-0",children:ee("acceptanceCriteria.verification")}),(0,a.jsxs)(F.E,{className:"text-[10px] ".concat(r(e.status)),variant:"secondary",children:[i(e.status),(0,a.jsx)("span",{className:"ml-1",children:ee("acceptanceCriteria.status.".concat(e.status))})]})]})]}),e.devEvidence&&(0,a.jsxs)("div",{className:"mt-2 rounded bg-[#FAF8F4] p-2",children:[(0,a.jsx)("span",{className:"text-[10px] font-medium text-[#9A9A9A]",children:ee("acceptanceCriteria.devEvidence")}),(0,a.jsx)("p",{className:"text-[11px] text-[#2C2C2C] mt-0.5",children:e.devEvidence})]}),e.evidence&&(0,a.jsxs)("div",{className:"mt-2 rounded bg-[#FAF8F4] p-2",children:[(0,a.jsx)("span",{className:"text-[10px] font-medium text-[#9A9A9A]",children:ee("acceptanceCriteria.verifyEvidence")}),(0,a.jsx)("p",{className:"text-[11px] text-[#2C2C2C] mt-0.5",children:e.evidence})]}),"pending"===e.status?(0,a.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,a.jsxs)(S.$,{size:"sm",variant:"outline",className:"h-8 min-h-[44px] sm:min-h-0 flex-1 sm:flex-none text-xs text-green-700 border-green-200 hover:bg-green-50",onClick:()=>c(e.uuid,"passed"),children:[(0,a.jsx)(g.A,{className:"h-3.5 w-3.5 mr-1"}),ee("acceptanceCriteria.pass")]}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",className:"h-8 min-h-[44px] sm:min-h-0 flex-1 sm:flex-none text-xs text-red-700 border-red-200 hover:bg-red-50",onClick:()=>c(e.uuid,"failed"),children:[(0,a.jsx)(v.A,{className:"h-3.5 w-3.5 mr-1"}),ee("acceptanceCriteria.fail")]})]}):(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(S.$,{size:"sm",variant:"ghost",className:"h-7 min-h-[44px] sm:min-h-0 text-xs text-[#9A9A9A] hover:text-[#2C2C2C]",onClick:async()=>{(await W(t.uuid,e.uuid)).success&&eg.refresh()},children:ee("acceptanceCriteria.undoVerification")})})]})]})},e.uuid)),s&&(s.requiredPending>0||s.requiredFailed>0)&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg bg-yellow-50 p-3 mt-2",children:[(0,a.jsx)(b.A,{className:"h-4 w-4 text-yellow-600 shrink-0"}),(0,a.jsx)("span",{className:"text-xs text-yellow-700",children:ee("acceptanceCriteria.gateBlocked",{count:s.requiredPending+s.requiredFailed})})]}),s&&0===s.requiredPending&&0===s.requiredFailed&&s.required>0&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg bg-green-50 p-3 mt-2",children:[(0,a.jsx)(g.A,{className:"h-4 w-4 text-green-600 shrink-0"}),(0,a.jsx)("span",{className:"text-xs text-green-700",children:ee("acceptanceCriteria.gateReady")})]})]})]})})(),(0,a.jsxs)("div",{className:"mt-5 flex-1",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("common.activity")}),(0,a.jsx)("div",{className:"mt-2 space-y-3",children:eC?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)(h.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===eA.length?(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:ee("common.noActivity")}):eA.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,a.jsx)("div",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-[#F5F2EC]",children:(0,a.jsx)("div",{className:"h-2 w-2 rounded-full ".concat(function(e){switch(e){case"task_created":return"bg-[#C67A52]";case"task_assigned":case"task_claimed":return"bg-[#1976D2]";case"task_started":return"bg-[#5A9E6F]";case"task_submitted":return"bg-[#7B1FA2]";case"task_completed":case"task_verified":return"bg-[#00796B]";case"task_released":return"bg-[#E65100]";default:return"bg-[#6B6B6B]"}}(e.action))})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("p",{className:"text-xs text-[#2C2C2C]",children:function(e,s){let t=e.sessionName?"".concat(e.actorName," / ").concat(e.sessionName):e.actorName,{action:a}=e;switch(a){case"task_created":return s("activity.taskCreated",{actor:t});case"task_assigned":return s("activity.taskAssigned",{actor:t});case"task_claimed":return s("activity.taskClaimed",{actor:t});case"task_started":return s("activity.taskStarted",{actor:t});case"task_submitted":return s("activity.taskSubmitted",{actor:t});case"task_completed":case"task_verified":return s("activity.taskCompleted",{actor:t});case"task_released":return s("activity.taskReleased",{actor:t});case"task_status_changed":return s("activity.taskStatusChanged",{actor:t});default:return"".concat(t,": ").concat(a)}}(e,ee)}),(0,a.jsx)("p",{className:"text-[10px] text-[#9A9A9A]",children:ep(e.createdAt,ee)})]})]},e.uuid))})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:ee("comments.title")}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(J.$,{targetType:"task",targetUuid:t.uuid,currentUserUuid:P,compact:!0})})]})]}):null})}),(0,a.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:(0,a.jsx)("div",{className:"flex items-center gap-3",children:eJ?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(S.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:sa,disabled:e1,children:ee("common.cancel")}),(0,a.jsx)(S.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:si,disabled:e1||!eH.trim(),children:e1?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4 animate-spin"}),ee("common.saving")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(A.A,{className:"mr-2 h-4 w-4"}),eW?ee("common.create"):ee("tasks.saveChanges")]})})]}):t?(0,a.jsxs)(a.Fragment,{children:["done"!==t.status&&"closed"!==t.status&&(0,a.jsxs)(S.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>eE(!0),disabled:ej,children:[(0,a.jsx)(N.A,{className:"mr-2 h-4 w-4"}),ee("common.assign")]}),e8&&(0,a.jsxs)(S.$,{className:"flex-1 bg-[#1976D2] hover:bg-[#1565C0] text-white",onClick:()=>st("in_progress"),disabled:ej,children:[(0,a.jsx)(C.A,{className:"mr-2 h-4 w-4"}),ee("tasks.startWork")]}),se&&(0,a.jsxs)(S.$,{className:"flex-1 bg-[#7B1FA2] hover:bg-[#6A1B9A] text-white",onClick:()=>st("to_verify"),disabled:ej,children:[(0,a.jsx)(y.A,{className:"mr-2 h-4 w-4"}),ee("tasks.submitForReview")]}),ss&&(0,a.jsxs)(S.$,{className:"flex-1 bg-[#22C55E] hover:bg-[#16A34A] text-white",onClick:()=>st("done"),disabled:ej,children:[(0,a.jsx)(w,{className:"mr-2 h-4 w-4"}),ee("tasks.markAsVerified")]}),("done"===t.status||"closed"===t.status)&&(0,a.jsx)("div",{className:"text-sm text-[#9A9A9A] text-center w-full",children:ee("tasks.taskCompleted")}),(0,a.jsx)("div",{className:"ml-auto",children:(0,a.jsxs)(U.Lt,{children:[(0,a.jsx)(U.tv,{asChild:!0,children:(0,a.jsx)(S.$,{variant:"outline",size:"icon",className:"h-9 w-9 border-[#E5E0D8] text-[#D32F2F] hover:bg-[#FFEBEE] hover:text-[#D32F2F] hover:border-[#D32F2F]",children:(0,a.jsx)(k.A,{className:"h-4 w-4"})})}),(0,a.jsxs)(U.EO,{children:[(0,a.jsxs)(U.wd,{children:[(0,a.jsx)(U.r7,{children:ee("tasks.deleteTask")}),(0,a.jsx)(U.$v,{children:ee("tasks.deleteTaskConfirm",{title:t.title})})]}),(0,a.jsxs)(U.ck,{children:[(0,a.jsx)(U.Zr,{children:ee("common.cancel")}),(0,a.jsx)(U.Rx,{variant:"destructive",onClick:sr,disabled:e3,children:e3?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4 animate-spin"}),ee("common.delete")]}):ee("common.delete")})]})]})]})})]}):null})})]}),t&&eF&&(0,a.jsx)(es,{task:t,projectUuid:f,currentUserUuid:P,onClose:()=>eE(!1)})]})}},6985:(e,s,t)=>{t.d(s,{A:()=>a});let a=(0,t(66206).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},18789:(e,s,t)=>{t.d(s,{A:()=>a});let a=(0,t(66206).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},62376:(e,s,t)=>{t.d(s,{w:()=>i});var a=t(52217);let i=(0,a.createServerReference)("60c573ce9bba78fe5288c4c38fc538661052e7587e",a.callServer,void 0,a.findSourceMapURL,"addTaskDependencyAction")},62482:(e,s,t)=>{t.d(s,{A:()=>a});let a=(0,t(66206).A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},67712:(e,s,t)=>{t.d(s,{q:()=>n});var a=t(55036);let i={debug:0,info:1,warn:2,error:3},r=a.env.NEXT_PUBLIC_LOG_LEVEL||"warn";function c(e){return i[e]>=i[r]}let n={debug:function(e){for(var s=arguments.length,t=Array(s>1?s-1:0),a=1;a<s;a++)t[a-1]=arguments[a];c("debug")&&console.debug("[Chorus] ".concat(e),...t)},info:function(e){for(var s=arguments.length,t=Array(s>1?s-1:0),a=1;a<s;a++)t[a-1]=arguments[a];c("info")&&console.info("[Chorus] ".concat(e),...t)},warn:function(e){for(var s=arguments.length,t=Array(s>1?s-1:0),a=1;a<s;a++)t[a-1]=arguments[a];c("warn")&&console.warn("[Chorus] ".concat(e),...t)},error:function(e){for(var s=arguments.length,t=Array(s>1?s-1:0),a=1;a<s;a++)t[a-1]=arguments[a];c("error")&&console.error("[Chorus] ".concat(e),...t)}}},70633:(e,s,t)=>{t.d(s,{A:()=>a});let a=(0,t(66206).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},81531:(e,s,t)=>{t.d(s,{T:()=>i});var a=t(1856);function i(e,s){let[t,i]=(0,a.useState)(null!=s?s:null),[r,c]=(0,a.useState)(()=>new URLSearchParams(window.location.search).get("tab")),n=(0,a.useCallback)((s,t)=>{let a=new URLSearchParams(window.location.search);s?a.set("panel",s):a.delete("panel"),t?a.set("tab",t):a.delete("tab");let i=a.toString();return i?"".concat(e,"?").concat(i):e},[e]),l=(0,a.useCallback)((e,s)=>{let t=n(e,s);window.history.replaceState(null,"",t),i(e),c(null!=s?s:null)},[n]),d=(0,a.useCallback)(()=>{let e=n(null);window.history.replaceState(null,"",e),i(null),c(null)},[n]),o=(0,a.useCallback)(e=>{if(!t)return;let s=n(t,e);window.history.replaceState(null,"",s),c(e)},[n,t]);return(0,a.useEffect)(()=>{function e(){let e=new URLSearchParams(window.location.search),s=e.get("panel");s?(i(s),c(e.get("tab"))):(i(null),c(null))}return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),{selectedId:t,selectedTab:r,openPanel:l,closePanel:d,switchTab:o}}},90795:(e,s,t)=>{t.d(s,{Bj:()=>l,L8:()=>i,Wl:()=>d,_5:()=>n,eT:()=>r,fw:()=>c});var a=t(38106);let i=480;function r(e){switch(e){case"done":return"bg-[#00796B]";case"in_progress":return"bg-[#1976D2]";case"to_verify":return"bg-[#7B1FA2]";case"open":case"assigned":return"bg-[#E65100]";case"closed":return"bg-[#9A9A9A]";default:return"bg-[#D9D9D9]"}}function c(e,s){let t=new Date(e),i=new Date().getTime()-t.getTime(),r=Math.floor(i/6e4),c=Math.floor(i/36e5),n=Math.floor(i/864e5);return r<1?s("time.justNow"):r<60?s("time.minutesAgo",{minutes:r}):c<24?s("time.hoursAgo",{hours:c}):n<7?s("time.daysAgo",{days:n}):(0,a.r)(t)}let n={todo:"bg-[#FFF3E0] text-[#E65100]",in_progress:"bg-[#E3F2FD] text-[#1976D2]",human_conduct_required:"bg-[#F3E5F5] text-[#7B1FA2]",done:"bg-[#E0F2F1] text-[#00796B]"},l={todo:"todo",in_progress:"inProgress",human_conduct_required:"humanConductRequired",done:"done"},d={open:"open",researching:"researching",answer_questions:"answerQuestions",planning:"planning",review_proposal:"reviewProposal",building:"building",verify_work:"verifyWork",done:"done"}},92745:(e,s,t)=>{t.d(s,{_u:()=>N,c_:()=>g,nF:()=>A,qK:()=>j});var a=t(90508),i=t(1856),r=t(26145),c=t(75380);t(33805);var n=t(10196),l=t.n(n),d=t(39268),o=t(57731);let x={open:"bg-[#FFF3E0] text-[#E65100]",assigned:"bg-[#E3F2FD] text-[#1976D2]",in_progress:"bg-[#E8F5E9] text-[#5A9E6F]",to_verify:"bg-[#F3E5F5] text-[#7B1FA2]",done:"bg-[#E0F2F1] text-[#00796B]",closed:"bg-[#F5F5F5] text-[#9A9A9A]"},m={open:"#E65100",assigned:"#1976D2",in_progress:"#5A9E6F",to_verify:"#7B1FA2",done:"#00796B",closed:"#9A9A9A"},u={low:"priority.low",medium:"priority.medium",high:"priority.high",critical:"priority.critical"},h={open:"status.open",assigned:"status.assigned",in_progress:"status.inProgress",to_verify:"status.toVerify",done:"status.done",closed:"status.closed"},p={low:"bg-[#9A9A9A]",medium:"bg-[#E65100]",high:"bg-[#D32F2F]",critical:"bg-[#B71C1C]"},g={taskNode:function(e){let{data:s}=e,t=(0,d.c)();return(0,a.jsxs)("div",{className:"rounded-lg border-2 border-[#E5E2DC] bg-white px-4 py-3 shadow-sm min-w-[200px] max-w-[260px] cursor-pointer hover:border-[#C67A52] transition-colors",children:[(0,a.jsx)(r.h7,{type:"target",position:c.yX.Top,className:"!bg-[#C67A52] !w-2 !h-2"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,a.jsx)(o.E,{className:"text-[10px] ".concat(x[s.status]||""),children:t(h[s.status]||s.status)}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("div",{className:"h-1.5 w-1.5 rounded-full ".concat(p[s.priority]||"")}),(0,a.jsx)("span",{className:"text-[10px] text-[#9A9A9A]",children:t(u[s.priority]||s.priority)})]})]}),(0,a.jsx)("p",{className:"text-xs font-medium text-[#2C2C2C] leading-snug line-clamp-2",children:s.title}),(0,a.jsx)(r.h7,{type:"source",position:c.yX.Bottom,className:"!bg-[#C67A52] !w-2 !h-2"})]})}},v={taskNode:function(e){let{data:s}=e,t=m[s.status]||"#E5E0D8";return(0,a.jsxs)("div",{className:"rounded-md border-[1.5px] bg-white px-2.5 py-1.5 shadow-sm",style:{borderColor:t,width:f},children:[(0,a.jsx)(r.h7,{type:"target",position:c.yX.Top,className:"!bg-[#C67A52] !w-1.5 !h-1.5"}),(0,a.jsx)("p",{className:"text-[10px] font-medium text-[#2C2C2C] leading-tight line-clamp-2",children:s.title}),(0,a.jsx)(r.h7,{type:"source",position:c.yX.Bottom,className:"!bg-[#C67A52] !w-1.5 !h-1.5"})]})}},f=150,j={animated:!0,style:{stroke:"#C67A52",strokeWidth:2},markerEnd:{type:"arrowclosed",color:"#C67A52"}},b={animated:!0,style:{stroke:"#C67A52",strokeWidth:1.5},markerEnd:{type:"arrowclosed",color:"#C67A52"}};function A(e,s,t){var a,i,r,c;let n=null!=(a=null==t?void 0:t.nodeWidth)?a:240,d=null!=(i=null==t?void 0:t.nodeHeight)?i:80,o=new(l()).graphlib.Graph;return o.setDefaultEdgeLabel(()=>({})),o.setGraph({rankdir:"TB",nodesep:null!=(r=null==t?void 0:t.nodesep)?r:50,ranksep:null!=(c=null==t?void 0:t.ranksep)?c:80}),e.forEach(e=>{o.setNode(e.id,{width:n,height:d})}),s.forEach(e=>{o.setEdge(e.source,e.target)}),l().layout(o),{nodes:e.map(e=>{let s=o.node(e.id);return{...e,position:{x:s.x-n/2,y:s.y-d/2}}}),edges:s}}function N(e){let{tasks:s,edges:t,readonly:c=!1,compact:n=!1,height:l,onNodeClick:o,className:x}=e,m=(0,d.c)(),{layoutedNodes:u,layoutedEdges:h}=(0,i.useMemo)(()=>{let e=s.map(e=>{var s;return{id:e.uuid,type:"taskNode",position:{x:0,y:0},data:{title:e.title,status:e.status,priority:e.priority,proposalUuid:null!=(s=e.proposalUuid)?s:null}}}),a=A(e,t.map((e,s)=>({id:"e-".concat(s),source:e.to,target:e.from,...n?b:j})),n?{nodeWidth:f,nodeHeight:50,nodesep:20,ranksep:40}:void 0);return{layoutedNodes:a.nodes,layoutedEdges:a.edges}},[s,t,n]);return 0===s.length?(0,a.jsx)("div",{className:"flex items-center justify-center text-sm text-[#9A9A9A] ".concat(x||""),style:l?{height:l}:void 0,children:m("tasks.noTasksToDisplay")}):(0,a.jsx)("div",{className:"rounded-[10px] border border-[#E5E0D8] bg-[#F7F6F3] ".concat(x||""),style:l?{height:l}:void 0,children:(0,a.jsxs)(r.Gc,{nodes:u,edges:h,nodeTypes:n?v:g,onNodeClick:o?(e,s)=>o(s.id):void 0,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:1.5,proOptions:{hideAttribution:!0},nodesDraggable:!c,nodesConnectable:!c,elementsSelectable:!c,panOnDrag:!0,zoomOnScroll:!0,children:[(0,a.jsx)(r.VS,{color:"#E5E0D8",gap:20}),!c&&(0,a.jsx)(r.H2,{className:"[&>button]:border-[#E5E0D8] [&>button]:bg-white [&>button]:text-[#2C2C2C] [&>button:hover]:bg-[#FAF8F4]"})]})})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[58245],{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:()=>s});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 s=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:()=>g});var r=n(90508),o=n(1856),a=n(43827),l=n(66071),s=n(66506),u=n(95535),i=n(63605),c=n(8334);function h(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class d extends o.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if((0,i.s)(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,n=(0,i.s)(e)&&e.offsetWidth||0,r=(0,i.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 p(e){var t,n;let{children:a,isPresent:l,anchorX:s,anchorY:u,root:i,pop:p}=e,f=(0,o.useId)(),m=(0,o.useRef)(null),y=(0,o.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:v}=(0,o.useContext)(c.Q),k=function(...e){return o.useCallback(function(...e){return t=>{let n=!1,r=e.map(e=>{let r=h(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():h(e[t],null)}}}}(...e),e)}(m,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}=y.current;if(l||!1===p||!m.current||!e||!t)return;m.current.dataset.motionPopId=f;let c=document.createElement("style");v&&(c.nonce=v);let h=null!=i?i:document.head;return h.appendChild(c),c.sheet&&c.sheet.insertRule('\n [data-motion-pop-id="'.concat(f,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===s?"left: ".concat(r):"right: ".concat(o),"px !important;\n ").concat("bottom"===u?"bottom: ".concat(a):"top: ".concat(n),"px !important;\n }\n ")),()=>{var e;null==(e=m.current)||e.removeAttribute("data-motion-pop-id"),h.contains(c)&&h.removeChild(c)}},[l]),(0,r.jsx)(d,{isPresent:l,childRef:m,sizeRef:y,pop:p,children:!1===p?a:o.cloneElement(a,{ref:k})})}let f=e=>{let{children:t,initial:n,isPresent:a,onExitComplete:s,custom:i,presenceAffectsLayout:c,mode:h,anchorX:d,anchorY:f,root:y}=e,v=(0,l.M)(m),k=(0,o.useId)(),g=!0,A=(0,o.useMemo)(()=>(g=!1,{id:k,initial:n,isPresent:a,custom:i,onExitComplete:e=>{for(let t of(v.set(e,!0),v.values()))if(!t)return;s&&s()},register:e=>(v.set(e,!1),()=>v.delete(e))}),[a,v,s]);return c&&g&&(A={...A}),(0,o.useMemo)(()=>{v.forEach((e,t)=>v.set(t,!1))},[a]),o.useEffect(()=>{a||v.size||!s||s()},[a]),t=(0,r.jsx)(p,{pop:"popLayout"===h,isPresent:a,anchorX:d,anchorY:f,root:y,children:t}),(0,r.jsx)(u.t.Provider,{value:A,children:t})};function m(){return new Map}var y=n(99672);let v=e=>e.key||"";function k(e){let t=[];return o.Children.forEach(e,e=>{(0,o.isValidElement)(e)&&t.push(e)}),t}let g=e=>{let{children:t,custom:n,initial:u=!0,onExitComplete:i,presenceAffectsLayout:c=!0,mode:h="sync",propagate:d=!1,anchorX:p="left",anchorY:m="top",root:g}=e,[A,M]=(0,y.xQ)(d),x=(0,o.useMemo)(()=>k(t),[t]),w=d&&!A?[]:x.map(v),P=(0,o.useRef)(!0),b=(0,o.useRef)(x),R=(0,l.M)(()=>new Map),E=(0,o.useRef)(new Set),[C,j]=(0,o.useState)(x),[S,L]=(0,o.useState)(x);(0,s.E)(()=>{P.current=!1,b.current=x;for(let e=0;e<S.length;e++){let t=v(S[e]);w.includes(t)?(R.delete(t),E.current.delete(t)):!0!==R.get(t)&&R.set(t,!1)}},[S,w.length,w.join("-")]);let z=[];if(x!==C){let e=[...x];for(let t=0;t<S.length;t++){let n=S[t],r=v(n);w.includes(r)||(e.splice(t,0,n),z.push(n))}return"wait"===h&&z.length&&(e=z),L(k(e)),j(x),null}let{forceRender:D}=(0,o.useContext)(a.L);return(0,r.jsx)(r.Fragment,{children:S.map(e=>{let t=v(e),o=(!d||!!A)&&(x===S||w.includes(t));return(0,r.jsx)(f,{isPresent:o,initial:(!P.current||!!u)&&void 0,custom:n,presenceAffectsLayout:c,mode:h,root:g,onExitComplete:o?void 0:()=>{if(E.current.has(t)||!R.has(t))return;E.current.add(t),R.set(t,!0);let e=!0;R.forEach(t=>{t||(e=!1)}),e&&(null==D||D(),L(b.current),d&&(null==M||M()),i&&i())},anchorX:p,anchorY:m,children:e},t)})})}},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"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[59703],{48218:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>eU,Content:()=>eH,Group:()=>eM,Icon:()=>eI,Item:()=>eW,ItemIndicator:()=>eV,ItemText:()=>eK,Label:()=>eB,Portal:()=>eO,Root:()=>eD,ScrollDownButton:()=>ez,ScrollUpButton:()=>eF,Select:()=>W,SelectArrow:()=>eE,SelectContent:()=>Y,SelectGroup:()=>es,SelectIcon:()=>G,SelectItem:()=>eh,SelectItemIndicator:()=>eg,SelectItemText:()=>ev,SelectLabel:()=>eu,SelectPortal:()=>U,SelectScrollDownButton:()=>eS,SelectScrollUpButton:()=>ex,SelectSeparator:()=>eR,SelectTrigger:()=>V,SelectValue:()=>z,SelectViewport:()=>eo,Separator:()=>eG,Trigger:()=>eN,Value:()=>ek,Viewport:()=>e_,createSelectScope:()=>I});var n=r(1856),o=r(38129),l=r(91722),i=r(33328),a=r(81369),s=r(34124),c=r(21032),u=r(72599),d=r(63569),f=r(12139),p=r(80491),h=r(40577),m=r(67221),v=r(17533),w=r(93367),g=r(54154),y=r(32313),x=r(66249),b=r(99457),S=r(72009),C=r(78134),R=r(2188),T=r(46523),E=r(90508),P=[" ","Enter","ArrowUp","ArrowDown"],A=[" ","Enter"],L="Select",[j,D,N]=(0,a.N)(L),[k,I]=(0,c.A)(L,[N,m.Bk]),O=(0,m.Bk)(),[H,_]=k(L),[M,B]=k(L),W=e=>{let{__scopeSelect:t,children:r,open:o,defaultOpen:l,onOpenChange:i,value:a,defaultValue:s,onValueChange:c,dir:d,name:f,autoComplete:p,disabled:v,required:w,form:g}=e,y=O(t),[b,S]=n.useState(null),[C,R]=n.useState(null),[T,P]=n.useState(!1),A=(0,u.jH)(d),[D,N]=(0,x.i)({prop:o,defaultProp:null!=l&&l,onChange:i,caller:L}),[k,I]=(0,x.i)({prop:a,defaultProp:s,onChange:c,caller:L}),_=n.useRef(null),B=!b||g||!!b.closest("form"),[W,K]=n.useState(new Set),V=Array.from(W).map(e=>e.props.value).join(";");return(0,E.jsx)(m.bL,{...y,children:(0,E.jsxs)(H,{required:w,scope:t,trigger:b,onTriggerChange:S,valueNode:C,onValueNodeChange:R,valueNodeHasChildren:T,onValueNodeHasChildrenChange:P,contentId:(0,h.B)(),value:k,onValueChange:I,open:D,onOpenChange:N,dir:A,triggerPointerDownPosRef:_,disabled:v,children:[(0,E.jsx)(j.Provider,{scope:t,children:(0,E.jsx)(M,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{K(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{K(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),B?(0,E.jsxs)(eP,{"aria-hidden":!0,required:w,tabIndex:-1,name:f,autoComplete:p,value:k,onChange:e=>I(e.target.value),disabled:v,form:g,children:[void 0===k?(0,E.jsx)("option",{value:""}):null,Array.from(W)]},V):null]})})};W.displayName=L;var K="SelectTrigger",V=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:o=!1,...l}=e,a=O(r),c=_(K,r),u=c.disabled||o,d=(0,s.s)(t,c.onTriggerChange),f=D(r),p=n.useRef("touch"),[h,v,g]=eL(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===c.value),n=ej(t,e,r);void 0!==n&&c.onValueChange(n.value)}),y=e=>{u||(c.onOpenChange(!0),g()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,E.jsx)(m.Mz,{asChild:!0,...a,children:(0,E.jsx)(w.sG.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":eA(c.value)?"":void 0,...l,ref:d,onClick:(0,i.mK)(l.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&y(e)}),onPointerDown:(0,i.mK)(l.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)(l.onKeyDown,e=>{let t=""!==h.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||v(e.key),(!t||" "!==e.key)&&P.includes(e.key)&&(y(),e.preventDefault())})})})});V.displayName=K;var F="SelectValue",z=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:o,children:l,placeholder:i="",...a}=e,c=_(F,r),{onValueNodeHasChildrenChange:u}=c,d=void 0!==l,f=(0,s.s)(t,c.onValueNodeChange);return(0,b.N)(()=>{u(d)},[u,d]),(0,E.jsx)(w.sG.span,{...a,ref:f,style:{pointerEvents:"none"},children:eA(c.value)?(0,E.jsx)(E.Fragment,{children:i}):l})});z.displayName=F;var G=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...o}=e;return(0,E.jsx)(w.sG.span,{"aria-hidden":!0,...o,ref:t,children:n||"▼"})});G.displayName="SelectIcon";var U=e=>(0,E.jsx)(v.Portal,{asChild:!0,...e});U.displayName="SelectPortal";var X="SelectContent",Y=n.forwardRef((e,t)=>{let r=_(X,e.__scopeSelect),[l,i]=n.useState();return((0,b.N)(()=>{i(new DocumentFragment)},[]),r.open)?(0,E.jsx)(Z,{...e,ref:t}):l?o.createPortal((0,E.jsx)(q,{scope:e.__scopeSelect,children:(0,E.jsx)(j.Slot,{scope:e.__scopeSelect,children:(0,E.jsx)("div",{children:e.children})})}),l):null});Y.displayName=X;var[q,$]=k(X),Q=(0,g.TL)("SelectContent.RemoveScroll"),Z=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:o="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:a,onPointerDownOutside:c,side:u,sideOffset:h,align:m,alignOffset:v,arrowPadding:w,collisionBoundary:g,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:S,...C}=e,P=_(X,r),[A,L]=n.useState(null),[j,N]=n.useState(null),k=(0,s.s)(t,e=>L(e)),[I,O]=n.useState(null),[H,M]=n.useState(null),B=D(r),[W,K]=n.useState(!1),V=n.useRef(!1);n.useEffect(()=>{if(A)return(0,R.Eq)(A)},[A]),(0,f.Oh)();let F=n.useCallback(e=>{let[t,...r]=B().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(null==r||r.scrollIntoView({block:"nearest"}),r===t&&j&&(j.scrollTop=0),r===n&&j&&(j.scrollTop=j.scrollHeight),null==r||r.focus(),document.activeElement!==o))return},[B,j]),z=n.useCallback(()=>F([I,A]),[F,I,A]);n.useEffect(()=>{W&&z()},[W,z]);let{onOpenChange:G,triggerPointerDownPosRef:U}=P;n.useEffect(()=>{if(A){let e={x:0,y:0},t=t=>{var r,n,o,l;e={x:Math.abs(Math.round(t.pageX)-(null!=(o=null==(r=U.current)?void 0:r.x)?o:0)),y:Math.abs(Math.round(t.pageY)-(null!=(l=null==(n=U.current)?void 0:n.y)?l:0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():A.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})}}},[A,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[Y,$]=eL(e=>{let t=B().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=ej(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),Z=n.useCallback((e,t,r)=>{let n=!V.current&&!r;(void 0!==P.value&&P.value===t||n)&&(O(e),n&&(V.current=!0))},[P.value]),et=n.useCallback(()=>null==A?void 0:A.focus(),[A]),er=n.useCallback((e,t,r)=>{let n=!V.current&&!r;(void 0!==P.value&&P.value===t||n)&&M(e)},[P.value]),en="popper"===o?ee:J,eo=en===ee?{side:u,sideOffset:h,align:m,alignOffset:v,arrowPadding:w,collisionBoundary:g,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:S}:{};return(0,E.jsx)(q,{scope:r,content:A,viewport:j,onViewportChange:N,itemRefCallback:Z,selectedItem:I,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:z,selectedItemText:H,position:o,isPositioned:W,searchRef:Y,children:(0,E.jsx)(T.A,{as:Q,allowPinchZoom:!0,children:(0,E.jsx)(p.n,{asChild:!0,trapped:P.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,i.mK)(l,e=>{var t;null==(t=P.trigger)||t.focus({preventScroll:!0}),e.preventDefault()}),children:(0,E.jsx)(d.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>P.onOpenChange(!1),children:(0,E.jsx)(en,{role:"listbox",id:P.contentId,"data-state":P.open?"open":"closed",dir:P.dir,onContextMenu:e=>e.preventDefault(),...C,...eo,onPlaced:()=>K(!0),ref:k,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:(0,i.mK)(C.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||$(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=B().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(()=>F(t)),e.preventDefault()}})})})})})})});Z.displayName="SelectContentImpl";var J=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:o,...i}=e,a=_(X,r),c=$(X,r),[u,d]=n.useState(null),[f,p]=n.useState(null),h=(0,s.s)(t,e=>p(e)),m=D(r),v=n.useRef(!1),g=n.useRef(!0),{viewport:y,selectedItem:x,selectedItemText:S,focusSelectedItem:C}=c,R=n.useCallback(()=>{if(a.trigger&&a.valueNode&&u&&f&&y&&x&&S){let e=a.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=a.valueNode.getBoundingClientRect(),n=S.getBoundingClientRect();if("rtl"!==a.dir){let o=n.left-t.left,i=r.left-o,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),d=window.innerWidth-10,f=(0,l.q)(i,[10,Math.max(10,d-c)]);u.style.minWidth=s+"px",u.style.left=f+"px"}else{let o=t.right-n.right,i=window.innerWidth-r.right-o,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),d=window.innerWidth-10,f=(0,l.q)(i,[10,Math.max(10,d-c)]);u.style.minWidth=s+"px",u.style.right=f+"px"}let i=m(),s=window.innerHeight-20,c=y.scrollHeight,d=window.getComputedStyle(f),p=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),w=parseInt(d.borderBottomWidth,10),g=p+h+c+parseInt(d.paddingBottom,10)+w,b=Math.min(5*x.offsetHeight,g),C=window.getComputedStyle(y),R=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,P=x.offsetHeight/2,A=p+h+(x.offsetTop+P);if(A<=E){let e=i.length>0&&x===i[i.length-1].ref.current;u.style.bottom="0px";let t=Math.max(s-E,P+(e?T:0)+(f.clientHeight-y.offsetTop-y.offsetHeight)+w);u.style.height=A+t+"px"}else{let e=i.length>0&&x===i[0].ref.current;u.style.top="0px";let t=Math.max(E,p+y.offsetTop+(e?R:0)+P);u.style.height=t+(g-A)+"px",y.scrollTop=A-E+y.offsetTop}u.style.margin="".concat(10,"px 0"),u.style.minHeight=b+"px",u.style.maxHeight=s+"px",null==o||o(),requestAnimationFrame(()=>v.current=!0)}},[m,a.trigger,a.valueNode,u,f,y,x,S,a.dir,o]);(0,b.N)(()=>R(),[R]);let[T,P]=n.useState();(0,b.N)(()=>{f&&P(window.getComputedStyle(f).zIndex)},[f]);let A=n.useCallback(e=>{e&&!0===g.current&&(R(),null==C||C(),g.current=!1)},[R,C]);return(0,E.jsx)(et,{scope:r,contentWrapper:u,shouldExpandOnScrollRef:v,onScrollButtonChange:A,children:(0,E.jsx)("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:T},children:(0,E.jsx)(w.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:o=10,...l}=e,i=O(r);return(0,E.jsx)(m.UC,{...i,...l,ref:t,align:n,collisionPadding:o,style:{boxSizing:"border-box",...l.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]=k(X,{}),en="SelectViewport",eo=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:o,...l}=e,a=$(en,r),c=er(en,r),u=(0,s.s)(t,a.onViewportChange),d=n.useRef(0);return(0,E.jsxs)(E.Fragment,{children:[(0,E.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:o}),(0,E.jsx)(j.Slot,{scope:r,children:(0,E.jsx)(w.sG.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:(0,i.mK)(l.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=c;if((null==n?void 0:n.current)&&r){let e=Math.abs(d.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o<n){let l=o+e,i=Math.min(n,l),a=l-i;r.style.height=i+"px","0px"===r.style.bottom&&(t.scrollTop=a>0?a:0,r.style.justifyContent="flex-end")}}}d.current=t.scrollTop})})})]})});eo.displayName=en;var el="SelectGroup",[ei,ea]=k(el),es=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=(0,h.B)();return(0,E.jsx)(ei,{scope:r,id:o,children:(0,E.jsx)(w.sG.div,{role:"group","aria-labelledby":o,...n,ref:t})})});es.displayName=el;var ec="SelectLabel",eu=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=ea(ec,r);return(0,E.jsx)(w.sG.div,{id:o.id,...n,ref:t})});eu.displayName=ec;var ed="SelectItem",[ef,ep]=k(ed),eh=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:o,disabled:l=!1,textValue:a,...c}=e,u=_(ed,r),d=$(ed,r),f=u.value===o,[p,m]=n.useState(null!=a?a:""),[v,g]=n.useState(!1),y=(0,s.s)(t,e=>{var t;return null==(t=d.itemRefCallback)?void 0:t.call(d,e,o,l)}),x=(0,h.B)(),b=n.useRef("touch"),S=()=>{l||(u.onValueChange(o),u.onOpenChange(!1))};if(""===o)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,E.jsx)(ef,{scope:r,value:o,disabled:l,textId:x,isSelected:f,onItemTextChange:n.useCallback(e=>{m(t=>{var r;return t||(null!=(r=null==e?void 0:e.textContent)?r:"").trim()})},[]),children:(0,E.jsx)(j.ItemSlot,{scope:r,value:o,disabled:l,textValue:p,children:(0,E.jsx)(w.sG.div,{role:"option","aria-labelledby":x,"data-highlighted":v?"":void 0,"aria-selected":f&&v,"data-state":f?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...c,ref:y,onFocus:(0,i.mK)(c.onFocus,()=>g(!0)),onBlur:(0,i.mK)(c.onBlur,()=>g(!1)),onClick:(0,i.mK)(c.onClick,()=>{"mouse"!==b.current&&S()}),onPointerUp:(0,i.mK)(c.onPointerUp,()=>{"mouse"===b.current&&S()}),onPointerDown:(0,i.mK)(c.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:(0,i.mK)(c.onPointerMove,e=>{if(b.current=e.pointerType,l){var t;null==(t=d.onItemLeave)||t.call(d)}else"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,i.mK)(c.onPointerLeave,e=>{if(e.currentTarget===document.activeElement){var t;null==(t=d.onItemLeave)||t.call(d)}}),onKeyDown:(0,i.mK)(c.onKeyDown,e=>{var t;((null==(t=d.searchRef)?void 0:t.current)===""||" "!==e.key)&&(A.includes(e.key)&&S()," "===e.key&&e.preventDefault())})})})})});eh.displayName=ed;var em="SelectItemText",ev=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:l,style:i,...a}=e,c=_(em,r),u=$(em,r),d=ep(em,r),f=B(em,r),[p,h]=n.useState(null),m=(0,s.s)(t,e=>h(e),d.onItemTextChange,e=>{var t;return null==(t=u.itemTextRefCallback)?void 0:t.call(u,e,d.value,d.disabled)}),v=null==p?void 0:p.textContent,g=n.useMemo(()=>(0,E.jsx)("option",{value:d.value,disabled:d.disabled,children:v},d.value),[d.disabled,d.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:x}=f;return(0,b.N)(()=>(y(g),()=>x(g)),[y,x,g]),(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(w.sG.span,{id:d.textId,...a,ref:m}),d.isSelected&&c.valueNode&&!c.valueNodeHasChildren?o.createPortal(a.children,c.valueNode):null]})});ev.displayName=em;var ew="SelectItemIndicator",eg=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return ep(ew,r).isSelected?(0,E.jsx)(w.sG.span,{"aria-hidden":!0,...n,ref:t}):null});eg.displayName=ew;var ey="SelectScrollUpButton",ex=n.forwardRef((e,t)=>{let r=$(ey,e.__scopeSelect),o=er(ey,e.__scopeSelect),[l,i]=n.useState(!1),a=(0,s.s)(t,o.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]),l?(0,E.jsx)(eC,{...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=$(eb,e.__scopeSelect),o=er(eb,e.__scopeSelect),[l,i]=n.useState(!1),a=(0,s.s)(t,o.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]),l?(0,E.jsx)(eC,{...e,ref:a,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eS.displayName=eb;var eC=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:o,...l}=e,a=$("SelectScrollButton",r),s=n.useRef(null),c=D(r),u=n.useCallback(()=>{null!==s.current&&(window.clearInterval(s.current),s.current=null)},[]);return n.useEffect(()=>()=>u(),[u]),(0,b.N)(()=>{var e;let t=c().find(e=>e.ref.current===document.activeElement);null==t||null==(e=t.ref.current)||e.scrollIntoView({block:"nearest"})},[c]),(0,E.jsx)(w.sG.div,{"aria-hidden":!0,...l,ref:t,style:{flexShrink:0,...l.style},onPointerDown:(0,i.mK)(l.onPointerDown,()=>{null===s.current&&(s.current=window.setInterval(o,50))}),onPointerMove:(0,i.mK)(l.onPointerMove,()=>{var e;null==(e=a.onItemLeave)||e.call(a),null===s.current&&(s.current=window.setInterval(o,50))}),onPointerLeave:(0,i.mK)(l.onPointerLeave,()=>{u()})})}),eR=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,E.jsx)(w.sG.div,{"aria-hidden":!0,...n,ref:t})});eR.displayName="SelectSeparator";var eT="SelectArrow",eE=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=O(r),l=_(eT,r),i=$(eT,r);return l.open&&"popper"===i.position?(0,E.jsx)(m.i3,{...o,...n,ref:t}):null});eE.displayName=eT;var eP=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:o,...l}=e,i=n.useRef(null),a=(0,s.s)(t,i),c=(0,S.Z)(o);return n.useEffect(()=>{let e=i.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(c!==o&&t){let r=new Event("change",{bubbles:!0});t.call(e,o),e.dispatchEvent(r)}},[c,o]),(0,E.jsx)(w.sG.select,{...l,style:{...C.Qg,...l.style},ref:a,defaultValue:o})});function eA(e){return""===e||void 0===e}function eL(e){let t=(0,y.c)(e),r=n.useRef(""),o=n.useRef(0),l=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),i=n.useCallback(()=>{r.current="",window.clearTimeout(o.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),[r,l,i]}function ej(e,t,r){var n,o;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=r?e.indexOf(r):-1,a=(n=e,o=Math.max(i,0),n.map((e,t)=>n[(o+t)%n.length]));1===l.length&&(a=a.filter(e=>e!==r));let s=a.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return s!==r?s:void 0}eP.displayName="SelectBubbleInput";var eD=W,eN=V,ek=z,eI=G,eO=U,eH=Y,e_=eo,eM=es,eB=eu,eW=eh,eK=ev,eV=eg,eF=ex,ez=eS,eG=eR,eU=eE},65326:(e,t,r)=>{r.r(t),r.d(t,{Corner:()=>Q,Root:()=>X,ScrollArea:()=>y,ScrollAreaCorner:()=>_,ScrollAreaScrollbar:()=>C,ScrollAreaThumb:()=>I,ScrollAreaViewport:()=>b,Scrollbar:()=>q,Thumb:()=>$,Viewport:()=>Y,createScrollAreaScope:()=>v});var n=r(1856),o=r(93367),l=r(19900),i=r(21032),a=r(34124),s=r(32313),c=r(72599),u=r(99457),d=r(91722),f=r(33328),p=r(90508),h="ScrollArea",[m,v]=(0,i.A)(h),[w,g]=m(h),y=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:l="hover",dir:i,scrollHideDelay:s=600,...u}=e,[d,f]=n.useState(null),[h,m]=n.useState(null),[v,g]=n.useState(null),[y,x]=n.useState(null),[b,S]=n.useState(null),[C,R]=n.useState(0),[T,E]=n.useState(0),[P,A]=n.useState(!1),[L,j]=n.useState(!1),D=(0,a.s)(t,e=>f(e)),N=(0,c.jH)(i);return(0,p.jsx)(w,{scope:r,type:l,dir:N,scrollHideDelay:s,scrollArea:d,viewport:h,onViewportChange:m,content:v,onContentChange:g,scrollbarX:y,onScrollbarXChange:x,scrollbarXEnabled:P,onScrollbarXEnabledChange:A,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:L,onScrollbarYEnabledChange:j,onCornerWidthChange:R,onCornerHeightChange:E,children:(0,p.jsx)(o.sG.div,{dir:N,...u,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":C+"px","--radix-scroll-area-corner-height":T+"px",...e.style}})})});y.displayName=h;var x="ScrollAreaViewport",b=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:l,nonce:i,...s}=e,c=g(x,r),u=n.useRef(null),d=(0,a.s)(t,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)(o.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})})]})});b.displayName=x;var S="ScrollAreaScrollbar",C=n.forwardRef((e,t)=>{let{forceMount:r,...o}=e,l=g(S,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=l,s="horizontal"===e.orientation;return n.useEffect(()=>(s?i(!0):a(!0),()=>{s?i(!1):a(!1)}),[s,i,a]),"hover"===l.type?(0,p.jsx)(R,{...o,ref:t,forceMount:r}):"scroll"===l.type?(0,p.jsx)(T,{...o,ref:t,forceMount:r}):"auto"===l.type?(0,p.jsx)(E,{...o,ref:t,forceMount:r}):"always"===l.type?(0,p.jsx)(P,{...o,ref:t}):null});C.displayName=S;var R=n.forwardRef((e,t)=>{let{forceMount:r,...o}=e,i=g(S,e.__scopeScrollArea),[a,s]=n.useState(!1);return n.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),s(!0)},n=()=>{t=window.setTimeout(()=>s(!1),i.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[i.scrollArea,i.scrollHideDelay]),(0,p.jsx)(l.C,{present:r||a,children:(0,p.jsx)(E,{"data-state":a?"visible":"hidden",...o,ref:t})})}),T=n.forwardRef((e,t)=>{var r;let{forceMount:o,...i}=e,a=g(S,e.__scopeScrollArea),s="horizontal"===e.orientation,c=G(()=>d("SCROLL_END"),100),[u,d]=(r={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},n.useReducer((e,t)=>{let n=r[e][t];return null!=n?n:e},"hidden"));return n.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,a.scrollHideDelay,d]),n.useEffect(()=>{let e=a.viewport,t=s?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(d("SCROLL"),c()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[a.viewport,s,d,c]),(0,p.jsx)(l.C,{present:o||"hidden"!==u,children:(0,p.jsx)(P,{"data-state":"hidden"===u?"hidden":"visible",...i,ref:t,onPointerEnter:(0,f.mK)(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:(0,f.mK)(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),E=n.forwardRef((e,t)=>{let r=g(S,e.__scopeScrollArea),{forceMount:o,...i}=e,[a,s]=n.useState(!1),c="horizontal"===e.orientation,u=G(()=>{if(r.viewport){let e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;s(c?e:t)}},10);return U(r.viewport,u),U(r.content,u),(0,p.jsx)(l.C,{present:o||a,children:(0,p.jsx)(P,{"data-state":a?"visible":"hidden",...i,ref:t})})}),P=n.forwardRef((e,t)=>{let{orientation:r="vertical",...o}=e,l=g(S,e.__scopeScrollArea),i=n.useRef(null),a=n.useRef(0),[s,c]=n.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=W(s.viewport,s.content),d={...o,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,t){return function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",o=K(r),l=t||o/2,i=r.scrollbar.paddingStart+l,a=r.scrollbar.size-r.scrollbar.paddingEnd-(o-l),s=r.content-r.viewport;return F([i,a],"ltr"===n?[0,s]:[-1*s,0])(e)}(e,a.current,s,t)}return"horizontal"===r?(0,p.jsx)(A,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=V(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"===r?(0,p.jsx)(L,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=V(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}),A=n.forwardRef((e,t)=>{let{sizes:r,onSizesChange:o,...l}=e,i=g(S,e.__scopeScrollArea),[s,c]=n.useState(),u=n.useRef(null),d=(0,a.s)(t,u,i.onScrollbarXChange);return n.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,p.jsx)(N,{"data-orientation":"horizontal",...l,ref:d,sizes:r,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":K(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(i.viewport){let n=i.viewport.scrollLeft+t.deltaX;e.onWheelScroll(n),function(e,t){return e>0&&e<t}(n,r)&&t.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&o({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:B(s.paddingLeft),paddingEnd:B(s.paddingRight)}})}})}),L=n.forwardRef((e,t)=>{let{sizes:r,onSizesChange:o,...l}=e,i=g(S,e.__scopeScrollArea),[s,c]=n.useState(),u=n.useRef(null),d=(0,a.s)(t,u,i.onScrollbarYChange);return n.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,p.jsx)(N,{"data-orientation":"vertical",...l,ref:d,sizes:r,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":K(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(i.viewport){let n=i.viewport.scrollTop+t.deltaY;e.onWheelScroll(n),function(e,t){return e>0&&e<t}(n,r)&&t.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&o({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:B(s.paddingTop),paddingEnd:B(s.paddingBottom)}})}})}),[j,D]=m(S),N=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:l,hasThumb:i,onThumbChange:c,onThumbPointerUp:u,onThumbPointerDown:d,onThumbPositionChange:h,onDragScroll:m,onWheelScroll:v,onResize:w,...y}=e,x=g(S,r),[b,C]=n.useState(null),R=(0,a.s)(t,e=>C(e)),T=n.useRef(null),E=n.useRef(""),P=x.viewport,A=l.content-l.viewport,L=(0,s.c)(v),D=(0,s.c)(h),N=G(w,10);function k(e){T.current&&m({x:e.clientX-T.current.left,y:e.clientY-T.current.top})}return n.useEffect(()=>{let e=e=>{let t=e.target;(null==b?void 0:b.contains(t))&&L(e,A)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[P,b,A,L]),n.useEffect(D,[l,D]),U(b,N),U(x.content,N),(0,p.jsx)(j,{scope:r,scrollbar:b,hasThumb:i,onThumbChange:(0,s.c)(c),onThumbPointerUp:(0,s.c)(u),onThumbPositionChange:D,onThumbPointerDown:(0,s.c)(d),children:(0,p.jsx)(o.sG.div,{...y,ref:R,style:{position:"absolute",...y.style},onPointerDown:(0,f.mK)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),T.current=b.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),k(e))}),onPointerMove:(0,f.mK)(e.onPointerMove,k),onPointerUp:(0,f.mK)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),T.current=null})})})}),k="ScrollAreaThumb",I=n.forwardRef((e,t)=>{let{forceMount:r,...n}=e,o=D(k,e.__scopeScrollArea);return(0,p.jsx)(l.C,{present:r||o.hasThumb,children:(0,p.jsx)(O,{ref:t,...n})})}),O=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:l,...i}=e,s=g(k,r),c=D(k,r),{onThumbPositionChange:u}=c,d=(0,a.s)(t,e=>c.onThumbChange(e)),h=n.useRef(void 0),m=G(()=>{h.current&&(h.current(),h.current=void 0)},100);return n.useEffect(()=>{let e=s.viewport;if(e){let t=()=>{m(),h.current||(h.current=z(e,u),u())};return u(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[s.viewport,m,u]),(0,p.jsx)(o.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 t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;c.onThumbPointerDown({x:r,y:n})}),onPointerUp:(0,f.mK)(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=k;var H="ScrollAreaCorner",_=n.forwardRef((e,t)=>{let r=g(H,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&n?(0,p.jsx)(M,{...e,ref:t}):null});_.displayName=H;var M=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,...l}=e,i=g(H,r),[a,s]=n.useState(0),[c,u]=n.useState(0),d=!!(a&&c);return U(i.scrollbarX,()=>{var e;let t=(null==(e=i.scrollbarX)?void 0:e.offsetHeight)||0;i.onCornerHeightChange(t),u(t)}),U(i.scrollbarY,()=>{var e;let t=(null==(e=i.scrollbarY)?void 0:e.offsetWidth)||0;i.onCornerWidthChange(t),s(t)}),d?(0,p.jsx)(o.sG.div,{...l,ref:t,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 B(e){return e?parseInt(e,10):0}function W(e,t){let r=e/t;return isNaN(r)?0:r}function K(e){let t=W(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function V(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",n=K(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-o,i=t.content-t.viewport,a=(0,d.q)(e,"ltr"===r?[0,i]:[-1*i,0]);return F([0,i],[0,l-n])(a)}function F(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function o(){let l={left:e.scrollLeft,top:e.scrollTop},i=r.left!==l.left,a=r.top!==l.top;(i||a)&&t(),r=l,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function G(e,t){let r=(0,s.c)(e),o=n.useRef(0);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),n.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(r,t)},[r,t])}function U(e,t){let r=(0,s.c)(t);(0,u.N)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}var X=y,Y=b,q=C,$=I,Q=_},67221:(e,t,r)=>{r.d(t,{Mz:()=>e1,i3:()=>e3,UC:()=>e2,bL:()=>e0,Bk:()=>eM});var n=r(1856);let o=["top","right","bottom","left"],l=Math.min,i=Math.max,a=Math.round,s=Math.floor,c=e=>({x:e,y:e}),u={left:"right",right:"left",bottom:"top",top:"bottom"},d={start:"end",end:"start"};function f(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 w=new Set(["top","bottom"]);function g(e){return w.has(p(e))?"y":"x"}function y(e){return e.replace(/start|end/g,e=>d[e])}let x=["left","right"],b=["right","left"],S=["top","bottom"],C=["bottom","top"];function R(e){return e.replace(/left|right|bottom|top/g,e=>u[e])}function T(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function E(e){let{x:t,y:r,width:n,height:o}=e;return{width:n,height:o,top:r,left:t,right:t+n,bottom:r+o,x:t,y:r}}function P(e,t,r){let n,{reference:o,floating:l}=e,i=g(t),a=m(g(t)),s=v(a),c=p(t),u="y"===i,d=o.x+o.width/2-l.width/2,f=o.y+o.height/2-l.height/2,w=o[s]/2-l[s]/2;switch(c){case"top":n={x:d,y:o.y-l.height};break;case"bottom":n={x:d,y:o.y+o.height};break;case"right":n={x:o.x+o.width,y:f};break;case"left":n={x:o.x-l.width,y:f};break;default:n={x:o.x,y:o.y}}switch(h(t)){case"start":n[a]-=w*(r&&u?-1:1);break;case"end":n[a]+=w*(r&&u?-1:1)}return n}async function A(e,t){var r;void 0===t&&(t={});let{x:n,y:o,platform:l,rects:i,elements:a,strategy:s}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:h=0}=f(t,e),m=T(h),v=a[p?"floating"===d?"reference":"floating":d],w=E(await l.getClippingRect({element:null==(r=await (null==l.isElement?void 0:l.isElement(v)))||r?v:v.contextElement||await (null==l.getDocumentElement?void 0:l.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:s})),g="floating"===d?{x:n,y:o,width:i.floating.width,height:i.floating.height}:i.reference,y=await (null==l.getOffsetParent?void 0:l.getOffsetParent(a.floating)),x=await (null==l.isElement?void 0:l.isElement(y))&&await (null==l.getScale?void 0:l.getScale(y))||{x:1,y:1},b=E(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:g,offsetParent:y,strategy:s}):g);return{top:(w.top-b.top+m.top)/x.y,bottom:(b.bottom-w.bottom+m.bottom)/x.y,left:(w.left-b.left+m.left)/x.x,right:(b.right-w.right+m.right)/x.x}}let L=async(e,t,r)=>{let{placement:n="bottom",strategy:o="absolute",middleware:l=[],platform:i}=r,a=l.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(t)),c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=P(c,n,s),f=n,p={},h=0;for(let r=0;r<a.length;r++){var m;let{name:l,fn:v}=a[r],{x:w,y:g,data:y,reset:x}=await v({x:u,y:d,initialPlacement:n,placement:f,strategy:o,middlewareData:p,rects:c,platform:{...i,detectOverflow:null!=(m=i.detectOverflow)?m:A},elements:{reference:e,floating:t}});u=null!=w?w:u,d=null!=g?g:d,p={...p,[l]:{...p[l],...y}},x&&h<=50&&(h++,"object"==typeof x&&(x.placement&&(f=x.placement),x.rects&&(c=!0===x.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):x.rects),{x:u,y:d}=P(c,f,s)),r=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};function j(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function D(e){return o.some(t=>e[t]>=0)}let N=new Set(["left","top"]);async function k(e,t){let{placement:r,platform:n,elements:o}=e,l=await (null==n.isRTL?void 0:n.isRTL(o.floating)),i=p(r),a=h(r),s="y"===g(r),c=N.has(i)?-1:1,u=l&&s?-1:1,d=f(t,e),{mainAxis:m,crossAxis:v,alignmentAxis:w}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&"number"==typeof w&&(v="end"===a?-1*w:w),s?{x:v*u,y:m*c}:{x:m*c,y:v*u}}function I(){return"undefined"!=typeof window}function O(e){return M(e)?(e.nodeName||"").toLowerCase():"#document"}function H(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function _(e){var t;return null==(t=(M(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function M(e){return!!I()&&(e instanceof Node||e instanceof H(e).Node)}function B(e){return!!I()&&(e instanceof Element||e instanceof H(e).Element)}function W(e){return!!I()&&(e instanceof HTMLElement||e instanceof H(e).HTMLElement)}function K(e){return!!I()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof H(e).ShadowRoot)}let V=new Set(["inline","contents"]);function F(e){let{overflow:t,overflowX:r,overflowY:n,display:o}=ee(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!V.has(o)}let z=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 X=["transform","translate","scale","rotate","perspective"],Y=["transform","translate","scale","rotate","perspective","filter"],q=["paint","layout","strict","content"];function $(e){let t=Q(),r=B(e)?ee(e):e;return X.some(e=>!!r[e]&&"none"!==r[e])||!!r.containerType&&"normal"!==r.containerType||!t&&!!r.backdropFilter&&"none"!==r.backdropFilter||!t&&!!r.filter&&"none"!==r.filter||Y.some(e=>(r.willChange||"").includes(e))||q.some(e=>(r.contain||"").includes(e))}function Q(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let Z=new Set(["html","body","#document"]);function J(e){return Z.has(O(e))}function ee(e){return H(e).getComputedStyle(e)}function et(e){return B(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function er(e){if("html"===O(e))return e;let t=e.assignedSlot||e.parentNode||K(e)&&e.host||_(e);return K(t)?t.host:t}function en(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);let o=function e(t){let r=er(t);return J(r)?t.ownerDocument?t.ownerDocument.body:t.body:W(r)&&F(r)?r:e(r)}(e),l=o===(null==(n=e.ownerDocument)?void 0:n.body),i=H(o);if(l){let e=eo(i);return t.concat(i,i.visualViewport||[],F(o)?o:[],e&&r?en(e):[])}return t.concat(o,en(o,[],r))}function eo(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function el(e){let t=ee(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,o=W(e),l=o?e.offsetWidth:r,i=o?e.offsetHeight:n,s=a(r)!==l||a(n)!==i;return s&&(r=l,n=i),{width:r,height:n,$:s}}function ei(e){return B(e)?e:e.contextElement}function ea(e){let t=ei(e);if(!W(t))return c(1);let r=t.getBoundingClientRect(),{width:n,height:o,$:l}=el(t),i=(l?a(r.width):r.width)/n,s=(l?a(r.height):r.height)/o;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}let es=c(0);function ec(e){let t=H(e);return Q()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:es}function eu(e,t,r,n){var o;void 0===t&&(t=!1),void 0===r&&(r=!1);let l=e.getBoundingClientRect(),i=ei(e),a=c(1);t&&(n?B(n)&&(a=ea(n)):a=ea(e));let s=(void 0===(o=r)&&(o=!1),n&&(!o||n===H(i))&&o)?ec(i):c(0),u=(l.left+s.x)/a.x,d=(l.top+s.y)/a.y,f=l.width/a.x,p=l.height/a.y;if(i){let e=H(i),t=n&&B(n)?H(n):n,r=e,o=eo(r);for(;o&&n&&t!==r;){let e=ea(o),t=o.getBoundingClientRect(),n=ee(o),l=t.left+(o.clientLeft+parseFloat(n.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(n.paddingTop))*e.y;u*=e.x,d*=e.y,f*=e.x,p*=e.y,u+=l,d+=i,o=eo(r=H(o))}}return E({width:f,height:p,x:u,y:d})}function ed(e,t){let r=et(e).scrollLeft;return t?t.left+r:eu(_(e)).left+r}function ef(e,t){let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-ed(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=H(e),n=_(e),o=r.visualViewport,l=n.clientWidth,i=n.clientHeight,a=0,s=0;if(o){l=o.width,i=o.height;let e=Q();(!e||e&&"fixed"===t)&&(a=o.offsetLeft,s=o.offsetTop)}let c=ed(n);if(c<=0){let e=n.ownerDocument,t=e.body,r=getComputedStyle(t),o="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,i=Math.abs(n.clientWidth-t.clientWidth-o);i<=25&&(l-=i)}else c<=25&&(l+=c);return{width:l,height:i,x:a,y:s}}(e,r);else if("document"===t)n=function(e){let t=_(e),r=et(e),n=e.ownerDocument.body,o=i(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),l=i(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),a=-r.scrollLeft+ed(e),s=-r.scrollTop;return"rtl"===ee(n).direction&&(a+=i(t.clientWidth,n.clientWidth)-o),{width:o,height:l,x:a,y:s}}(_(e));else if(B(t))n=function(e,t){let r=eu(e,!0,"fixed"===t),n=r.top+e.clientTop,o=r.left+e.clientLeft,l=W(e)?ea(e):c(1),i=e.clientWidth*l.x,a=e.clientHeight*l.y;return{width:i,height:a,x:o*l.x,y:n*l.y}}(t,r);else{let r=ec(e);n={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return E(n)}function em(e){return"static"===ee(e).position}function ev(e,t){if(!W(e)||"fixed"===ee(e).position)return null;if(t)return t(e);let r=e.offsetParent;return _(e)===r&&(r=r.ownerDocument.body),r}function ew(e,t){var r;let n=H(e);if(U(e))return n;if(!W(e)){let t=er(e);for(;t&&!J(t);){if(B(t)&&!em(t))return t;t=er(t)}return n}let o=ev(e,t);for(;o&&(r=o,z.has(O(r)))&&em(o);)o=ev(o,t);return o&&J(o)&&em(o)&&!$(o)?n:o||function(e){let t=er(e);for(;W(t)&&!J(t);){if($(t))return t;if(U(t))break;t=er(t)}return null}(e)||n}let eg=async function(e){let t=this.getOffsetParent||ew,r=this.getDimensions,n=await r(e.floating);return{reference:function(e,t,r){let n=W(t),o=_(t),l="fixed"===r,i=eu(e,!0,l,t),a={scrollLeft:0,scrollTop:0},s=c(0);if(n||!n&&!l)if(("body"!==O(t)||F(o))&&(a=et(t)),n){let e=eu(t,!0,l,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else o&&(s.x=ed(o));l&&!n&&o&&(s.x=ed(o));let u=!o||n||l?c(0):ef(o,a);return{x:i.left+a.scrollLeft-s.x-u.x,y:i.top+a.scrollTop-s.y-u.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:o}=e,l="fixed"===o,i=_(n),a=!!t&&U(t.floating);if(n===i||a&&l)return r;let s={scrollLeft:0,scrollTop:0},u=c(1),d=c(0),f=W(n);if((f||!f&&!l)&&(("body"!==O(n)||F(i))&&(s=et(n)),W(n))){let e=eu(n);u=ea(n),d.x=e.x+n.clientLeft,d.y=e.y+n.clientTop}let p=!i||f||l?c(0):ef(i,s);return{width:r.width*u.x,height:r.height*u.y,x:r.x*u.x-s.scrollLeft*u.x+d.x+p.x,y:r.y*u.y-s.scrollTop*u.y+d.y+p.y}},getDocumentElement:_,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:o}=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=>B(e)&&"body"!==O(e)),o=null,l="fixed"===ee(e).position,i=l?er(e):e;for(;B(i)&&!J(i);){let t=ee(i),r=$(i);r||"fixed"!==t.position||(o=null),(l?!r&&!o:!r&&"static"===t.position&&!!o&&ep.has(o.position)||F(i)&&!r&&function e(t,r){let n=er(t);return!(n===r||!B(n)||J(n))&&("fixed"===ee(n).position||e(n,r))}(e,i))?n=n.filter(e=>e!==i):o=t,i=er(i)}return t.set(e,n),n}(t,this._c):[].concat(r),n],s=a[0],c=a.reduce((e,r)=>{let n=eh(t,r,o);return e.top=i(n.top,e.top),e.right=l(n.right,e.right),e.bottom=l(n.bottom,e.bottom),e.left=i(n.left,e.left),e},eh(t,s,o));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}},getOffsetParent:ew,getElementRects:eg,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:r}=el(e);return{width:t,height:r}},getScale:ea,isElement:B,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:o,rects:a,platform:s,elements:c,middlewareData:u}=t,{element:d,padding:p=0}=f(e,t)||{};if(null==d)return{};let w=T(p),y={x:r,y:n},x=m(g(o)),b=v(x),S=await s.getDimensions(d),C="y"===x,R=C?"clientHeight":"clientWidth",E=a.reference[b]+a.reference[x]-y[x]-a.floating[b],P=y[x]-a.reference[x],A=await (null==s.getOffsetParent?void 0:s.getOffsetParent(d)),L=A?A[R]:0;L&&await (null==s.isElement?void 0:s.isElement(A))||(L=c.floating[R]||a.floating[b]);let j=L/2-S[b]/2-1,D=l(w[C?"top":"left"],j),N=l(w[C?"bottom":"right"],j),k=L-S[b]-N,I=L/2-S[b]/2+(E/2-P/2),O=i(D,l(I,k)),H=!u.arrow&&null!=h(o)&&I!==O&&a.reference[b]/2-(I<D?D:N)-S[b]/2<0,_=H?I<D?I-D:I-k:0;return{[x]:y[x]+_,data:{[x]:O,centerOffset:I-O-_,...H&&{alignmentOffset:_}},reset:H}}});var eS=r(38129),eC="undefined"!=typeof document?n.useLayoutEffect:function(){};function eR(e,t){let r,n,o;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(!eR(e[n],t[n]))return!1;return!0}if((r=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=r;0!=n--;)if(!({}).hasOwnProperty.call(t,o[n]))return!1;for(n=r;0!=n--;){let r=o[n];if(("_owner"!==r||!e.$$typeof)&&!eR(e[r],t[r]))return!1}return!0}return e!=e&&t!=t}function eT(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function eE(e,t){let r=eT(e);return Math.round(t*r)/r}function eP(e){let t=n.useRef(e);return eC(()=>{t.current=e}),t}var eA=r(93367),eL=r(90508),ej=n.forwardRef((e,t)=>{let{children:r,width:n=10,height:o=5,...l}=e;return(0,eL.jsx)(eA.sG.svg,{...l,ref:t,width:n,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:(0,eL.jsx)("polygon",{points:"0,0 30,0 15,10"})})});ej.displayName="Arrow";var eD=r(34124),eN=r(21032),ek=r(32313),eI=r(99457),eO=r(3705),eH="Popper",[e_,eM]=(0,eN.A)(eH),[eB,eW]=e_(eH),eK=e=>{let{__scopePopper:t,children:r}=e,[o,l]=n.useState(null);return(0,eL.jsx)(eB,{scope:t,anchor:o,onAnchorChange:l,children:r})};eK.displayName=eH;var eV="PopperAnchor",eF=n.forwardRef((e,t)=>{let{__scopePopper:r,virtualRef:o,...l}=e,i=eW(eV,r),a=n.useRef(null),s=(0,eD.s)(t,a),c=n.useRef(null);return n.useEffect(()=>{let e=c.current;c.current=(null==o?void 0:o.current)||a.current,e!==c.current&&i.onAnchorChange(c.current)}),o?null:(0,eL.jsx)(eA.sG.div,{...l,ref:s})});eF.displayName=eV;var ez="PopperContent",[eG,eU]=e_(ez),eX=n.forwardRef((e,t)=>{var r,o,a,c,u,d,w,T;let{__scopePopper:E,side:P="bottom",sideOffset:A=0,align:I="center",alignOffset:O=0,arrowPadding:H=0,avoidCollisions:M=!0,collisionBoundary:B=[],collisionPadding:W=0,sticky:K="partial",hideWhenDetached:V=!1,updatePositionStrategy:F="optimized",onPlaced:z,...G}=e,U=eW(ez,E),[X,Y]=n.useState(null),q=(0,eD.s)(t,e=>Y(e)),[$,Q]=n.useState(null),Z=(0,eO.X)($),J=null!=(w=null==Z?void 0:Z.width)?w:0,ee=null!=(T=null==Z?void 0:Z.height)?T:0,et="number"==typeof W?W:{top:0,right:0,bottom:0,left:0,...W},er=Array.isArray(B)?B:[B],eo=er.length>0,el={padding:et,boundary:er.filter(eQ),altBoundary:eo},{refs:ea,floatingStyles:es,placement:ec,isPositioned:ed,middlewareData:ef}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:o=[],platform:l,elements:{reference:i,floating:a}={},transform:s=!0,whileElementsMounted:c,open:u}=e,[d,f]=n.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[p,h]=n.useState(o);eR(p,o)||h(o);let[m,v]=n.useState(null),[w,g]=n.useState(null),y=n.useCallback(e=>{e!==C.current&&(C.current=e,v(e))},[]),x=n.useCallback(e=>{e!==R.current&&(R.current=e,g(e))},[]),b=i||m,S=a||w,C=n.useRef(null),R=n.useRef(null),T=n.useRef(d),E=null!=c,P=eP(c),A=eP(l),j=eP(u),D=n.useCallback(()=>{if(!C.current||!R.current)return;let e={placement:t,strategy:r,middleware:p};A.current&&(e.platform=A.current),((e,t,r)=>{let n=new Map,o={platform:ey,...r},l={...o.platform,_c:n};return L(e,t,{...o,platform:l})})(C.current,R.current,e).then(e=>{let t={...e,isPositioned:!1!==j.current};N.current&&!eR(T.current,t)&&(T.current=t,eS.flushSync(()=>{f(t)}))})},[p,t,r,A,j]);eC(()=>{!1===u&&T.current.isPositioned&&(T.current.isPositioned=!1,f(e=>({...e,isPositioned:!1})))},[u]);let N=n.useRef(!1);eC(()=>(N.current=!0,()=>{N.current=!1}),[]),eC(()=>{if(b&&(C.current=b),S&&(R.current=S),b&&S){if(P.current)return P.current(b,S,D);D()}},[b,S,D,P,E]);let k=n.useMemo(()=>({reference:C,floating:R,setReference:y,setFloating:x}),[y,x]),I=n.useMemo(()=>({reference:b,floating:S}),[b,S]),O=n.useMemo(()=>{let e={position:r,left:0,top:0};if(!I.floating)return e;let t=eE(I.floating,d.x),n=eE(I.floating,d.y);return s?{...e,transform:"translate("+t+"px, "+n+"px)",...eT(I.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:t,top:n}},[r,s,I.floating,d.x,d.y]);return n.useMemo(()=>({...d,update:D,refs:k,elements:I,floatingStyles:O}),[d,D,k,I,O])}({strategy:"fixed",placement:P+("center"!==I?"-"+I:""),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 o;void 0===n&&(n={});let{ancestorScroll:a=!0,ancestorResize:c=!0,elementResize:u="function"==typeof ResizeObserver,layoutShift:d="function"==typeof IntersectionObserver,animationFrame:f=!1}=n,p=ei(e),h=a||c?[...p?en(p):[],...en(t)]:[];h.forEach(e=>{a&&e.addEventListener("scroll",r,{passive:!0}),c&&e.addEventListener("resize",r)});let m=p&&d?function(e,t){let r,n=null,o=_(e);function a(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return!function c(u,d){void 0===u&&(u=!1),void 0===d&&(d=1),a();let f=e.getBoundingClientRect(),{left:p,top:h,width:m,height:v}=f;if(u||t(),!m||!v)return;let w=s(h),g=s(o.clientWidth-(p+m)),y={rootMargin:-w+"px "+-g+"px "+-s(o.clientHeight-(h+v))+"px "+-s(p)+"px",threshold:i(0,l(1,d))||1},x=!0;function b(t){let n=t[0].intersectionRatio;if(n!==d){if(!x)return c();n?c(!1,n):r=setTimeout(()=>{c(!1,1e-7)},1e3)}1!==n||ex(f,e.getBoundingClientRect())||c(),x=!1}try{n=new IntersectionObserver(b,{...y,root:o.ownerDocument})}catch(e){n=new IntersectionObserver(b,y)}n.observe(e)}(!0),a}(p,r):null,v=-1,w=null;u&&(w=new ResizeObserver(e=>{let[n]=e;n&&n.target===p&&w&&(w.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var e;null==(e=w)||e.observe(t)})),r()}),p&&!f&&w.observe(p),w.observe(t));let g=f?eu(e):null;return f&&function t(){let n=eu(e);g&&!ex(g,n)&&r(),g=n,o=requestAnimationFrame(t)}(),r(),()=>{var e;h.forEach(e=>{a&&e.removeEventListener("scroll",r),c&&e.removeEventListener("resize",r)}),null==m||m(),null==(e=w)||e.disconnect(),w=null,f&&cancelAnimationFrame(o)}}(...t,{animationFrame:"always"===F})},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:o,y:l,placement:i,middlewareData:a}=t,s=await k(t,e);return i===(null==(r=a.offset)?void 0:r.placement)&&null!=(n=a.arrow)&&n.alignmentOffset?{}:{x:o+s.x,y:l+s.y,data:{...s,placement:i}}}}}(e),options:[e,t]}))({mainAxis:A+ee,alignmentAxis:O}),M&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:o,platform:a}=t,{mainAxis:s=!0,crossAxis:c=!1,limiter:u={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...d}=f(e,t),h={x:r,y:n},v=await a.detectOverflow(t,d),w=g(p(o)),y=m(w),x=h[y],b=h[w];if(s){let e="y"===y?"top":"left",t="y"===y?"bottom":"right",r=x+v[e],n=x-v[t];x=i(r,l(x,n))}if(c){let e="y"===w?"top":"left",t="y"===w?"bottom":"right",r=b+v[e],n=b-v[t];b=i(r,l(b,n))}let S=u.fn({...t,[y]:x,[w]:b});return{...S,data:{x:S.x-r,y:S.y-n,enabled:{[y]:s,[w]:c}}}}}}(e),options:[e,t]}))({mainAxis:!0,crossAxis:!1,limiter:"partial"===K?((e,t)=>({...function(e){return void 0===e&&(e={}),{options:e,fn(t){let{x:r,y:n,placement:o,rects:l,middlewareData:i}=t,{offset:a=0,mainAxis:s=!0,crossAxis:c=!0}=f(e,t),u={x:r,y:n},d=g(o),h=m(d),v=u[h],w=u[d],y=f(a,t),x="number"==typeof y?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(s){let e="y"===h?"height":"width",t=l.reference[h]-l.floating[e]+x.mainAxis,r=l.reference[h]+l.reference[e]-x.mainAxis;v<t?v=t:v>r&&(v=r)}if(c){var b,S;let e="y"===h?"width":"height",t=N.has(p(o)),r=l.reference[d]-l.floating[e]+(t&&(null==(b=i.offset)?void 0:b[d])||0)+(t?0:x.crossAxis),n=l.reference[d]+l.reference[e]+(t?0:(null==(S=i.offset)?void 0:S[d])||0)-(t?x.crossAxis:0);w<r?w=r:w>n&&(w=n)}return{[h]:v,[d]:w}}}}(e),options:[e,t]}))():void 0,...el}),M&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var r,n,o,l,i;let{placement:a,middlewareData:s,rects:c,initialPlacement:u,platform:d,elements:w}=t,{mainAxis:T=!0,crossAxis:E=!0,fallbackPlacements:P,fallbackStrategy:A="bestFit",fallbackAxisSideDirection:L="none",flipAlignment:j=!0,...D}=f(e,t);if(null!=(r=s.arrow)&&r.alignmentOffset)return{};let N=p(a),k=g(u),I=p(u)===u,O=await (null==d.isRTL?void 0:d.isRTL(w.floating)),H=P||(I||!j?[R(u)]:function(e){let t=R(e);return[y(e),t,y(t)]}(u)),_="none"!==L;!P&&_&&H.push(...function(e,t,r,n){let o=h(e),l=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:C;default:return[]}}(p(e),"start"===r,n);return o&&(l=l.map(e=>e+"-"+o),t&&(l=l.concat(l.map(y)))),l}(u,j,L,O));let M=[u,...H],B=await d.detectOverflow(t,D),W=[],K=(null==(n=s.flip)?void 0:n.overflows)||[];if(T&&W.push(B[N]),E){let e=function(e,t,r){void 0===r&&(r=!1);let n=h(e),o=m(g(e)),l=v(o),i="x"===o?n===(r?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=R(i)),[i,R(i)]}(a,c,O);W.push(B[e[0]],B[e[1]])}if(K=[...K,{placement:a,overflows:W}],!W.every(e=>e<=0)){let e=((null==(o=s.flip)?void 0:o.index)||0)+1,t=M[e];if(t&&("alignment"!==E||k===g(t)||K.every(e=>g(e.placement)!==k||e.overflows[0]>0)))return{data:{index:e,overflows:K},reset:{placement:t}};let r=null==(l=K.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:l.placement;if(!r)switch(A){case"bestFit":{let e=null==(i=K.filter(e=>{if(_){let t=g(e.placement);return t===k||"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=u}if(a!==r)return{reset:{placement:r}}}return{}}}}(e),options:[e,t]}))({...el}),((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var r,n;let o,a,{placement:s,rects:c,platform:u,elements:d}=t,{apply:m=()=>{},...v}=f(e,t),w=await u.detectOverflow(t,v),y=p(s),x=h(s),b="y"===g(s),{width:S,height:C}=c.floating;"top"===y||"bottom"===y?(o=y,a=x===(await (null==u.isRTL?void 0:u.isRTL(d.floating))?"start":"end")?"left":"right"):(a=y,o="end"===x?"top":"bottom");let R=C-w.top-w.bottom,T=S-w.left-w.right,E=l(C-w[o],R),P=l(S-w[a],T),A=!t.middlewareData.shift,L=E,j=P;if(null!=(r=t.middlewareData.shift)&&r.enabled.x&&(j=T),null!=(n=t.middlewareData.shift)&&n.enabled.y&&(L=R),A&&!x){let e=i(w.left,0),t=i(w.right,0),r=i(w.top,0),n=i(w.bottom,0);b?j=S-2*(0!==e||0!==t?e+t:i(w.left,w.right)):L=C-2*(0!==r||0!==n?r+n:i(w.top,w.bottom))}await m({...t,availableWidth:j,availableHeight:L});let D=await u.getDimensions(d.floating);return S!==D.width||C!==D.height?{reset:{rects:!0}}:{}}}}(e),options:[e,t]}))({...el,apply:e=>{let{elements:t,rects:r,availableWidth:n,availableHeight:o}=e,{width:l,height:i}=r.reference,a=t.floating.style;a.setProperty("--radix-popper-available-width","".concat(n,"px")),a.setProperty("--radix-popper-available-height","".concat(o,"px")),a.setProperty("--radix-popper-anchor-width","".concat(l,"px")),a.setProperty("--radix-popper-anchor-height","".concat(i,"px"))}}),$&&((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:$,padding:H}),eZ({arrowWidth:J,arrowHeight:ee}),V&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){let{rects:r,platform:n}=t,{strategy:o="referenceHidden",...l}=f(e,t);switch(o){case"referenceHidden":{let e=j(await n.detectOverflow(t,{...l,elementContext:"reference"}),r.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:D(e)}}}case"escaped":{let e=j(await n.detectOverflow(t,{...l,altBoundary:!0}),r.floating);return{data:{escapedOffsets:e,escaped:D(e)}}}default:return{}}}}}(e),options:[e,t]}))({strategy:"referenceHidden",...el})]}),[ep,eh]=eJ(ec),em=(0,ek.c)(z);(0,eI.N)(()=>{ed&&(null==em||em())},[ed,em]);let ev=null==(r=ef.arrow)?void 0:r.x,ew=null==(o=ef.arrow)?void 0:o.y,eg=(null==(a=ef.arrow)?void 0:a.centerOffset)!==0,[ej,eN]=n.useState();return(0,eI.N)(()=>{X&&eN(window.getComputedStyle(X).zIndex)},[X]),(0,eL.jsx)("div",{ref:ea.setFloating,"data-radix-popper-content-wrapper":"",style:{...es,transform:ed?es.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ej,"--radix-popper-transform-origin":[null==(c=ef.transformOrigin)?void 0:c.x,null==(u=ef.transformOrigin)?void 0:u.y].join(" "),...(null==(d=ef.hide)?void 0:d.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,eL.jsx)(eG,{scope:E,placedSide:ep,onArrowChange:Q,arrowX:ev,arrowY:ew,shouldHideArrow:eg,children:(0,eL.jsx)(eA.sG.div,{"data-side":ep,"data-align":eh,...G,ref:q,style:{...G.style,animation:ed?void 0:"none"}})})})});eX.displayName=ez;var eY="PopperArrow",eq={top:"bottom",right:"left",bottom:"top",left:"right"},e$=n.forwardRef(function(e,t){let{__scopePopper:r,...n}=e,o=eU(eY,r),l=eq[o.placedSide];return(0,eL.jsx)("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:(0,eL.jsx)(ej,{...n,ref:t,style:{...n.style,display:"block"}})})});function eQ(e){return null!==e}e$.displayName=eY;var eZ=e=>({name:"transformOrigin",options:e,fn(t){var r,n,o,l,i;let{placement:a,rects:s,middlewareData:c}=t,u=(null==(r=c.arrow)?void 0:r.centerOffset)!==0,d=u?0:e.arrowWidth,f=u?0:e.arrowHeight,[p,h]=eJ(a),m={start:"0%",center:"50%",end:"100%"}[h],v=(null!=(l=null==(n=c.arrow)?void 0:n.x)?l:0)+d/2,w=(null!=(i=null==(o=c.arrow)?void 0:o.y)?i:0)+f/2,g="",y="";return"bottom"===p?(g=u?m:"".concat(v,"px"),y="".concat(-f,"px")):"top"===p?(g=u?m:"".concat(v,"px"),y="".concat(s.floating.height+f,"px")):"right"===p?(g="".concat(-f,"px"),y=u?m:"".concat(w,"px")):"left"===p&&(g="".concat(s.floating.width+f,"px"),y=u?m:"".concat(w,"px")),{data:{x:g,y}}}});function eJ(e){let[t,r="center"]=e.split("-");return[t,r]}var e0=eK,e1=eF,e2=eX,e3=e$},78134:(e,t,r)=>{r.d(t,{Qg:()=>i,bL:()=>s,s6:()=>a});var n=r(1856),o=r(93367),l=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,l.jsx)(o.sG.span,{...e,ref:t,style:{...i,...e.style}}));a.displayName="VisuallyHidden";var s=a},91722:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,[t,r]){return Math.min(r,Math.max(t,e))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[62326],{20763:(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(82737),N=n(52217);let E=(0,N.createServerReference)("70b2bba30986179182b8c1ff03c83ce22ac6c8090b",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")})]})})]})]})}},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]}},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})}},82737:(e,t,n)=>{n.d(t,{d:()=>a});var r=n(52217);let a=(0,r.createServerReference)("60aaaf09814b29767a23a36b59555df07282407555",r.callServer,void 0,r.findSourceMapURL,"getCommentsAction")},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]})}}}]);