trybeacon 0.1.50 → 0.1.52

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 (418) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +14 -10
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +26 -0
  6. package/.next/server/app/_global-error/page.js +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +11 -11
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  28. package/.next/server/app/api/board-annotations/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/board-annotations/route.js +1 -1
  30. package/.next/server/app/api/board-annotations/route.js.nft.json +1 -1
  31. package/.next/server/app/api/board-layout/route.js +1 -1
  32. package/.next/server/app/api/board-layout/route.js.nft.json +1 -1
  33. package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
  34. package/.next/server/app/api/bug-flags/[id]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/bug-flags/route.js +1 -1
  36. package/.next/server/app/api/bug-flags/route.js.nft.json +1 -1
  37. package/.next/server/app/api/code-graph/position/route.js +1 -1
  38. package/.next/server/app/api/code-graph/position/route.js.nft.json +1 -1
  39. package/.next/server/app/api/code-graph/route.js +1 -1
  40. package/.next/server/app/api/code-graph/route.js.nft.json +1 -1
  41. package/.next/server/app/api/context/feature/route.js +1 -1
  42. package/.next/server/app/api/context/feature/route.js.nft.json +1 -1
  43. package/.next/server/app/api/context/file/route.js +1 -1
  44. package/.next/server/app/api/context/file/route.js.nft.json +1 -1
  45. package/.next/server/app/api/context/route.js +2 -2
  46. package/.next/server/app/api/context/route.js.nft.json +1 -1
  47. package/.next/server/app/api/db/arrange/route.js +1 -1
  48. package/.next/server/app/api/db/arrange/route.js.nft.json +1 -1
  49. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  50. package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -1
  51. package/.next/server/app/api/db/position/route.js +1 -1
  52. package/.next/server/app/api/db/position/route.js.nft.json +1 -1
  53. package/.next/server/app/api/db/prune-planned/route.js +1 -1
  54. package/.next/server/app/api/db/prune-planned/route.js.nft.json +1 -1
  55. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  56. package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -1
  57. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  58. package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  60. package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -1
  61. package/.next/server/app/api/draft/approve/route.js +1 -1
  62. package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
  63. package/.next/server/app/api/draft/route.js +1 -1
  64. package/.next/server/app/api/draft/route.js.nft.json +1 -1
  65. package/.next/server/app/api/draft/status/route.js +1 -1
  66. package/.next/server/app/api/draft/status/route.js.nft.json +1 -1
  67. package/.next/server/app/api/edges/[id]/route.js +1 -1
  68. package/.next/server/app/api/edges/[id]/route.js.nft.json +1 -1
  69. package/.next/server/app/api/edges/route.js +1 -1
  70. package/.next/server/app/api/edges/route.js.nft.json +1 -1
  71. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  72. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -1
  73. package/.next/server/app/api/entities/route.js +1 -1
  74. package/.next/server/app/api/entities/route.js.nft.json +1 -1
  75. package/.next/server/app/api/feedback/[id]/route.js +1 -1
  76. package/.next/server/app/api/feedback/[id]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
  78. package/.next/server/app/api/feedback/[id]/vote/route.js.nft.json +1 -1
  79. package/.next/server/app/api/feedback/route.js +1 -1
  80. package/.next/server/app/api/feedback/route.js.nft.json +1 -1
  81. package/.next/server/app/api/flags/route.js +1 -1
  82. package/.next/server/app/api/flags/route.js.nft.json +1 -1
  83. package/.next/server/app/api/ingest/route.js +2 -2
  84. package/.next/server/app/api/ingest/route.js.nft.json +1 -1
  85. package/.next/server/app/api/init/route.js +2 -2
  86. package/.next/server/app/api/init/route.js.nft.json +1 -1
  87. package/.next/server/app/api/map/describe/route.js +2 -2
  88. package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
  89. package/.next/server/app/api/map/files/route.js +1 -1
  90. package/.next/server/app/api/map/files/route.js.nft.json +1 -1
  91. package/.next/server/app/api/map/finish/route.js +1 -1
  92. package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
  93. package/.next/server/app/api/map/route.js +1 -1
  94. package/.next/server/app/api/map/route.js.nft.json +1 -1
  95. package/.next/server/app/api/map/start/route.js +1 -1
  96. package/.next/server/app/api/map/start/route.js.nft.json +1 -1
  97. package/.next/server/app/api/map/touch-active/route.js +1 -1
  98. package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
  99. package/.next/server/app/api/mention-search/route.js +1 -0
  100. package/.next/server/app/api/mention-search/route.js.nft.json +1 -0
  101. package/.next/server/app/api/mention-search/route_client-reference-manifest.js +1 -0
  102. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  103. package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
  104. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  105. package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
  106. package/.next/server/app/api/nodes/positions/route.js +1 -1
  107. package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
  108. package/.next/server/app/api/nodes/route.js +1 -1
  109. package/.next/server/app/api/nodes/route.js.nft.json +1 -1
  110. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  111. package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -1
  112. package/.next/server/app/api/notes/[id]/route.js +1 -1
  113. package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -1
  114. package/.next/server/app/api/notes/route.js +1 -1
  115. package/.next/server/app/api/notes/route.js.nft.json +1 -1
  116. package/.next/server/app/api/open/route.js +1 -1
  117. package/.next/server/app/api/open/route.js.nft.json +1 -1
  118. package/.next/server/app/api/plan/annotations/route.js +3 -3
  119. package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -1
  120. package/.next/server/app/api/plan/approve/route.js +2 -2
  121. package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
  122. package/.next/server/app/api/plan/history/route.js +1 -1
  123. package/.next/server/app/api/plan/history/route.js.nft.json +1 -1
  124. package/.next/server/app/api/plan/markdown/route.js +1 -1
  125. package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -1
  126. package/.next/server/app/api/plan/presence/route.js +1 -1
  127. package/.next/server/app/api/plan/presence/route.js.nft.json +1 -1
  128. package/.next/server/app/api/plan/route.js +1 -1
  129. package/.next/server/app/api/plan/route.js.nft.json +1 -1
  130. package/.next/server/app/api/plan/verdict/route.js +1 -1
  131. package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -1
  132. package/.next/server/app/api/preferences/route.js +1 -1
  133. package/.next/server/app/api/preferences/route.js.nft.json +1 -1
  134. package/.next/server/app/api/project-meta/route.js +1 -1
  135. package/.next/server/app/api/project-meta/route.js.nft.json +1 -1
  136. package/.next/server/app/api/reset/route.js +1 -1
  137. package/.next/server/app/api/reset/route.js.nft.json +1 -1
  138. package/.next/server/app/api/scope-guard/check/route.js +1 -1
  139. package/.next/server/app/api/scope-guard/check/route.js.nft.json +1 -1
  140. package/.next/server/app/api/share/create/route.js +1 -0
  141. package/.next/server/app/api/share/create/route.js.nft.json +1 -0
  142. package/.next/server/app/api/share/create/route_client-reference-manifest.js +1 -0
  143. package/.next/server/app/api/share/route.js +1 -0
  144. package/.next/server/app/api/share/route.js.nft.json +1 -0
  145. package/.next/server/app/api/share/route_client-reference-manifest.js +1 -0
  146. package/.next/server/app/api/stream/route.js +2 -2
  147. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  148. package/.next/server/app/api/tab/nav/route.js +1 -1
  149. package/.next/server/app/api/tab/nav/route.js.nft.json +1 -1
  150. package/.next/server/app/api/tab/presence/route.js +1 -1
  151. package/.next/server/app/api/tab/presence/route.js.nft.json +1 -1
  152. package/.next/server/app/api/telemetry/route.js +1 -1
  153. package/.next/server/app/api/telemetry/route.js.nft.json +1 -1
  154. package/.next/server/app/api/telemetry/stats/route.js +1 -1
  155. package/.next/server/app/api/telemetry/stats/route.js.nft.json +1 -1
  156. package/.next/server/app/api/version/route.js +1 -1
  157. package/.next/server/app/api/version/route.js.nft.json +1 -1
  158. package/.next/server/app/api/workspace/activate/route.js +1 -1
  159. package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -1
  160. package/.next/server/app/api/workspace/route.js +1 -1
  161. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  162. package/.next/server/app/apple-icon.png/route.js +1 -1
  163. package/.next/server/app/docs/page.js +2 -2
  164. package/.next/server/app/docs/page.js.nft.json +1 -1
  165. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/docs.html +1 -1
  167. package/.next/server/app/docs.rsc +11 -11
  168. package/.next/server/app/docs.segments/_full.segment.rsc +11 -11
  169. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  170. package/.next/server/app/docs.segments/_index.segment.rsc +11 -11
  171. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  172. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  173. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  174. package/.next/server/app/feedback/page.js +2 -2
  175. package/.next/server/app/feedback/page.js.nft.json +1 -1
  176. package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/feedback.html +1 -1
  178. package/.next/server/app/feedback.rsc +11 -11
  179. package/.next/server/app/feedback.segments/_full.segment.rsc +11 -11
  180. package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  181. package/.next/server/app/feedback.segments/_index.segment.rsc +11 -11
  182. package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  184. package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  185. package/.next/server/app/help/page.js +2 -2
  186. package/.next/server/app/help/page.js.nft.json +1 -1
  187. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  188. package/.next/server/app/help.html +1 -1
  189. package/.next/server/app/help.rsc +11 -11
  190. package/.next/server/app/help.segments/_full.segment.rsc +11 -11
  191. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  192. package/.next/server/app/help.segments/_index.segment.rsc +11 -11
  193. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  194. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  195. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  196. package/.next/server/app/icon.svg/route.js +1 -1
  197. package/.next/server/app/index.html +1 -1
  198. package/.next/server/app/index.rsc +12 -12
  199. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  200. package/.next/server/app/index.segments/_full.segment.rsc +12 -12
  201. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  202. package/.next/server/app/index.segments/_index.segment.rsc +11 -11
  203. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  204. package/.next/server/app/map/page.js +2 -2
  205. package/.next/server/app/map/page.js.nft.json +1 -1
  206. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  207. package/.next/server/app/page.js +2 -2
  208. package/.next/server/app/page.js.nft.json +1 -1
  209. package/.next/server/app/page_client-reference-manifest.js +1 -1
  210. package/.next/server/app/plan/page.js +2 -2
  211. package/.next/server/app/plan/page.js.nft.json +1 -1
  212. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  213. package/.next/server/app/s/[token]/page.js +2 -0
  214. package/.next/server/app/s/[token]/page.js.nft.json +1 -0
  215. package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -0
  216. package/.next/server/app/settings/page.js +2 -2
  217. package/.next/server/app/settings/page.js.nft.json +1 -1
  218. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app-paths-manifest.json +14 -10
  220. package/.next/server/chunks/1669.js +1 -0
  221. package/.next/server/chunks/2050.js +1 -0
  222. package/.next/server/chunks/249.js +1 -1
  223. package/.next/server/chunks/{3221.js → 2693.js} +1 -1
  224. package/.next/server/chunks/2942.js +1 -0
  225. package/.next/server/chunks/3098.js +1 -0
  226. package/.next/server/chunks/3254.js +1 -1
  227. package/.next/server/chunks/{2999.js → 3304.js} +65 -4
  228. package/.next/server/chunks/4046.js +3 -3
  229. package/.next/server/chunks/4307.js +1 -1
  230. package/.next/server/chunks/{4217.js → 4700.js} +19 -19
  231. package/.next/server/chunks/4872.js +1 -0
  232. package/.next/server/chunks/{4940.js → 7350.js} +1 -1
  233. package/.next/server/chunks/{8423.js → 9338.js} +8 -8
  234. package/.next/server/chunks/9683.js +1 -1
  235. package/.next/server/chunks/9734.js +1 -1
  236. package/.next/server/chunks/9884.js +2 -2
  237. package/.next/server/middleware-build-manifest.js +1 -1
  238. package/.next/server/middleware.js +1 -1
  239. package/.next/server/pages/404.html +1 -1
  240. package/.next/server/pages/500.html +1 -1
  241. package/.next/server/server-reference-manifest.js +1 -1
  242. package/.next/server/server-reference-manifest.json +1 -1
  243. package/.next/static/XBUVgZagQUtfUZn0r6pJS/_buildManifest.js +1 -0
  244. package/.next/static/chunks/1099-208cc390a92efae0.js +62 -0
  245. package/.next/static/chunks/1175-715e4664e518ded4.js +1 -0
  246. package/.next/static/chunks/1397-96849550aca888c5.js +1 -0
  247. package/.next/static/chunks/2231-379685a022444780.js +1 -0
  248. package/.next/static/chunks/{2500-15c373070714563d.js → 3021-ed52ee7b3f02e2cd.js} +1 -1
  249. package/.next/static/chunks/54a60aa6-0378818fce5a4dc5.js +82 -0
  250. package/.next/static/chunks/874-c750840a8644deb1.js +1 -0
  251. package/.next/static/chunks/9887-e8954568a4031ed3.js +74 -0
  252. package/.next/static/chunks/app/_global-error/page-548a84d85e061550.js +1 -0
  253. package/.next/static/chunks/app/api/board-annotations/[id]/route-548a84d85e061550.js +1 -0
  254. package/.next/static/chunks/app/api/board-annotations/route-548a84d85e061550.js +1 -0
  255. package/.next/static/chunks/app/api/board-layout/route-548a84d85e061550.js +1 -0
  256. package/.next/static/chunks/app/api/bug-flags/[id]/route-548a84d85e061550.js +1 -0
  257. package/.next/static/chunks/app/api/bug-flags/route-548a84d85e061550.js +1 -0
  258. package/.next/static/chunks/app/api/code-graph/position/route-548a84d85e061550.js +1 -0
  259. package/.next/static/chunks/app/api/code-graph/route-548a84d85e061550.js +1 -0
  260. package/.next/static/chunks/app/api/context/feature/route-548a84d85e061550.js +1 -0
  261. package/.next/static/chunks/app/api/context/file/route-548a84d85e061550.js +1 -0
  262. package/.next/static/chunks/app/api/context/route-548a84d85e061550.js +1 -0
  263. package/.next/static/chunks/app/api/db/arrange/route-548a84d85e061550.js +1 -0
  264. package/.next/static/chunks/app/api/db/backfill-access/route-548a84d85e061550.js +1 -0
  265. package/.next/static/chunks/app/api/db/position/route-548a84d85e061550.js +1 -0
  266. package/.next/static/chunks/app/api/db/prune-planned/route-548a84d85e061550.js +1 -0
  267. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-548a84d85e061550.js +1 -0
  268. package/.next/static/chunks/app/api/db/relations/[id]/route-548a84d85e061550.js +1 -0
  269. package/.next/static/chunks/app/api/db/tables/[id]/route-548a84d85e061550.js +1 -0
  270. package/.next/static/chunks/app/api/draft/approve/route-548a84d85e061550.js +1 -0
  271. package/.next/static/chunks/app/api/draft/route-548a84d85e061550.js +1 -0
  272. package/.next/static/chunks/app/api/draft/status/route-548a84d85e061550.js +1 -0
  273. package/.next/static/chunks/app/api/edges/[id]/route-548a84d85e061550.js +1 -0
  274. package/.next/static/chunks/app/api/edges/route-548a84d85e061550.js +1 -0
  275. package/.next/static/chunks/app/api/endpoints/[id]/route-548a84d85e061550.js +1 -0
  276. package/.next/static/chunks/app/api/entities/route-548a84d85e061550.js +1 -0
  277. package/.next/static/chunks/app/api/feedback/[id]/route-548a84d85e061550.js +1 -0
  278. package/.next/static/chunks/app/api/feedback/[id]/vote/route-548a84d85e061550.js +1 -0
  279. package/.next/static/chunks/app/api/feedback/route-548a84d85e061550.js +1 -0
  280. package/.next/static/chunks/app/api/flags/route-548a84d85e061550.js +1 -0
  281. package/.next/static/chunks/app/api/ingest/route-548a84d85e061550.js +1 -0
  282. package/.next/static/chunks/app/api/init/route-548a84d85e061550.js +1 -0
  283. package/.next/static/chunks/app/api/map/describe/route-548a84d85e061550.js +1 -0
  284. package/.next/static/chunks/app/api/map/files/route-548a84d85e061550.js +1 -0
  285. package/.next/static/chunks/app/api/map/finish/route-548a84d85e061550.js +1 -0
  286. package/.next/static/chunks/app/api/map/route-548a84d85e061550.js +1 -0
  287. package/.next/static/chunks/app/api/map/start/route-548a84d85e061550.js +1 -0
  288. package/.next/static/chunks/app/api/map/touch-active/route-548a84d85e061550.js +1 -0
  289. package/.next/static/chunks/app/api/mention-search/route-548a84d85e061550.js +1 -0
  290. package/.next/static/chunks/app/api/nodes/[id]/position/route-548a84d85e061550.js +1 -0
  291. package/.next/static/chunks/app/api/nodes/[id]/route-548a84d85e061550.js +1 -0
  292. package/.next/static/chunks/app/api/nodes/positions/route-548a84d85e061550.js +1 -0
  293. package/.next/static/chunks/app/api/nodes/route-548a84d85e061550.js +1 -0
  294. package/.next/static/chunks/app/api/nodes/subtasks/route-548a84d85e061550.js +1 -0
  295. package/.next/static/chunks/app/api/notes/[id]/route-548a84d85e061550.js +1 -0
  296. package/.next/static/chunks/app/api/notes/route-548a84d85e061550.js +1 -0
  297. package/.next/static/chunks/app/api/open/route-548a84d85e061550.js +1 -0
  298. package/.next/static/chunks/app/api/plan/annotations/route-548a84d85e061550.js +1 -0
  299. package/.next/static/chunks/app/api/plan/approve/route-548a84d85e061550.js +1 -0
  300. package/.next/static/chunks/app/api/plan/history/route-548a84d85e061550.js +1 -0
  301. package/.next/static/chunks/app/api/plan/markdown/route-548a84d85e061550.js +1 -0
  302. package/.next/static/chunks/app/api/plan/presence/route-548a84d85e061550.js +1 -0
  303. package/.next/static/chunks/app/api/plan/route-548a84d85e061550.js +1 -0
  304. package/.next/static/chunks/app/api/plan/verdict/route-548a84d85e061550.js +1 -0
  305. package/.next/static/chunks/app/api/preferences/route-548a84d85e061550.js +1 -0
  306. package/.next/static/chunks/app/api/project-meta/route-548a84d85e061550.js +1 -0
  307. package/.next/static/chunks/app/api/reset/route-548a84d85e061550.js +1 -0
  308. package/.next/static/chunks/app/api/scope-guard/check/route-548a84d85e061550.js +1 -0
  309. package/.next/static/chunks/app/api/share/create/route-548a84d85e061550.js +1 -0
  310. package/.next/static/chunks/app/api/share/route-548a84d85e061550.js +1 -0
  311. package/.next/static/chunks/app/api/stream/route-548a84d85e061550.js +1 -0
  312. package/.next/static/chunks/app/api/tab/nav/route-548a84d85e061550.js +1 -0
  313. package/.next/static/chunks/app/api/tab/presence/route-548a84d85e061550.js +1 -0
  314. package/.next/static/chunks/app/api/telemetry/route-548a84d85e061550.js +1 -0
  315. package/.next/static/chunks/app/api/telemetry/stats/route-548a84d85e061550.js +1 -0
  316. package/.next/static/chunks/app/api/version/route-548a84d85e061550.js +1 -0
  317. package/.next/static/chunks/app/api/workspace/activate/route-548a84d85e061550.js +1 -0
  318. package/.next/static/chunks/app/api/workspace/route-548a84d85e061550.js +1 -0
  319. package/.next/static/chunks/app/layout-3115f8503ff00902.js +1 -0
  320. package/.next/static/chunks/app/map/page-6a2f4ef0b7260ad6.js +1 -0
  321. package/.next/static/chunks/app/{page-541e900d67f17dae.js → page-a229992616b3a3de.js} +1 -1
  322. package/.next/static/chunks/app/plan/page-9fe41756fd39d3ec.js +1 -0
  323. package/.next/static/chunks/app/s/[token]/page-4ddcc6ddb2252f2b.js +1 -0
  324. package/.next/static/chunks/next/dist/client/components/builtin/app-error-548a84d85e061550.js +1 -0
  325. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-548a84d85e061550.js +1 -0
  326. package/.next/static/chunks/next/dist/client/components/builtin/not-found-548a84d85e061550.js +1 -0
  327. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-548a84d85e061550.js +1 -0
  328. package/.next/static/css/d60eecd8c5676c16.css +1 -0
  329. package/.next/trace +42 -39
  330. package/.next/trace-build +1 -1
  331. package/.next/types/app/api/mention-search/route.ts +351 -0
  332. package/.next/types/app/api/share/create/route.ts +351 -0
  333. package/.next/types/app/api/share/route.ts +351 -0
  334. package/.next/types/app/s/[token]/page.ts +87 -0
  335. package/.next/types/routes.d.ts +6 -2
  336. package/.next/types/validator.ts +36 -0
  337. package/package.json +11 -8
  338. package/.next/server/chunks/1341.js +0 -1
  339. package/.next/server/chunks/9773.js +0 -1
  340. package/.next/static/J1AU9kp6Vs1x9YOBkXMiR/_buildManifest.js +0 -1
  341. package/.next/static/chunks/1439-260d1c3a9b3b79b3.js +0 -1
  342. package/.next/static/chunks/1487-13f43d25413ae041.js +0 -1
  343. package/.next/static/chunks/3343-af1292b51a276724.js +0 -1
  344. package/.next/static/chunks/54a60aa6-407808fee210eca2.js +0 -82
  345. package/.next/static/chunks/7886-46eaf3a9533310f7.js +0 -74
  346. package/.next/static/chunks/app/_global-error/page-dc3f0f4fd9e88c4e.js +0 -1
  347. package/.next/static/chunks/app/api/board-annotations/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  348. package/.next/static/chunks/app/api/board-annotations/route-dc3f0f4fd9e88c4e.js +0 -1
  349. package/.next/static/chunks/app/api/board-layout/route-dc3f0f4fd9e88c4e.js +0 -1
  350. package/.next/static/chunks/app/api/bug-flags/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  351. package/.next/static/chunks/app/api/bug-flags/route-dc3f0f4fd9e88c4e.js +0 -1
  352. package/.next/static/chunks/app/api/code-graph/position/route-dc3f0f4fd9e88c4e.js +0 -1
  353. package/.next/static/chunks/app/api/code-graph/route-dc3f0f4fd9e88c4e.js +0 -1
  354. package/.next/static/chunks/app/api/context/feature/route-dc3f0f4fd9e88c4e.js +0 -1
  355. package/.next/static/chunks/app/api/context/file/route-dc3f0f4fd9e88c4e.js +0 -1
  356. package/.next/static/chunks/app/api/context/route-dc3f0f4fd9e88c4e.js +0 -1
  357. package/.next/static/chunks/app/api/db/arrange/route-dc3f0f4fd9e88c4e.js +0 -1
  358. package/.next/static/chunks/app/api/db/backfill-access/route-dc3f0f4fd9e88c4e.js +0 -1
  359. package/.next/static/chunks/app/api/db/position/route-dc3f0f4fd9e88c4e.js +0 -1
  360. package/.next/static/chunks/app/api/db/prune-planned/route-dc3f0f4fd9e88c4e.js +0 -1
  361. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-dc3f0f4fd9e88c4e.js +0 -1
  362. package/.next/static/chunks/app/api/db/relations/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  363. package/.next/static/chunks/app/api/db/tables/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  364. package/.next/static/chunks/app/api/draft/approve/route-dc3f0f4fd9e88c4e.js +0 -1
  365. package/.next/static/chunks/app/api/draft/route-dc3f0f4fd9e88c4e.js +0 -1
  366. package/.next/static/chunks/app/api/draft/status/route-dc3f0f4fd9e88c4e.js +0 -1
  367. package/.next/static/chunks/app/api/edges/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  368. package/.next/static/chunks/app/api/edges/route-dc3f0f4fd9e88c4e.js +0 -1
  369. package/.next/static/chunks/app/api/endpoints/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  370. package/.next/static/chunks/app/api/entities/route-dc3f0f4fd9e88c4e.js +0 -1
  371. package/.next/static/chunks/app/api/feedback/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  372. package/.next/static/chunks/app/api/feedback/[id]/vote/route-dc3f0f4fd9e88c4e.js +0 -1
  373. package/.next/static/chunks/app/api/feedback/route-dc3f0f4fd9e88c4e.js +0 -1
  374. package/.next/static/chunks/app/api/flags/route-dc3f0f4fd9e88c4e.js +0 -1
  375. package/.next/static/chunks/app/api/ingest/route-dc3f0f4fd9e88c4e.js +0 -1
  376. package/.next/static/chunks/app/api/init/route-dc3f0f4fd9e88c4e.js +0 -1
  377. package/.next/static/chunks/app/api/map/describe/route-dc3f0f4fd9e88c4e.js +0 -1
  378. package/.next/static/chunks/app/api/map/files/route-dc3f0f4fd9e88c4e.js +0 -1
  379. package/.next/static/chunks/app/api/map/finish/route-dc3f0f4fd9e88c4e.js +0 -1
  380. package/.next/static/chunks/app/api/map/route-dc3f0f4fd9e88c4e.js +0 -1
  381. package/.next/static/chunks/app/api/map/start/route-dc3f0f4fd9e88c4e.js +0 -1
  382. package/.next/static/chunks/app/api/map/touch-active/route-dc3f0f4fd9e88c4e.js +0 -1
  383. package/.next/static/chunks/app/api/nodes/[id]/position/route-dc3f0f4fd9e88c4e.js +0 -1
  384. package/.next/static/chunks/app/api/nodes/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  385. package/.next/static/chunks/app/api/nodes/positions/route-dc3f0f4fd9e88c4e.js +0 -1
  386. package/.next/static/chunks/app/api/nodes/route-dc3f0f4fd9e88c4e.js +0 -1
  387. package/.next/static/chunks/app/api/nodes/subtasks/route-dc3f0f4fd9e88c4e.js +0 -1
  388. package/.next/static/chunks/app/api/notes/[id]/route-dc3f0f4fd9e88c4e.js +0 -1
  389. package/.next/static/chunks/app/api/notes/route-dc3f0f4fd9e88c4e.js +0 -1
  390. package/.next/static/chunks/app/api/open/route-dc3f0f4fd9e88c4e.js +0 -1
  391. package/.next/static/chunks/app/api/plan/annotations/route-dc3f0f4fd9e88c4e.js +0 -1
  392. package/.next/static/chunks/app/api/plan/approve/route-dc3f0f4fd9e88c4e.js +0 -1
  393. package/.next/static/chunks/app/api/plan/history/route-dc3f0f4fd9e88c4e.js +0 -1
  394. package/.next/static/chunks/app/api/plan/markdown/route-dc3f0f4fd9e88c4e.js +0 -1
  395. package/.next/static/chunks/app/api/plan/presence/route-dc3f0f4fd9e88c4e.js +0 -1
  396. package/.next/static/chunks/app/api/plan/route-dc3f0f4fd9e88c4e.js +0 -1
  397. package/.next/static/chunks/app/api/plan/verdict/route-dc3f0f4fd9e88c4e.js +0 -1
  398. package/.next/static/chunks/app/api/preferences/route-dc3f0f4fd9e88c4e.js +0 -1
  399. package/.next/static/chunks/app/api/project-meta/route-dc3f0f4fd9e88c4e.js +0 -1
  400. package/.next/static/chunks/app/api/reset/route-dc3f0f4fd9e88c4e.js +0 -1
  401. package/.next/static/chunks/app/api/scope-guard/check/route-dc3f0f4fd9e88c4e.js +0 -1
  402. package/.next/static/chunks/app/api/stream/route-dc3f0f4fd9e88c4e.js +0 -1
  403. package/.next/static/chunks/app/api/tab/nav/route-dc3f0f4fd9e88c4e.js +0 -1
  404. package/.next/static/chunks/app/api/tab/presence/route-dc3f0f4fd9e88c4e.js +0 -1
  405. package/.next/static/chunks/app/api/telemetry/route-dc3f0f4fd9e88c4e.js +0 -1
  406. package/.next/static/chunks/app/api/telemetry/stats/route-dc3f0f4fd9e88c4e.js +0 -1
  407. package/.next/static/chunks/app/api/version/route-dc3f0f4fd9e88c4e.js +0 -1
  408. package/.next/static/chunks/app/api/workspace/activate/route-dc3f0f4fd9e88c4e.js +0 -1
  409. package/.next/static/chunks/app/api/workspace/route-dc3f0f4fd9e88c4e.js +0 -1
  410. package/.next/static/chunks/app/layout-1bc5f9fd4ce6bff9.js +0 -1
  411. package/.next/static/chunks/app/map/page-5074176a5e746ffb.js +0 -1
  412. package/.next/static/chunks/app/plan/page-3c4c1fc03275299f.js +0 -1
  413. package/.next/static/chunks/next/dist/client/components/builtin/app-error-dc3f0f4fd9e88c4e.js +0 -1
  414. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-dc3f0f4fd9e88c4e.js +0 -1
  415. package/.next/static/chunks/next/dist/client/components/builtin/not-found-dc3f0f4fd9e88c4e.js +0 -1
  416. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-dc3f0f4fd9e88c4e.js +0 -1
  417. package/.next/static/css/629ab377241de9ca.css +0 -1
  418. /package/.next/static/{J1AU9kp6Vs1x9YOBkXMiR → XBUVgZagQUtfUZn0r6pJS}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1487],{4474:(e,t,n)=>{n.d(t,{$:()=>l});var a=n(95155),r=n(6539),s=n(18460),o=n(91337);let i=(0,s.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l({className:e,variant:t="default",size:n="default",...s}){return(0,a.jsx)(r.Button,{"data-slot":"button",className:(0,o.cn)(i({variant:t,size:n,className:e})),...s})}},9991:(e,t,n)=>{n.d(t,{X:()=>c});var a=n(95155),r=n(12115),s=n(65377),o=n(9005),i=n(91337),l=n(56614);function d(e){if(!e||!e.tagName)return!1;let t=e.tagName;return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t||e.isContentEditable}function c({query:e,onQuery:t,hits:n,onPick:u,onZoomToMatches:m,placeholder:p="Search…"}){let[x,h]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=e=>{x||e.metaKey||e.ctrlKey||e.altKey||1!==e.key.length||" "===e.key||d(e.target)||d(document.activeElement)||(e.preventDefault(),h(!0),t(e.key))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x,t]),(0,a.jsxs)(l.er,{title:"Search",open:x,onOpenChange:e=>e?h(!0):void(h(!1),t("")),outsideClicksToClose:2,trigger:(t,n)=>(0,a.jsx)("button",{type:"button",onClick:n,title:"Search this canvas",className:(0,i.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",t||e.trim()?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,a.jsx)(s.A,{className:"size-4"})}),children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{autoFocus:!0,value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m&&(e.preventDefault(),m())},placeholder:p,className:"w-full rounded-md border border-white/10 bg-white/[0.04] py-1 pl-2 pr-7 text-[12px] outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]"}),e&&(0,a.jsx)("button",{type:"button",onClick:()=>t(""),title:"Clear search",className:"absolute right-1 top-1/2 flex size-5 -translate-y-1/2 items-center justify-center rounded text-muted-foreground/60 transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(o.A,{className:"size-3.5"})})]}),(0,a.jsxs)("div",{className:"mt-2 max-h-64 space-y-0.5 overflow-y-auto",children:[e.trim()&&0===n.length&&(0,a.jsx)("div",{className:"px-1 py-1 text-[11px] text-muted-foreground",children:"No matches"}),n.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>{u(e.id),h(!1)},className:"group flex w-full items-center gap-2 rounded-md px-2 py-1 text-left transition-colors hover:bg-white/5",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12px] text-muted-foreground transition-colors group-hover:text-foreground",children:e.label}),e.sublabel&&(0,a.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground/50",children:e.sublabel})]},e.id))]})]})}},12410:(e,t,n)=>{n.d(t,{a2:()=>o,i3:()=>d,xZ:()=>i});let a=["bg-emerald-500/15 text-emerald-300","bg-sky-500/15 text-sky-300","bg-violet-500/15 text-violet-300","bg-amber-500/15 text-amber-200","bg-rose-500/15 text-rose-300","bg-cyan-500/15 text-cyan-300","bg-fuchsia-500/15 text-fuchsia-300","bg-lime-500/15 text-lime-300","bg-orange-500/15 text-orange-300","bg-teal-500/15 text-teal-300","bg-indigo-500/15 text-indigo-300","bg-pink-500/15 text-pink-300"],r=["border-emerald-500/20 bg-emerald-500/[0.04]","border-sky-500/20 bg-sky-500/[0.04]","border-violet-500/20 bg-violet-500/[0.04]","border-amber-500/20 bg-amber-500/[0.04]","border-rose-500/20 bg-rose-500/[0.04]","border-cyan-500/20 bg-cyan-500/[0.04]","border-fuchsia-500/20 bg-fuchsia-500/[0.04]","border-lime-500/20 bg-lime-500/[0.04]","border-orange-500/20 bg-orange-500/[0.04]","border-teal-500/20 bg-teal-500/[0.04]","border-indigo-500/20 bg-indigo-500/[0.04]","border-pink-500/20 bg-pink-500/[0.04]"];function s(e){let t=(e??"").trim().toUpperCase();if(!t)return null;let n=0;for(let e=0;e<t.length;e++)n=31*n+t.charCodeAt(e)>>>0;return n%a.length}function o(e){let t=s(e);return null===t?"bg-white/[0.06] text-muted-foreground":a[t]}function i(e){let t=s(e);return null===t?"border-white/10 bg-white/[0.02]":r[t]}let l=["#34d399","#38bdf8","#a78bfa","#fbbf24","#fb7185","#22d3ee","#e879f9","#a3e635","#fb923c","#2dd4bf","#818cf8","#f472b6"];function d(e){let t=s(e);return null===t?"#9ca3af":l[t]}},14983:(e,t,n)=>{n.d(t,{$$:()=>o,Qk:()=>s,RU:()=>a,Uy:()=>r,jF:()=>i,r2:()=>c,sQ:()=>l,zn:()=>d});let a="0 0 0 3px var(--accent-2,#ff7a45), 0 0 32px -2px var(--accent-2,#ff7a45)",r=.14;function s(e,t){let n=t.trim().toLowerCase();if(!n)return!1;for(let t of e)if(t&&t.toLowerCase().includes(n))return!0;return!1}function o(e){return[e.title,e.role,e.plain,e.cluster,e.status].filter(Boolean)}function i(e){let t=[e.name,e.domain,e.description];for(let n of e.columns??[])t.push(n.name,n.type,n.note);return t.filter(Boolean)}function l(e){return[e.method,e.path,e.domain,e.description].filter(Boolean)}function d(e){return[e.path,e.lang].filter(Boolean)}function c(e,t,n,a,r=12){let o=t.trim().toLowerCase();if(!o)return[];let i=[];for(let t of e){if(!s(n(t),o))continue;let e=a(t);i.push({hit:e,score:function(e,t){let n=e.toLowerCase();return n===t?0:n.startsWith(t)?1:RegExp(`(^|[^a-z0-9])${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}`,"i").test(e)?2:n.includes(t)?3:4}(e.label,o)})}return i.sort((e,t)=>e.score-t.score||e.hit.label.length-t.hit.label.length),i.slice(0,r).map(e=>e.hit)}},16607:(e,t,n)=>{n.d(t,{d:()=>c});var a=n(95155),r=n(24413),s=n(9005),o=n(78780),i=n(76721),l=n(82099),d=n(91337);function c({steps:e,index:t,onPrev:n,onNext:u,onExit:m,onGoto:p}){let x=e[t];if(!x)return null;let h=t===e.length-1;return(0,a.jsxs)(l.b,{className:"absolute bottom-3 left-3 top-16 z-10 flex w-72 flex-col rounded-2xl",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(r.A,{className:"size-3.5"}),"Guided tour"]}),(0,a.jsx)("button",{onClick:m,title:"End tour (Esc)",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(s.A,{className:"size-4"})})]}),(0,a.jsxs)("div",{className:"border-b border-white/10 px-3.5 py-3",children:[(0,a.jsxs)("div",{className:"text-[10px] font-medium uppercase tracking-wide text-[var(--accent-2,#ff7a45)]",children:["Step ",t+1," / ",e.length]}),(0,a.jsx)("h2",{className:"mt-1 break-words text-sm font-semibold leading-tight",children:x.title}),(0,a.jsx)("p",{className:"mt-1 text-[11px] leading-snug text-muted-foreground",children:x.summary})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-1.5",children:(0,a.jsx)("ol",{className:"space-y-0.5",children:e.map((e,n)=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{onClick:()=>p(n),title:e.title,className:(0,d.cn)("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors",n===t?"bg-white/[0.08] text-foreground":"text-muted-foreground hover:bg-white/[0.04] hover:text-foreground"),children:[(0,a.jsx)("span",{className:(0,d.cn)("flex size-4 shrink-0 items-center justify-center rounded-full text-[9px] font-bold",n===t?"bg-[var(--accent-2,#ff7a45)] text-background":"bg-white/10 text-muted-foreground"),children:n+1}),(0,a.jsx)("span",{className:"truncate text-[11px]",children:e.title})]})},e.id))})}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-white/10 p-2",children:[(0,a.jsxs)("button",{onClick:n,disabled:0===t,className:"flex items-center gap-1 rounded-md px-2 py-1.5 text-[11px] text-muted-foreground transition-colors enabled:hover:bg-white/[0.06] enabled:hover:text-foreground disabled:opacity-40",children:[(0,a.jsx)(o.A,{className:"size-3.5"})," Prev"]}),h?(0,a.jsx)("button",{onClick:m,className:"rounded-md bg-[var(--accent-2,#ff7a45)]/90 px-3 py-1.5 text-[11px] font-semibold text-background transition-colors hover:bg-[var(--accent-2,#ff7a45)]",children:"Done"}):(0,a.jsxs)("button",{onClick:u,className:"flex items-center gap-1 rounded-md bg-white/10 px-3 py-1.5 text-[11px] font-semibold text-foreground transition-colors hover:bg-white/[0.16]",children:["Next ",(0,a.jsx)(i.A,{className:"size-3.5"})]})]})]})}},17918:(e,t,n)=>{n.d(t,{Sh:()=>c,V5:()=>d,e0:()=>m});var a=n(95155),r=n(12115),s=n(81750),o=n(6266),i=n(9005),l=n(91337);let d="#ff7a45";function c({data:e,selected:t}){let[n,u]=(0,r.useState)(e.text);return(0,r.useEffect)(()=>{u(e.text)},[e.text]),(0,a.jsxs)("div",{onClick:()=>e.onClick?.(e.annotationId),className:(0,l.cn)("group/anno relative w-[270px] rounded-xl border border-white/10 bg-[#1b1b1e]/95 px-4 py-3 shadow-[0_18px_50px_-20px_rgba(0,0,0,0.9)] backdrop-blur transition-colors hover:border-white/20",!e.editable&&"cursor-pointer",t&&"border-[#ff7a45]/50"),children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute -left-px bottom-2 top-2 w-[3px] rounded-full",style:{background:d}}),(0,a.jsx)(s.h7,{type:"target",id:"in",position:o.yX.Top,isConnectable:!1,className:"!pointer-events-none !size-1 !min-h-0 !min-w-0 !border-0 !bg-transparent",style:{left:"auto",right:22,top:0}}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("div",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.22em]",style:{color:d},children:"Annotation \xb7 You"}),e.editable&&e.onDelete&&(0,a.jsx)("button",{type:"button",title:"Delete annotation",onClick:t=>{t.stopPropagation(),e.onDelete?.(e.annotationId)},className:"nodrag nopan -mr-1 rounded p-0.5 text-muted-foreground/60 opacity-0 transition-opacity hover:text-red-300 group-hover/anno:opacity-100",children:(0,a.jsx)(i.A,{className:"size-3"})})]}),e.editable?(0,a.jsx)("textarea",{value:n,autoFocus:!e.text.trim(),placeholder:"Type your annotation…",onChange:e=>u(e.target.value),onBlur:()=>{n!==e.text&&e.onChangeText?.(e.annotationId,n)},onKeyDown:e=>e.stopPropagation(),className:"nodrag nopan thin-scroll field-sizing-content mt-1.5 max-h-40 min-h-[2.25rem] w-full resize-none overflow-y-auto bg-transparent text-[13px] leading-snug text-foreground/95 outline-none placeholder:text-muted-foreground/60"}):(0,a.jsx)("div",{className:"thin-scroll mt-1.5 max-h-40 overflow-y-auto text-[13px] leading-snug text-foreground/95",children:e.text.trim()?e.text:(0,a.jsx)("span",{className:"text-muted-foreground",children:"…"})})]})}function u({n:e,annotationId:t,onClick:n}){return(0,a.jsxs)("button",{type:"button",title:`Annotation ${e} — view comment`,onClick:e=>{e.stopPropagation(),n?.(t)},className:"nodrag nopan relative flex size-6 items-center justify-center rounded-full font-mono text-[11px] font-bold text-[#181818] shadow-[0_0_0_3px_rgba(255,122,69,0.22),0_0_16px_2px_rgba(255,122,69,0.4)] transition-transform hover:scale-110",style:{background:d},children:[e,(0,a.jsx)(s.h7,{type:"source",id:`pin-${t}`,position:o.yX.Bottom,isConnectable:!1,className:"!pointer-events-none !size-1 !min-h-0 !min-w-0 !border-0 !bg-transparent",style:{left:"50%",bottom:2}})]})}function m({pins:e,onPinClick:t}){return e.length?(0,a.jsx)("span",{className:"absolute -right-3 top-1/2 z-10 flex -translate-y-1/2 flex-row-reverse gap-1",children:e.map(e=>(0,a.jsx)(u,{n:e.n,annotationId:e.id,onClick:t},e.id))}):null}},18874:(e,t,n)=>{n.d(t,{F1:()=>i,e6:()=>s,qA:()=>r,ru:()=>o});let a={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function r(e){return e&&a[e]||"#8a8a8a"}let s={GET:"#7bd389",POST:"#4ea1ff",PUT:"#ffb86b",PATCH:"#ffb86b",DELETE:"#ff3860"},o={read:"#4ea1ff",write:"#ffb86b","read-write":"#c792ea"};function i(e,t){let n=new Set([e]);for(let a of t)a.source===e&&n.add(a.target),a.target===e&&n.add(a.source);return n}},24692:(e,t,n)=>{n.d(t,{I:()=>l});var a=n(95155),r=n(81750),s=n(6266),o=n(65738),i=n(28736);function l(e){let{deleteElements:t}=(0,r.VH)(),n=(0,r.JY)(e.source),l=(0,r.JY)(e.target),d=n&&l?(0,i.U)(n,l):null,[c,u,m]=(0,s.Fp)(d?{sourceX:d.sx,sourceY:d.sy,sourcePosition:d.sourcePos,targetX:d.tx,targetY:d.ty,targetPosition:d.targetPos}:{sourceX:e.sourceX,sourceY:e.sourceY,sourcePosition:e.sourcePosition,targetX:e.targetX,targetY:e.targetY,targetPosition:e.targetPosition});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.tE,{id:e.id,path:c,style:e.style,markerEnd:e.markerEnd,interactionWidth:20}),e.label&&(0,a.jsx)(r.rV,{children:(0,a.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -120%) translate(${u}px, ${m}px)`,fontSize:11,color:"#cfcfcf",background:"#161616",padding:"1px 4px",borderRadius:4,pointerEvents:"none",zIndex:1e3},children:e.label})}),e.selected&&(0,a.jsx)(r.rV,{children:(0,a.jsx)("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, 0) translate(${u}px, ${m+14}px)`,pointerEvents:"all",zIndex:1e3},children:(0,a.jsx)("button",{type:"button",onMouseDown:e=>e.stopPropagation(),onClick:n=>{n.stopPropagation(),t({edges:[{id:e.id}]})},title:"Delete (or press Backspace)",className:"flex size-7 items-center justify-center rounded-full border border-white/20 bg-card/95 text-red-300 shadow-lg backdrop-blur-md transition-colors hover:bg-red-500/25 hover:text-red-200",children:(0,a.jsx)(o.A,{className:"size-3.5"})})})})]})}},26518:(e,t,n)=>{n.d(t,{bq:()=>k,eb:()=>C,gC:()=>N,l6:()=>j,yv:()=>w});var a=n(95155);n(12115);var r=n(40595),s=n(41294),o=n(75681),i=n(17314),l=n(37265),d=n(23107),c=n(70826),u=n(67564),m=n(1938),p=n(15433),x=n(5919),h=n(45450),f=n(88988),g=n(91337),b=n(12363),y=n(64577),v=n(94088);let j=r.H;function w({className:e,...t}){return(0,a.jsx)(s.y,{"data-slot":"select-value",className:(0,g.cn)("flex flex-1 text-left",e),...t})}function k({className:e,size:t="default",children:n,...r}){return(0,a.jsxs)(o.b,{"data-slot":"select-trigger","data-size":t,className:(0,g.cn)("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[n,(0,a.jsx)(i.w,{render:(0,a.jsx)(b.A,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function N({className:e,children:t,side:n="bottom",sideOffset:r=4,align:s="center",alignOffset:o=0,alignItemWithTrigger:i=!0,...m}){return(0,a.jsx)(l.V,{children:(0,a.jsx)(d.l,{side:n,sideOffset:r,align:s,alignOffset:o,alignItemWithTrigger:i,className:"isolate z-50",children:(0,a.jsxs)(c.t,{"data-slot":"select-content","data-align-trigger":i,className:(0,g.cn)("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...m,children:[(0,a.jsx)(E,{}),(0,a.jsx)(u.B,{children:t}),(0,a.jsx)(A,{})]})})})}function C({className:e,children:t,...n}){return(0,a.jsxs)(m.e,{"data-slot":"select-item",className:(0,g.cn)("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[(0,a.jsx)(p.h,{className:"flex flex-1 shrink-0 gap-2 whitespace-nowrap",children:t}),(0,a.jsx)(x.h,{render:(0,a.jsx)("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:(0,a.jsx)(y.A,{className:"pointer-events-none"})})]})}function E({className:e,...t}){return(0,a.jsx)(h.w,{"data-slot":"select-scroll-up-button",className:(0,g.cn)("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:(0,a.jsx)(v.A,{})})}function A({className:e,...t}){return(0,a.jsx)(f.d,{"data-slot":"select-scroll-down-button",className:(0,g.cn)("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:(0,a.jsx)(b.A,{})})}},28161:(e,t,n)=>{n.d(t,{A6:()=>l,An:()=>d,RR:()=>a,YG:()=>o,ZD:()=>i,jR:()=>s});let a=["frontend","backend","fullstack"],r={fe:"frontend",front:"frontend",be:"backend",back:"backend",fs:"fullstack","full-stack":"fullstack","full stack":"fullstack"};function s(e){let t=(e??"").trim().toLowerCase();return t?a.includes(t)?t:r[t]??null:null}let o={frontend:{label:"Frontend",short:"FE"},backend:{label:"Backend",short:"BE"},fullstack:{label:"Fullstack",short:"FS"}},i={frontend:"#5AC8FA",backend:"#3ECF8E",fullstack:"#5AC8FA"};function l(e){return"fullstack"!==e?i[e]:`linear-gradient(to bottom, ${i.frontend} 0%, ${i.frontend} 50%, ${i.backend} 50%, ${i.backend} 100%)`}let d=/\.(tsx|jsx|vue|svelte)$/i},28736:(e,t,n)=>{n.d(t,{U:()=>i,u:()=>l});var a=n(6266);function r(e){let{x:t,y:n}=e.internals.positionAbsolute,a=e.measured?.width??0,r=e.measured?.height??0;return{x:t,y:n,w:a,h:r,cx:t+a/2,cy:n+r/2}}function s(e,t){let n=r(e),a=r(t),s=n.w/2||1,o=n.h/2||1,i=(a.cx-n.cx)/(2*s)-(a.cy-n.cy)/(2*o),l=(a.cx-n.cx)/(2*s)+(a.cy-n.cy)/(2*o),d=1/(Math.abs(i)+Math.abs(l)||1);return{x:s*d*(i+l)+n.cx,y:o*d*(-i+l)+n.cy}}function o(e,t){let n=r(e),s=Math.round(t.x),o=Math.round(t.y);return s<=Math.round(n.x)+1?a.yX.Left:s>=Math.round(n.x+n.w)-1?a.yX.Right:o<=Math.round(n.y)+1?a.yX.Top:a.yX.Bottom}function i(e,t){let n=s(e,t),a=s(t,e);return{sx:n.x,sy:n.y,tx:a.x,ty:a.y,sourcePos:o(e,n),targetPos:o(t,a)}}function l(e,t){let n=e.x+e.w/2,a=e.y+e.h/2,r=t.x-n,s=t.y-a;if(0===r&&0===s)return{x:n,y:a};let o=1/Math.max(Math.abs(r)/(e.w/2||1),Math.abs(s)/(e.h/2||1));return{x:n+r*o,y:a+s*o}}},29523:(e,t,n)=>{n.d(t,{J:()=>i,k:()=>o});var a=n(12115),r=n(81750),s=n(70221);function o(e){let[t,n]=(0,a.useState)("full"),o=(0,r.Pj)(n=>(0,s.gt)(n.transform[2],t,e));return o!==t&&n(o),o}function i({onLod:e,thresholds:t}){let n=o(t),r=(0,a.useRef)(null);return(0,a.useEffect)(()=>{r.current!==n&&(r.current=n,e(n))},[n,e]),null}},36849:(e,t,n)=>{n.d(t,{VI:()=>s});var a=n(43137),r=n(94014);function s(e,t,n={}){let o=n.colW??320,i=n.rowH??150,l=n.childIndent??24,d=n.laneGap??56,c=n.bandGap??110,u=n.maxCols??10,m=n.minBandW??3*o,p=new Set(e.map(e=>e.id)),x=e=>!e.parentId||!p.has(e.parentId),h=e.filter(x),f=new Map;for(let t of e){if(x(t))continue;let e=f.get(t.parentId);e?e.push(t):f.set(t.parentId,[t])}let g="status"===t?e=>e.status:"priority"===t?e=>String(e.priority):e=>(e.cluster??"").trim()||"—",b=new Map;for(let e of h){let t=g(e),n=b.get(t);n?n.push(e):b.set(t,[e])}let y=(function(e,t,n){if("status"===e)return[...a.TT];if("priority"===e)return["0","1","2","3"];let r=Array.from(new Set(t.map(n))),s=r.filter(e=>"—"!==e).sort();return r.includes("—")?[...s,"—"]:s})(t,h,g).filter(e=>b.has(e)),v=[];for(let e of y){let t=b.get(e),n=t.reduce((e,t)=>e+1+(f.get(t.id)?.length??0),0),a=Math.max(1,Math.min(u,t.length,Math.round(Math.sqrt(.85*n))||1)),r=Array(a).fill(0),s=new Map;for(let e of t){let t=0;for(let e=1;e<a;e++)r[e]<r[t]&&(t=e);let n=t*o,d=r[t]*i;s.set(e.id,{x:n,y:d});let c=f.get(e.id)??[];c.forEach((e,t)=>{s.set(e.id,{x:n+l,y:d+(t+1)*i})}),r[t]+=1+c.length}let d=r.reduce((e,t)=>Math.max(e,t),0);v.push({id:e,w:a*o,h:d*i,local:s})}let j=(0,r.Xi)(v.map(e=>({id:e.id,w:e.w,h:e.h})),{gapX:d,gapY:c,viewportAspect:n.viewportAspect,minBandW:m,aspectSlack:1.5}),w=new Map;for(let e of v){let t=j.get(e.id);for(let[n,a]of e.local)w.set(n,{x:t.x+a.x,y:t.y+a.y})}return w}},43137:(e,t,n)=>{n.d(t,{TT:()=>s,Xf:()=>i,m6:()=>r,nR:()=>o,yl:()=>a});let a=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],r=["KEEP","REBUILD","REPLACE","DROP"],s=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],o={DONE:{label:"Done",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},IN_PROGRESS:{label:"In progress",className:"border-sky-500/30 bg-sky-500/15 text-sky-300"},PENDING:{label:"Pending",className:"border-amber-500/30 bg-amber-500/10 text-amber-200"},BLOCKED:{label:"Blocked",className:"border-orange-500/30 bg-orange-500/15 text-orange-300"},CANCELLED:{label:"Cancelled",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"},DEPRIORITIZED:{label:"Deprioritized",className:"border-zinc-600/40 bg-zinc-600/10 text-zinc-400"},KEEP:{label:"Keep",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},REBUILD:{label:"Rebuild",className:"border-violet-500/30 bg-violet-500/15 text-violet-300"},REPLACE:{label:"Replace",className:"border-rose-500/30 bg-rose-500/15 text-rose-300"},DROP:{label:"Drop",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"}};function i(e){return e?.trim()||"—"}},44267:(e,t,n)=>{n.d(t,{S:()=>a});function a(e,t={}){let n=t.pad??20,r=t.header??26,s=new Map;for(let t of e){let e=s.get(t.group);e?(e.minX=Math.min(e.minX,t.x),e.minY=Math.min(e.minY,t.y),e.maxX=Math.max(e.maxX,t.x+t.w),e.maxY=Math.max(e.maxY,t.y+t.h),e.count++):s.set(t.group,{minX:t.x,minY:t.y,maxX:t.x+t.w,maxY:t.y+t.h,count:1})}return Array.from(s.entries()).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({key:e,label:e,x:t.minX-n,y:t.minY-n-r,w:t.maxX-t.minX+2*n,h:t.maxY-t.minY+2*n+r,count:t.count}))}},45437:(e,t,n)=>{n.d(t,{L:()=>i});var a=n(95155),r=n(81750),s=n(6266),o=n(28736);function i(e){let t=(0,r.JY)(e.target),n=e.targetX,i=e.targetY,l=t?.measured?.width,d=t?.measured?.height;if(t&&l&&d){let a=(0,o.u)({x:t.internals.positionAbsolute.x,y:t.internals.positionAbsolute.y,w:l,h:d},{x:e.sourceX,y:e.sourceY});n=a.x,i=a.y}let[c]=(0,s.ah)({sourceX:e.sourceX,sourceY:e.sourceY,targetX:n,targetY:i});return(0,a.jsx)(r.tE,{id:e.id,path:c,style:e.style,markerEnd:e.markerEnd})}},54698:(e,t,n)=>{n.d(t,{m:()=>a});function a(e,t){let n=[];return e.forEach((e,a)=>{let r=e.excerpt.trim();if(!r)return;let s={annotationId:e.id,n:a+1};for(let e of t.tables){if(r===e.name)return void n.push({...s,kind:"table",targetId:e.id,column:null});if(r.startsWith(`${e.name}.`)){let t=r.slice(e.name.length+1);if(e.columns.includes(t))return void n.push({...s,kind:"column",targetId:e.id,column:t})}}for(let e of t.endpoints??[])if(r===`${e.method} ${e.path}`)return void n.push({...s,kind:"endpoint",targetId:e.id,column:null});for(let e of t.features??[])if(r===e.title||r===`feature: ${e.title}`)return void n.push({...s,kind:"feature",targetId:e.id,column:null})}),n}},56614:(e,t,n)=>{n.d(t,{er:()=>o,r1:()=>i,vu:()=>l});var a=n(95155),r=n(12115),s=n(91337);function o({trigger:e,title:t,align:n="right",children:i,open:l,onOpenChange:d,outsideClicksToClose:c=1}){let[u,m]=(0,r.useState)(!1),[p,x]=(0,r.useState)("down"),h=l??u,f=e=>{void 0===l&&m(e),d?.(e)},g=(0,r.useRef)(null),b=(0,r.useRef)(()=>{});return(0,r.useEffect)(()=>{b.current=()=>f(!1)}),(0,r.useEffect)(()=>{if(!h)return;let e=g.current?.firstElementChild?.getBoundingClientRect();e&&x(window.innerHeight-e.bottom<260?"up":"down")},[h]),(0,r.useEffect)(()=>{if(!h)return;let e=0,t=null,n=()=>{t&&clearTimeout(t),t=null},a=a=>{if(g.current?.contains(a.target)){e=0,n();return}c<=1?b.current():(e+=1)>=c?(e=0,n(),b.current()):(n(),t=setTimeout(()=>{e=0},1500))},r=e=>{"Escape"===e.key&&b.current()};return window.addEventListener("mousedown",a,!0),window.addEventListener("keydown",r),()=>{n(),window.removeEventListener("mousedown",a,!0),window.removeEventListener("keydown",r)}},[h,c]),(0,a.jsxs)("div",{ref:g,className:"relative",children:[e(h,()=>f(!h)),h&&(0,a.jsxs)("div",{className:(0,s.cn)("glass absolute z-30 w-64 rounded-xl p-3 shadow-xl","up"===p?"bottom-full mb-1.5":"top-full mt-1.5","right"===n?"right-0":"left-0"),children:[t&&(0,a.jsx)("div",{className:"mb-2 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),i]})]})}function i({title:e,children:t}){return(0,a.jsxs)("div",{className:"mb-2.5 last:mb-0",children:[(0,a.jsx)("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/80",children:e}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1",children:t})]})}function l({on:e,onClick:t,children:n,tone:r="default"}){return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,s.cn)("rounded-md border px-2 py-0.5 text-[11px] font-medium transition-colors",{default:e?"border-foreground/40 bg-white/10 text-foreground":"border-white/10 text-muted-foreground hover:text-foreground",danger:e?"border-red-500/40 bg-red-500/15 text-red-300":"border-white/10 text-muted-foreground hover:text-foreground",accent:e?"border-sky-500/40 bg-sky-500/15 text-sky-300":"border-white/10 text-muted-foreground hover:text-foreground"}[r]),children:n})}},56895:(e,t,n)=>{n.d(t,{W:()=>r});var a=n(12115);function r(e,t){let[n,r]=(0,a.useState)(!1),[s,o]=(0,a.useState)(0),i=n?e[s]??null:null,l=(0,a.useCallback)(()=>{o(0),r(!0)},[]),d=(0,a.useCallback)(()=>r(!1),[]),c=(0,a.useCallback)(()=>o(t=>Math.min(t+1,e.length-1)),[e.length]),u=(0,a.useCallback)(()=>o(e=>Math.max(e-1,0)),[]),m=(0,a.useCallback)(t=>{t>=0&&t<e.length&&o(t)},[e.length]);(0,a.useEffect)(()=>{if(!n)return;let a=e[s];a&&t(a)},[n,s]),(0,a.useEffect)(()=>{if(!n)return;let e=e=>{"ArrowRight"===e.key?(e.preventDefault(),c()):"ArrowLeft"===e.key?(e.preventDefault(),u()):"Escape"===e.key&&(e.preventDefault(),d())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,c,u,d]);let p=(0,a.useMemo)(()=>i&&i.focusIds.length?new Set(i.focusIds):null,[i]);return{active:n,index:s,step:i,start:l,stop:d,next:c,prev:u,goto:m,focusIds:p}}},60292:(e,t,n)=>{n.d(t,{Bz:()=>a,Fj:()=>i,aE:()=>s,dh:()=>o,fk:()=>r,q0:()=>l});let a="beacon:tab-ws";function r(){var e;let t=new URLSearchParams(window.location.search).get("ws"),n=null;try{t&&sessionStorage.setItem(a,t),n=sessionStorage.getItem(a)}catch{}return e=n,t||e||null}function s(e){try{sessionStorage.setItem(a,e)}catch{}}function o(e){return e?{"x-beacon-workspace":e}:{}}function i(e,t,n){let a=new URLSearchParams;for(let[e,r]of(t&&a.set("ws",t),Object.entries(n??{})))a.set(e,r);let r=a.toString();return r?`${e}?${r}`:e}function l(e,t){if(e.startsWith("/api/"))return!0;try{let n=new URL(e,t);return n.origin===t&&n.pathname.startsWith("/api/")}catch{return!1}}},60874:(e,t,n)=>{n.d(t,{F8:()=>b,NG:()=>x,QH:()=>h,Vq:()=>g,aM:()=>j,cV:()=>k,kz:()=>v,n$:()=>m,pO:()=>o,vB:()=>y});var a=n(95155),r=n(12115),s=n(91337);function o({markdown:e,className:t,variant:n="reading"}){let i=(0,r.useMemo)(()=>m(e),[e]),l="reading"===n;return(0,a.jsx)("div",{className:(0,s.cn)("min-w-0 [overflow-wrap:anywhere]",l?"mx-auto w-full max-w-[66ch] space-y-4 text-[15px] leading-[1.6]":"space-y-3.5 text-[13px] leading-relaxed",t),children:i.map((e,t)=>(0,a.jsx)(w,{block:e,variant:n},t))})}function i(e){let t=e.trim();return t.includes("|")&&t.includes("-")&&/^[\s|:-]+$/.test(t)}function l(e){return""!==e.trim()&&e.includes("|")}function d(e){let t=e.trim();return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(e=>e.trim())}function c(e){let t=e.trim(),n=t.startsWith(":"),a=t.endsWith(":");return n&&a?"center":a?"right":n?"left":null}let u=/^\s*```[^\s`]*\s*$/;function m(e){let t=e.split("\n"),n=[],a=[],r=()=>{a.length&&(n.push({kind:"p",text:a.join("\n")}),a=[])},s=null,o=()=>{null!==s&&(n.push({kind:"quote",text:s.join("\n")}),s=null)},m=e=>Math.min(6,Math.floor(e.length/2)),p=null,x=null;for(let e=0;e<t.length;e++){let h=t[e];if(null!==p){u.test(h)?(n.push({kind:"code",text:p.join("\n")}),p=null):p.push(h);continue}let f=h.match(/^>\s?(.*)$/);if(f){r(),x=null,(s??=[]).push(f[1]);continue}if(o(),u.test(h)){r(),x=null,p=[];continue}if(/^\s*$/.test(h)){r(),x=null;continue}let g=h.match(/^#### +(.+)$/);if(g){r(),x=null,n.push({kind:"h4",text:g[1]});continue}let b=h.match(/^### +(.+)$/);if(b){r(),x=null,n.push({kind:"h3",text:b[1]});continue}let y=h.match(/^## +(.+)$/);if(y){r(),x=null,n.push({kind:"h2",text:y[1]});continue}let v=h.match(/^# +(.+)$/);if(v){r(),x=null,n.push({kind:"h1",text:v[1]});continue}if(l(h)&&e+1<t.length&&i(t[e+1])){r(),x=null;let a=[d(h)],s=d(t[e+1]).map(c),o=e+2;for(;o<t.length&&l(t[o])&&!i(t[o]);)a.push(d(t[o])),o++;n.push({kind:"table",text:t.slice(e,o).join("\n"),rows:a,align:s}),e=o-1;continue}let j=h.match(/^(\s*)(\d+)\. +(.+)$/);if(j){r(),n.push({kind:"ol",text:j[3],depth:m(j[1]),marker:j[2]}),x=n.length-1;continue}let w=h.match(/^(\s*)- +(.+)$/);if(w){r(),n.push({kind:"ul",text:w[2],depth:m(w[1])}),x=n.length-1;continue}if(null!==x&&0===a.length){n[x].text+=" "+h.trim();continue}a.push(h)}return r(),o(),null!==p&&n.push({kind:"code",text:p.join("\n")}),n}let p=/("(?:\\.|[^"\\])*")(\s*:)?|\b(true|false|null)\b|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g;function x({text:e}){let t=function(e){let t=e.trim();if(!t||"{"!==t[0]&&"["!==t[0])return null;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return null}}(e);return(0,a.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-white/10 bg-white/[0.06] p-3 text-[12px] leading-relaxed",children:(0,a.jsx)("code",{className:"whitespace-pre font-mono [overflow-wrap:normal]",children:t?function(e){let t,n=[],r=0,s=0,o=e=>(0,a.jsx)("span",{className:"text-foreground/45",children:e},s++);for(p.lastIndex=0;null!==(t=p.exec(e));){if(t.index>r&&n.push(o(e.slice(r,t.index))),void 0!==t[1]){let e=void 0!==t[2];n.push((0,a.jsx)("span",{className:e?"text-sky-300":"text-emerald-300/90",children:t[1]},s++)),e&&t[2]&&n.push(o(t[2]))}else void 0!==t[3]?n.push((0,a.jsx)("span",{className:"text-purple-300",children:t[3]},s++)):void 0!==t[4]&&n.push((0,a.jsx)("span",{className:"text-amber-300",children:t[4]},s++));r=p.lastIndex}return r<e.length&&n.push(o(e.slice(r))),n}(t):(0,a.jsx)("span",{className:"text-foreground/85",children:e})})})}function h({block:e}){let t=e.rows??[];if(0===t.length)return null;let[n,...r]=t,o=e.align??[],i=e=>"center"===o[e]?"text-center":"right"===o[e]?"text-right":"text-left";return(0,a.jsx)("div",{className:"overflow-x-auto rounded-lg border border-white/10",children:(0,a.jsxs)("table",{className:"w-full border-collapse text-[13px] [overflow-wrap:normal]",children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"border-b border-white/15 bg-white/[0.04]",children:n.map((e,t)=>(0,a.jsx)("th",{className:(0,s.cn)("whitespace-nowrap px-3 py-1.5 font-semibold text-foreground",i(t)),children:(0,a.jsx)(k,{text:e})},t))})}),(0,a.jsx)("tbody",{children:r.map((e,t)=>(0,a.jsx)("tr",{className:"border-b border-white/5 last:border-0",children:e.map((e,t)=>(0,a.jsx)("td",{className:(0,s.cn)("px-3 py-1.5 align-top text-foreground/90",i(t)),children:(0,a.jsx)(k,{text:e})},t))},t))})]})})}let f=["h1","h2","h3","h4"];function g(e){return f.includes(e)}function b(e){let t=f.indexOf(e);return t<0?0:t}function y(e){return`plan-h-${e}`}function v(e){return e.replace(/[`*]/g,"").trim()}function j(e,t,n,r){let o="reading"===n;switch(e.kind){case"h1":return(0,a.jsx)("h1",{id:r,className:o?"scroll-mt-24 text-xl font-semibold tracking-tight text-foreground":"text-base font-semibold text-foreground",children:t});case"h2":return(0,a.jsx)("h2",{id:r,className:o?"mt-6 scroll-mt-24 border-b border-white/10 pb-1 text-lg font-semibold text-foreground":"mt-3 text-sm font-semibold text-muted-foreground",children:t});case"h3":return(0,a.jsx)("h3",{id:r,className:o?"mt-4 scroll-mt-24 text-base font-semibold text-foreground":"mt-2 text-[13px] font-semibold text-foreground",children:t});case"h4":return(0,a.jsx)("h4",{id:r,className:o?"mt-3 scroll-mt-24 text-sm font-semibold text-muted-foreground":"mt-2 text-[13px] font-semibold text-muted-foreground",children:t});case"ul":case"ol":{let n=e.depth??0;return(0,a.jsxs)("div",{className:(0,s.cn)("flex gap-2",o?"text-foreground/95":"text-foreground/90"),style:{marginLeft:`${.75+1.25*n}rem`},children:[(0,a.jsx)("span",{className:"shrink-0 select-none text-muted-foreground tabular-nums",children:"ol"===e.kind?`${e.marker}.`:"•"}),(0,a.jsx)("span",{className:"min-w-0 flex-1",children:t})]})}case"quote":return(0,a.jsx)("blockquote",{className:(0,s.cn)("whitespace-pre-wrap border-l-2 pl-3 italic",o?"border-white/15 text-foreground/80":"border-white/10 text-foreground/75"),children:t});default:return(0,a.jsx)("p",{className:(0,s.cn)("whitespace-pre-wrap",o?"text-foreground/95":"text-foreground/90"),children:t})}}function w({block:e,variant:t}){return"code"===e.kind?(0,a.jsx)(x,{text:e.text}):"table"===e.kind?(0,a.jsx)(h,{block:e}):(0,a.jsx)(a.Fragment,{children:j(e,(0,a.jsx)(k,{text:e.text}),t)})}function k({text:e}){let t=e.split(/(`[^`]+`|\*\*[\s\S]+?\*\*|\*[^*]+\*)/g);return(0,a.jsx)(a.Fragment,{children:t.map((e,t)=>/^`[^`]+`$/.test(e)?(0,a.jsx)("code",{className:"rounded bg-white/5 px-1 font-mono text-[12px]",children:e.slice(1,-1)},t):/^\*\*[\s\S]+\*\*$/.test(e)?(0,a.jsx)("strong",{className:"font-semibold text-foreground",children:(0,a.jsx)(k,{text:e.slice(2,-2)})},t):/^\*[^*]+\*$/.test(e)?(0,a.jsx)("em",{className:"text-muted-foreground",children:(0,a.jsx)(k,{text:e.slice(1,-1)})},t):(0,a.jsx)("span",{children:e},t))})}},62311:(e,t,n)=>{n.d(t,{Z:()=>x});var a=n(95155),r=n(12115),s=n(98500),o=n.n(s),i=n(25640),l=n(83599),d=n(94192),c=n(34306),u=n(60292),m=n(91337);let p={ROADMAP:i.A,ARCHITECTURE:l.A,FILES:d.A,DATABASE:c.A};function x({tabs:e,active:t}){let[n,s]=(0,r.useState)(null);return(0,r.useEffect)(()=>{s((0,u.fk)())},[]),(0,a.jsx)("div",{className:"flex items-center gap-0.5",children:e.map(e=>{let r,s=e.value===t,i=e.Icon??p[e.value];return(0,a.jsxs)(o(),{href:(r=e.href,n?`${r}${r.includes("?")?"&":"?"}ws=${n}`:r),className:(0,m.cn)("flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[12px] font-medium tracking-tight transition-colors",s?"border-white/10 bg-white/[0.07] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]":"border-transparent text-muted-foreground/80 hover:bg-white/5 hover:text-foreground"),children:[i?(0,a.jsx)(i,{className:(0,m.cn)("size-3",s&&"text-[#ff7a45]")}):null,(0,a.jsx)("span",{children:e.label})]},e.value)})})}},69882:(e,t,n)=>{n.d(t,{MapClient:()=>eL});var a=n(95155),r=n(12115),s=n(98112),o=n(6266),i=n(81750);n(53255);var l=n(17356),d=n(85618),c=n(2125),u=n(68319),m=n(15480),p=n(24413),x=n(17494),h=n(80846),f=n(45486),g=n(73321),b=n(95635),y=n(17918),v=n(9339);let j=(0,v.createServerReference)("4084780b8a9ec39fddb37d84c6eb4d6f8db41b4fc6",v.callServer,void 0,v.findSourceMapURL,"acceptSuggestionAction");var w=n(70299),k=n(22200),N=n(32133),C=n(65408),E=n(8962),A=n(84824),S=n(5736),I=n(86272),M=n(64577),T=n(9005),z=n(65738),R=n(40638),$=n(26518),D=n(43137),P=n(28161),O=n(12410);let F=(0,r.createContext)(null);function L(){let e=(0,r.useContext)(F);if(!e)throw Error("useNodeEdit must be used inside NodeEditContext");return e}var _=n(29523),B=n(60874),H=n(91337);let U=[{v:0,l:"P0 \xb7 critical"},{v:1,l:"P1 \xb7 high"},{v:2,l:"P2 \xb7 medium"},{v:3,l:"P3 \xb7 low"}],X="nodrag nopan";function G({layer:e}){let t=(0,P.jR)(e);return t?(0,a.jsx)("span",{"aria-hidden":!0,className:"absolute bottom-2 left-1 top-2 w-[3px] rounded-full",style:{background:(0,P.A6)(t)}}):null}function K({layer:e}){let t=(0,P.jR)(e);if(!t)return null;let n=P.YG[t];return(0,a.jsxs)("span",{title:`${n.label} — which side of the stack this lands on`,className:"flex shrink-0 items-center gap-1 rounded bg-white/10 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:["backend"!==t&&(0,a.jsx)(w.A,{className:"size-2.5"}),"frontend"!==t&&(0,a.jsx)(k.A,{className:"size-2.5"}),n.short]})}function W({nodeId:e}){let t=(0,g.useRouter)(),[n,s]=(0,r.useState)(!1),[o,i]=(0,r.useState)(""),[l,d]=(0,r.useState)(!1),c=()=>{s(!1),i("")},m=async()=>{let n=o.trim();if(n&&!l){d(!0);try{(await fetch("/api/bug-flags",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({nodeId:e,by:"user",note:n})})).ok&&(c(),t.refresh())}finally{d(!1)}}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",title:"Flag a bug on this component",onClick:e=>{e.stopPropagation(),s(e=>!e)},className:(0,H.cn)(X,"absolute -right-3 top-[calc(50%-28px)] z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground shadow-md transition-all hover:border-rose-400/50 hover:text-rose-300",n?"border-rose-400/50 text-rose-300 opacity-100":"opacity-0 group-hover/nc:opacity-100"),children:(0,a.jsx)(u.A,{className:"size-3"})}),n&&(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:(0,H.cn)(X,"absolute -right-2 top-[calc(50%-28px)] z-20 w-60 translate-x-full rounded-xl border border-rose-400/25 bg-[#1c1c1f] p-2 shadow-xl"),children:[(0,a.jsxs)("div",{className:"mb-1.5 flex items-center justify-between",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-rose-300",children:[(0,a.jsx)(u.A,{className:"size-3"})," Flag a bug"]}),(0,a.jsx)("button",{type:"button",title:"Cancel",onClick:c,className:"rounded p-0.5 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)("span",{className:"block px-1 text-[11px] leading-none",children:"✕"})})]}),(0,a.jsx)("textarea",{autoFocus:!0,rows:2,value:o,placeholder:"What did you find?",onChange:e=>i(e.target.value),onKeyDown:e=>{e.stopPropagation(),"Escape"===e.key&&c(),"Enter"!==e.key||e.shiftKey||(e.preventDefault(),m())},className:"field-sizing-content max-h-40 min-h-12 w-full resize-none rounded-md bg-white/[0.04] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.07]"}),(0,a.jsx)("button",{type:"button",disabled:l||!o.trim(),onClick:()=>void m(),className:"mt-1.5 w-full rounded-md bg-rose-500/15 py-1 text-[11px] font-semibold text-rose-300 transition-colors hover:bg-rose-500/25 disabled:opacity-50",children:l?"Flagging…":"Flag bug"})]})]})}let Y=["border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]","border-[#ff7a45]/50","border-amber-400/35","border-border"];function Z({id:e,data:t,selected:n}){let{categories:s,statuses:o,patch:i,isExpanded:l,toggleExpand:d,openDetailed:c,removeNode:m,editingTitleId:p,onAskAgent:x,hasFrontend:h}=L(),g=l(e),[v,w]=(0,r.useState)(!1),[k,F]=(0,r.useState)(!1),[q,V]=(0,r.useState)(t.title),[J,Q]=(0,r.useState)(t.cluster??""),[ee,et]=(0,r.useState)(t.plain??""),en="BUG"===t.kind&&"ROADMAP"===t.view,ea="ARCHITECTURE"===t.view,er=ea?"border-border":Y[t.priority]??"border-border",es=t.openBugs??0,eo="CANCELLED"===t.status||"DROP"===t.status,ei="DEPRIORITIZED"===t.status,el="DRAFT"===t.source,ed="IN_PROGRESS"===t.status,ec="INIT"===t.source&&"ROADMAP"===t.view,eu=e=>e.stopPropagation(),[em,ep]=(0,r.useTransition)(),ex=(0,_.k)();return"full"!==ex?(0,a.jsxs)("div",{className:(0,H.cn)("relative rounded-lg border bg-card px-3 py-2.5 text-card-foreground shadow-sm","w-fit max-w-[296px]",t.isChild?"min-w-56":"min-w-64",en?"border-rose-400/50 bg-rose-500/[0.05]":er,ed&&"border-sky-400/60",n&&"ring-2 ring-[var(--accent,#f5b942)]",eo&&"opacity-60","far"===ex&&"!opacity-0"),children:[(0,a.jsx)(b.x,{}),h&&(0,a.jsx)(G,{layer:t.layer}),(0,a.jsx)("div",{className:"break-words text-[15px] font-semibold leading-snug",children:t.title})]}):(0,a.jsxs)("div",{className:(0,H.cn)("group/nc relative rounded-lg border bg-card px-2.5 py-2 text-card-foreground shadow-sm transition","w-fit max-w-96",g?"min-w-80":"min-w-64",el?"border-dashed border-sky-400/50 bg-sky-500/[0.06]":ec?"border-dashed border-violet-400/60 bg-violet-500/[0.07] shadow-[0_0_0_1px_rgba(167,139,250,0.18)]":er,en&&!el&&"border-rose-400/50 bg-rose-500/[0.05]",ed&&"border-sky-400/60 shadow-[0_0_0_1px_rgba(56,160,255,0.25)]",t.isNext&&"border-emerald-400/70 shadow-[0_0_0_2px_rgba(52,211,153,0.35)]",null!=t.workOrderRank&&t.workOrderRank>1&&"border-emerald-400/25",n&&"ring-2 ring-[var(--accent,#f5b942)]",eo&&"opacity-60",ei&&"opacity-70 border-dashed"),children:[(0,a.jsx)(b.x,{}),h&&(0,a.jsx)(G,{layer:t.layer}),ea&&(0,a.jsx)(W,{nodeId:e}),(t.pins?.length??0)>0?(0,a.jsx)(y.e0,{pins:t.pins,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)("button",{type:"button",title:`Annotate ${t.title}`,onClick:e=>{eu(e),t.onComment?.(t.title)},className:(0,H.cn)(X,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover/nc:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,a.jsx)(N.A,{className:"size-3"})}),t.isNext&&(0,a.jsx)("div",{className:"mb-1 inline-flex items-center gap-1 rounded bg-emerald-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-emerald-300",children:"work on next"}),null!=t.workOrderRank&&t.workOrderRank>1&&(0,a.jsxs)("div",{title:`#${t.workOrderRank} in the work order`,className:"mb-1 inline-flex items-center gap-1 rounded bg-white/5 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-muted-foreground",children:["next \xb7 ",t.workOrderRank]}),(0,a.jsxs)("div",{className:"flex w-0 min-w-full items-start gap-1.5",children:[ed&&(0,a.jsx)("span",{title:"em andamento",className:"mt-1.5 inline-block size-2 shrink-0 animate-pulse rounded-full bg-sky-400"}),t.isCriterion&&!ed&&(0,a.jsx)("span",{title:"Success criterion",className:"mt-1.5 inline-block size-1.5 shrink-0 rounded-full bg-[var(--accent,#f5b942)]"}),(0,a.jsx)("textarea",{rows:1,value:q,autoFocus:p===e,placeholder:"Title…",onFocus:t=>{p===e&&t.currentTarget.select()},onChange:e=>V(e.target.value),onBlur:()=>{let n=q.trim();n&&n!==t.title&&i(e,{title:n},!0)},onKeyDown:e=>{eu(e),"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.currentTarget.blur())},className:(0,H.cn)(X,"field-sizing-content w-full resize-none bg-transparent text-sm font-medium leading-snug outline-none placeholder:text-muted-foreground/60",eo&&"line-through")}),(0,a.jsx)("button",{type:"button",onClick:t=>{eu(t),d(e)},title:g?"Collapse":"Expand",className:(0,H.cn)(X,"mt-0.5 shrink-0 text-muted-foreground hover:text-foreground"),children:g?(0,a.jsx)(C.A,{className:"size-3.5"}):(0,a.jsx)(E.A,{className:"size-3.5"})})]}),((t.signals?.untested??0)>0||t.signals?.auth||es>0)&&(0,a.jsxs)("div",{className:"mt-1 flex w-0 min-w-full flex-wrap items-center gap-1",children:[es>0&&(0,a.jsxs)("span",{title:`${es} open bug flag(s) — raised by you or an agent examining this code`,className:"flex items-center gap-1 rounded bg-rose-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:[(0,a.jsx)(u.A,{className:"size-2.5"}),es," ",1===es?"bug":"bugs"]}),(t.signals?.untested??0)>0&&(0,a.jsxs)("span",{title:`${t.signals.untested} of ${t.signals.total} attached file(s) have no test importing them`,className:"flex items-center gap-1 rounded bg-amber-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-amber-300",children:[(0,a.jsx)(A.A,{className:"size-2.5"}),t.signals.untested," untested"]}),t.signals?.auth&&(0,a.jsxs)("span",{title:"touches auth-sensitive files",className:"flex items-center gap-1 rounded bg-red-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:[(0,a.jsx)(S.A,{className:"size-2.5"})," auth"]})]}),t.role&&(0,a.jsx)("div",{className:(0,H.cn)("mt-0.5 w-0 min-w-full text-[10px] leading-snug text-muted-foreground",!g&&"line-clamp-1"),children:t.role}),(0,a.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:["ROADMAP"===t.view?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{title:en?"Bug — something to fix":t.isChild?"Sub-task of a feature":"Feature — top-level roadmap item",className:(0,H.cn)("flex shrink-0 items-center gap-1 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",en?"bg-rose-500/15 text-rose-300":t.isChild?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300"),children:[en&&(0,a.jsx)(u.A,{className:"size-2.5"}),en?"bug":t.isChild?"sub-task":"feature"]}),h&&(0,a.jsx)(K,{layer:t.layer}),ec&&(0,a.jsxs)("span",{className:(0,H.cn)("flex items-center gap-1 rounded bg-violet-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-violet-300",em&&"opacity-50"),children:[(0,a.jsx)(I.A,{className:"size-2.5"})," IA",(0,a.jsx)("button",{type:"button",title:"Accept suggestion — turn it into your own feature",disabled:em,onClick:t=>{eu(t),ep(async()=>j(e))},className:(0,H.cn)(X,"-my-0.5 rounded p-0.5 hover:bg-emerald-500/20 hover:text-emerald-300"),children:(0,a.jsx)(M.A,{className:"size-2.5"})}),(0,a.jsx)("button",{type:"button",title:"Dismiss suggestion (deletes the card)",disabled:em,onClick:t=>{eu(t),m(e)},className:(0,H.cn)(X,"-my-0.5 -ml-0.5 rounded p-0.5 hover:bg-red-500/20 hover:text-red-300"),children:(0,a.jsx)(T.A,{className:"size-2.5"})})]}),(0,a.jsx)("input",{list:`cats-${e}`,value:J,placeholder:"category",onChange:e=>Q(e.target.value),onBlur:()=>{let n=J.trim()||null;n!==(t.cluster??null)&&i(e,{cluster:n},!0)},onKeyDown:e=>{eu(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,H.cn)(X,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125 [&::-webkit-calendar-picker-indicator]:hidden",(0,O.a2)(J))})]}):(0,a.jsxs)(a.Fragment,{children:[t.isChild&&(0,a.jsx)("span",{title:"Sub-component",className:"shrink-0 rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub"}),h&&(0,a.jsx)(K,{layer:t.layer}),(0,a.jsx)("input",{list:`cats-${e}`,value:J,placeholder:"domain",title:"Architecture domain — the lane this component lives in",onChange:e=>Q(e.target.value),onBlur:()=>{let n=J.trim()||null;n!==(t.cluster??null)&&i(e,{cluster:n},!0)},onKeyDown:e=>{eu(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,H.cn)(X,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125 [&::-webkit-calendar-picker-indicator]:hidden",(0,O.a2)(J))})]}),(0,a.jsx)("datalist",{id:`cats-${e}`,children:s.map(e=>(0,a.jsx)("option",{value:e},e))}),(0,a.jsxs)($.l6,{value:t.status,onValueChange:t=>i(e,{status:t},!0),children:[(0,a.jsx)($.bq,{className:(0,H.cn)(X,"ml-auto h-6 shrink-0 gap-1 rounded border px-1.5 py-0 text-[10px] font-medium",D.nR[t.status]?.className??"border-white/10"),children:(0,a.jsx)($.yv,{children:e=>D.nR[e]?.label??e})}),(0,a.jsx)($.gC,{alignItemWithTrigger:!1,children:o.map(e=>(0,a.jsx)($.eb,{value:e,children:D.nR[e]?.label??e},e))})]})]}),g&&(0,a.jsxs)("div",{className:"mt-2 w-0 min-w-full space-y-2 border-t border-white/10 pt-2",children:[k||!ee.trim()?(0,a.jsx)("textarea",{autoFocus:k,value:ee,placeholder:"Description (markdown)…",onChange:e=>et(e.target.value),onBlur:()=>{F(!1);let n=ee.trim()||null;n!==(t.plain??null)&&i(e,{plain:n},!0)},onKeyDown:eu,rows:3,className:(0,H.cn)(X,"field-sizing-content max-h-[24rem] min-h-[4.5rem] w-full resize-y rounded bg-white/[0.04] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]")}):(0,a.jsx)("div",{onClick:e=>{eu(e),F(!0)},title:"Click to edit",className:"cursor-text rounded bg-white/[0.02] px-1.5 py-1 text-xs hover:bg-white/[0.05]",children:(0,a.jsx)(B.pO,{markdown:ee,variant:"compact",className:"text-[12px]"})}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsxs)($.l6,{value:String(t.priority),onValueChange:t=>i(e,{priority:Number(t)},!0),children:[(0,a.jsx)($.bq,{className:(0,H.cn)(X,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,a.jsx)($.yv,{children:e=>U.find(t=>String(t.v)===e)?.l??e})}),(0,a.jsx)($.gC,{alignItemWithTrigger:!1,children:U.map(e=>(0,a.jsx)($.eb,{value:String(e.v),children:e.l},e.v))})]}),h&&(0,a.jsxs)($.l6,{value:(0,P.jR)(t.layer)??"none",onValueChange:t=>i(e,{layer:"none"===t?null:t},!0),children:[(0,a.jsx)($.bq,{title:"Which side of the stack this lands on",className:(0,H.cn)(X,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,a.jsx)($.yv,{children:e=>"none"===e?"layer \xb7 —":P.YG[e]?.label??e})}),(0,a.jsxs)($.gC,{alignItemWithTrigger:!1,children:[(0,a.jsx)($.eb,{value:"none",children:"—"}),Object.entries(P.YG).map(([e,t])=>(0,a.jsx)($.eb,{value:e,children:t.label},e))]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsxs)("button",{type:"button",onClick:t=>{eu(t),v?m(e):w(!0)},onBlur:()=>w(!1),title:"Delete node",className:(0,H.cn)(X,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] transition-colors",v?"bg-red-500/20 text-red-300":"text-muted-foreground hover:bg-white/5 hover:text-red-300"),children:[(0,a.jsx)(z.A,{className:"size-3"}),v&&"Delete?"]}),x&&(0,a.jsxs)("button",{type:"button",onClick:e=>{eu(e),x(`feature: ${t.title}`)},title:"Ask the agent a question about this feature (answered in its next round)",className:(0,H.cn)(X,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-sky-300/90 hover:bg-sky-500/15 hover:text-sky-300"),children:[(0,a.jsx)(R.A,{className:"size-3"})," Ask"]}),(0,a.jsxs)("button",{type:"button",onClick:t=>{eu(t),c(e)},className:(0,H.cn)(X,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-muted-foreground hover:bg-white/5 hover:text-foreground"),children:[(0,a.jsx)(f.A,{className:"size-3"})," Details"]})]})]})]})]})}var q=n(54698),V=n(24692),J=n(45437),Q=n(82099),ee=n(4474),et=n(70521),en=n(74350);function ea({className:e,type:t,...n}){return(0,a.jsx)("input",{type:t,"data-slot":"input",className:(0,H.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","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",e),...n})}function er({className:e,...t}){return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,H.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...t})}var es=n(61388);function eo({className:e,...t}){return(0,a.jsx)(es.b,{"data-slot":"label",className:(0,H.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}let ei=(0,v.createServerReference)("409b56b6cc15fb689c1e8af1737fd8f024eaccdee4",v.callServer,void 0,v.findSourceMapURL,"createNodeAction"),el=(0,v.createServerReference)("60e29301deee354e9b22d10d0882e0fba1f0efa5ef",v.callServer,void 0,v.findSourceMapURL,"updateNodeAction");function ed({open:e,onOpenChange:t,mode:n,view:s,heading:o,nodeId:i,parentId:l,position:d,defaults:c,hasFrontend:u=!1}){let m=(0,g.useRouter)(),[p,x]=(0,r.useState)(c?.title??""),[h,f]=(0,r.useState)(c?.role??""),[b,y]=(0,r.useState)(c?.plain??""),[v,j]=(0,r.useState)(c?.cluster??""),[w,k]=(0,r.useState)(c?.status??("ARCHITECTURE"===s?"REBUILD":"PENDING")),[N,C]=(0,r.useState)(c?.kind==="BUG"?"BUG":"FEATURE"),[E,A]=(0,r.useState)((0,P.jR)(c?.layer)??"none"),[S,I]=(0,r.useState)(!1),M="ARCHITECTURE"===s?D.m6:D.yl;async function T(){if(p.trim()){I(!0);try{let e="none"===E?null:E;"create"===n?await ei({view:s,..."ROADMAP"===s?{kind:N}:{},title:p.trim(),role:h.trim()||null,plain:b.trim()||null,cluster:v.trim()||null,...u?{layer:e}:{},parentId:l??null,status:w,x:d?.x??60,y:d?.y??60}):i&&await el(i,{..."ROADMAP"===s?{kind:N}:{},title:p.trim(),role:h.trim()||null,plain:b.trim()||null,cluster:v.trim()||null,...u?{layer:e}:{},status:w}),t(!1),m.refresh()}finally{I(!1)}}}return(0,a.jsx)(en.lG,{open:e,onOpenChange:t,children:(0,a.jsxs)(en.Cf,{children:[(0,a.jsx)(en.c7,{children:(0,a.jsx)(en.L3,{children:o})}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{htmlFor:"nf-title",children:"Title"}),(0,a.jsx)(ea,{id:"nf-title",value:p,autoFocus:!0,onChange:e=>x(e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{htmlFor:"nf-role",children:"Role (one line)"}),(0,a.jsx)(ea,{id:"nf-role",value:h,onChange:e=>f(e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{htmlFor:"nf-plain",children:"Description"}),(0,a.jsx)(er,{id:"nf-plain",rows:3,value:b,onChange:e=>y(e.target.value)})]}),"ROADMAP"===s&&(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{children:"Kind"}),(0,a.jsxs)($.l6,{value:N,onValueChange:e=>null!=e&&C(e),children:[(0,a.jsx)($.bq,{children:(0,a.jsx)($.yv,{children:e=>"BUG"===e?"Bug":"Feature"})}),(0,a.jsxs)($.gC,{children:[(0,a.jsx)($.eb,{value:"FEATURE",children:"Feature"}),(0,a.jsx)($.eb,{value:"BUG",children:"Bug"})]})]})]}),u&&(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{children:"Layer"}),(0,a.jsxs)($.l6,{value:E,onValueChange:e=>null!=e&&A(e),children:[(0,a.jsx)($.bq,{children:(0,a.jsx)($.yv,{children:e=>"none"===e?"—":P.YG[e]?.label??e})}),(0,a.jsxs)($.gC,{children:[(0,a.jsx)($.eb,{value:"none",children:"—"}),Object.keys(P.YG).map(e=>(0,a.jsx)($.eb,{value:e,children:P.YG[e].label},e))]})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{children:"Status"}),(0,a.jsxs)($.l6,{value:w,onValueChange:e=>null!=e&&k(e),children:[(0,a.jsx)($.bq,{children:(0,a.jsx)($.yv,{children:e=>D.nR[e]?.label??e})}),(0,a.jsx)($.gC,{children:M.map(e=>(0,a.jsx)($.eb,{value:e,children:D.nR[e]?.label??e},e))})]})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eo,{htmlFor:"nf-cluster",children:"Cluster / lane"}),(0,a.jsx)(ea,{id:"nf-cluster",value:v,onChange:e=>j(e.target.value)})]})]})]}),(0,a.jsxs)(en.Es,{children:[(0,a.jsx)(ee.$,{variant:"outline",onClick:()=>t(!1),children:"Cancel"}),(0,a.jsx)(ee.$,{onClick:T,disabled:S||!p.trim(),children:S?"Saving…":"Save"})]})]})})}let ec=(0,v.createServerReference)("406a6b6c901a8878d4b40206421368ea734d34ffe9",v.callServer,void 0,v.findSourceMapURL,"deleteNodeAction"),eu=(0,v.createServerReference)("6056d9e95481af19600b95cac9e79c4164163f0bd3",v.callServer,void 0,v.findSourceMapURL,"setStatusAction"),em=(0,v.createServerReference)("40adc582a181b7655db7b410a1e6bc56e23cc4912d",v.callServer,void 0,v.findSourceMapURL,"cancelAction"),ep=(0,v.createServerReference)("409d7b91af7e6220b13f8eefb6a4930de68ec73c7e",v.callServer,void 0,v.findSourceMapURL,"deprioritizeAction");function ex({view:e,selected:t,allNodes:n,onClose:r,commentsContent:s,commentsCount:o=0,activeTab:i,onTabChange:l,onAddComment:d,topOffset:c}){let u=!!s,m=i??"details";return(0,a.jsxs)(Q.b,{className:"absolute right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:c??12,maxHeight:`calc(100% - ${(c??12)+12}px)`},children:[u?(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,a.jsx)(eh,{active:"details"===m,onClick:()=>l?.("details"),children:"Details"}),(0,a.jsxs)(eh,{active:"comments"===m,onClick:()=>l?.("comments"),children:["Comments",o>0&&(0,a.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:o})]})]}),(0,a.jsx)("button",{onClick:r,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(T.A,{className:"size-4"})})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Details"}),(0,a.jsx)("button",{onClick:r,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(T.A,{className:"size-4"})})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,a.jsx)("div",{className:"p-3",children:"comments"===m&&u?s:t?(0,a.jsxs)(a.Fragment,{children:[d&&(0,a.jsxs)("button",{type:"button",onClick:()=>d(t.title),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,a.jsx)(N.A,{className:"size-3.5"}),"Comment on this ","ARCHITECTURE"===e?"component":"feature"]}),(0,a.jsx)(ef,{node:t,view:e},t.id)]}):(0,a.jsx)(eb,{view:e,nodes:n})})})]})}function eh({active:e,onClick:t,children:n}){return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,H.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",e?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:n})}function ef({node:e,view:t}){let n=(0,g.useRouter)(),[s,o]=(0,r.useTransition)(),[i,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1),{hasFrontend:u}=L(),m=(0,P.jR)(e.layer),p="ARCHITECTURE"===t?D.m6:D.yl,x=e=>o(async()=>{await e(),n.refresh()});return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:[(0,D.Xf)(e.cluster),u&&m&&(0,a.jsxs)("span",{className:"ml-2 text-zinc-400",children:["\xb7 ",P.YG[m].label]}),0===e.priority&&(0,a.jsx)("span",{className:"ml-2 text-[#ff7a90]",children:"\xb7 critical path"})]}),(0,a.jsx)("h2",{className:"mt-1 text-lg font-semibold leading-tight",children:e.title})]}),"INIT"===e.source&&(0,a.jsxs)("div",{className:"rounded-lg border border-violet-400/30 bg-violet-500/[0.06] p-2.5",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-violet-300",children:[(0,a.jsx)(I.A,{className:"size-3.5"})," AI suggestion"]}),(0,a.jsx)("p",{className:"mt-1 text-[11px] leading-snug text-muted-foreground",children:"Suggested direction surfaced when mapping the repo. Accept to turn it into your own feature, or dismiss."}),(0,a.jsxs)("div",{className:"mt-2 flex gap-1.5",children:[(0,a.jsx)(ee.$,{size:"sm",className:"h-7 px-2.5 text-xs",disabled:s,onClick:()=>x(()=>j(e.id)),children:"Accept"}),(0,a.jsx)(ee.$,{size:"sm",variant:"outline",className:"h-7 px-2.5 text-xs text-muted-foreground",disabled:s,onClick:()=>x(()=>ec(e.id)),children:"Dismiss"})]})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Status"}),(0,a.jsxs)($.l6,{value:e.status,onValueChange:t=>null!=t&&x(()=>eu(e.id,t)),children:[(0,a.jsx)($.bq,{className:"h-8",disabled:s,children:(0,a.jsx)($.yv,{children:e=>D.nR[e]?.label??e})}),(0,a.jsx)($.gC,{children:p.map(e=>(0,a.jsx)($.eb,{value:e,children:D.nR[e]?.label??e},e))})]})]}),e.plain&&(0,a.jsx)("div",{className:"rounded-md border border-white/5 bg-card/40 px-2.5 py-2 text-sm",children:(0,a.jsx)(B.pO,{markdown:e.plain,variant:"compact",className:"text-[12.5px]"})}),e.sourceRef&&(0,a.jsx)("div",{className:"rounded-md border border-border bg-card px-2 py-1.5 font-mono text-xs text-muted-foreground",children:e.sourceRef}),e.files.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Files (",e.files.length,")"]}),(0,a.jsx)("ul",{className:"space-y-0.5",children:e.files.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)("button",{onClick:()=>fetch(`/api/open?path=${encodeURIComponent(e)}`).catch(()=>{}),title:`Open ${e} in editor`,className:"block w-full truncate rounded px-1.5 py-0.5 text-left font-mono text-[11px] text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:e})},e))})]}),"ARCHITECTURE"===t&&(0,a.jsx)(eg,{node:e}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:[(0,a.jsx)(ee.$,{size:"sm",variant:"outline",onClick:()=>l(!0),children:"Edit"}),(0,a.jsx)(ee.$,{size:"sm",variant:"outline",onClick:()=>c(!0),children:"+ Sub-node"}),(0,a.jsx)(ee.$,{size:"sm",variant:"outline",disabled:s,onClick:()=>x(()=>em(e.id)),children:"Cancel"}),(0,a.jsx)(ee.$,{size:"sm",variant:"outline",disabled:s,onClick:()=>x(()=>ep(e.id)),children:"Deprioritize"}),(0,a.jsxs)(et.Lt,{children:[(0,a.jsx)(et.tv,{render:(0,a.jsx)(ee.$,{size:"sm",variant:"outline",className:"text-red-300",children:"Delete"})}),(0,a.jsxs)(et.EO,{children:[(0,a.jsxs)(et.wd,{children:[(0,a.jsxs)(et.r7,{children:["Delete “",e.title,"”?"]}),(0,a.jsx)(et.$v,{children:"This removes the node and all its sub-nodes. It can’t be undone."})]}),(0,a.jsxs)(et.ck,{children:[(0,a.jsx)(et.Zr,{children:"Cancel"}),(0,a.jsx)(et.Rx,{onClick:()=>x(()=>ec(e.id)),children:"Delete"})]})]})]})]}),i&&(0,a.jsx)(ed,{open:!0,onOpenChange:l,mode:"edit",view:t,heading:"Edit node",nodeId:e.id,hasFrontend:u,defaults:{title:e.title,role:e.role,plain:e.plain,status:e.status,cluster:e.cluster,kind:e.kind,layer:e.layer}}),d&&(0,a.jsx)(ed,{open:!0,onOpenChange:c,mode:"create",view:t,heading:"New sub-node",parentId:e.id,position:{x:e.x,y:e.y+120},hasFrontend:u,defaults:{cluster:e.cluster,layer:e.layer}})]})}function eg({node:e}){let t=(0,g.useRouter)(),[n,s]=(0,r.useState)(""),[o,i]=(0,r.useState)(!1),l=e.bugFlags.filter(e=>!e.resolved),d=e=>{i(!0),e().then(()=>t.refresh()).finally(()=>i(!1))},c=()=>{let t=n.trim();t&&d(async()=>{(await fetch("/api/bug-flags",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({nodeId:e.id,by:"user",note:t})})).ok&&s("")})};return(0,a.jsxs)("div",{children:[(0,a.jsxs)("h3",{className:"mb-1.5 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(u.A,{className:"size-3.5 text-rose-300"}),"Bug flags",l.length>0&&` (${l.length} open)`]}),e.bugFlags.length>0&&(0,a.jsx)("ul",{className:"space-y-1.5",children:e.bugFlags.map(e=>(0,a.jsxs)("li",{className:(0,H.cn)("rounded-md border px-2 py-1.5",e.resolved?"border-white/5 bg-card/30 opacity-60":"border-rose-400/25 bg-rose-500/[0.05]"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{title:"agent"===e.by?"Flagged by an agent examining the code":"Flagged by you",className:(0,H.cn)("rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide","agent"===e.by?"bg-violet-500/15 text-violet-300":"bg-sky-500/15 text-sky-300"),children:"agent"===e.by?"agent":"you"}),(0,a.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,a.jsx)("button",{type:"button",disabled:o,onClick:()=>d(()=>fetch(`/api/bug-flags/${e.id}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({resolved:!e.resolved})})),className:"rounded px-1.5 py-0.5 text-[10px] text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:e.resolved?"Reopen":"Resolve"}),(0,a.jsx)("button",{type:"button",disabled:o,title:"Delete flag",onClick:()=>d(()=>fetch(`/api/bug-flags/${e.id}`,{method:"DELETE"})),className:"rounded p-0.5 text-muted-foreground transition-colors hover:bg-white/10 hover:text-red-300",children:(0,a.jsx)(T.A,{className:"size-3"})})]})]}),(0,a.jsx)("p",{className:(0,H.cn)("mt-1 text-[11.5px] leading-snug",e.resolved&&"line-through"),children:e.note})]},e.id))}),(0,a.jsxs)("div",{className:"mt-1.5 flex items-start gap-1.5",children:[(0,a.jsx)("textarea",{rows:1,value:n,placeholder:"Flag a bug or something worth investigating…",onChange:e=>s(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),c())},className:"field-sizing-content min-h-7 w-full resize-none rounded-md border border-white/10 bg-white/[0.03] px-2 py-1 text-[11.5px] outline-none placeholder:text-muted-foreground/60 focus:bg-white/[0.06]"}),(0,a.jsx)(ee.$,{size:"sm",variant:"outline",className:"h-7 shrink-0 px-2 text-[11px]",disabled:o||!n.trim(),onClick:c,children:"Flag"})]})]})}function eb({view:e,nodes:t}){let n=t.filter(e=>0===e.priority).length;return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-sm font-semibold",children:"ROADMAP"===e?"Roadmap":"Architecture"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Click a node for details and actions. Drag to rearrange — positions are saved."})]}),(0,a.jsxs)("dl",{className:"grid grid-cols-2 gap-2 text-center",children:[(0,a.jsx)(ey,{label:"nodes",value:t.length}),(0,a.jsx)(ey,{label:"critical",value:n})]})]})}function ey({label:e,value:t}){return(0,a.jsxs)("div",{className:"rounded-md border border-border bg-card py-2",children:[(0,a.jsx)("div",{className:"text-lg font-semibold",children:t}),(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:e})]})}var ev=n(18874),ej=n(62311),ew=n(9991),ek=n(14983),eN=n(91157),eC=n(56895),eE=n(16607),eA=n(56614),eS=n(98238),eI=n(36849),eM=n(94014),eT=n(44267);function ez(e,t){let n={x:t.x,y:t.y};for(let t=0;t<100&&e.some(e=>200>Math.abs(n.x-e.x)&&150>Math.abs(n.y-e.y));t++)n.y+=150;return n}var eR=n(70947);let e$=[{value:"cluster",label:"Theme"},{value:"status",label:"Status"},{value:"priority",label:"Priority"}],eD=new Set(["title","role","plain","cluster","layer","status","priority"]),eP={roadmapNode:Z,archNode:Z,annotation:y.Sh},eO={deletable:V.I,annotation:J.L},eF={CONTAINS:{stroke:"#7c7c8a"},DEPENDS:{stroke:"#f5b942",dash:"6 4"},RELATES:{stroke:"#8a8a95",dash:"4 4"},REPLACES:{stroke:"#ff6b9d"}};function eL({view:e,nodes:t,edges:n,workOrder:g=[],embedded:b=!1,commentsContent:v,commentsCount:j=0,controlRef:w,onAskAgent:k,onAddComment:N,annotations:C,onPinClick:E,onUpdateComment:A,onRemoveComment:S,boardAnnotations:I,initialArrangedBy:M=null,hasFrontend:T=!1,readOnly:z=!1}){let R=g.join(","),$=(0,r.useMemo)(()=>{let e=new Map;return g.forEach((t,n)=>e.set(t,n+1)),e},[R]),O=g[0]??null,L=(0,r.useMemo)(()=>t.map(e=>({id:e.id,type:"ROADMAP"===e.view?"roadmapNode":"archNode",position:{x:e.x,y:e.y},data:{title:e.title,role:e.role,plain:e.plain,status:e.status,priority:e.priority,cluster:e.cluster,layer:e.layer,view:e.view,kind:e.kind,source:e.source,sourceRef:e.sourceRef,isCriterion:e.isCriterion,isChild:null!=e.parentId,parentId:e.parentId,signals:e.signals,openBugs:e.bugFlags.filter(e=>!e.resolved).length}})),[t]),B=(0,r.useMemo)(()=>{let e;return e=new Set(t.map(e=>e.id)),[...t.filter(t=>t.parentId&&e.has(t.parentId)).map(e=>({id:`c-${e.id}`,source:e.parentId,sourceHandle:"sb",target:e.id,targetHandle:"tt",type:"smoothstep",style:{stroke:eF.CONTAINS.stroke}})),...n.filter(t=>e.has(t.fromId)&&e.has(t.toId)).map(e=>{let t=eF[e.kind]??eF.RELATES,n="DEPENDS"===e.kind?"depends on":void 0;return{id:e.id,source:e.fromId,sourceHandle:e.sourceHandle??void 0,target:e.toId,targetHandle:e.targetHandle??void 0,label:e.label??n,type:"deletable",markerEnd:{type:o.TG.ArrowClosed,color:t.stroke},style:{stroke:t.stroke,strokeDasharray:t.dash}}})]},[t,n]),[U,X]=(0,r.useState)(L),[G,K]=(0,r.useState)(B),[W,Y]=(0,r.useState)(null),[Z,V]=(0,r.useState)(null),[J,Q]=(0,r.useState)(null),[ee,et]=(0,r.useState)(!1),[en,ea]=(0,r.useState)("details"),er=(0,r.useRef)(!1),es=(0,r.useRef)("details");(0,r.useEffect)(()=>{er.current=ee},[ee]),(0,r.useEffect)(()=>{es.current=en},[en]),(0,r.useEffect)(()=>{if(w)return w.current={open:()=>{if(er.current){et(!1),ea("details");return}et(!0),ea("details")},close:()=>{et(!1),ea("details")},openComments:()=>{et(!0),ea("comments")}},()=>{w&&(w.current=null)}},[w]);let[eo,ei]=(0,r.useState)(new Set),[el,ed]=(0,r.useState)(null),[ec,eu]=(0,r.useState)(!1),em=(0,r.useRef)(null);(0,r.useEffect)(()=>X(L),[L]),(0,r.useEffect)(()=>K(B),[B]),(0,r.useEffect)(()=>{if(!z)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>em.current?.fitView({padding:.2,duration:0}))});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[z,L]);let ep=(0,r.useCallback)((e,t,n)=>{X(n=>n.map(n=>n.id===e?{...n,data:{...n.data,...t}}:n)),n&&fetch(`/api/nodes/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(Object.fromEntries(Object.entries(t).filter(([e])=>eD.has(e))))})},[]),eh=(0,r.useMemo)(()=>Array.from(new Set(U.map(e=>e.data.cluster).filter(e=>!!e))).sort(),[U]),ef=(0,r.useCallback)(e=>ei(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),[]),eg=(0,r.useCallback)(e=>{Y(e),et(!0),ea("details")},[]),eb=(0,r.useCallback)(e=>{X(t=>t.filter(t=>t.id!==e)),Y(t=>t===e?null:t),fetch(`/api/nodes/${e}`,{method:"DELETE"})},[]),ey=(0,r.useCallback)(async(t,n,a="FEATURE")=>{let r=(0,s.sX)(),o="ARCHITECTURE"===e?"REBUILD":"PENDING",i="BUG"===a?"New bug":"New node";X(s=>[...s,{id:r,type:"ROADMAP"===e?"roadmapNode":"archNode",position:{x:t,y:n},data:{title:i,role:null,plain:null,status:o,priority:2,cluster:null,view:e,kind:a,source:"MANUAL",sourceRef:null,isCriterion:!1,isChild:!1,parentId:null,openBugs:0}}]),ei(e=>new Set(e).add(r)),ed(r),Y(r);try{if(!(await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:r,view:e,kind:a,title:i,status:o,x:t,y:n})})).ok)throw Error("create failed")}catch{X(e=>e.filter(e=>e.id!==r)),ei(e=>{let t=new Set(e);return t.delete(r),t}),ed(e=>e===r?null:e),Y(e=>e===r?null:e)}},[e]),e_=(0,r.useCallback)(()=>{let e=U.filter(e=>"annotation"!==e.type);return function(e,t,n={}){let a=n.colW??320,r=n.rowH??150,s=n.maxCols??4,o=n.bandGap??90;if(0===e.length){if(0===t.length)return{x:0,y:0};let e=Math.max(...t.map(e=>e.y));return ez(t,{x:0,y:e+r+o})}let i=Math.min(...e.map(e=>e.x)),l=Math.min(...e.map(e=>e.y)),d=e.map(e=>Math.max(0,Math.round((e.x-i)/a))),c=Math.min(s,Math.max(Math.max(...d)+1,Math.ceil(Math.sqrt(e.length+1)))),u=Array(c).fill(l-r);e.forEach((e,t)=>{let n=Math.min(d[t],c-1);u[n]=Math.max(u[n],e.y)});let m=0;for(let e=1;e<c;e++)u[e]<u[m]&&(m=e);return ez(t,{x:i+m*a,y:u[m]+r})}(e.filter(e=>!e.data.parentId&&!(e.data.cluster??"").trim()).map(e=>e.position),e.map(e=>e.position))},[U]),eB=(0,r.useCallback)(()=>{let e=e_();ey(e.x,e.y)},[ey,e_]),eH=(0,r.useCallback)(()=>{let e=e_();ey(e.x,e.y,"BUG")},[ey,e_]),eU=(0,r.useMemo)(()=>({view:e,categories:eh,statuses:"ARCHITECTURE"===e?D.m6:D.yl,patch:ep,isExpanded:e=>eo.has(e),toggleExpand:ef,openDetailed:eg,removeNode:eb,editingTitleId:el,onAskAgent:k,hasFrontend:T}),[e,eh,ep,eo,ef,eg,eb,el,k,T]),[eX,eG]=(0,r.useState)(M),[eK,eW]=(0,r.useState)(""),[eY,eZ]=(0,r.useState)("full"),[eq,eV]=(0,r.useState)(new Set),[eJ,eQ]=(0,r.useState)(new Set),[e0,e1]=(0,r.useState)(new Set),[e5,e2]=(0,r.useState)(null),e3=(0,r.useMemo)(()=>Array.from(new Set(t.map(e=>e.status))),[t]),e4=(0,r.useMemo)(()=>Array.from(new Set(t.map(e=>e.cluster).filter(e=>!!e))).sort(),[t]),e6=(0,r.useMemo)(()=>Array.from(new Set(t.map(e=>e.priority))).sort((e,t)=>e-t),[t]),e9=(0,r.useCallback)(e=>(!eq.size||!!eq.has(e.status))&&(!eJ.size||!!e.cluster&&!!eJ.has(e.cluster))&&(!e0.size||!!e0.has(e.priority)),[eq,eJ,e0]),e8=eq.size+eJ.size+e0.size,e7=(0,r.useCallback)(()=>{eV(new Set),eQ(new Set),e1(new Set)},[]),te=(0,r.useMemo)(()=>U.map(e=>({...e,hidden:!e9(e.data)})),[U,e9]),tt=(0,r.useMemo)(()=>new Set(te.filter(e=>e.hidden).map(e=>e.id)),[te]),tn=(0,r.useMemo)(()=>G.map(e=>({...e,hidden:tt.has(e.source)||tt.has(e.target)})),[G,tt]),ta=(0,r.useMemo)(()=>{if(Z){let e=tn.find(e=>e.id===Z);return e?new Set([e.source,e.target]):null}return W?(0,ev.F1)(W,tn.filter(e=>!e.hidden)):null},[W,Z,tn]),tr=eK.trim().length>0,ts=(0,r.useMemo)(()=>{if(!tr)return null;let e=new Set;for(let t of U)e9(t.data)&&(0,ek.Qk)((0,ek.$$)(t.data),eK)&&e.add(t.id);return e},[U,eK,e9,tr]),to=(0,r.useMemo)(()=>"ARCHITECTURE"===e?(0,eN.d)(t):[],[e,t]),ti=(0,r.useCallback)(e=>{em.current&&(e.focusIds.length?em.current.fitView({nodes:e.focusIds.map(e=>({id:e})),duration:700,padding:.3,maxZoom:1.1}):em.current.fitView({duration:700,padding:.2}))},[]),tl=(0,eC.W)(to,ti),td=tl.focusIds,tc=td??ts??ta,tu=ts??td,tm=(0,r.useMemo)(()=>e5?new Set(te.filter(e=>!e.hidden&&!(0,eS.F)(e5,(0,P.jR)(e.data.layer))).map(e=>e.id)):null,[e5,te]),tp=(0,r.useMemo)(()=>te.map(e=>{let t=$.get(e.id),n=t?{...e,data:{...e.data,workOrderRank:t,isNext:1===t}}:e;if(eo.has(e.id)&&(n={...n,zIndex:25}),n.hidden)return n;if(!tc)return tm?.has(e.id)?{...n,style:{...n.style,opacity:.3,filter:"saturate(0.3)",transition:"opacity 120ms, filter 120ms"}}:n;let a=tc.has(e.id),r=tu?ek.Uy:.45;return{...n,zIndex:a&&tu?24:n.zIndex,style:{...n.style,opacity:a?1:r,boxShadow:a&&tu?ek.RU:n.style?.boxShadow,borderRadius:a&&tu?14:n.style?.borderRadius,transition:"opacity 120ms, box-shadow 120ms"}}}),[te,tc,tu,$,eo,tm]),tx=(0,r.useMemo)(()=>{if("ROADMAP"===e&&!eX||"ROADMAP"!==e&&"ARCHITECTURE"!==e)return[];let t=new Map(tp.map(e=>[e.id,e])),n=[];for(let r of tp){var a;if(r.hidden||"annotation"===r.type)continue;let s=(r.data.parentId?t.get(r.data.parentId):void 0)??r,o="ROADMAP"===e&&eX?(a=s.data,"status"===eX?D.nR[a.status]?.label??a.status:"priority"===eX?`P${a.priority}`:a.cluster?.trim()||"—"):s.data.cluster?.trim()||"—";n.push({id:r.id,group:o,x:r.position.x,y:r.position.y,w:r.measured?.width??(r.data.isChild?224:256),h:r.measured?.height??96})}return(0,eT.S)(n)},[tp,eX,e]),th="ARCHITECTURE"===e||"cluster"===eX?"category":"neutral",tf=(0,r.useMemo)(()=>{if(td)return tn.map(e=>e.hidden?e:td.has(e.source)&&td.has(e.target)?{...e,style:{...e.style,opacity:1}}:{...e,label:void 0,style:{...e.style,opacity:.06}});if(ts)return tn.map(e=>e.hidden?e:ts.has(e.source)&&ts.has(e.target)?{...e,style:{...e.style,opacity:1}}:{...e,label:void 0,style:{...e.style,opacity:.06}});let e=W??J;return Z||e?tn.map(t=>t.hidden?t:(Z?t.id===Z:t.source===e||t.target===e)?{...t,zIndex:20,style:{...t.style,opacity:1,strokeWidth:2.5}}:{...t,selectable:!1,label:void 0,markerEnd:void 0,style:{...t.style,opacity:.06}}):tn.map(e=>{if(e.hidden)return e;let t=tm&&(tm.has(e.source)||tm.has(e.target));return{...e,label:void 0,style:{...e.style,opacity:t?.06:.18}}})},[tn,W,Z,J,ts,tm,td]),tg=void 0!==I,[tb,ty]=(0,r.useState)(I??[]);(0,r.useEffect)(()=>{I&&ty(I)},[I]);let tv=(0,r.useMemo)(()=>{if(tg){let e=new Set(t.map(e=>e.id));return tb.filter(t=>"feature"===t.targetKind&&e.has(t.targetId)).map((e,t)=>({id:e.id,n:t+1,targetId:e.targetId,text:e.body,x:e.x,y:e.y}))}let e=new Map((C??[]).map(e=>[e.id,e.comment]));return(0,q.m)(C??[],{tables:[],features:t.map(e=>({id:e.id,title:e.title}))}).map(t=>({id:t.annotationId,n:t.n,targetId:t.targetId,text:e.get(t.annotationId)??"",x:null,y:null}))},[tg,tb,C,t]),tj=(0,r.useMemo)(()=>{let e=new Map;for(let t of tv){let n=e.get(t.targetId)??[];n.push({id:t.id,n:t.n,column:null}),e.set(t.targetId,n)}return e},[tv]),tw=(0,r.useCallback)(async e=>{let n=(0,q.m)([{id:"_",excerpt:e}],{tables:[],features:t.map(e=>({id:e.id,title:e.title}))})[0];if(!n)return;let a=await fetch("/api/board-annotations",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({targetKind:"feature",targetId:n.targetId})});if(a.ok){let e=await a.json();ty(t=>[...t,e])}},[t]),tk=(0,r.useCallback)((e,t)=>{ty(n=>n.map(n=>n.id===e?{...n,...t}:n)),fetch(`/api/board-annotations/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})},[]),tN=(0,r.useCallback)(e=>{ty(t=>t.filter(t=>t.id!==e)),fetch(`/api/board-annotations/${e}`,{method:"DELETE"})},[]),tC=tg?tw:N,[tE,tA]=(0,r.useState)(()=>new Map),tS=(0,r.useMemo)(()=>{let e=new Map(tp.map(e=>[e.id,e])),t=new Map,n=tv.flatMap(n=>{let a=e.get(n.targetId);if(!a||a.hidden)return[];let r=t.get(n.targetId)??0;t.set(n.targetId,r+1);let s=a.measured?.height??96;return[{id:`anno-${n.id}`,type:"annotation",position:{x:n.x??a.position.x+26,y:n.y??a.position.y+s+56+112*r},measured:tE.get(`anno-${n.id}`),draggable:tg,data:{n:n.n,text:n.text,annotationId:n.id,onClick:tg||A?void 0:E,editable:tg||!!A,onChangeText:tg?(e,t)=>tk(e,{body:t}):A,onDelete:tg?tN:S}}]});return[...tp.map(e=>{let t=tj.get(e.id);return t||tC?{...e,data:{...e.data,pins:t,onPinClick:tg?void 0:E,onComment:tC}}:e}),...n]},[tp,tv,tj,tg,E,A,S,tC,tk,tN,tE]),tI=(0,r.useMemo)(()=>tv.map(e=>({id:`annoe-${e.id}`,source:e.targetId,sourceHandle:`pin-${e.id}`,target:`anno-${e.id}`,targetHandle:"in",type:"annotation",selectable:!1,zIndex:30,style:{stroke:y.V5,strokeWidth:1.5,opacity:.9}})),[tv]),tM=(0,r.useCallback)(e=>{let t=[];for(let n of e)if("position"===n.type&&n.id.startsWith("anno-")&&n.position){let e=n.id.slice(5),{x:t,y:a}=n.position;ty(n=>n.map(n=>n.id===e?{...n,x:t,y:a}:n))}else if("dimensions"===n.type&&n.id.startsWith("anno-")){let e=n.dimensions;e&&tA(t=>{let a=t.get(n.id);if(a&&a.width===e.width&&a.height===e.height)return t;let r=new Map(t);return r.set(n.id,e),r})}else t.push(n);t.length&&X(e=>(0,i._0)(t,e))},[]),tT=(0,r.useCallback)(e=>K(t=>(0,i.zW)(e,t)),[]),tz=(0,r.useCallback)(async e=>{if(!e.source||!e.target||e.source===e.target)return;let t=await fetch("/api/edges",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({fromId:e.source,toId:e.target,kind:"DEPENDS",sourceHandle:e.sourceHandle??null,targetHandle:e.targetHandle??null})});if(!t.ok)return;let n=await t.json(),a=eF.DEPENDS;K(t=>t.some(e=>e.id===n.id)?t:[...t,{id:n.id,source:n.fromId,sourceHandle:e.sourceHandle??void 0,target:n.toId,targetHandle:e.targetHandle??void 0,label:"depends on",type:"deletable",markerEnd:{type:o.TG.ArrowClosed,color:a.stroke},style:{stroke:a.stroke,strokeDasharray:a.dash}}])},[]),tR=(0,r.useCallback)(async(t,n,a)=>{let r=await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({view:e,title:"New node",parentId:t.id,cluster:t.data.cluster??null,status:"ARCHITECTURE"===e?"REBUILD":"PENDING",x:n,y:a})});if(!r.ok)return;let s=await r.json();X(r=>[...r,{id:s.id,type:"ROADMAP"===e?"roadmapNode":"archNode",position:{x:n,y:a},data:{title:s.title,role:s.role,plain:s.plain,status:s.status,priority:s.priority,cluster:s.cluster,view:s.view,source:s.source,sourceRef:s.sourceRef,kind:s.kind,isCriterion:!1,isChild:!0,parentId:t.id,openBugs:0}}]),K(e=>[...e,{id:`c-${s.id}`,source:t.id,target:s.id,type:"smoothstep",style:{stroke:eF.CONTAINS.stroke}}]),ei(e=>new Set(e).add(s.id)),ed(s.id),Y(s.id)},[e]),t$=(0,r.useCallback)(async(e,t)=>{if(t.isValid||!t.fromNode||!em.current)return;let n=e.changedTouches,a=n?.[0]?.clientX??e.clientX,r=n?.[0]?.clientY??e.clientY,{x:s,y:o}=em.current.screenToFlowPosition({x:a,y:r});await tR(t.fromNode,s,o)},[tR]);(0,r.useEffect)(()=>{if(!ec)return;let e=e=>{"Escape"===e.key&&eu(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ec]);let tD=(0,r.useMemo)(()=>t.find(e=>e.id===W)??null,[t,W]),tP=(0,r.useCallback)((e,t,n)=>{fetch(`/api/nodes/${e}/position`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({x:t,y:n})})},[]),tO=(0,r.useCallback)(e=>{Y(e),V(null);let t=em.current?.getNode(e);if(!t||!em.current)return;let n=t.measured?.width??128,a=t.measured?.height??48;em.current.setCenter(t.position.x+n/2,t.position.y+a/2,{zoom:1.2,duration:600})},[]),tF=(0,r.useCallback)(e=>{let t=(0,eI.VI)(U.map(e=>({id:e.id,parentId:e.data.parentId??null,cluster:e.data.cluster,status:e.data.status,priority:e.data.priority})),e,{viewportAspect:window.innerWidth/window.innerHeight});X(e=>e.map(e=>{let n=t.get(e.id);return n?{...e,position:n}:e}));let n=Array.from(t,([e,t])=>({id:e,x:t.x,y:t.y}));n.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:n})}),eG(e),fetch("/api/board-layout",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({board:"roadmap",arrangedBy:e})}),requestAnimationFrame(()=>em.current?.fitView({duration:600,padding:.2}))},[U]),tL=(0,r.useMemo)(()=>{let t=new Map;if("ROADMAP"!==e||!eX)return t;let n=e=>"status"===eX?e.status:"priority"===eX?`P${e.priority}`:e.cluster??"—";for(let e of U)"annotation"!==e.type&&t.set(e.id,n(e.data));return t},[U,eX,e]),t_=(0,r.useRef)(null);(0,r.useEffect)(()=>{let t=t_.current;if(t_.current=tL,!t||"ROADMAP"!==e||!eX)return;let n=!1;for(let[e,a]of tL)if(t.has(e)&&t.get(e)!==a){n=!0;break}n&&tF(eX)},[tL,eX,e,tF]);let tB=(0,r.useCallback)(()=>{let e=function(e,t,n={}){if(0===e.length)return new Map;let a=function(e,t){let n=e.map(e=>e.id).sort(),a=new Map(n.map(e=>[e,[]]));for(let e of[...t].sort((e,t)=>e.fromId.localeCompare(t.fromId)||e.toId.localeCompare(t.toId)))a.get(e.fromId)?.push(e);let r=new Map,s=[],o=e=>{for(let t of(r.set(e,"visiting"),a.get(e)??[])){let e=r.get(t.toId);"visiting"!==e&&(s.push(t),"done"!==e&&o(t.toId))}r.set(e,"done")};for(let e of n)r.has(e)||o(e);return s}(e,t),r=function(e,t){let n=new Map(e.map(e=>[e.id,[]]));for(let e of t)n.get(e.fromId)?.push(e.toId);let a=new Map,r=e=>{let t=a.get(e);if(void 0!==t)return t;a.set(e,0);let s=n.get(e)??[],o=s.length?1+Math.max(...s.map(r)):0;return a.set(e,o),o};for(let t of e)r(t.id);return a}(e,a),s=new Map(e.map(e=>[e.id,[]]));for(let e of a)s.get(e.fromId)?.push(e.toId);let o=Array.from(new Set(e.map(e=>e.group))),i=o.filter(e=>"—"!==e).sort(),l=o.includes("—")?[...i,"—"]:i,d=[];for(let t of l){let n=e.filter(e=>e.group===t),a=Math.min(...n.map(e=>r.get(e.id)??0)),o=Math.max(...n.map(e=>r.get(e.id)??0)),i=new Map,l=new Map,c=0,u=1;for(let e=a;e<=o;e++){let t=n.filter(t=>r.get(t.id)===e);if(!t.length)continue;let a=e=>{let t=(s.get(e.id)??[]).map(e=>l.get(e)).filter(e=>void 0!==e);return t.length?t.reduce((e,t)=>e+t,0)/t.length:1/0};t.sort((e,t)=>a(e)-a(t)||e.id.localeCompare(t.id));let o=Math.max(1,Math.ceil(Math.sqrt(2*t.length)));t.forEach((e,t)=>{let n=Math.floor(t/o),a=t%o;l.set(e.id,a),i.set(e.id,{x:c+360*n,y:150*a}),u=Math.max(u,a+1)}),c+=360*Math.ceil(t.length/o)}d.push({d:t,w:c,h:150*u,local:i})}let c=(0,eM.Xi)(d.map(e=>({id:e.d,w:e.w,h:e.h})),{gapX:84,gapY:80,viewportAspect:n.viewportAspect,minBandW:1080,aspectSlack:1.5}),u=new Map;for(let e of d){let t=c.get(e.d);for(let[n,a]of e.local)u.set(n,{x:t.x+a.x,y:t.y+a.y})}return u}(U.filter(e=>"annotation"!==e.type).map(e=>({id:e.id,group:(e.data.cluster??"").trim()||"—"})),n.filter(e=>"DEPENDS"===e.kind).map(e=>({fromId:e.fromId,toId:e.toId})),{viewportAspect:window.innerWidth/window.innerHeight});X(t=>t.map(t=>{let n=e.get(t.id);return n?{...t,position:n}:t}));let t=Array.from(e,([e,t])=>({id:e,x:t.x,y:t.y}));t.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:t})}),requestAnimationFrame(()=>em.current?.fitView({duration:600,padding:.2}))},[U,n]),tH=(0,r.useMemo)(()=>tr?(0,ek.r2)(U.filter(e=>e9(e.data)),eK,e=>(0,ek.$$)(e.data),e=>({id:e.id,label:e.data.title,sublabel:e.data.cluster??e.data.status,kind:"feature"})):[],[U,eK,e9,tr]);function tU(e,t){t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}return(0,a.jsx)(F.Provider,{value:eU,children:(0,a.jsxs)("div",{className:(0,H.cn)("canvas-dots relative w-full",b?"h-full":"h-screen"),onDragOver:e=>{e.dataTransfer.types.includes("application/beacon-node")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy")},onDrop:e=>{if(!e.dataTransfer.getData("application/beacon-node")||!em.current)return;e.preventDefault();let{x:t,y:n}=em.current.screenToFlowPosition({x:e.clientX,y:e.clientY});ey(t,n,"BUG"===e.dataTransfer.getData("application/beacon-node-kind")?"BUG":"FEATURE")},children:[(0,a.jsxs)(i.Gc,{nodes:tS,edges:"far"===eY?[...tf,...tI].map(e=>({...e,hidden:!0})):[...tf,...tI],nodeTypes:eP,edgeTypes:eO,nodesConnectable:!z,connectionMode:o.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:e=>{em.current=e},onNodesChange:tM,onEdgesChange:tT,onConnect:tz,onConnectEnd:t$,onNodeMouseEnter:(e,t)=>Q(t.id),onNodeMouseLeave:()=>Q(null),onEdgesDelete:e=>{for(let t of e)t.id.startsWith("c-")||fetch(`/api/edges/${t.id}`,{method:"DELETE"})},onNodesDelete:e=>{for(let t of e)t.id.startsWith("anno-")||(fetch(`/api/nodes/${t.id}`,{method:"DELETE"}),Y(e=>e===t.id?null:e))},onNodeClick:(e,t)=>{if("annotation"===t.type){let e=t.data;e.editable||E?.(e.annotationId);return}if(ec){if(eu(!1),t.data.isChild)return;tR(t,t.position.x+300,t.position.y+60);return}if(Y(t.id),V(null),ea("details"),b){let t=e.target;t?.closest("input, textarea, select, button, [role='combobox']")||et(!0)}},onEdgeClick:(e,t)=>{V(t.id),Y(null),ea("details")},onPaneClick:()=>{ec?eu(!1):(et(!1),Y(null),V(null))},onNodeDragStop:(e,t)=>{if(t.id.startsWith("anno-")){tg&&tk(t.id.slice(5),{x:t.position.x,y:t.position.y});return}z||tP(t.id,t.position.x,t.position.y)},deleteKeyCode:z?null:["Backspace","Delete"],colorMode:"dark",fitView:!0,fitViewOptions:{padding:.15,minZoom:.38,maxZoom:.9},minZoom:.2,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,a.jsx)(eR.Z,{regions:tx,tone:th,lod:eY}),(0,a.jsx)(_.J,{onLod:eZ}),(0,a.jsx)(i.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),(0,a.jsx)(i.Zk,{position:"bottom-right",style:{marginBottom:152},children:(0,a.jsx)(eA.er,{title:"Legend",trigger:(e,t)=>(0,a.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,H.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,a.jsx)(l.A,{className:"size-4"})}),children:(0,a.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:["ROADMAP"===e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-sky-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"feature"}),(0,a.jsx)("span",{children:"top-level card \xb7 can have sub-tasks"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub-task"}),(0,a.jsx)("span",{children:"child of a feature"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-rose-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:"bug"}),(0,a.jsx)("span",{children:"a bug to fix \xb7 not a feature"})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-sky-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"component"}),(0,a.jsx)("span",{children:"a subsystem \xb7 can have sub-components"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub-component"}),(0,a.jsx)("span",{children:"part of a component"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded bg-rose-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:"bug"}),(0,a.jsx)("span",{children:"a flagged issue on a component"})]})]}),T&&(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-3 w-1 shrink-0 rounded-sm",style:{background:(0,P.A6)("fullstack")}}),(0,a.jsx)("span",{children:"left stripe \xb7 frontend / backend layer"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#33333a]"}),(0,a.jsx)("span",{children:"contains \xb7 drag the bottom handle to empty canvas"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#f5b942"}}),(0,a.jsxs)("span",{children:["depends on \xb7 drag between two ","ROADMAP"===e?"cards":"components"]})]})]})})}),!b&&(0,a.jsx)(i.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!overflow-hidden !rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:e=>e.data?.priority===0?"#ff3860":"#555"}),(0,a.jsxs)(i.Zk,{position:"bottom-center",className:"!mb-4 flex flex-col items-center gap-2",children:[ec&&(0,a.jsxs)("div",{className:"glass rounded-full px-3 py-1 text-[11px] text-muted-foreground",children:["Click a ","ARCHITECTURE"===e?"component":"feature"," to attach the"," ","ARCHITECTURE"===e?"sub-component":"sub-task"," \xb7 Esc to cancel"]}),"ARCHITECTURE"===e&&(0,a.jsx)("div",{className:"glass flex items-center rounded-full p-0.5",children:(0,a.jsxs)("button",{onClick:tB,title:"Arrange components into a left→right dependency flow, grouped by domain",className:"flex h-6 items-center gap-1.5 rounded-full px-3 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,a.jsx)(d.A,{className:"size-3"}),"Arrange"]})}),"ROADMAP"===e&&(0,a.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,a.jsx)("span",{className:"pl-2 pr-0.5 text-[11px] text-muted-foreground",children:"Group by"}),e$.map(e=>(0,a.jsx)("button",{onClick:()=>tF(e.value),title:`Arrange features into lanes by ${e.label.toLowerCase()}`,className:(0,H.cn)("h-7 rounded-full px-2.5 text-[11px] font-medium transition-colors",eX===e.value?"bg-white/[0.12] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:e.label},e.value))]}),(0,a.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,a.jsxs)("button",{onClick:eB,draggable:!0,onDragStart:t=>{t.dataTransfer.setData("application/beacon-node",e),t.dataTransfer.effectAllowed="copy"},title:"ARCHITECTURE"===e?"Add component (click, or drag onto the board to place it)":"Add feature (click, or drag onto the board to place it)",className:"flex h-8 cursor-grab items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-foreground transition-colors hover:bg-white/[0.06] active:cursor-grabbing",children:[(0,a.jsx)(c.A,{className:"size-3.5 text-[var(--accent-2,#ff7a45)]"}),"ARCHITECTURE"===e?"Component":"Feature"]}),"ROADMAP"===e&&(0,a.jsxs)("button",{onClick:eH,draggable:!0,onDragStart:t=>{t.dataTransfer.setData("application/beacon-node",e),t.dataTransfer.setData("application/beacon-node-kind","BUG"),t.dataTransfer.effectAllowed="copy"},title:"Add bug (click, or drag onto the board to place it)",className:"flex h-8 cursor-grab items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-foreground transition-colors hover:bg-white/[0.06] active:cursor-grabbing",children:[(0,a.jsx)(u.A,{className:"size-3.5 text-rose-400"}),"Bug"]}),(0,a.jsx)("span",{"aria-hidden":!0,className:"mx-0.5 h-5 w-px bg-white/10"}),(0,a.jsxs)("button",{onClick:()=>eu(e=>!e),title:"ARCHITECTURE"===e?"Add sub-component (click a component next)":"Add sub-task (click a feature next)",className:(0,H.cn)("flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium transition-colors",ec?"bg-white/[0.1] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,a.jsx)(m.A,{className:"size-3.5"}),"ARCHITECTURE"===e?"Sub-component":"Sub-task"]})]})]}),!b&&to.length>0&&!tl.active&&(0,a.jsx)(i.Zk,{position:"top-left",className:"!mt-14",children:(0,a.jsxs)("button",{type:"button",onClick:tl.start,title:"Guided, domain-by-domain walkthrough of the architecture",className:"glass flex items-center gap-1.5 rounded-xl px-3 py-1.5 text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:[(0,a.jsx)(p.A,{className:"size-3.5"}),"Start tour"]})}),!b&&(0,a.jsx)(i.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,a.jsx)(ej.Z,{active:e,tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"},{value:"FILES",label:"Files",href:"/map?view=FILES"}]})}),(0,a.jsxs)(i.Zk,{position:"top-right",className:(0,H.cn)("flex items-center gap-1 transition-[margin] duration-200",ee&&"!mr-[332px]",b&&"hidden"),children:[(0,a.jsx)(ew.X,{query:eK,onQuery:eW,hits:tH,placeholder:"Find a feature…",onPick:e=>{eW(""),tO(e)},onZoomToMatches:()=>{ts?.size&&em.current?.fitView({nodes:[...ts].map(e=>({id:e})),duration:600,padding:.2})}}),T&&(0,a.jsx)(eS.o,{value:e5,onChange:e2}),"ROADMAP"===e&&O&&(0,a.jsx)("button",{type:"button",onClick:()=>tO(O),title:"Jump to the next feature to work on",className:"glass flex size-8 items-center justify-center rounded-lg text-emerald-300 transition-colors hover:text-emerald-200",children:(0,a.jsx)(x.A,{className:"size-4"})}),(0,a.jsxs)(eA.er,{title:"Filters",trigger:(e,t)=>(0,a.jsxs)("button",{type:"button",onClick:t,title:"Filters",className:(0,H.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",e||e8>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(h.A,{className:"size-4"}),e8>0&&(0,a.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:e8})]}),children:[e3.length>0&&(0,a.jsx)(eA.r1,{title:"Status",children:e3.map(e=>(0,a.jsx)(eA.vu,{on:eq.has(e),onClick:()=>tU(e,eV),children:D.nR[e]?.label??e},e))}),e4.length>0&&(0,a.jsx)(eA.r1,{title:"Cluster",children:e4.map(e=>(0,a.jsx)(eA.vu,{on:eJ.has(e),onClick:()=>tU(e,eQ),children:e},e))}),e6.length>0&&(0,a.jsx)(eA.r1,{title:"Priority",children:e6.map(e=>(0,a.jsxs)(eA.vu,{on:e0.has(e),onClick:()=>tU(e,e1),children:["P",e]},e))}),e8>0&&(0,a.jsx)("button",{type:"button",onClick:e7,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),!ee&&(0,a.jsx)("button",{onClick:()=>{et(!0),ea("details")},title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,a.jsx)(f.A,{className:"size-4"})})]})]}),ee&&(0,a.jsx)(ex,{view:e,selected:tD,allNodes:t,onClose:()=>{et(!1),ea("details")},commentsContent:v,commentsCount:j,activeTab:en,onTabChange:ea,onAddComment:tC,topOffset:b?64:void 0}),tl.active&&tl.step&&(0,a.jsx)(eE.d,{steps:to,index:tl.index,onPrev:tl.prev,onNext:tl.next,onExit:tl.stop,onGoto:tl.goto})]})})}},70221:(e,t,n)=>{n.d(t,{fE:()=>s,gt:()=>o,kz:()=>r});let a={far:.3,farExit:.34,mid:.55,midExit:.6},r={far:.12,farExit:.15,mid:.45,midExit:.5},s={far:.2,farExit:.24,mid:.32,midExit:.36};function o(e,t="full",n=a){return e<n.far||"far"===t&&e<n.farExit?"far":e<n.mid||"mid"===t&&e<n.midExit?"mid":"full"}},70521:(e,t,n)=>{n.d(t,{$v:()=>w,EO:()=>b,Lt:()=>x,Rx:()=>k,Zr:()=>N,ck:()=>v,r7:()=>j,tv:()=>h,wd:()=>y});var a=n(95155);n(12115);var r=n(25381),s=n(7121),o=n(51880),i=n(35176),l=n(11248),d=n(82022),c=n(98758),u=n(45362),m=n(91337),p=n(4474);function x({...e}){return(0,a.jsx)(r.V,{"data-slot":"alert-dialog",...e})}function h({...e}){return(0,a.jsx)(s.t,{"data-slot":"alert-dialog-trigger",...e})}function f({...e}){return(0,a.jsx)(o.Z,{"data-slot":"alert-dialog-portal",...e})}function g({className:e,...t}){return(0,a.jsx)(i.X,{"data-slot":"alert-dialog-overlay",className:(0,m.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function b({className:e,size:t="default",...n}){return(0,a.jsxs)(f,{children:[(0,a.jsx)(g,{}),(0,a.jsx)(l.h,{"data-slot":"alert-dialog-content","data-size":t,className:(0,m.cn)("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})]})}function y({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,m.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...t})}function v({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,m.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...t})}function j({className:e,...t}){return(0,a.jsx)(d.L,{"data-slot":"alert-dialog-title",className:(0,m.cn)("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...t})}function w({className:e,...t}){return(0,a.jsx)(c.r,{"data-slot":"alert-dialog-description",className:(0,m.cn)("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})}function k({className:e,variant:t,size:n,...r}){return(0,a.jsx)(u.H,{"data-slot":"alert-dialog-action",className:(0,m.cn)(e),render:(0,a.jsx)(p.$,{variant:t,size:n}),...r})}function N({className:e,variant:t="outline",size:n="default",...r}){return(0,a.jsx)(u.H,{"data-slot":"alert-dialog-cancel",className:(0,m.cn)(e),render:(0,a.jsx)(p.$,{variant:t,size:n}),...r})}},70947:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(95155),r=n(81750),s=n(12410),o=n(91337);function i({regions:e,tone:t="neutral",lod:n="full"}){let l=(0,r.Pj)(e=>e.transform[2]);if(0===e.length)return null;let d="far"===n,c=Math.min(150,26/Math.max(l,.05)),u=Math.min(80,13/Math.max(l,.05));return(0,a.jsx)(r.DX,{children:e.map(e=>(0,a.jsx)("div",{style:{position:"absolute",transform:`translate(${e.x}px, ${e.y}px)`,width:e.w,height:e.h,pointerEvents:"none",zIndex:0},className:(0,o.cn)("rounded-2xl border","category"===t?(0,s.xZ)(e.key):"border-white/[0.08] bg-white/[0.015]",d&&"bg-card/80"),children:d?(0,a.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-[0.3em] px-2",children:[(0,a.jsx)("span",{className:"whitespace-nowrap text-center font-semibold tracking-tight text-foreground",style:{fontSize:Math.min(c,.34*e.h,(e.w-16)/(.74*Math.max(e.label.length,1))),lineHeight:1.1},children:e.label}),(0,a.jsxs)("span",{className:"tabular-nums text-muted-foreground",style:{fontSize:Math.min(u,.18*e.h)},children:[e.count," ",1===e.count?"card":"cards"]})]}):(0,a.jsxs)("div",{className:"flex items-baseline gap-2 px-3 py-1",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:e.label}),(0,a.jsx)("span",{className:"text-[10px] tabular-nums text-muted-foreground/50",children:e.count})]})},e.key))})}},74350:(e,t,n)=>{n.d(t,{Cf:()=>g,Es:()=>y,L3:()=>v,c7:()=>b,lG:()=>x,rr:()=>j});var a=n(95155);n(12115);var r=n(17112),s=n(51880),o=n(35176),i=n(11248),l=n(45362),d=n(82022),c=n(98758),u=n(91337),m=n(4474),p=n(9005);function x({...e}){return(0,a.jsx)(r.D,{"data-slot":"dialog",...e})}function h({...e}){return(0,a.jsx)(s.Z,{"data-slot":"dialog-portal",...e})}function f({className:e,...t}){return(0,a.jsx)(o.X,{"data-slot":"dialog-overlay",className:(0,u.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function g({className:e,children:t,showCloseButton:n=!0,...r}){return(0,a.jsxs)(h,{children:[(0,a.jsx)(f,{}),(0,a.jsxs)(i.h,{"data-slot":"dialog-content",className:(0,u.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...r,children:[t,n&&(0,a.jsxs)(l.H,{"data-slot":"dialog-close",render:(0,a.jsx)(m.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,a.jsx)(p.A,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function b({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"dialog-header",className:(0,u.cn)("flex flex-col gap-2",e),...t})}function y({className:e,showCloseButton:t=!1,children:n,...r}){return(0,a.jsxs)("div",{"data-slot":"dialog-footer",className:(0,u.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",e),...r,children:[n,t&&(0,a.jsx)(l.H,{render:(0,a.jsx)(m.$,{variant:"outline"}),children:"Close"})]})}function v({className:e,...t}){return(0,a.jsx)(d.L,{"data-slot":"dialog-title",className:(0,u.cn)("font-heading text-base leading-none font-medium",e),...t})}function j({className:e,...t}){return(0,a.jsx)(c.r,{"data-slot":"dialog-description",className:(0,u.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})}},82099:(e,t,n)=>{n.d(t,{b:()=>s});var a=n(95155);n(12115);var r=n(91337);function s({className:e,children:t,...n}){return(0,a.jsxs)("div",{className:(0,r.cn)("glass relative isolate overflow-hidden",e),...n,children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10 rounded-[inherit]",style:{background:"radial-gradient(90% 60% at 0% 0%, oklch(1 0 0 / 0.04), transparent 42%)"}}),(0,a.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10 rounded-[inherit] opacity-[0.035] mix-blend-overlay",style:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\")",backgroundSize:"120px 120px"}}),t]})}},91157:(e,t,n)=>{n.d(t,{b:()=>o,d:()=>i});let a=e=>e.slice(e.lastIndexOf("/")+1),r=(e,t)=>t>e?", …":"";function s(e){let t=new Map;for(let n of e)t.set(a(n),(t.get(a(n))??0)+1);return e.map(e=>{let n=a(e);if((t.get(n)??0)<=1)return n;let r=e.slice(0,e.lastIndexOf("/")),s=r.slice(r.lastIndexOf("/")+1);return s?`${s}/${n}`:n})}function o(e,t,n){if(0===e.length)return[];let a=e=>n.get(e)??"(root)",o=new Map;for(let t of e){let e=a(t.path),n=o.get(e);n?n.push(t):o.set(e,[t])}let i=[...o.keys()],l=e=>o.get(e)?.length??0,d=new Map,c=new Map;for(let e of i)d.set(e,new Set),c.set(e,0);let u=new Set;for(let e of t){if(e.circular)continue;let t=a(e.from),n=a(e.to);if(t===n||!d.has(t)||!d.has(n))continue;let r=`${t}\0${n}`;u.has(r)||(u.add(r),d.get(t).add(n),c.set(n,(c.get(n)??0)+1))}let m=(e,t)=>l(t)-l(e)||e.localeCompare(t),p=new Map(c),x=new Set,h=[];for(;h.length<i.length;){let e=i.filter(e=>!x.has(e)&&(p.get(e)??0)===0).sort(m);if(0===e.length){for(let e of i.filter(e=>!x.has(e)).sort((e,t)=>(p.get(e)??0)-(p.get(t)??0)||l(t)-l(e)||e.localeCompare(t)))h.push(e),x.add(e);break}for(let t of e)for(let e of(h.push(t),x.add(t),d.get(t)))p.set(e,(p.get(e)??0)-1)}let f=e.filter(e=>(e.inDegree??0)===0).sort((e,t)=>(t.outDegree??0)-(e.outDegree??0)||e.path.localeCompare(t.path)),g=[];if(g.push({id:"tour:overview",kind:"overview",title:"Project overview",summary:`${e.length} files across ${i.length} ${1===i.length?"area":"areas"} \xb7 ${t.length} imports. Step through the architecture in dependency order — entry points first.`,focusIds:[]}),f.length){let e=s(f.slice(0,4).map(e=>e.path));g.push({id:"tour:entry",kind:"entry",title:"Entry points",summary:`${f.length} file${1===f.length?"":"s"} nothing imports — where execution starts: ${e.join(", ")}${r(4,f.length)}.`,focusIds:f.slice(0,12).map(e=>e.path)})}for(let e of h){let t=o.get(e),n=s([...t].sort((e,t)=>(t.inDegree??0)-(e.inDegree??0)||e.path.localeCompare(t.path)).slice(0,3).map(e=>e.path)),a=[...d.get(e)].sort(m),i=a.length?` \xb7 imports ${a.slice(0,3).join(", ")}${r(3,a.length)}`:" \xb7 no cross-area imports";g.push({id:`tour:group:${e}`,kind:"group",title:e,summary:`${t.length} file${1===t.length?"":"s"}${i} \xb7 top hubs: ${n.join(", ")}.`,focusIds:t.map(e=>e.path)})}return g}function i(e){if(0===e.length)return[];let t=e=>e.cluster?.trim()||"—",n=new Map;for(let a of e){let e=t(a),r=n.get(e);r?r.push(a):n.set(e,[a])}let a=e=>Math.min(...n.get(e).map(e=>e.x??0)),s=[...n.keys()].sort((e,t)=>a(e)-a(t)||e.localeCompare(t)),o=[{id:"tour:overview",kind:"overview",title:"Architecture overview",summary:`${e.length} component${1===e.length?"":"s"} across ${s.length} ${1===s.length?"domain":"domains"}. Walk the architecture domain by domain, upstream first.`,focusIds:[]}];for(let e of s){let t=n.get(e),a=t.slice(0,3).map(e=>e.title?.trim()||e.id);o.push({id:`tour:domain:${e}`,kind:"group",title:e,summary:`${t.length} component${1===t.length?"":"s"}: ${a.join(", ")}${r(3,t.length)}.`,focusIds:t.map(e=>e.id)})}return o}},91337:(e,t,n)=>{n.d(t,{cn:()=>s});var a=n(29722),r=n(622);function s(...e){return(0,r.QP)((0,a.$)(e))}},91588:(e,t,n)=>{n.d(t,{DbMapClient:()=>eg});var a=n(95155),r=n(12115),s=n(73321),o=n(81750),i=n(6266);n(53255);var l=n(32133),d=n(81499),c=n(51128),u=n(65738),m=n(9005),p=n(2125),x=n(91337),h=n(18874);let f=(0,r.createContext)(null);function g(){let e=(0,r.useContext)(f);if(!e)throw Error("useDbEdit must be used inside DbEditContext");return e}var b=n(29523),y=n(70221),v=n(95635),j=n(17918);let w={danger:"bg-red-500/15 text-red-300",warn:"bg-amber-500/15 text-amber-300"};function k({badges:e,className:t}){return e.length?(0,a.jsx)("span",{className:(0,x.cn)("flex shrink-0 items-center gap-0.5",t),children:e.map(e=>(0,a.jsx)("span",{title:e.title,className:(0,x.cn)("rounded px-1 text-[8px] font-semibold uppercase tracking-wide",w[e.tone]),children:e.label},e.label))}):null}let N=/pass(word)?|token|secret|api[_-]?key|credential|priv(ate)?[_-]?key|hash|salt/i,C=/auth|login|logout|session|token|password|oauth|sso|credential/i,E="nodrag nopan",A=v.x;function S({onClick:e,title:t}){return(0,a.jsx)("button",{type:"button",title:t,onClick:t=>{t.stopPropagation(),e()},className:(0,x.cn)(E,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover/row:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,a.jsx)(l.A,{className:"size-3"})})}function I({c:e,fkTargets:t}){let n=t?.[e.name];return(0,a.jsx)("span",{title:n?`→ ${n}`:e.type,className:"ml-auto min-w-0 truncate font-mono text-[11px] text-muted-foreground/80",children:n?(0,a.jsxs)(a.Fragment,{children:["→\xa0",n]}):e.type})}let M="nodrag nopan",T=["GET","POST","PUT","PATCH","DELETE"];var z=n(54698),R=n(82099),$=n(4474);let D=[{id:"claude",label:"Prompt p/ Claude Code",fn:function(e){let t=["Implement this database schema in this project, following its existing stack and conventions:",""];for(let n of e.tables){let e=`Table \`${n.name}\``+(n.domain?` (domain: ${n.domain})`:"")+(n.description?` — ${n.description}`:"");for(let a of(t.push(e),n.columns)){let e=[a.isPk&&"PK",a.isFk&&"FK",!1===a.nullable&&"NOT NULL"].filter(Boolean).join(", ");t.push(` - ${a.name}: ${a.type}`+(e?` [${e}]`:"")+(a.note?` — ${a.note}`:""))}t.push("")}if(e.relations.length){for(let n of(t.push("Foreign keys:"),e.relations))t.push(` - ${n.fromTable}.${n.fromColumn} -> ${n.toTable}.${n.toColumn}`);t.push("")}return t.push("Create the models/migrations using the project's existing ORM and patterns, wire the relationships, and keep table and column names exactly as given."),t.join("\n")}},{id:"dbml",label:"DBML",fn:function(e){let t=[];for(let n of e.tables){for(let e of(t.push(`Table ${n.name} {`),n.columns)){let n=[e.isPk&&"pk",!1===e.nullable&&!e.isPk&&"not null",e.note&&`note: '${e.note.replace(/'/g,"")}'`].filter(Boolean).join(", ");t.push(` ${e.name} ${e.type}`+(n?` [${n}]`:""))}t.push("}","")}for(let n of e.relations)t.push(`Ref: ${n.fromTable}.${n.fromColumn} > ${n.toTable}.${n.toColumn}`);return t.join("\n").trim()}},{id:"sql",label:"SQL DDL",fn:function(e){let t=[];for(let n of e.tables){t.push(`CREATE TABLE ${n.name} (`);let a=n.columns.map(e=>{let t=[` ${e.name} ${e.type}`];return e.isPk?t.push("PRIMARY KEY"):!1===e.nullable&&t.push("NOT NULL"),t.join(" ")}),r=e.relations.filter(e=>e.fromTable===n.name).map(e=>` FOREIGN KEY (${e.fromColumn}) REFERENCES ${e.toTable}(${e.toColumn})`);t.push([...a,...r].join(",\n")),t.push(");","")}return t.join("\n").trim()}}];function P({draftGraph:e}){let[t,n]=(0,r.useState)(null);if(0===e.tables.length)return null;async function s(t){await navigator.clipboard.writeText(t.fn(e)).catch(()=>{}),n(t.id),setTimeout(()=>n(null),1500)}return(0,a.jsxs)("div",{className:"space-y-2 rounded-xl border border-sky-400/20 bg-sky-500/[0.04] p-3",children:[(0,a.jsxs)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-sky-300",children:["Rascunho \xb7 ",e.tables.length," tabelas"]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:"copiar:"}),D.map(e=>(0,a.jsx)($.$,{size:"sm",variant:"outline",className:"h-6 px-2 text-[11px]",onClick:()=>s(e),children:t===e.id?"✓":e.label},e.id))]})]})}function O({selected:e,tables:t,relations:n,endpoints:r,draftGraph:s,onClose:o,commentsContent:i,commentsCount:d=0,activeTab:c,onTabChange:u,onAddComment:p,topOffset:x}){let h,f,g=new Map(t.map(e=>[e.id,e.name])),b=!!i,y=c??"details",v=e?.kind==="table"?t.find(t=>t.id===e.id)?.name??null:e?.kind==="endpoint"&&(f=r.find(t=>t.id===e.id))?`${f.method} ${f.path}`:null;if(e?.kind==="table"){let s=t.find(t=>t.id===e.id);h=s?(0,a.jsx)(L,{table:s,relations:n,endpoints:r,nameById:g}):null}else if(e?.kind==="endpoint"){let t=r.find(t=>t.id===e.id);h=t?(0,a.jsx)(_,{ep:t,nameById:g}):null}else h=(0,a.jsx)(B,{tables:t,relations:n,endpoints:r});return(0,a.jsxs)(R.b,{className:"absolute right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:x??12,maxHeight:`calc(100% - ${(x??12)+12}px)`},children:[b?(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,a.jsx)(F,{active:"details"===y,onClick:()=>u?.("details"),children:"Details"}),(0,a.jsxs)(F,{active:"comments"===y,onClick:()=>u?.("comments"),children:["Comments",d>0&&(0,a.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:d})]})]}),(0,a.jsx)("button",{onClick:o,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(m.A,{className:"size-4"})})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Panel"}),(0,a.jsx)("button",{onClick:o,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(m.A,{className:"size-4"})})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:"comments"===y&&b?(0,a.jsx)("div",{className:"p-3",children:i}):(0,a.jsxs)(a.Fragment,{children:[s.tables.length>0&&(0,a.jsx)("div",{className:"border-b border-white/10 p-3.5",children:(0,a.jsx)(P,{draftGraph:s})}),(0,a.jsxs)("div",{className:"p-4",children:[p&&v&&(0,a.jsxs)("button",{type:"button",onClick:()=>p(v),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,a.jsx)(l.A,{className:"size-3.5"}),"Comment on this ",e?.kind==="endpoint"?"endpoint":"table"]}),h]})]})})]})}function F({active:e,onClick:t,children:n}){return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,x.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",e?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:n})}function L({table:e,relations:t,endpoints:n,nameById:r}){let s=t.filter(t=>t.fromTableId===e.id),o=t.filter(t=>t.toTableId===e.id),i=n.map(t=>({e:t,u:t.tables.find(t=>t.tableId===e.id)})).filter(e=>e.u);return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wide",style:{color:(0,h.qA)(e.domain)},children:e.domain??"table"}),(0,a.jsx)("h2",{className:"font-mono text-lg font-semibold",children:e.name}),e.description&&(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e.description})]}),(0,a.jsx)(H,{title:`Columns (${e.columns.length})`,children:(0,a.jsx)("ul",{className:"space-y-0.5",children:e.columns.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-1.5 text-xs",children:[e.isPk?(0,a.jsx)(d.A,{className:"size-3 text-amber-400"}):e.isFk?(0,a.jsx)(c.A,{className:"size-3 text-sky-400"}):(0,a.jsx)("span",{className:"size-3"}),(0,a.jsx)("span",{className:"font-mono",children:e.name}),(0,a.jsxs)("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground",children:[e.type,!e.nullable&&" \xb7NN"]})]},e.name))})}),s.length>0&&(0,a.jsx)(H,{title:"References (FK out)",children:(0,a.jsx)("ul",{className:"space-y-1 text-xs",children:s.map(e=>(0,a.jsxs)("li",{className:"font-mono text-muted-foreground",children:[e.fromColumn," → ",r.get(e.toTableId),".",e.toColumn]},e.id))})}),o.length>0&&(0,a.jsx)(H,{title:"Referenced by (FK in)",children:(0,a.jsx)("ul",{className:"space-y-1 text-xs",children:o.map(e=>(0,a.jsxs)("li",{className:"font-mono text-muted-foreground",children:[r.get(e.fromTableId),".",e.fromColumn]},e.id))})}),i.length>0&&(0,a.jsx)(H,{title:`Used by endpoints (${i.length})`,children:(0,a.jsx)("ul",{className:"space-y-1 text-xs",children:i.map(({e,u:t})=>(0,a.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{style:{color:h.e6[e.method]},className:"font-bold",children:e.method}),(0,a.jsx)("span",{className:"truncate font-mono",children:e.path}),(0,a.jsx)("span",{className:"ml-auto",style:{color:h.ru[t.access]},children:t.access})]},e.id))})})]})}function _({ep:e,nameById:t}){return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-bold",style:{background:`${h.e6[e.method]}22`,color:h.e6[e.method]},children:e.method}),(0,a.jsx)("h2",{className:"mt-2 font-mono text-base font-semibold",children:e.path}),e.description&&(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e.description})]}),(0,a.jsx)(H,{title:`Tables used (${e.tables.length})`,children:(0,a.jsx)("ul",{className:"space-y-1 text-xs",children:e.tables.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"font-mono",children:t.get(e.tableId)}),(0,a.jsx)("span",{className:"ml-auto",style:{color:h.ru[e.access]},children:e.access})]},e.tableId))})})]})}function B({tables:e,relations:t,endpoints:n}){return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-sm font-semibold",children:"Database"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Live schema derived from your code. Click a table or endpoint to see details. Drag to rearrange — positions are saved."})]}),(0,a.jsxs)("dl",{className:"grid grid-cols-3 gap-2 text-center",children:[(0,a.jsx)(U,{label:"tables",value:e.length}),(0,a.jsx)(U,{label:"FKs",value:t.length}),(0,a.jsx)(U,{label:"endpoints",value:n.length})]}),(0,a.jsx)(H,{title:"Legend",children:(0,a.jsxs)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,a.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(d.A,{className:"size-3 text-amber-400"})," primary key"]}),(0,a.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(c.A,{className:"size-3 text-sky-400"})," foreign key"]}),(0,a.jsx)("li",{children:"— gray line: FK relation between tables"}),(0,a.jsx)("li",{children:"– – dashed line: endpoint uses table (read/write)"})]})})]})}function H({title:e,children:t}){return(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e}),t]})}function U({label:e,value:t}){return(0,a.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/[0.03] py-2",children:[(0,a.jsx)("div",{className:"text-lg font-semibold",children:t}),(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:e})]})}var X=n(56614),G=n(9991),K=n(14983),W=n(62311);let Y=new Set(["GET","HEAD","OPTIONS"]);var Z=n(44267),q=n(94014);function V(e){return 36+30*Math.max(0,e)+16}let J="Unattached",Q=e=>(e??"").trim()||"—";function ee(e,t){let n=new Map(e.map(e=>[e.id,e.name])),a=new Map;for(let e of t)for(let t of e.uses)n.has(t.tableId)&&a.set(t.tableId,(a.get(t.tableId)??0)+1);return new Map(t.map(e=>[e.id,function(e,t,n){let a=new Map;for(let n of e.uses)t.has(n.tableId)&&a.set(n.tableId,(a.get(n.tableId)??0)+1);let r=null;for(let[e,s]of a){if(null===r){r=e;continue}let o=a.get(r);if(s>o){r=e;continue}if(s<o)continue;let i=n?.get(e)??0,l=n?.get(r)??0;i<l?r=e:i===l&&0>t.get(e).localeCompare(t.get(r))&&(r=e)}return r}(e,n,a)]))}let et=(e,t)=>e.path.localeCompare(t.path)||e.method.localeCompare(t.method)||e.id.localeCompare(t.id);var en=n(70947);let ea=e=>e.trim().toLowerCase();var er=n(85618),es=n(80846),eo=n(17356),ei=n(45486),el=n(15330),ed=n(60976),ec=n(64577),eu=n(24692),em=n(45437);let ep={dbTable:function({id:e,data:t,selected:n}){var s;let o,i,l="DRAFT"===t.source,f="added"===t.diffStatus?"#7bd389":"modified"===t.diffStatus?"#ffb86b":"#4ea1ff",w="added"===t.diffStatus?"new":"modified"===t.diffStatus?"modify":"draft",C=t.diffChanges?.length?t.diffChanges.join("\n"):"draft",M=l?f:(0,h.qA)(t.domain),T=(s={domain:t.domain,columns:t.columns},o=[],(i=s.columns.filter(e=>N.test(e.name)).map(e=>e.name)).length&&o.push({label:"secrets",tone:"danger",title:`stores credentials: ${i.join(", ")}`}),s.domain&&/auth/i.test(s.domain)&&o.push({label:"auth",tone:"warn",title:"auth-domain table"}),o),z=g(),[R,$]=(0,r.useState)(t.name),[D,P]=(0,r.useState)(t.columns),[O,F]=(0,r.useState)(!1);(0,r.useEffect)(()=>{$(t.name),P(t.columns)},[t.rev]);let L=e=>e.stopPropagation(),_=t=>{P(t),z.patchTable(e,{columns:t})},B=(t.pins??[]).filter(e=>null===e.column),H=e=>(t.pins??[]).filter(t=>t.column===e),U=function(e,t,n,a=!1){return Math.min(312,Math.max(240,Math.round(8*e.length)+90,...t.map(e=>{if(a)return Math.round(7.3*e.name.length)+146;let t=n?.[e.name]?n[e.name].length+2:e.type.length;return Math.round(7.3*e.name.length+6.7*t)+64})))}(t.name,l?D:t.columns,t.fkTargets,l),X=(0,x.cn)("relative rounded-xl border bg-[#161618]/95 text-card-foreground shadow-[0_18px_50px_-22px_rgba(0,0,0,0.9)] backdrop-blur",n&&"ring-2 ring-[var(--accent,#f5b942)]"),G=(0,b.k)(y.fE);return"full"!==G?(0,a.jsxs)("div",{className:(0,x.cn)(X,"border-white/10 px-3 py-2.5","far"===G&&"!opacity-0"),style:{width:U},children:[(0,a.jsx)(v.x,{}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block size-2 shrink-0 rounded-full",style:{background:M}}),(0,a.jsx)("span",{className:"truncate font-mono text-[15px] font-semibold",children:t.name})]})]}):l?(0,a.jsxs)("div",{className:(0,x.cn)(X,"group/card"),style:{width:U,borderColor:`${f}59`},children:[(0,a.jsx)(A,{}),(0,a.jsxs)("div",{className:"group/row relative flex items-center gap-1.5 rounded-t-[11px] px-3 py-2",style:{background:`${f}14`},children:[(0,a.jsx)("input",{value:R,onChange:e=>$(e.target.value),onBlur:()=>{let n=R.trim();n&&n!==t.name&&z.patchTable(e,{name:n})},onKeyDown:e=>{L(e),"Enter"===e.key&&e.currentTarget.blur()},placeholder:"table",className:(0,x.cn)(E,"min-w-0 flex-1 bg-transparent font-mono text-[13px] font-semibold tracking-tight outline-none")}),(0,a.jsx)(k,{badges:T}),(0,a.jsx)("span",{title:C,className:"shrink-0 rounded-md border px-1.5 py-px font-mono text-[9px] font-semibold uppercase tracking-[0.14em]",style:{background:`${f}1f`,borderColor:`${f}55`,color:f},children:w}),(0,a.jsx)("button",{type:"button",onClick:t=>{L(t),O?z.deleteTable(e):F(!0)},onBlur:()=>F(!1),title:"Delete table",className:(0,x.cn)(E,"shrink-0 transition-all",O?"text-red-300":"text-muted-foreground opacity-0 hover:text-red-300 group-hover/card:opacity-100"),children:(0,a.jsx)(u.A,{className:"size-3"})}),B.length>0?(0,a.jsx)(j.e0,{pins:B,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(S,{title:`Comment on ${t.name}`,onClick:()=>t.onComment?.(t.name)})]}),(0,a.jsxs)("div",{className:"divide-y divide-white/[0.05]",children:[D.map((e,n)=>{let r=H(e.name),s=t.diffColumns?.[e.name];return(0,a.jsxs)("div",{title:"added"===s?"column being added":"modified"===s?"column changed vs. the live schema":void 0,style:"added"===s?{background:"#7bd38914",boxShadow:"inset 2px 0 0 #7bd389"}:"modified"===s?{background:"#ffb86b14",boxShadow:"inset 2px 0 0 #ffb86b"}:void 0,className:"group/row relative flex items-center gap-1.5 px-3 py-[5px] text-[12px]",children:[(0,a.jsx)("button",{type:"button",onClick:e=>{L(e),_(D.map((e,t)=>t===n?{...e,isPk:!e.isPk}:e))},title:"Primary key",className:(0,x.cn)(E,"shrink-0",e.isPk?"text-amber-300/90":"text-muted-foreground/40 hover:text-amber-300"),children:(0,a.jsx)(d.A,{className:"size-3"})}),(0,a.jsx)("button",{type:"button",onClick:e=>{L(e),_(D.map((e,t)=>t===n?{...e,isFk:!e.isFk}:e))},title:"Foreign key",className:(0,x.cn)(E,"shrink-0",e.isFk?"text-sky-400/80":"text-muted-foreground/40 hover:text-sky-400"),children:(0,a.jsx)(c.A,{className:"size-3"})}),(0,a.jsx)("input",{value:e.name,onChange:e=>P(t=>t.map((t,a)=>a===n?{...t,name:e.target.value}:t)),onBlur:()=>_(D),onKeyDown:L,placeholder:"column",style:{minWidth:`${Math.max(6,e.name.length+1)}ch`},className:(0,x.cn)(E,"flex-1 bg-transparent font-mono outline-none")}),t.fkTargets?.[e.name]?(0,a.jsxs)("span",{title:`→ ${t.fkTargets[e.name]}`,className:"min-w-0 shrink truncate text-right font-mono text-[11px] text-muted-foreground/80",children:["→\xa0",t.fkTargets[e.name]]}):(0,a.jsx)("input",{value:e.type,onChange:e=>P(t=>t.map((t,a)=>a===n?{...t,type:e.target.value}:t)),onBlur:()=>_(D),onKeyDown:L,placeholder:"type",title:e.type,className:(0,x.cn)(E,"w-16 min-w-0 shrink bg-transparent text-right font-mono text-[11px] text-muted-foreground/80 outline-none")}),(0,a.jsx)("button",{type:"button",onClick:e=>{L(e),_(D.filter((e,t)=>t!==n))},title:"Remove column",className:(0,x.cn)(E,"shrink-0 text-muted-foreground/40 opacity-0 transition-opacity hover:text-red-300 group-hover/card:opacity-100"),children:(0,a.jsx)(m.A,{className:"size-3"})}),r.length>0?(0,a.jsx)(j.e0,{pins:r,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(S,{title:`Comment on ${t.name}.${e.name}`,onClick:()=>t.onComment?.(`${t.name}.${e.name}`)})]},n)}),(0,a.jsxs)("button",{type:"button",onClick:e=>{L(e),_([...D,{name:"",type:"text",isPk:!1,isFk:!1,nullable:!0,note:null}])},className:(0,x.cn)(E,"flex w-full items-center gap-1 px-3 py-1.5 text-[10px] text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(p.A,{className:"size-3"})," column"]})]})]}):(0,a.jsxs)("div",{className:X,style:{width:U,borderColor:`${M}3d`},children:[(0,a.jsx)(A,{}),(0,a.jsxs)("div",{className:"group/row relative flex items-center justify-between rounded-t-[11px] px-3 py-2",style:{background:`${M}14`},children:[(0,a.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-1.5 font-mono text-[13px] font-semibold tracking-tight",children:["INTROSPECTION"===t.source&&(0,a.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),(0,a.jsx)("span",{className:"truncate",title:t.name,children:t.name})]}),(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",children:["INTROSPECTION"!==t.source&&(0,a.jsx)("span",{title:"planned — not yet detected in code",className:"shrink-0 rounded-md border border-[#f5b942]/35 bg-[#f5b942]/10 px-1.5 py-px font-mono text-[9px] font-semibold uppercase tracking-[0.14em] text-[#f5b942]",children:"planned"}),(0,a.jsx)(k,{badges:T}),t.domain&&(0,a.jsx)("span",{className:"text-[9px] uppercase tracking-[0.14em]",style:{color:M},children:t.domain})]}),B.length>0?(0,a.jsx)(j.e0,{pins:B,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(S,{title:`Comment on ${t.name}`,onClick:()=>t.onComment?.(t.name)})]}),(0,a.jsx)("div",{className:"divide-y divide-white/[0.05]",children:t.columns.map(e=>{let n=H(e.name);return(0,a.jsxs)("div",{className:"group/row relative flex items-center gap-2 px-3 py-[7px] text-[12px]",children:[e.isPk?(0,a.jsx)(d.A,{className:"size-3 shrink-0 text-amber-300/90"}):e.isFk?(0,a.jsx)(c.A,{className:"size-3 shrink-0 text-sky-400/80"}):(0,a.jsx)("span",{className:"size-3 shrink-0"}),(0,a.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono",children:e.name}),(0,a.jsx)(I,{c:e,fkTargets:t.fkTargets}),n.length>0?(0,a.jsx)(j.e0,{pins:n,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(S,{title:`Comment on ${t.name}.${e.name}`,onClick:()=>t.onComment?.(`${t.name}.${e.name}`)})]},e.name)})})]})},endpoint:function({id:e,data:t,selected:n}){var s;let o,i=h.e6[t.method]??"#8a8a8a",d="DRAFT"===t.source,c="added"===t.diffStatus?"#7bd389":"modified"===t.diffStatus?"#ffb86b":"#4ea1ff",m="added"===t.diffStatus?"new":"modified"===t.diffStatus?"changed":"draft",p=t.diffChanges?.length?t.diffChanges.join("\n"):"draft",f=(s={method:t.method,domain:t.domain,path:t.path},o=[],/^delete$/i.test(s.method.trim())&&o.push({label:"DELETE",tone:"danger",title:"destructive: deletes data"}),(s.domain&&/auth/i.test(s.domain)||C.test(s.path))&&o.push({label:"auth",tone:"warn",title:"auth-related endpoint"}),o),w=g(),[N,E]=(0,r.useState)(t.path),[A,S]=(0,r.useState)(!1);(0,r.useEffect)(()=>{E(t.path)},[t.rev]);let I=e=>e.stopPropagation(),z=(0,b.k)(y.fE);return"full"!==z?(0,a.jsxs)("div",{className:(0,x.cn)("relative flex w-[300px] items-center gap-2 rounded-lg border border-white/10 bg-[#161618]/95 px-2.5 py-2 text-card-foreground backdrop-blur",n&&"ring-2 ring-[var(--accent,#f5b942)]","far"===z&&"!opacity-0"),children:[(0,a.jsx)(v.x,{}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[12px] font-bold",style:{color:i},children:t.method}),(0,a.jsx)("span",{title:t.path,className:"truncate font-mono text-[13px]",children:t.path})]}):(0,a.jsxs)("div",{className:(0,x.cn)("group relative flex w-[300px] items-center gap-2 rounded-lg border bg-[#161618]/95 px-2.5 py-1.5 text-card-foreground shadow-[0_12px_36px_-18px_rgba(0,0,0,0.9)] backdrop-blur",d?"border-dashed":"border-white/10",n&&"ring-2 ring-[var(--accent,#f5b942)]"),style:d?{borderColor:`${c}66`,background:`${c}0f`}:void 0,children:[(0,a.jsx)(v.x,{}),"INTROSPECTION"===t.source&&(0,a.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("select",{value:t.method,onChange:t=>w.patchEndpoint(e,{method:t.target.value}),onPointerDown:I,className:(0,x.cn)(M,"shrink-0 rounded bg-transparent text-[10px] font-bold outline-none"),style:{color:i},title:"Method",children:T.map(e=>(0,a.jsx)("option",{value:e,className:"bg-card text-foreground",children:e},e))}),(0,a.jsx)("input",{value:N,title:N,onChange:e=>E(e.target.value),onBlur:()=>{let n=N.trim();n&&n!==t.path&&w.patchEndpoint(e,{path:n})},onKeyDown:e=>{I(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,x.cn)(M,"min-w-0 flex-1 bg-transparent font-mono text-[11px] outline-none")}),(0,a.jsx)(k,{badges:f}),(0,a.jsx)("span",{title:p,className:"shrink-0 rounded px-1 py-0.5 text-[8px] font-semibold uppercase",style:{background:`${c}26`,color:c},children:m}),(0,a.jsx)("button",{type:"button",onClick:t=>{I(t),A?w.deleteEndpoint(e):S(!0)},onBlur:()=>S(!1),title:"Delete",className:(0,x.cn)(M,"shrink-0 transition-colors",A?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,a.jsx)(u.A,{className:"size-3"})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] font-bold",style:{background:`${i}22`,color:i},children:t.method}),(0,a.jsx)("span",{title:t.path,className:"min-w-0 flex-1 break-all font-mono text-[11px] leading-tight [-webkit-box-orient:vertical] [-webkit-line-clamp:2] [display:-webkit-box] overflow-hidden",children:t.path}),"INTROSPECTION"!==t.source&&(0,a.jsx)("span",{title:"planned — not yet detected in code",className:"shrink-0 rounded-md border border-[#f5b942]/35 bg-[#f5b942]/10 px-1.5 py-px font-mono text-[8px] font-semibold uppercase tracking-[0.14em] text-[#f5b942]",children:"planned"}),(0,a.jsx)(k,{badges:f}),(0,a.jsx)("button",{type:"button",onClick:t=>{I(t),A?w.deleteRealEndpoint(e):S(!0)},onBlur:()=>S(!1),title:A?"Click again to delete":"Delete endpoint",className:(0,x.cn)(M,"shrink-0 opacity-0 transition-opacity group-hover:opacity-100",A?"text-red-300 opacity-100":"text-muted-foreground hover:text-red-300"),children:(0,a.jsx)(u.A,{className:"size-3"})})]}),(t.pins?.length??0)>0?(0,a.jsx)(j.e0,{pins:t.pins,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)("button",{type:"button",title:`Comment on ${t.method} ${t.path}`,onClick:e=>{I(e),t.onComment?.(`${t.method} ${t.path}`)},className:(0,x.cn)(M,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,a.jsx)(l.A,{className:"size-3"})})]})},annotation:j.Sh},ex={deletable:eu.I,annotation:em.L},eh="beacon:db-draft",ef={proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};function eg({tables:e,relations:t,endpoints:n,draft:l,workspaceId:d,embedded:c=!1,diffBase:m,draftRef:p,onEdit:g,controlRef:v,commentsContent:w,commentsCount:k=0,onAddComment:N,annotations:C,onPinClick:E,onUpdateComment:A,onRemoveComment:S,boardAnnotations:I,readOnly:M=!1}){let T=(0,s.useRouter)(),R=e.length+(l?.tables.length??0),$=n.length+(l?.endpoints.length??0),[D,P]=(0,r.useState)($>0&&(c||0===R)),[F,L]=(0,r.useState)(null),[_,B]=(0,r.useState)(null),[H,U]=(0,r.useState)(null),[eu,em]=(0,r.useState)(!1),[eb,ey]=(0,r.useState)("details"),[ev,ej]=(0,r.useState)(!1),[ew,ek]=(0,r.useState)(""),eN=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!M)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>eN.current?.fitView({padding:.2,duration:0}))});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[M,l,D]),(0,r.useEffect)(()=>{if(v)return v.current={open:()=>{em(!0),ey("details")},close:()=>{em(!1),ey("details")},openComments:()=>{em(!0),ey("comments")}},()=>{v&&(v.current=null)}},[v]);let[eC,eE]=(0,r.useState)(new Set),[eA,eS]=(0,r.useState)("full"),[eI,eM]=(0,r.useState)(new Set),[eT,ez]=(0,r.useState)(new Set),[eR,e$]=(0,r.useState)(()=>({past:[],present:l??ef,future:[],rev:0,edited:!1})),eD=eR.present,eP=(0,r.useCallback)(e=>{e$(t=>{let n=e(t.present);return n===t.present?t:{past:[...t.past,t.present].slice(-100),present:n,future:[],rev:t.rev+1,edited:!0}})},[]),eO=(0,r.useCallback)(e=>{e$(t=>{let n=e(t.present);return n===t.present?t:{...t,present:n}})},[]),eF=(0,r.useCallback)(()=>e$(e=>e.past.length?{past:e.past.slice(0,-1),present:e.past[e.past.length-1],future:[e.present,...e.future],rev:e.rev+1,edited:!0}:e),[]),eL=(0,r.useCallback)(()=>e$(e=>e.future.length?{past:[...e.past,e.present],present:e.future[0],future:e.future.slice(1),rev:e.rev+1,edited:!0}:e),[]),e_=(0,r.useCallback)(e=>e$(t=>({past:[],present:e,future:[],rev:t.rev+1,edited:!1})),[]),eB=(0,r.useRef)(!1),eH=l?.proposedAt??0;(0,r.useEffect)(()=>{let e=null;if(eB.current)l&&l.proposedAt!==eD.proposedAt?e=l:!l&&(eD.tables.length>0||eD.endpoints.length>0)&&(e=ef);else{eB.current=!0;let t=null;try{let e=localStorage.getItem(eh);if(e){let n=JSON.parse(e);n.workspaceId===d&&n.doc&&l&&n.doc.proposedAt===l.proposedAt&&(t=n.doc)}}catch{}e=t??l??null}e&&e_(e)},[eH]),(0,r.useEffect)(()=>{try{eD.tables.length>0||eD.endpoints.length>0?localStorage.setItem(eh,JSON.stringify({workspaceId:d,doc:eD})):localStorage.removeItem(eh)}catch{}},[eD,d]),(0,r.useEffect)(()=>{p&&(p.current=eD)},[p,eD]);let eU=(0,r.useRef)(!1);(0,r.useEffect)(()=>{eR.edited&&!eU.current&&(eU.current=!0,g?.())},[eR.edited,g]);let eX=(0,r.useMemo)(()=>eD.tables.map(e=>({id:e.id,name:e.name,domain:e.domain,description:e.description,source:"DRAFT",x:e.x,y:e.y,columns:e.columns})),[eD]),eG=(0,r.useMemo)(()=>eD.endpoints.map(e=>({id:e.id,method:e.method,path:e.path,domain:e.domain,description:e.description,source:"DRAFT",x:e.x,y:e.y,tables:e.links.map(e=>({tableId:e.tableId,access:e.access}))})),[eD]),eK=(0,r.useMemo)(()=>[...e,...eX],[e,eX]),eW=(0,r.useMemo)(()=>[...n,...eG],[n,eG]),eY=(0,r.useMemo)(()=>(function(e,t,n={}){let a=ee(e,t),r=new Map,s=[];for(let e of[...t].sort(et)){let t=a.get(e.id)??null;if(t){let n=r.get(t);n?n.push(e):r.set(t,[e])}else s.push(e)}let o=e=>{let t=r.get(e.id)?.length??0;return V(e.columnCount)+(t?10+60*t:0)+30},i=Array.from(new Set(e.map(e=>Q(e.domain)))),l=i.filter(e=>"—"!==e).sort(),d=i.includes("—")?[...l,"—"]:l,c=[];for(let t of d){let n=e.filter(e=>Q(e.domain)===t).sort((e,t)=>e.name.localeCompare(t.name)),a=n.reduce((e,t)=>e+o(t),0),r=Math.max(1,Math.min(12,n.length,Math.round(Math.sqrt(a/320)))),s=Array(r).fill(0),i=new Map;for(let e of n){let t=0;for(let e=1;e<r;e++)s[e]<s[t]&&(t=e);i.set(e.id,{x:320*t,y:s[t]}),s[t]+=o(e)}c.push({d:t,w:320*r,h:Math.max(...s,0),tableLocal:i})}let u=(0,q.Xi)(c.map(e=>({id:e.d,w:e.w,h:e.h})),{gapX:84,gapY:72,viewportAspect:n.viewportAspect,minBandW:960,aspectSlack:1.7}),m=new Map,p=new Map,x=0;for(let t of c){let n=u.get(t.d);for(let a of e.filter(e=>t.tableLocal.has(e.id))){let e=t.tableLocal.get(a.id),s=n.x+e.x,o=n.y+e.y;m.set(a.id,{x:s,y:o}),(r.get(a.id)??[]).forEach((e,t)=>{p.set(e.id,{x:s,y:o+V(a.columnCount)+10+60*t})})}x=Math.max(x,n.y+t.h)}if(s.length){let e=x+72,t=Math.max(1,Math.min(4,Math.ceil(Math.sqrt(s.length/2))));s.forEach((n,a)=>{p.set(n.id,{x:a%t*300,y:e+60*Math.floor(a/t)})})}return{tables:m,endpoints:p}})(eK.map(e=>({id:e.id,name:e.name,domain:e.domain,columnCount:e.columns.length})),[]).tables,[eK]),eZ=(0,r.useMemo)(()=>new Map,[]),eq=(0,r.useMemo)(()=>c?function(e,t){let n=new Map(e.map(e=>[ea(e.name),e])),a=new Map;for(let e of t){let t=n.get(ea(e.name));if(!t){a.set(e.id,{status:"added",changes:["new table"],columns:{}});continue}let{changes:r,columns:s}=function(e,t){let n=new Map(e.map(e=>[ea(e.name),e])),a=new Set(t.map(e=>ea(e.name))),r=[],s={};for(let e of t){let t=n.get(ea(e.name));if(!t){r.push(`+ column ${e.name} (${e.type})`),s[e.name]="added";continue}let a=[];ea(t.type)!==ea(e.type)&&a.push(`type ${t.type}→${e.type}`),t.isPk!==e.isPk&&a.push(e.isPk?"now PK":"no longer PK"),t.isFk!==e.isFk&&a.push(e.isFk?"now FK":"no longer FK"),t.nullable!==e.nullable&&a.push(e.nullable?"now nullable":"now required"),a.length&&(r.push(`~ column ${e.name}: ${a.join(", ")}`),s[e.name]="modified")}for(let t of e)a.has(ea(t.name))||r.push(`- column ${t.name}`);return{changes:r,columns:s}}(t.columns,e.columns);a.set(e.id,{status:r.length?"modified":"unchanged",changes:r,columns:s})}return a}(m?.tables??e,eX):eZ,[c,m,e,eX,eZ]),eV=(0,r.useMemo)(()=>c?function(e,t){let n=e=>`${ea(e.method)} ${ea(e.path)}`,a=new Set(e.map(n)),r=new Map;for(let e of t)r.set(e.id,a.has(n(e))?{status:"unchanged",changes:[],columns:{}}:{status:"added",changes:["new endpoint"],columns:{}});return r}(m?.endpoints??n,eG):eZ,[c,m,n,eG,eZ]),eJ=(0,r.useMemo)(()=>[...t,...eD.relations.map(e=>({id:e.id,fromTableId:e.fromTableId,toTableId:e.toTableId,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label}))],[t,eD.relations]),eQ=(0,r.useMemo)(()=>{let e=new Map;for(let t of eW)for(let n of t.tables)e.set(n.tableId,(e.get(n.tableId)??0)+1);return e},[eW]),e0=(0,r.useMemo)(()=>{let e=new Map;return eK.forEach(t=>e.set(t.id,t.x)),eW.forEach(t=>e.set(t.id,t.x)),e},[eK,eW]),e1=(0,r.useMemo)(()=>{let e=new Map;return eK.forEach(t=>e.set(t.id,t.y)),eW.forEach(t=>e.set(t.id,t.y)),e},[eK,eW]),e5=(0,r.useMemo)(()=>{let e=new Map(eK.map(e=>[e.id,e.name])),t=new Map;for(let n of eJ){let a=e.get(n.toTableId);if(!a)continue;let r=t.get(n.fromTableId)??{};r[n.fromColumn]=a,t.set(n.fromTableId,r)}return t},[eJ,eK]),e2=void 0!==I,[e3,e4]=(0,r.useState)(I??[]);(0,r.useEffect)(()=>{I&&e4(I)},[I]);let e6=(0,r.useMemo)(()=>({tables:eK.map(e=>({id:e.id,name:e.name,columns:e.columns.map(e=>e.name)})),endpoints:eW.map(e=>({id:e.id,method:e.method,path:e.path}))}),[eK,eW]),e9=(0,r.useMemo)(()=>{if(e2){let e=new Set([...eK.map(e=>e.id),...eW.map(e=>e.id)]);return e3.filter(t=>e.has(t.targetId)).map((e,t)=>({id:e.id,n:t+1,targetId:e.targetId,column:e.columnName,text:e.body,x:e.x,y:e.y}))}let e=new Map((C??[]).map(e=>[e.id,e.comment]));return(0,z.m)(C??[],e6).map(t=>({id:t.annotationId,n:t.n,targetId:t.targetId,column:t.column,text:e.get(t.annotationId)??"",x:null,y:null}))},[e2,e3,C,e6,eK,eW]),e8=(0,r.useMemo)(()=>{let e=new Map;for(let t of e9){let n=e.get(t.targetId)??[];n.push({id:t.id,n:t.n,column:t.column}),e.set(t.targetId,n)}return e},[e9]),e7=(0,r.useMemo)(()=>new Map(e9.map(e=>[`anno-${e.id}`,e.targetId])),[e9]),te=(0,r.useCallback)(async e=>{let t=(0,z.m)([{id:"_",excerpt:e}],e6)[0];if(!t)return;let n=await fetch("/api/board-annotations",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({targetKind:t.kind,targetId:t.targetId,columnName:t.column??void 0})});if(n.ok){let e=await n.json();e4(t=>[...t,e])}},[e6]),tt=(0,r.useCallback)((e,t)=>{e4(n=>n.map(n=>n.id===e?{...n,...t}:n)),fetch(`/api/board-annotations/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})},[]),tn=(0,r.useCallback)(e=>{e4(t=>t.filter(t=>t.id!==e)),fetch(`/api/board-annotations/${e}`,{method:"DELETE"})},[]),ta=e2?te:N,tr=(0,r.useCallback)((e,t)=>{let n=(e0.get(t)??0)-(e0.get(e)??0),a=(e1.get(t)??0)-(e1.get(e)??0);return Math.abs(n)>=Math.abs(a)?n>=0?{sourceHandle:"sr",targetHandle:"tl"}:{sourceHandle:"sl",targetHandle:"tr"}:a>=0?{sourceHandle:"sb",targetHandle:"tt"}:{sourceHandle:"st",targetHandle:"tb"}},[e0,e1]),ts=(0,r.useMemo)(()=>new Set([...eD.tables.map(e=>e.id),...eD.endpoints.map(e=>e.id)]),[eD]),to=(0,r.useMemo)(()=>new Set(e.map(e=>e.id)),[e]),ti=(0,r.useCallback)(()=>{let e=eK.map(e=>({id:e.id,type:"dbTable",position:D?{x:e.x,y:e.y}:eY.get(e.id)??{x:e.x,y:e.y},data:{name:e.name,domain:e.domain,columns:e.columns,usageCount:eQ.get(e.id)??0,source:e.source,rev:eR.rev,diffStatus:eq.get(e.id)?.status,diffChanges:eq.get(e.id)?.changes,diffColumns:eq.get(e.id)?.columns,fkTargets:e5.get(e.id),pins:e8.get(e.id),onPinClick:E,onComment:ta}})),t=eW.map(e=>({id:e.id,type:"endpoint",position:{x:e.x,y:e.y},data:{method:e.method,path:e.path,domain:e.domain,source:e.source,rev:eR.rev,diffStatus:eV.get(e.id)?.status,diffChanges:eV.get(e.id)?.changes,pins:e8.get(e.id),onPinClick:E,onComment:ta}})),n=new Map,a=new Map(eK.map(e=>[e.id,e])),r=new Map(eW.map(e=>[e.id,e]));return[...e,...t,...e9.map(e=>{let t=a.get(e.targetId),s=r.get(e.targetId),o=t?.x??s?.x??0,i=t?.y??s?.y??0,l=t?38+28*t.columns.length:42,d=n.get(e.targetId)??0;return n.set(e.targetId,d+1),{id:`anno-${e.id}`,type:"annotation",position:{x:e.x??o+26,y:e.y??i+l+64+112*d},data:{n:e.n,text:e.text,annotationId:e.id,onClick:e2||A?void 0:E,editable:e2||!!A,onChangeText:e2?(e,t)=>tt(e,{body:t}):A,onDelete:e2?tn:S}}})]},[eK,eW,D,eY,eQ,eR.rev,eq,eV,e5,e8,e9,e2,E,A,S,ta,tt,tn]),[tl,td,tc]=(0,o.ck)(ti()),tu=(0,r.useRef)(D);(0,r.useEffect)(()=>{let e=tu.current!==D;tu.current=D,td(t=>{let n=new Map(t.map(e=>[e.id,e.position]));return ti().map(t=>e&&"dbTable"===t.type?t:{...t,position:n.get(t.id)??t.position})}),e&&requestAnimationFrame(()=>eN.current?.fitView({duration:500,padding:.15,minZoom:.2,maxZoom:.9}))},[ti,td,D]);let tm=(0,r.useCallback)((e,t,n,a)=>{fetch("/api/db/position",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:e,id:t,x:n,y:a})})},[]),tp=(0,r.useCallback)((e,t)=>{let{x:n,y:a}=t.position;if(t.id.startsWith("anno-")){e2&&tt(t.id.slice(5),{x:n,y:a});return}ts.has(t.id)?eO(e=>e.tables.some(e=>e.id===t.id)?{...e,tables:e.tables.map(e=>e.id===t.id?{...e,x:n,y:a}:e)}:e.endpoints.some(e=>e.id===t.id)?{...e,endpoints:e.endpoints.map(e=>e.id===t.id?{...e,x:n,y:a}:e)}:e):tm("endpoint"===t.type?"endpoint":"table",t.id,n,a)},[ts,eO,tm,e2,tt]),tx=(0,r.useMemo)(()=>eJ.map(e=>({id:`fk-${e.id}`,source:e.fromTableId,target:e.toTableId,...tr(e.fromTableId,e.toTableId),type:"deletable",label:e.label??void 0,markerEnd:{type:i.TG.ArrowClosed,color:"#6b6b6b"},style:{stroke:"#6b6b6b"}})),[eJ,tr]),th=(0,r.useMemo)(()=>eW.flatMap(e=>e.tables.map(t=>{let n=h.ru[t.access]??"#5a5a5a";return{id:`u-${e.id}-${t.tableId}`,source:e.id,target:t.tableId,...tr(e.id,t.tableId),type:"default",markerEnd:{type:i.TG.ArrowClosed,color:n},style:{stroke:n,strokeDasharray:"4 4",opacity:.7}}})),[eW,tr]),tf=(0,r.useMemo)(()=>D?[...tx,...th]:tx,[tx,th,D]),tg=(0,r.useMemo)(()=>e9.map(e=>({id:`annoe-${e.id}`,source:e.targetId,sourceHandle:`pin-${e.id}`,target:`anno-${e.id}`,targetHandle:"in",type:"annotation",selectable:!1,zIndex:30,style:{stroke:j.V5,strokeWidth:1.5,opacity:.9}})),[e9]),tb=F?.id??H,ty=(0,r.useMemo)(()=>{if(_){let e=tf.find(e=>e.id===_);return e?new Set([e.source,e.target]):null}return tb?(0,h.F1)(tb,tf):null},[tb,_,tf]),tv=(0,r.useMemo)(()=>new Map(eK.map(e=>[e.id,{domain:e.domain,source:e.source}])),[eK]),tj=(0,r.useMemo)(()=>new Map(eW.map(e=>[e.id,{method:e.method,source:e.source}])),[eW]),tw=(0,r.useMemo)(()=>{let e=new Set;if(!D)for(let t of tj.keys())e.add(t);for(let[t,n]of tv)!eC.size||n.domain&&eC.has(n.domain)||e.add(t),eI.size&&!eI.has(n.source)&&e.add(t);for(let[t,n]of tj)eT.size&&!eT.has(n.method)&&e.add(t),eI.size&&!eI.has(n.source)&&e.add(t);return e},[D,tv,tj,eC,eI,eT]),tk=ew.trim().length>0,tN=(0,r.useMemo)(()=>{if(!tk)return null;let e=new Set;for(let t of eK)!tw.has(t.id)&&(0,K.Qk)((0,K.jF)(t),ew)&&e.add(t.id);for(let t of eW)!tw.has(t.id)&&(0,K.Qk)((0,K.sQ)(t),ew)&&e.add(t.id);return e},[eK,eW,tw,ew,tk]),tC=(0,r.useMemo)(()=>tk?[...(0,K.r2)(eK.filter(e=>!tw.has(e.id)),ew,e=>(0,K.jF)(e),e=>({id:e.id,label:e.name,sublabel:e.domain??"table",kind:"table"})),...(0,K.r2)(eW.filter(e=>!tw.has(e.id)),ew,e=>(0,K.sQ)(e),e=>({id:e.id,label:e.path,sublabel:e.method,kind:"endpoint"}))].slice(0,12):[],[eK,eW,tw,ew,tk]),tE=(0,r.useCallback)(e=>{ek(""),L(tj.has(e)?{id:e,kind:"endpoint"}:{id:e,kind:"table"}),B(null),em(!0),ey("details");let t=eN.current?.getNode(e);if(!t||!eN.current)return;let n=t.measured?.width??220,a=t.measured?.height??80;eN.current.setCenter(t.position.x+n/2,t.position.y+a/2,{zoom:.9,duration:600})},[tj]),tA=tN??ty,tS=(0,r.useMemo)(()=>tl.map(e=>{if(e.id.startsWith("anno-")){let t=e7.get(e.id),n=!!t&&tw.has(t);return!!e.hidden!==n?{...e,hidden:n}:e}let t=tw.has(e.id);if(!tA)return t?{...e,hidden:t}:e;let n=tA.has(e.id),a=tN?K.Uy:.45;return{...e,hidden:t,style:{...e.style,opacity:n?1:a,boxShadow:n&&tN?K.RU:e.style?.boxShadow,borderRadius:n&&tN?12:e.style?.borderRadius,transition:"opacity 120ms, box-shadow 120ms"}}}),[tl,tw,tA,tN,e7]),tI=(0,r.useMemo)(()=>{let e=new Map(eK.map(e=>[e.id,(e.domain??"").trim()||"—"])),t=ee(eK,eW.map(e=>({id:e.id,method:e.method,path:e.path,uses:e.tables.map(e=>({tableId:e.tableId}))})));return new Map(eW.map(n=>{let a=t.get(n.id);return[n.id,a?e.get(a):J]}))},[eK,eW]),tM=(0,r.useMemo)(()=>{let e=[];for(let t of tl)if(!tw.has(t.id))if("dbTable"===t.type){let n=t.data;e.push({id:t.id,group:(n.domain??"").trim()||"—",x:t.position.x,y:t.position.y,w:t.measured?.width??280,h:t.measured?.height??38+28*n.columns.length})}else"endpoint"===t.type&&e.push({id:t.id,group:tI.get(t.id)??J,x:t.position.x,y:t.position.y,w:t.measured?.width??240,h:t.measured?.height??50});return(0,Z.S)(e)},[tl,tw,tI]),tT=(0,r.useMemo)(()=>tN?tf.map(e=>{let t=tw.has(e.source)||tw.has(e.target);return tN.has(e.source)&&tN.has(e.target)?{...e,hidden:t,style:{...e.style,opacity:1}}:{...e,hidden:t,label:void 0,style:{...e.style,opacity:.08}}}):tf.map(e=>{let t=tw.has(e.source)||tw.has(e.target);return tb||_?(_?e.id===_:tb&&(e.source===tb||e.target===tb))?{...e,hidden:t,zIndex:20,style:{...e.style,opacity:1,strokeWidth:2.5}}:{...e,hidden:t,selectable:!1,label:void 0,markerEnd:void 0,style:{...e.style,opacity:.08}}:{...e,hidden:t,label:void 0}}),[tf,tb,_,tw,tN]),tz=(0,r.useMemo)(()=>Array.from(new Set(eK.map(e=>e.domain).filter(e=>!!e))).sort(),[eK]),tR=(0,r.useMemo)(()=>Array.from(new Set([...eK.map(e=>e.source),...eW.map(e=>e.source)])).sort(),[eK,eW]),t$=(0,r.useMemo)(()=>Array.from(new Set(eW.map(e=>e.method))).sort(),[eW]);function tD(e,t){t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let tP=+!D+eC.size+eI.size+eT.size,tO=(0,r.useCallback)(()=>{P(!0),eE(new Set),eM(new Set),ez(new Set)},[]),tF=(0,r.useCallback)(e=>{let{source:t,target:n}=e;t&&n&&t!==n&&eP(e=>{if(!(e.tables.some(e=>e.id===n)||to.has(n)))return e;let a=e.endpoints.find(e=>e.id===t);return a?a.links.some(e=>e.tableId===n)?e:{...e,endpoints:e.endpoints.map(e=>{var a;return e.id===t?{...e,links:[...e.links,{tableId:n,access:(a=e.method,Y.has(a.trim().toUpperCase())?"read":"write")}]}:e})}:e.tables.find(e=>e.id===t)?e.relations.some(e=>e.fromTableId===t&&e.toTableId===n)?e:{...e,relations:[...e.relations,{id:crypto.randomUUID(),fromTableId:t,toTableId:n,fromColumn:"fk",toColumn:"id",label:null}]}:e})},[eP,to]),tL=(0,r.useMemo)(()=>({patchEndpoint:(e,t)=>eP(n=>({...n,endpoints:n.endpoints.map(n=>n.id===e?{...n,...t}:n)})),deleteEndpoint:e=>eP(t=>({...t,endpoints:t.endpoints.filter(t=>t.id!==e)})),patchTable:(e,t)=>eP(n=>({...n,tables:n.tables.map(n=>n.id===e?{...n,...t}:n)})),deleteTable:e=>eP(t=>({...t,tables:t.tables.filter(t=>t.id!==e),relations:t.relations.filter(t=>t.fromTableId!==e&&t.toTableId!==e),endpoints:t.endpoints.map(t=>({...t,links:t.links.filter(t=>t.tableId!==e)}))})),deleteRealEndpoint:e=>{fetch(`/api/endpoints/${e}`,{method:"DELETE"}).then(e=>{e.ok&&T.refresh()})}}),[eP,T]);(0,r.useEffect)(()=>{let e=e=>{if(!(e.metaKey||e.ctrlKey))return;let t=e.target;if(t&&/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName))return;let n=e.key.toLowerCase();"z"===n?(e.preventDefault(),e.shiftKey?eL():eF()):"y"===n&&(e.preventDefault(),eL())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eF,eL]);let t_=(0,r.useCallback)(async()=>{ej(!0);try{if((await fetch("/api/draft/approve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(eD)})).ok){try{localStorage.removeItem(eh)}catch{}e_(ef),T.refresh()}}finally{ej(!1)}},[eD,e_,T]),tB=(0,r.useCallback)(async()=>{ej(!0);try{await fetch("/api/draft",{method:"DELETE"})}catch{}try{localStorage.removeItem(eh)}catch{}e_(ef),T.refresh(),ej(!1)},[e_,T]),tH=(0,r.useMemo)(()=>{let e;return e=new Map(eD.tables.map(e=>[e.id,e.name])),{tables:eD.tables.map(e=>({name:e.name,domain:e.domain,description:e.description,columns:e.columns.map(e=>({name:e.name,type:e.type,isPk:e.isPk,isFk:e.isFk,nullable:e.nullable,note:e.note}))})),relations:eD.relations.flatMap(t=>{let n=e.get(t.fromTableId),a=e.get(t.toTableId);return n&&a?[{fromTable:n,fromColumn:t.fromColumn,toTable:a,toColumn:t.toColumn,label:t.label}]:[]}),endpoints:eD.endpoints.map(t=>({method:t.method,path:t.path,domain:t.domain,description:t.description,uses:t.links.flatMap(t=>{let n=e.get(t.tableId);return n?[{table:n,access:t.access}]:[]})}))}},[eD]),tU=eD.tables.length>0||eD.endpoints.length>0,tX=eR.past.length>0,tG=eR.future.length>0;return(0,a.jsx)(f.Provider,{value:tL,children:(0,a.jsxs)("div",{className:(0,x.cn)("canvas-dots relative w-full",c?"h-full":"h-screen"),children:[(0,a.jsxs)(o.Gc,{nodes:tS,edges:"far"===eA?[...tT,...tg].map(e=>({...e,hidden:!0})):[...tT,...tg.map(e=>({...e,hidden:tw.has(e.source)}))],nodeTypes:ep,edgeTypes:ex,nodesConnectable:!M,connectionMode:i.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:e=>{eN.current=e},onNodesChange:tc,onConnect:tF,onNodeMouseEnter:(e,t)=>{"annotation"!==t.type&&U(t.id)},onNodeMouseLeave:()=>U(null),onNodeClick:(e,t)=>{if("annotation"===t.type){let e=t.data;e.editable||E?.(e.annotationId);return}let n="endpoint"===t.type?"endpoint":"table";L({id:t.id,kind:n}),B(null),em(!0),ey("details")},onEdgeClick:(e,t)=>{B(t.id),L(null)},onPaneClick:()=>{L(null),B(null),em(!1)},onNodeDragStop:tp,onEdgesDelete:e=>{for(let t of e)if(t.id.startsWith("fk-")){let e=t.id.slice(3);fetch(`/api/db/relations/${e}`,{method:"DELETE"})}},onNodesDelete:e=>{for(let t of e)t.id.startsWith("anno-")||ts.has(t.id)||("endpoint"===t.type?fetch(`/api/endpoints/${t.id}`,{method:"DELETE"}):"dbTable"===t.type&&fetch(`/api/db/tables/${t.id}`,{method:"DELETE"}))},deleteKeyCode:M?null:["Backspace","Delete"],colorMode:"dark",fitView:!0,fitViewOptions:{padding:.15,minZoom:.38,maxZoom:.9},minZoom:.15,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,a.jsx)(en.Z,{regions:tM,tone:"category",lod:eA}),(0,a.jsx)(b.J,{onLod:eS,thresholds:y.fE}),(0,a.jsx)(o.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),!c&&(0,a.jsx)(o.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!overflow-hidden !rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:"#555"}),!c&&(0,a.jsx)(o.Zk,{position:"bottom-center",className:"!mb-4",children:(0,a.jsx)("div",{className:"glass flex items-center rounded-full p-0.5",children:(0,a.jsxs)("button",{type:"button",disabled:ev,title:"Re-arrange the board — domain clusters with endpoints docked under their tables",onClick:async()=>{ej(!0);try{let e=window.innerWidth/window.innerHeight;await fetch("/api/db/arrange",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewportAspect:e})}),T.refresh()}finally{ej(!1)}},className:"flex h-6 items-center gap-1.5 rounded-full px-3 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground disabled:opacity-40",children:[(0,a.jsx)(er.A,{className:"size-3"}),ev?"Arranging…":"Arrange"]})})}),!c&&(0,a.jsx)(o.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,a.jsx)(W.Z,{active:"DATABASE",tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"},{value:"FILES",label:"Files",href:"/map?view=FILES"}]})}),(0,a.jsxs)(o.Zk,{position:"top-right",className:(0,x.cn)("flex items-center gap-1 transition-[margin] duration-200",eu&&"!mr-[332px]",c&&"hidden"),children:[(0,a.jsx)(G.X,{query:ew,onQuery:ek,hits:tC,placeholder:"Find a table, column, endpoint…",onPick:tE,onZoomToMatches:()=>{tN?.size&&eN.current?.fitView({nodes:[...tN].map(e=>({id:e})),duration:600,padding:.2})}}),(0,a.jsxs)(X.er,{title:"Filters",trigger:(e,t)=>(0,a.jsxs)("button",{type:"button",onClick:t,title:"Filters",className:(0,x.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",e||tP>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(es.A,{className:"size-4"}),tP>0&&(0,a.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:tP})]}),children:[(0,a.jsx)(X.r1,{title:"Show",children:(0,a.jsx)(X.vu,{tone:"accent",on:D,onClick:()=>P(e=>!e),children:"endpoints"})}),tz.length>0&&(0,a.jsx)(X.r1,{title:"Domain",children:tz.map(e=>(0,a.jsx)(X.vu,{on:eC.has(e),onClick:()=>tD(e,eE),children:e},e))}),t$.length>0&&(0,a.jsx)(X.r1,{title:"Method",children:t$.map(e=>(0,a.jsx)(X.vu,{on:eT.has(e),onClick:()=>tD(e,ez),children:e},e))}),tR.length>0&&(0,a.jsx)(X.r1,{title:"Source",children:tR.map(e=>(0,a.jsx)(X.vu,{on:eI.has(e),onClick:()=>tD(e,eM),children:e.toLowerCase()},e))}),tP>0&&(0,a.jsx)("button",{type:"button",onClick:tO,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),(0,a.jsx)(X.er,{title:"Legend",trigger:(e,t)=>(0,a.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,x.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,a.jsx)(eo.A,{className:"size-4"})}),children:(0,a.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded border border-white/15 bg-white/[0.06] px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground/80",children:"table"}),(0,a.jsx)("span",{children:"a database table \xb7 its columns"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded border border-white/15 bg-white/[0.06] px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground/80",children:"endpoint"}),(0,a.jsx)("span",{children:"an API route \xb7 reads / writes tables"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#6b6b6b]"}),(0,a.jsx)("span",{children:"foreign key \xb7 drag from a table handle"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#4ea1ff"}}),(0,a.jsx)("span",{children:"endpoint read \xb7 GET / POST / etc"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#ffb86b"}}),(0,a.jsx)("span",{children:"endpoint write"})]}),(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block rounded border border-dashed border-sky-400/50 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"draft"}),(0,a.jsx)("span",{children:"agent-proposed \xb7 approve to persist"})]})]})}),!eu&&(0,a.jsx)("button",{onClick:()=>em(!0),title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,a.jsx)(ei.A,{className:"size-4"})})]}),tU&&(0,a.jsxs)(o.Zk,{position:"bottom-center",className:"glass flex items-center gap-1 rounded-xl p-1.5",children:[(0,a.jsxs)("button",{onClick:eF,disabled:!tX,title:"Undo (⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,a.jsx)(el.A,{className:"size-3.5"})," undo"]}),(0,a.jsxs)("button",{onClick:eL,disabled:!tG,title:"Redo (⇧⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,a.jsx)(ed.A,{className:"size-3.5"})," redo"]}),!c&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"mx-1 h-4 w-px bg-white/10"}),(0,a.jsxs)("button",{onClick:tB,disabled:ev,title:"Discard draft",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-red-500/15 hover:text-red-300 disabled:opacity-40",children:[(0,a.jsx)(u.A,{className:"size-3.5"})," discard"]}),(0,a.jsxs)("button",{onClick:t_,disabled:ev,title:"Approve and persist to the schema",className:"flex items-center gap-1 rounded-md border border-emerald-500/40 bg-emerald-500/15 px-2.5 py-1 text-[11px] font-semibold text-emerald-300 transition-colors hover:bg-emerald-500/25 disabled:opacity-40",children:[(0,a.jsx)(ec.A,{className:"size-3.5"})," approve draft"]})]})]})]}),eu&&(0,a.jsx)(O,{selected:F,tables:eK,relations:eJ,endpoints:eW,draftGraph:tH,onClose:()=>{em(!1),ey("details")},commentsContent:w,commentsCount:k,activeTab:eb,onTabChange:ey,onAddComment:ta,topOffset:c?64:void 0})]})})}},94014:(e,t,n)=>{n.d(t,{Xi:()=>a});function a(e,t){let n,a,r,s=(a=((n=t.viewportAspect)&&Number.isFinite(n)&&n>0?Math.min(3.2,Math.max(.7,n)):1.8)*(t.aspectSlack??1),r=e.reduce((e,n)=>e+(n.w+t.gapX)*(n.h+t.gapY),0),Math.max(t.minBandW,Math.round(Math.sqrt(r*a)))),o=new Map,i=0,l=0,d=0;for(let n of e)i>0&&i+n.w>s&&(l+=d+t.gapY,i=0,d=0),o.set(n.id,{x:i,y:l}),d=Math.max(d,n.h),i+=n.w+t.gapX;return o}},95635:(e,t,n)=>{n.d(t,{x:()=>o});var a=n(95155),r=n(81750),s=n(6266);function o(){let e="!h-2 !w-2 !border-0 !bg-zinc-400";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.h7,{type:"target",position:s.yX.Top,id:"tt",className:e}),(0,a.jsx)(r.h7,{type:"source",position:s.yX.Top,id:"st",className:e}),(0,a.jsx)(r.h7,{type:"target",position:s.yX.Right,id:"tr",className:e}),(0,a.jsx)(r.h7,{type:"source",position:s.yX.Right,id:"sr",className:e}),(0,a.jsx)(r.h7,{type:"target",position:s.yX.Bottom,id:"tb",className:e}),(0,a.jsx)(r.h7,{type:"source",position:s.yX.Bottom,id:"sb",className:e}),(0,a.jsx)(r.h7,{type:"target",position:s.yX.Left,id:"tl",className:e}),(0,a.jsx)(r.h7,{type:"source",position:s.yX.Left,id:"sl",className:e})]})}},98238:(e,t,n)=>{n.d(t,{F:()=>o,o:()=>i});var a=n(95155),r=n(28161),s=n(91337);function o(e,t){return!!t&&("fullstack"===e?"fullstack"===t:t===e||"fullstack"===t)}function i({value:e,onChange:t,options:n=r.RR}){return(0,a.jsx)("div",{className:"glass flex items-center gap-0.5 rounded-lg p-0.5",children:n.map(n=>{let o=e===n;return(0,a.jsxs)("button",{type:"button",onClick:()=>t(o?null:n),title:o?"Show every layer at full strength again":`Highlight ${r.YG[n].label} — other cards dim, nothing is hidden`,className:(0,s.cn)("flex h-7 items-center gap-1.5 rounded-md px-2 text-[10px] font-semibold uppercase tracking-wide transition-colors",o?"bg-white/[0.12] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"h-3 w-[3px] shrink-0 rounded-full",style:{background:(0,r.A6)(n)}}),r.YG[n].short]},n)})})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3343],{2125:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},8962:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},9005:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},9339:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={callServer:function(){return o.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var i in n)Object.defineProperty(t,i,{enumerable:!0,get:n[i]});let o=r(77304),s=r(4060),l=r(77197)},15330:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]])},15480:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]])},17112:(e,t,r)=>{r.d(t,{D:()=>s});var n=r(12115),i=r(63699),o=r(94257);function s(e){let t=n.useContext(i.Ts)?"drawer":"dialog";return(0,o.G)(e,t)}},17356:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},17494:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]])},24413:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("compass",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]])},25640:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("map-pinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]])},34306:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},40638:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},45486:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]])},60976:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("redo-2",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]])},61388:(e,t,r)=>{r.d(t,{b:()=>d});var n=r(12115),i=r.t(n,2);function o(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}r(47650);var s=r(95155),l=Symbol.for("react.lazy"),f=i[" use ".trim().toString()];function a(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===l&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var u=Symbol("radix.slottable");function c(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===u}var h=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var r,i;let l,u,h,p=(i=r=`Primitive.${t}`,(l=n.forwardRef((e,t)=>{let{children:r,...i}=e;if(a(r)&&"function"==typeof f&&(r=f(r._payload)),n.isValidElement(r)){var s;let e,l,f=(s=r,(l=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(l=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),a=function(e,t){let r={...t};for(let n in t){let i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...e)=>{let t=o(...e);return i(...e),t}:i&&(r[n]=i):"style"===n?r[n]={...i,...o}:"className"===n&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}(i,r.props);return r.type!==n.Fragment&&(a.ref=t?function(...e){return t=>{let r=!1,n=e.map(e=>{let n=o(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t<n.length;t++){let r=n[t];"function"==typeof r?r():o(e[t],null)}}}}(t,f):f),n.cloneElement(r,a)}return n.Children.count(r)>1?n.Children.only(null):null})).displayName=`${i}.SlotClone`,u=l,(h=n.forwardRef((e,t)=>{let{children:r,...i}=e;a(r)&&"function"==typeof f&&(r=f(r._payload));let o=n.Children.toArray(r),l=o.find(c);if(l){let e=l.props.children,r=o.map(t=>t!==l?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,s.jsx)(u,{...i,ref:t,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,s.jsx)(u,{...i,ref:t,children:r})})).displayName=`${r}.Slot`,h),d=n.forwardRef((e,r)=>{let{asChild:n,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.jsx)(n?p:t,{...i,ref:r})});return d.displayName=`Primitive.${t}`,{...e,[t]:d}},{}),p=n.forwardRef((e,t)=>(0,s.jsx)(h.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));p.displayName="Label";var d=p},65377:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},65408:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]])},76721:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},78780:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},80846:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]])},83599:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]])},85618:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).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"}]])},94192:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("folder-tree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]])},98112:(e,t,r)=>{let n;r.d(t,{sX:()=>Z});let i=BigInt(0x100000000-1),o=BigInt(32);function s(e,t=""){if("number"!=typeof e){let r=t&&`"${t}" `;throw TypeError(`${r}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let r=t&&`"${t}" `;throw RangeError(`${r}expected integer >= 0, got ${e}`)}}function l(e,t,r=""){let n=e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name&&"BYTES_PER_ELEMENT"in e&&1===e.BYTES_PER_ELEMENT,i=e?.length,o=void 0!==t;if(!n||o&&i!==t){let s=(r&&`"${r}" `)+"expected Uint8Array"+(o?` of length ${t}`:"")+", got "+(n?`length=${i}`:`type=${typeof e}`);if(!n)throw TypeError(s);throw RangeError(s)}return e}function f(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function a(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}let u=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0]?e=>e:function(e){for(let r=0;r<e.length;r++){var t;e[r]=(t=e[r])<<24&0xff000000|t<<8&0xff0000|t>>>8&65280|t>>>24&255}return e},c=BigInt(0),h=BigInt(1),p=BigInt(2),d=BigInt(7),y=BigInt(256),g=BigInt(113),w=[],m=[],b=[];for(let e=0,t=h,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],w.push(2*(5*n+r)),m.push((e+1)*(e+2)/2%64);let i=c;for(let e=0;e<7;e++)(t=(t<<h^(t>>d)*g)%y)&p&&(i^=h<<(h<<BigInt(e))-h);b.push(i)}let v=function(e,t=!1){let r=e.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let l=0;l<r;l++){let{h:r,l:f}=function(e,t=!1){return t?{h:Number(e&i),l:Number(e>>o&i)}:{h:0|Number(e>>o&i),l:0|Number(e&i)}}(e[l],t);[n[l],s[l]]=[r,f]}return[n,s]}(b,!0),k=v[0],A=v[1],x=(e,t,r)=>r>32?t<<r-32|e>>>64-r:e<<r|t>>>32-r,O=(e,t,r)=>r>32?e<<r-32|t>>>64-r:t<<r|e>>>32-r;class E{state;pos=0;posOut=0;finished=!1;state32;destroyed=!1;blockLen;suffix;outputLen;canXOF;enableXOF=!1;rounds;constructor(e,t,r,n=!1,i=24){if(this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.canXOF=n,this.rounds=i,s(r,"outputLen"),!(0<e&&e<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=function(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}(this.state)}clone(){return this._cloneInto()}keccak(){u(this.state32),function(e,t=24){if(s(t,"rounds"),t<1||t>24)throw Error('"rounds" expected integer 1..24');let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,i=(t+2)%10,o=r[i],s=r[i+1],l=x(o,s,1)^r[n],f=O(o,s,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=l,e[t+r+1]^=f}let t=e[2],i=e[3];for(let r=0;r<24;r++){let n=m[r],o=x(t,i,n),s=O(t,i,n),l=w[r];t=e[l],i=e[l+1],e[l]=o,e[l+1]=s}for(let t=0;t<50;t+=10){let r=e[t],n=e[t+1],i=e[t+2],o=e[t+3];e[t]^=~e[t+2]&e[t+4],e[t+1]^=~e[t+3]&e[t+5],e[t+2]^=~e[t+4]&e[t+6],e[t+3]^=~e[t+5]&e[t+7],e[t+4]^=~e[t+6]&e[t+8],e[t+5]^=~e[t+7]&e[t+9],e[t+6]^=~e[t+8]&r,e[t+7]^=~e[t+9]&n,e[t+8]^=~r&i,e[t+9]^=~n&o}e[0]^=k[n],e[1]^=A[n]}a(r)}(this.state32,this.rounds),u(this.state32),this.posOut=0,this.pos=0}update(e){f(this),l(e);let{blockLen:t,state:r}=this,n=e.length;for(let i=0;i<n;){let o=Math.min(t-this.pos,n-i);for(let t=0;t<o;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,(128&t)!=0&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){f(this,!1),l(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let o=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return s(e),this.xofInto(new Uint8Array(e))}digestInto(e){l(e,void 0,"digestInto() output");let t=this.outputLen;if(e.length<t)throw RangeError('"digestInto() output" expected to be of length >='+t);if(this.finished)throw Error("digest() was already called");this.writeInto(e.subarray(0,this.outputLen)),this.destroy()}digest(){let e=new Uint8Array(this.outputLen);return this.digestInto(e),e}destroy(){this.destroyed=!0,a(this.state)}_cloneInto(e){let{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:o}=this;return(e||=new E(t,r,n,o,i)).blockLen=t,e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=o,e.canXOF=this.canXOF,e.destroyed=this.destroyed,e}}let N=((e,t,r,n={})=>(function(e,t={}){let r=(t,r)=>e(r).update(t).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=t=>e(t),Object.assign(r,t),Object.freeze(r)})(()=>new E(t,e,r),n))(6,72,64,{oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,10])});var M,S=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,L=Math.ceil,R=Math.floor,_="[BigNumber Error] ",I=_+"Number primitive has more than 15 significant digits: ",U=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13];function B(e){var t=0|e;return e>0||e===t?t:t-1}function j(e){for(var t,r,n=1,i=e.length,o=e[0]+"";n<i;){for(r=14-(t=e[n++]+"").length;r--;t="0"+t);o+=t}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function P(e,t){var r,n,i=e.c,o=t.c,s=e.s,l=t.s,f=e.e,a=t.e;if(!s||!l)return null;if(r=i&&!i[0],n=o&&!o[0],r||n)return r?n?0:-l:s;if(s!=l)return s;if(r=s<0,n=f==a,!i||!o)return n?0:!i^r?1:-1;if(!n)return f>a^r?1:-1;for(s=0,l=(f=i.length)<(a=o.length)?f:a;s<l;s++)if(i[s]!=o[s])return i[s]>o[s]^r?1:-1;return f==a?0:f>a^r?1:-1}function T(e,t,r,n){if(e<t||e>r||e!==R(e))throw Error(_+(n||"Argument")+("number"==typeof e?e<t||e>r?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function C(e){var t=e.c.length-1;return B(e.e/14)==t&&e.c[t]%2!=0}function D(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function $(e,t,r){var n,i;if(t<0){for(i=r+".";++t;i+=r);e=i+e}else if(n=e.length,++t>n){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+"."+e.slice(t));return e}var F=function e(t){var r,n,i,o,s,l,f,a,u,c=E.prototype={constructor:E,toString:null,valueOf:null},h=new E(1),p=20,d=4,y=-7,g=21,w=-1e7,m=1e7,b=!1,v=1,k=0,A={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},x="0123456789abcdefghijklmnopqrstuvwxyz",O=!0;function E(e,t){var r,n,i,o,s,l,f,c,h=this;if(!(h instanceof E))return new E(e,t);if(null==t){if(e&&!0===e._isBigNumber){h.s=e.s,!e.c||e.e>m?h.c=h.e=null:e.e<w?h.c=[h.e=0]:(h.e=e.e,h.c=e.c.slice());return}if((l="number"==typeof e)&&0*e==0){if(h.s=1/e<0?(e=-e,-1):1,e===~~e){for(o=0,s=e;s>=10;s/=10,o++);o>m?h.c=h.e=null:(h.e=o,h.c=[e]);return}c=String(e)}else{if(!S.test(c=String(e)))return u(h,c,l);h.s=45==c.charCodeAt(0)?(c=c.slice(1),-1):1}(o=c.indexOf("."))>-1&&(c=c.replace(".","")),(s=c.search(/e/i))>0?(o<0&&(o=s),o+=+c.slice(s+1),c=c.substring(0,s)):o<0&&(o=c.length)}else{if(T(t,2,x.length,"Base"),10==t&&O)return q(h=new E(e),p+h.e+1,d);if(c=String(e),l="number"==typeof e){if(0*e!=0)return u(h,c,l,t);if(h.s=1/e<0?(c=c.slice(1),-1):1,E.DEBUG&&c.replace(/^0\.0*|\./,"").length>15)throw Error(I+e)}else h.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1;for(r=x.slice(0,t),o=s=0,f=c.length;s<f;s++)if(0>r.indexOf(n=c.charAt(s))){if("."==n){if(s>o){o=f;continue}}else if(!i&&(c==c.toUpperCase()&&(c=c.toLowerCase())||c==c.toLowerCase()&&(c=c.toUpperCase()))){i=!0,s=-1,o=0;continue}return u(h,String(e),l,t)}l=!1,(o=(c=a(c,t,10,h.s)).indexOf("."))>-1?c=c.replace(".",""):o=c.length}for(s=0;48===c.charCodeAt(s);s++);for(f=c.length;48===c.charCodeAt(--f););if(c=c.slice(s,++f)){if(f-=s,l&&E.DEBUG&&f>15&&(e>0x1fffffffffffff||e!==R(e)))throw Error(I+h.s*e);if((o=o-s-1)>m)h.c=h.e=null;else if(o<w)h.c=[h.e=0];else{if(h.e=o,h.c=[],s=(o+1)%14,o<0&&(s+=14),s<f){for(s&&h.c.push(+c.slice(0,s)),f-=14;s<f;)h.c.push(+c.slice(s,s+=14));s=14-(c=c.slice(s)).length}else s-=f;for(;s--;c+="0");h.c.push(+c)}}else h.c=[h.e=0]}function N(e,t,r,n){var i,o,s,l,f;if(null==r?r=d:T(r,0,8),!e.c)return e.toString();if(i=e.c[0],s=e.e,null==t)f=j(e.c),f=1==n||2==n&&(s<=y||s>=g)?D(f,s):$(f,s,"0");else if(o=(e=q(new E(e),t,r)).e,l=(f=j(e.c)).length,1==n||2==n&&(t<=o||o<=y)){for(;l<t;f+="0",l++);f=D(f,o)}else if(t-=s+(2===n&&o>s),f=$(f,o,"0"),o+1>l){if(--t>0)for(f+=".";t--;f+="0");}else if((t+=o-l)>0)for(o+1==l&&(f+=".");t--;f+="0");return e.s<0&&i?"-"+f:f}function M(e,t){for(var r,n,i=1,o=new E(e[0]);i<e.length;i++)(n=new E(e[i])).s&&(r=P(o,n))!==t&&(0!==r||o.s!==t)||(o=n);return o}function F(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,n++);return(r=n+14*r-1)>m?e.c=e.e=null:r<w?e.c=[e.e=0]:(e.e=r,e.c=t),e}function q(e,t,r,n){var i,o,s,l,f,a,u,c=e.c;if(c){e:{for(i=1,l=c[0];l>=10;l/=10,i++);if((o=t-i)<0)o+=14,s=t,u=R((f=c[a=0])/U[i-s-1]%10);else if((a=L((o+1)/14))>=c.length)if(n){for(;c.length<=a;c.push(0));f=u=0,i=1,o%=14,s=o-14+1}else break e;else{for(i=1,f=l=c[a];l>=10;l/=10,i++);o%=14,u=(s=o-14+i)<0?0:R(f/U[i-s-1]%10)}if(n=n||t<0||null!=c[a+1]||(s<0?f:f%U[i-s-1]),n=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(o>0?s>0?f/U[i-s]:0:c[a-1])%10&1||r==(e.s<0?8:7)),t<1||!c[0])return c.length=0,n?(t-=e.e+1,c[0]=U[(14-t%14)%14],e.e=-t||0):c[0]=e.e=0,e;if(0==o?(c.length=a,l=1,a--):(c.length=a+1,l=U[14-o],c[a]=s>0?R(f/U[i-s]%U[s])*l:0),n)for(;;)if(0==a){for(o=1,s=c[0];s>=10;s/=10,o++);for(s=c[0]+=l,l=1;s>=10;s/=10,l++);o!=l&&(e.e++,1e14==c[0]&&(c[0]=1));break}else{if(c[a]+=l,1e14!=c[a])break;c[a--]=0,l=1}for(o=c.length;0===c[--o];c.pop());}e.e>m?e.c=e.e=null:e.e<w&&(e.c=[e.e=0])}return e}function z(e){var t,r=e.e;return null===r?e.toString():(t=j(e.c),t=r<=y||r>=g?D(t,r):$(t,r,"0"),e.s<0?"-"+t:t)}return E.clone=e,E.ROUND_UP=0,E.ROUND_DOWN=1,E.ROUND_CEIL=2,E.ROUND_FLOOR=3,E.ROUND_HALF_UP=4,E.ROUND_HALF_DOWN=5,E.ROUND_HALF_EVEN=6,E.ROUND_HALF_CEIL=7,E.ROUND_HALF_FLOOR=8,E.EUCLID=9,E.config=E.set=function(e){var t,r;if(null!=e)if("object"==typeof e){if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(T(r=e[t],0,1e9,t),p=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(T(r=e[t],0,8,t),d=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(T(r[0],-1e9,0,t),T(r[1],0,1e9,t),y=r[0],g=r[1]):(T(r,-1e9,1e9,t),y=-(g=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)T(r[0],-1e9,-1,t),T(r[1],1,1e9,t),w=r[0],m=r[1];else if(T(r,-1e9,1e9,t),r)w=-(m=r<0?-r:r);else throw Error(_+t+" cannot be zero: "+r);if(e.hasOwnProperty(t="CRYPTO"))if(!!(r=e[t])===r)if(r)if("u">typeof crypto&&crypto&&(crypto.getRandomValues||crypto.randomBytes))b=r;else throw b=!r,Error(_+"crypto unavailable");else b=r;else throw Error(_+t+" not true or false: "+r);if(e.hasOwnProperty(t="MODULO_MODE")&&(T(r=e[t],0,9,t),v=r),e.hasOwnProperty(t="POW_PRECISION")&&(T(r=e[t],0,1e9,t),k=r),e.hasOwnProperty(t="FORMAT"))if("object"==typeof(r=e[t]))A=r;else throw Error(_+t+" not an object: "+r);if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(_+t+" invalid: "+r);O="0123456789"==r.slice(0,10),x=r}}else throw Error(_+"Object expected: "+e);return{DECIMAL_PLACES:p,ROUNDING_MODE:d,EXPONENTIAL_AT:[y,g],RANGE:[w,m],CRYPTO:b,MODULO_MODE:v,POW_PRECISION:k,FORMAT:A,ALPHABET:x}},E.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!E.DEBUG)return!0;var t,r,n=e.c,i=e.e,o=e.s;e:if("[object Array]"==({}).toString.call(n)){if((1===o||-1===o)&&i>=-1e9&&i<=1e9&&i===R(i)){if(0===n[0]){if(0===i&&1===n.length)return!0;break e}if((t=(i+1)%14)<1&&(t+=14),String(n[0]).length==t){for(t=0;t<n.length;t++)if((r=n[t])<0||r>=1e14||r!==R(r))break e;if(0!==r)return!0}}}else if(null===n&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(_+"Invalid BigNumber: "+e)},E.maximum=E.max=function(){return M(arguments,-1)},E.minimum=E.min=function(){return M(arguments,1)},r=0x20000000000000*Math.random()&2097151?function(){return R(0x20000000000000*Math.random())}:function(){return(0x40000000*Math.random()|0)*8388608+(8388608*Math.random()|0)},E.random=function(e){var t,n,i,o,s,l=0,f=[],a=new E(h);if(null==e?e=p:T(e,0,1e9),o=L(e/14),b)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(o*=2));l<o;)(s=131072*t[l]+(t[l+1]>>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[l]=n[0],t[l+1]=n[1]):(f.push(s%1e14),l+=2);l=o/2}else if(crypto.randomBytes){for(t=crypto.randomBytes(o*=7);l<o;)(s=(31&t[l])*0x1000000000000+0x10000000000*t[l+1]+0x100000000*t[l+2]+0x1000000*t[l+3]+(t[l+4]<<16)+(t[l+5]<<8)+t[l+6])>=9e15?crypto.randomBytes(7).copy(t,l):(f.push(s%1e14),l+=7);l=o/7}else throw b=!1,Error(_+"crypto unavailable");if(!b)for(;l<o;)(s=r())<9e15&&(f[l++]=s%1e14);for(o=f[--l],e%=14,o&&e&&(s=U[14-e],f[l]=R(o/s)*s);0===f[l];f.pop(),l--);if(l<0)f=[i=0];else{for(i=-1;0===f[0];f.splice(0,1),i-=14);for(l=1,s=f[0];s>=10;s/=10,l++);l<14&&(i-=14-l)}return a.e=i,a.c=f,a},E.sum=function(){for(var e=1,t=arguments,r=new E(t[0]);e<t.length;)r=r.plus(t[e++]);return r},a=function(){var e="0123456789";function t(e,t,r,n){for(var i,o,s=[0],l=0,f=e.length;l<f;){for(o=s.length;o--;s[o]*=t);for(s[0]+=n.indexOf(e.charAt(l++)),i=0;i<s.length;i++)s[i]>r-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/r|0,s[i]%=r)}return s.reverse()}return function(r,n,i,o,s){var l,a,u,c,h,y,g,w,m=r.indexOf("."),b=p,v=d;for(m>=0&&(c=k,k=0,r=r.replace(".",""),y=(w=new E(n)).pow(r.length-m),k=c,w.c=t($(j(y.c),y.e,"0"),10,i,e),w.e=w.c.length),u=c=(g=t(r,n,i,s?(l=x,e):(l=e,x))).length;0==g[--c];g.pop());if(!g[0])return l.charAt(0);if(m<0?--u:(y.c=g,y.e=u,y.s=o,g=(y=f(y,w,b,v,i)).c,h=y.r,u=y.e),m=g[a=u+b+1],c=i/2,h=h||a<0||null!=g[a+1],h=v<4?(null!=m||h)&&(0==v||v==(y.s<0?3:2)):m>c||m==c&&(4==v||h||6==v&&1&g[a-1]||v==(y.s<0?8:7)),a<1||!g[0])r=h?$(l.charAt(1),-b,l.charAt(0)):l.charAt(0);else{if(g.length=a,h)for(--i;++g[--a]>i;)g[a]=0,a||(++u,g=[1].concat(g));for(c=g.length;!g[--c];);for(m=0,r="";m<=c;r+=l.charAt(g[m++]));r=$(r,u,l.charAt(0))}return r}}(),f=function(){function e(e,t,r){var n,i,o,s,l=0,f=e.length,a=t%1e7,u=t/1e7|0;for(e=e.slice();f--;)n=u*(o=e[f]%1e7)+(s=e[f]/1e7|0)*a,l=((i=a*o+n%1e7*1e7+l)/r|0)+(n/1e7|0)+u*s,e[f]=i%r;return l&&(e=[l].concat(e)),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;i<r;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=+(e[r]<t[r]),e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(n,i,o,s,l){var f,a,u,c,h,p,d,y,g,w,m,b,v,k,A,x,O,N=n.s==i.s?1:-1,M=n.c,S=i.c;if(!M||!M[0]||!S||!S[0])return new E(!n.s||!i.s||(M?S&&M[0]==S[0]:!S)?NaN:M&&0==M[0]||!S?0*N:N/0);for(g=(y=new E(N)).c=[],N=o+(a=n.e-i.e)+1,l||(l=1e14,a=B(n.e/14)-B(i.e/14),N=N/14|0),u=0;S[u]==(M[u]||0);u++);if(S[u]>(M[u]||0)&&a--,N<0)g.push(1),c=!0;else{for(k=M.length,x=S.length,u=0,N+=2,(h=R(l/(S[0]+1)))>1&&(S=e(S,h,l),M=e(M,h,l),x=S.length,k=M.length),v=x,m=(w=M.slice(0,x)).length;m<x;w[m++]=0);O=[0].concat(O=S.slice()),A=S[0],S[1]>=l/2&&A++;do{if(h=0,(f=t(S,w,x,m))<0){if(b=w[0],x!=m&&(b=b*l+(w[1]||0)),(h=R(b/A))>1)for(h>=l&&(h=l-1),d=(p=e(S,h,l)).length,m=w.length;1==t(p,w,d,m);)h--,r(p,x<d?O:S,d,l),d=p.length,f=1;else 0==h&&(f=h=1),d=(p=S.slice()).length;if(d<m&&(p=[0].concat(p)),r(w,p,m,l),m=w.length,-1==f)for(;1>t(S,w,x,m);)h++,r(w,x<m?O:S,m,l),m=w.length}else 0===f&&(h++,w=[0]);g[u++]=h,w[0]?w[m++]=M[v]||0:(w=[M[v]],m=1)}while((v++<k||null!=w[0])&&N--);c=null!=w[0],g[0]||g.splice(0,1)}if(1e14==l){for(u=1,N=g[0];N>=10;N/=10,u++);q(y,o+(y.e=u+14*a-1)+1,s,c)}else y.e=a,y.r=+c;return y}}(),n=/^(-?)0([xbo])(?=\w[\w.]*$)/i,i=/^([^.]+)\.$/,o=/^\.([^.]+)$/,s=/^-?(Infinity|NaN)$/,l=/^\s*\+(?=[\w.])|^\s+|\s+$/g,u=function(e,t,r,f){var a,u=r?t:t.replace(l,"");if(s.test(u))e.s=isNaN(u)?null:u<0?-1:1;else{if(!r&&(u=u.replace(n,function(e,t,r){return a="x"==(r=r.toLowerCase())?16:"b"==r?2:8,f&&f!=a?e:t}),f&&(a=f,u=u.replace(i,"$1").replace(o,"0.$1")),t!=u))return new E(u,a);if(E.DEBUG)throw Error(_+"Not a"+(f?" base "+f:"")+" number: "+t);e.s=null}e.c=e.e=null},c.absoluteValue=c.abs=function(){var e=new E(this);return e.s<0&&(e.s=1),e},c.comparedTo=function(e,t){return P(this,new E(e,t))},c.decimalPlaces=c.dp=function(e,t){var r,n,i;if(null!=e)return T(e,0,1e9),null==t?t=d:T(t,0,8),q(new E(this),e+this.e+1,t);if(!(r=this.c))return null;if(n=((i=r.length-1)-B(this.e/14))*14,i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},c.dividedBy=c.div=function(e,t){return f(this,new E(e,t),p,d)},c.dividedToIntegerBy=c.idiv=function(e,t){return f(this,new E(e,t),0,1)},c.exponentiatedBy=c.pow=function(e,t){var r,n,i,o,s,l,f,a,u,c=this;if((e=new E(e)).c&&!e.isInteger())throw Error(_+"Exponent not an integer: "+z(e));if(null!=t&&(t=new E(t)),l=e.e>14,!c.c||!c.c[0]||1==c.c[0]&&!c.e&&1==c.c.length||!e.c||!e.c[0])return u=new E(Math.pow(+z(c),l?e.s*(2-C(e)):+z(e))),t?u.mod(t):u;if(f=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new E(NaN);(n=!f&&c.isInteger()&&t.isInteger())&&(c=c.mod(t))}else{if(e.e>9&&(c.e>0||c.e<-1||(0==c.e?c.c[0]>1||l&&c.c[1]>=24e7:c.c[0]<8e13||l&&c.c[0]<=9999975e7)))return o=c.s<0&&C(e)?-0:0,c.e>-1&&(o=1/o),new E(f?1/o:o);k&&(o=L(k/14+2))}for(l?(r=new E(.5),f&&(e.s=1),a=C(e)):a=(i=Math.abs(+z(e)))%2,u=new E(h);;){if(a){if(!(u=u.times(c)).c)break;o?u.c.length>o&&(u.c.length=o):n&&(u=u.mod(t))}if(i){if(0===(i=R(i/2)))break;a=i%2}else if(q(e=e.times(r),e.e+1,1),e.e>14)a=C(e);else{if(0==(i=+z(e)))break;a=i%2}c=c.times(c),o?c.c&&c.c.length>o&&(c.c.length=o):n&&(c=c.mod(t))}return n?u:(f&&(u=h.div(u)),t?u.mod(t):o?q(u,k,d,s):u)},c.integerValue=function(e){var t=new E(this);return null==e?e=d:T(e,0,8),q(t,t.e+1,e)},c.isEqualTo=c.eq=function(e,t){return 0===P(this,new E(e,t))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(e,t){return P(this,new E(e,t))>0},c.isGreaterThanOrEqualTo=c.gte=function(e,t){return 1===(t=P(this,new E(e,t)))||0===t},c.isInteger=function(){return!!this.c&&B(this.e/14)>this.c.length-2},c.isLessThan=c.lt=function(e,t){return 0>P(this,new E(e,t))},c.isLessThanOrEqualTo=c.lte=function(e,t){return -1===(t=P(this,new E(e,t)))||0===t},c.isNaN=function(){return!this.s},c.isNegative=function(){return this.s<0},c.isPositive=function(){return this.s>0},c.isZero=function(){return!!this.c&&0==this.c[0]},c.minus=function(e,t){var r,n,i,o,s=this.s;if(t=(e=new E(e,t)).s,!s||!t)return new E(NaN);if(s!=t)return e.s=-t,this.plus(e);var l=this.e/14,f=e.e/14,a=this.c,u=e.c;if(!l||!f){if(!a||!u)return a?(e.s=-t,e):new E(u?this:NaN);if(!a[0]||!u[0])return u[0]?(e.s=-t,e):new E(a[0]?this:3==d?-0:0)}if(l=B(l),f=B(f),a=a.slice(),s=l-f){for((o=s<0)?(s=-s,i=a):(f=l,i=u),i.reverse(),t=s;t--;i.push(0));i.reverse()}else for(n=(o=(s=a.length)<(t=u.length))?s:t,s=t=0;t<n;t++)if(a[t]!=u[t]){o=a[t]<u[t];break}if(o&&(i=a,a=u,u=i,e.s=-e.s),(t=(n=u.length)-(r=a.length))>0)for(;t--;a[r++]=0);for(t=1e14-1;n>s;){if(a[--n]<u[n]){for(r=n;r&&!a[--r];a[r]=t);--a[r],a[n]+=1e14}a[n]-=u[n]}for(;0==a[0];a.splice(0,1),--f);return a[0]?F(e,a,f):(e.s=3==d?-1:1,e.c=[e.e=0],e)},c.modulo=c.mod=function(e,t){var r,n;return(e=new E(e,t),this.c&&e.s&&(!e.c||e.c[0]))?e.c&&(!this.c||this.c[0])?(9==v?(n=e.s,e.s=1,r=f(this,e,0,3),e.s=n,r.s*=n):r=f(this,e,0,v),(e=this.minus(r.times(e))).c[0]||1!=v||(e.s=this.s),e):new E(this):new E(NaN)},c.multipliedBy=c.times=function(e,t){var r,n,i,o,s,l,f,a,u,c,h,p,d,y=this.c,g=(e=new E(e,t)).c;if(!y||!g||!y[0]||!g[0])return this.s&&e.s&&(!y||y[0]||g)&&(!g||g[0]||y)?(e.s*=this.s,y&&g?(e.c=[0],e.e=0):e.c=e.e=null):e.c=e.e=e.s=null,e;for(n=B(this.e/14)+B(e.e/14),e.s*=this.s,(f=y.length)<(c=g.length)&&(d=y,y=g,g=d,i=f,f=c,c=i),i=f+c,d=[];i--;d.push(0));for(i=c;--i>=0;){for(r=0,h=g[i]%1e7,p=g[i]/1e7|0,o=i+(s=f);o>i;)l=p*(a=y[--s]%1e7)+(u=y[s]/1e7|0)*h,r=((a=h*a+l%1e7*1e7+d[o]+r)/1e14|0)+(l/1e7|0)+p*u,d[o--]=a%1e14;d[o]=r}return r?++n:d.splice(0,1),F(e,d,n)},c.negated=function(){var e=new E(this);return e.s=-e.s||null,e},c.plus=function(e,t){var r,n=this.s;if(t=(e=new E(e,t)).s,!n||!t)return new E(NaN);if(n!=t)return e.s=-t,this.minus(e);var i=this.e/14,o=e.e/14,s=this.c,l=e.c;if(!i||!o){if(!s||!l)return new E(n/0);if(!s[0]||!l[0])return l[0]?e:new E(s[0]?this:0*n)}if(i=B(i),o=B(o),s=s.slice(),n=i-o){for(n>0?(o=i,r=l):(n=-n,r=s),r.reverse();n--;r.push(0));r.reverse()}for((n=s.length)-(t=l.length)<0&&(r=l,l=s,s=r,t=n),n=0;t;)n=(s[--t]=s[t]+l[t]+n)/1e14|0,s[t]=1e14===s[t]?0:s[t]%1e14;return n&&(s=[n].concat(s),++o),F(e,s,o)},c.precision=c.sd=function(e,t){var r,n,i;if(null!=e&&!!e!==e)return T(e,1,1e9),null==t?t=d:T(t,0,8),q(new E(this),e,t);if(!(r=this.c))return null;if(n=14*(i=r.length-1)+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];i>=10;i/=10,n++);}return e&&this.e+1>n&&(n=this.e+1),n},c.shiftedBy=function(e){return T(e,-0x1fffffffffffff,0x1fffffffffffff),this.times("1e"+e)},c.squareRoot=c.sqrt=function(){var e,t,r,n,i,o=this.c,s=this.s,l=this.e,a=p+4,u=new E("0.5");if(1!==s||!o||!o[0])return new E(!s||s<0&&(!o||o[0])?NaN:o?this:1/0);if(0==(s=Math.sqrt(+z(this)))||s==1/0?(((t=j(o)).length+l)%2==0&&(t+="0"),s=Math.sqrt(+t),l=B((l+1)/2)-(l<0||l%2),r=new E(t=s==1/0?"5e"+l:(t=s.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new E(s+""),r.c[0]){for((s=(l=r.e)+a)<3&&(s=0);;)if(i=r,r=u.times(i.plus(f(this,i,a,1))),j(i.c).slice(0,s)===(t=j(r.c)).slice(0,s)){if(r.e<l&&--s,"9999"!=(t=t.slice(s-3,s+1))&&(n||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(q(r,r.e+p+2,1),e=!r.times(r).eq(this));break}if(!n&&(q(i,i.e+p+2,0),i.times(i).eq(this))){r=i;break}a+=4,s+=4,n=1}}return q(r,r.e+p+1,d,e)},c.toExponential=function(e,t){return null!=e&&(T(e,0,1e9),e++),N(this,e,t,1)},c.toFixed=function(e,t){return null!=e&&(T(e,0,1e9),e=e+this.e+1),N(this,e,t)},c.toFormat=function(e,t,r){var n;if(null==r)null!=e&&t&&"object"==typeof t?(r=t,t=null):e&&"object"==typeof e?(r=e,e=t=null):r=A;else if("object"!=typeof r)throw Error(_+"Argument not an object: "+r);if(n=this.toFixed(e,t),this.c){var i,o=n.split("."),s=+r.groupSize,l=+r.secondaryGroupSize,f=r.groupSeparator||"",a=o[0],u=o[1],c=this.s<0,h=c?a.slice(1):a,p=h.length;if(l&&(i=s,s=l,l=i,p-=i),s>0&&p>0){for(i=p%s||s,a=h.substr(0,i);i<p;i+=s)a+=f+h.substr(i,s);l>0&&(a+=f+h.slice(i)),c&&(a="-"+a)}n=u?a+(r.decimalSeparator||"")+((l=+r.fractionGroupSize)?u.replace(RegExp("\\d{"+l+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):u):a}return(r.prefix||"")+n+(r.suffix||"")},c.toFraction=function(e){var t,r,n,i,o,s,l,a,u,c,p,y,g=this.c;if(null!=e&&(!(l=new E(e)).isInteger()&&(l.c||1!==l.s)||l.lt(h)))throw Error(_+"Argument "+(l.isInteger()?"out of range: ":"not an integer: ")+z(l));if(!g)return new E(this);for(t=new E(h),u=r=new E(h),n=a=new E(h),y=j(g),o=t.e=y.length-this.e-1,t.c[0]=U[(s=o%14)<0?14+s:s],e=!e||l.comparedTo(t)>0?o>0?t:u:l,s=m,m=1/0,l=new E(y),a.c[0]=0;c=f(l,t,0,1),1!=(i=r.plus(c.times(n))).comparedTo(e);)r=n,n=i,u=a.plus(c.times(i=u)),a=i,t=l.minus(c.times(i=t)),l=i;return i=f(e.minus(r),n,0,1),a=a.plus(i.times(u)),r=r.plus(i.times(n)),a.s=u.s=this.s,o*=2,p=1>f(u,n,o,d).minus(this).abs().comparedTo(f(a,r,o,d).minus(this).abs())?[u,n]:[a,r],m=s,p},c.toNumber=function(){return+z(this)},c.toPrecision=function(e,t){return null!=e&&T(e,1,1e9),N(this,e,t,2)},c.toString=function(e){var t,r=this,n=r.s,i=r.e;return null===i?n?(t="Infinity",n<0&&(t="-"+t)):t="NaN":(null==e?t=i<=y||i>=g?D(j(r.c),i):$(j(r.c),i,"0"):10===e&&O?t=$(j((r=q(new E(r),p+i+1,d)).c),r.e,"0"):(T(e,2,x.length,"Base"),t=a($(j(r.c),i,"0"),10,e,n,!0)),n<0&&r.c[0]&&(t="-"+t)),t},c.valueOf=c.toJSON=function(){return z(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=t&&E.set(t),E}();let q=24,z="u">typeof globalThis&&globalThis.crypto&&"function"==typeof globalThis.crypto.getRandomValues?()=>{let e=new Uint32Array(1);return globalThis.crypto.getRandomValues(e),e[0]/0x100000000}:Math.random,V=(e=4,t=z)=>{let r="";for(;r.length<e;)r+=Math.floor(36*t()).toString(36);return r},G=(e="")=>(function(e){let t=new F(0);for(let r of e.values())t=t.multipliedBy(256).plus(r);return t})(N(new TextEncoder().encode(e))).toString(36).slice(1),H=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),X=({globalObj:e="u">typeof global?global:"u">typeof window?window:{},random:t=z}={})=>{let r=Object.keys(e).toString();return G(r.length?r+V(32,t):V(32,t)).substring(0,32)},W=e=>()=>e++,Y=0x1c6b1f1f,Z=(M=({random:e=z,counter:t=W(Math.floor(e()*Y)),length:r=q,fingerprint:n=X({random:e})}={})=>{if(r>32)throw Error(`Length must be between 2 and 32. Received: ${r}`);return function(){let i=H[Math.floor(e()*H.length)],o=Date.now().toString(36),s=t().toString(36),l=V(r,e),f=`${o+l+s+n}`;return`${i+G(f).substring(1,r)}`}},()=>(n||(n=M()),n()))}}]);