trybeacon 0.1.23 → 0.1.25

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 (362) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -8
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +6 -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_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  27. package/.next/server/app/api/board-annotations/[id]/route.js.nft.json +1 -1
  28. package/.next/server/app/api/board-annotations/route.js +1 -1
  29. package/.next/server/app/api/board-annotations/route.js.nft.json +1 -1
  30. package/.next/server/app/api/board-layout/route.js +1 -0
  31. package/.next/server/app/api/board-layout/route.js.nft.json +1 -0
  32. package/.next/server/app/api/board-layout/route_client-reference-manifest.js +1 -0
  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/reconcile-endpoints/route.js +1 -1
  54. package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -1
  55. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  56. package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  58. package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/draft/approve/route.js +1 -5
  60. package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
  61. package/.next/server/app/api/draft/route.js +1 -5
  62. package/.next/server/app/api/draft/route.js.nft.json +1 -1
  63. package/.next/server/app/api/draft/status/route.js +1 -1
  64. package/.next/server/app/api/draft/status/route.js.nft.json +1 -1
  65. package/.next/server/app/api/edges/[id]/route.js +1 -1
  66. package/.next/server/app/api/edges/[id]/route.js.nft.json +1 -1
  67. package/.next/server/app/api/edges/route.js +1 -1
  68. package/.next/server/app/api/edges/route.js.nft.json +1 -1
  69. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  70. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/entities/route.js +1 -1
  72. package/.next/server/app/api/entities/route.js.nft.json +1 -1
  73. package/.next/server/app/api/feedback/[id]/route.js +1 -1
  74. package/.next/server/app/api/feedback/[id]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
  76. package/.next/server/app/api/feedback/[id]/vote/route.js.nft.json +1 -1
  77. package/.next/server/app/api/feedback/route.js +1 -1
  78. package/.next/server/app/api/feedback/route.js.nft.json +1 -1
  79. package/.next/server/app/api/ingest/route.js +2 -2
  80. package/.next/server/app/api/ingest/route.js.nft.json +1 -1
  81. package/.next/server/app/api/init/route.js +2 -2
  82. package/.next/server/app/api/init/route.js.nft.json +1 -1
  83. package/.next/server/app/api/map/describe/route.js +2 -2
  84. package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
  85. package/.next/server/app/api/map/files/route.js +1 -1
  86. package/.next/server/app/api/map/files/route.js.nft.json +1 -1
  87. package/.next/server/app/api/map/finish/route.js +1 -1
  88. package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
  89. package/.next/server/app/api/map/route.js +1 -1
  90. package/.next/server/app/api/map/route.js.nft.json +1 -1
  91. package/.next/server/app/api/map/start/route.js +1 -1
  92. package/.next/server/app/api/map/start/route.js.nft.json +1 -1
  93. package/.next/server/app/api/map/touch-active/route.js +1 -1
  94. package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
  95. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  96. package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
  97. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  98. package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
  99. package/.next/server/app/api/nodes/positions/route.js +1 -1
  100. package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
  101. package/.next/server/app/api/nodes/route.js +1 -1
  102. package/.next/server/app/api/nodes/route.js.nft.json +1 -1
  103. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  104. package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -1
  105. package/.next/server/app/api/notes/[id]/route.js +1 -1
  106. package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -1
  107. package/.next/server/app/api/notes/route.js +1 -1
  108. package/.next/server/app/api/notes/route.js.nft.json +1 -1
  109. package/.next/server/app/api/open/route.js +1 -1
  110. package/.next/server/app/api/open/route.js.nft.json +1 -1
  111. package/.next/server/app/api/plan/annotations/route.js +3 -3
  112. package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -1
  113. package/.next/server/app/api/plan/approve/route.js +2 -6
  114. package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
  115. package/.next/server/app/api/plan/history/route.js +1 -1
  116. package/.next/server/app/api/plan/history/route.js.nft.json +1 -1
  117. package/.next/server/app/api/plan/markdown/route.js +1 -1
  118. package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -1
  119. package/.next/server/app/api/plan/presence/route.js +1 -1
  120. package/.next/server/app/api/plan/presence/route.js.nft.json +1 -1
  121. package/.next/server/app/api/plan/route.js +1 -1
  122. package/.next/server/app/api/plan/route.js.nft.json +1 -1
  123. package/.next/server/app/api/plan/verdict/route.js +1 -5
  124. package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -1
  125. package/.next/server/app/api/preferences/route.js +1 -1
  126. package/.next/server/app/api/reset/route.js +1 -1
  127. package/.next/server/app/api/reset/route.js.nft.json +1 -1
  128. package/.next/server/app/api/stream/route.js +2 -2
  129. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  130. package/.next/server/app/api/version/route.js +1 -1
  131. package/.next/server/app/api/version/route.js.nft.json +1 -1
  132. package/.next/server/app/api/workspace/activate/route.js +1 -1
  133. package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -1
  134. package/.next/server/app/api/workspace/route.js +1 -1
  135. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  136. package/.next/server/app/apple-icon.png/route.js +1 -1
  137. package/.next/server/app/docs/page.js +2 -2
  138. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  139. package/.next/server/app/docs.html +1 -1
  140. package/.next/server/app/docs.rsc +2 -2
  141. package/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  142. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  143. package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  144. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  145. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  146. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  147. package/.next/server/app/feedback/page.js +2 -2
  148. package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/feedback.html +1 -1
  150. package/.next/server/app/feedback.rsc +2 -2
  151. package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
  152. package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  153. package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
  154. package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  155. package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  156. package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  157. package/.next/server/app/help/page.js +2 -2
  158. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/help.html +1 -1
  160. package/.next/server/app/help.rsc +2 -2
  161. package/.next/server/app/help.segments/_full.segment.rsc +2 -2
  162. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  163. package/.next/server/app/help.segments/_index.segment.rsc +2 -2
  164. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  165. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  166. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  167. package/.next/server/app/icon.svg/route.js +1 -1
  168. package/.next/server/app/index.html +1 -1
  169. package/.next/server/app/index.rsc +2 -2
  170. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  171. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  172. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  173. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  174. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  175. package/.next/server/app/map/page.js +2 -2
  176. package/.next/server/app/map/page.js.nft.json +1 -1
  177. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  178. package/.next/server/app/page.js +2 -2
  179. package/.next/server/app/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/plan/page.js +2 -2
  181. package/.next/server/app/plan/page.js.nft.json +1 -1
  182. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  183. package/.next/server/app/settings/page.js +2 -2
  184. package/.next/server/app/settings/page.js.nft.json +1 -1
  185. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app-paths-manifest.json +9 -8
  187. package/.next/server/chunks/249.js +1 -1
  188. package/.next/server/chunks/2809.js +1 -0
  189. package/.next/server/chunks/2877.js +7 -0
  190. package/.next/server/chunks/2933.js +2 -15
  191. package/.next/server/chunks/2981.js +1 -1
  192. package/.next/server/chunks/319.js +1 -1
  193. package/.next/server/chunks/3221.js +5 -0
  194. package/.next/server/chunks/3254.js +1 -1
  195. package/.next/server/chunks/4198.js +1 -0
  196. package/.next/server/chunks/4274.js +94 -0
  197. package/.next/server/chunks/4378.js +1 -0
  198. package/.next/server/chunks/5258.js +1 -1
  199. package/.next/server/chunks/5573.js +1 -0
  200. package/.next/server/chunks/6042.js +1 -0
  201. package/.next/server/chunks/617.js +1 -0
  202. package/.next/server/chunks/7373.js +1 -0
  203. package/.next/server/chunks/9127.js +1 -1
  204. package/.next/server/chunks/{3349.js → 9213.js} +1 -1
  205. package/.next/server/chunks/9313.js +14 -0
  206. package/.next/server/chunks/9683.js +1 -1
  207. package/.next/server/chunks/9734.js +1 -1
  208. package/.next/server/instrumentation.js +1 -1
  209. package/.next/server/instrumentation.js.nft.json +1 -1
  210. package/.next/server/middleware-build-manifest.js +1 -1
  211. package/.next/server/middleware.js +2 -2
  212. package/.next/server/pages/404.html +1 -1
  213. package/.next/server/pages/500.html +1 -1
  214. package/.next/server/server-reference-manifest.js +1 -1
  215. package/.next/server/server-reference-manifest.json +1 -1
  216. package/.next/static/MYvJ_ebinIGa9MP5kWFaY/_buildManifest.js +1 -0
  217. package/.next/static/chunks/1a258343-7b029f38cf13f847.js +2 -0
  218. package/.next/static/chunks/6773-89cca3b011769270.js +1 -0
  219. package/.next/static/chunks/app/_global-error/{page-0fdd2f2bb2631a50.js → page-8fa95c63b95bf9c3.js} +1 -1
  220. package/.next/static/chunks/app/api/board-annotations/[id]/{route-0fdd2f2bb2631a50.js → route-8fa95c63b95bf9c3.js} +1 -1
  221. package/.next/static/chunks/app/api/board-annotations/{route-0fdd2f2bb2631a50.js → route-8fa95c63b95bf9c3.js} +1 -1
  222. package/.next/static/chunks/app/api/{bug-flags/[id]/route-0fdd2f2bb2631a50.js → board-layout/route-8fa95c63b95bf9c3.js} +1 -1
  223. package/.next/static/chunks/app/api/bug-flags/[id]/route-8fa95c63b95bf9c3.js +1 -0
  224. package/.next/static/chunks/app/api/bug-flags/route-8fa95c63b95bf9c3.js +1 -0
  225. package/.next/static/chunks/app/api/code-graph/position/route-8fa95c63b95bf9c3.js +1 -0
  226. package/.next/static/chunks/app/api/code-graph/route-8fa95c63b95bf9c3.js +1 -0
  227. package/.next/static/chunks/app/api/context/feature/route-8fa95c63b95bf9c3.js +1 -0
  228. package/.next/static/chunks/app/api/context/file/route-8fa95c63b95bf9c3.js +1 -0
  229. package/.next/static/chunks/app/api/context/route-8fa95c63b95bf9c3.js +1 -0
  230. package/.next/static/chunks/app/api/db/arrange/route-8fa95c63b95bf9c3.js +1 -0
  231. package/.next/static/chunks/app/api/db/backfill-access/route-8fa95c63b95bf9c3.js +1 -0
  232. package/.next/static/chunks/app/api/db/position/route-8fa95c63b95bf9c3.js +1 -0
  233. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-8fa95c63b95bf9c3.js +1 -0
  234. package/.next/static/chunks/app/api/db/relations/[id]/route-8fa95c63b95bf9c3.js +1 -0
  235. package/.next/static/chunks/app/api/db/tables/[id]/route-8fa95c63b95bf9c3.js +1 -0
  236. package/.next/static/chunks/app/api/draft/approve/route-8fa95c63b95bf9c3.js +1 -0
  237. package/.next/static/chunks/app/api/draft/route-8fa95c63b95bf9c3.js +1 -0
  238. package/.next/static/chunks/app/api/draft/status/route-8fa95c63b95bf9c3.js +1 -0
  239. package/.next/static/chunks/app/api/edges/[id]/route-8fa95c63b95bf9c3.js +1 -0
  240. package/.next/static/chunks/app/api/edges/route-8fa95c63b95bf9c3.js +1 -0
  241. package/.next/static/chunks/app/api/endpoints/[id]/route-8fa95c63b95bf9c3.js +1 -0
  242. package/.next/static/chunks/app/api/entities/route-8fa95c63b95bf9c3.js +1 -0
  243. package/.next/static/chunks/app/api/feedback/[id]/route-8fa95c63b95bf9c3.js +1 -0
  244. package/.next/static/chunks/app/api/feedback/[id]/vote/route-8fa95c63b95bf9c3.js +1 -0
  245. package/.next/static/chunks/app/api/feedback/route-8fa95c63b95bf9c3.js +1 -0
  246. package/.next/static/chunks/app/api/ingest/route-8fa95c63b95bf9c3.js +1 -0
  247. package/.next/static/chunks/app/api/init/route-8fa95c63b95bf9c3.js +1 -0
  248. package/.next/static/chunks/app/api/map/describe/route-8fa95c63b95bf9c3.js +1 -0
  249. package/.next/static/chunks/app/api/map/files/route-8fa95c63b95bf9c3.js +1 -0
  250. package/.next/static/chunks/app/api/map/finish/route-8fa95c63b95bf9c3.js +1 -0
  251. package/.next/static/chunks/app/api/map/route-8fa95c63b95bf9c3.js +1 -0
  252. package/.next/static/chunks/app/api/map/start/route-8fa95c63b95bf9c3.js +1 -0
  253. package/.next/static/chunks/app/api/map/touch-active/route-8fa95c63b95bf9c3.js +1 -0
  254. package/.next/static/chunks/app/api/nodes/[id]/position/route-8fa95c63b95bf9c3.js +1 -0
  255. package/.next/static/chunks/app/api/nodes/[id]/route-8fa95c63b95bf9c3.js +1 -0
  256. package/.next/static/chunks/app/api/nodes/positions/route-8fa95c63b95bf9c3.js +1 -0
  257. package/.next/static/chunks/app/api/nodes/route-8fa95c63b95bf9c3.js +1 -0
  258. package/.next/static/chunks/app/api/nodes/subtasks/route-8fa95c63b95bf9c3.js +1 -0
  259. package/.next/static/chunks/app/api/notes/[id]/route-8fa95c63b95bf9c3.js +1 -0
  260. package/.next/static/chunks/app/api/notes/route-8fa95c63b95bf9c3.js +1 -0
  261. package/.next/static/chunks/app/api/open/route-8fa95c63b95bf9c3.js +1 -0
  262. package/.next/static/chunks/app/api/plan/annotations/route-8fa95c63b95bf9c3.js +1 -0
  263. package/.next/static/chunks/app/api/plan/approve/route-8fa95c63b95bf9c3.js +1 -0
  264. package/.next/static/chunks/app/api/plan/history/route-8fa95c63b95bf9c3.js +1 -0
  265. package/.next/static/chunks/app/api/plan/markdown/route-8fa95c63b95bf9c3.js +1 -0
  266. package/.next/static/chunks/app/api/plan/presence/route-8fa95c63b95bf9c3.js +1 -0
  267. package/.next/static/chunks/app/api/plan/route-8fa95c63b95bf9c3.js +1 -0
  268. package/.next/static/chunks/app/api/plan/verdict/route-8fa95c63b95bf9c3.js +1 -0
  269. package/.next/static/chunks/app/api/preferences/route-8fa95c63b95bf9c3.js +1 -0
  270. package/.next/static/chunks/app/api/reset/route-8fa95c63b95bf9c3.js +1 -0
  271. package/.next/static/chunks/app/api/stream/route-8fa95c63b95bf9c3.js +1 -0
  272. package/.next/static/chunks/app/api/version/route-8fa95c63b95bf9c3.js +1 -0
  273. package/.next/static/chunks/app/api/workspace/activate/route-8fa95c63b95bf9c3.js +1 -0
  274. package/.next/static/chunks/app/api/workspace/route-8fa95c63b95bf9c3.js +1 -0
  275. package/.next/static/chunks/app/map/{page-4af30c4813ea051d.js → page-2cac4ffa4e4220c2.js} +1 -1
  276. package/.next/static/chunks/app/plan/{page-8d555065dd64c94d.js → page-8a9ed9019afac5ca.js} +1 -1
  277. package/.next/static/chunks/app/settings/{page-d1b0fe0c79c8a745.js → page-4d4879990a4f14fc.js} +1 -1
  278. package/.next/static/chunks/next/dist/client/components/builtin/app-error-8fa95c63b95bf9c3.js +1 -0
  279. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-8fa95c63b95bf9c3.js +1 -0
  280. package/.next/static/chunks/next/dist/client/components/builtin/not-found-8fa95c63b95bf9c3.js +1 -0
  281. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8fa95c63b95bf9c3.js +1 -0
  282. package/.next/static/css/30e69a9d2de6ece7.css +1 -0
  283. package/.next/trace +37 -37
  284. package/.next/trace-build +1 -1
  285. package/.next/types/app/api/board-layout/route.ts +351 -0
  286. package/.next/types/app/api/plan/route.ts +351 -0
  287. package/.next/types/routes.d.ts +2 -1
  288. package/.next/types/validator.ts +9 -0
  289. package/dist/bin/beacon.js +3 -3
  290. package/dist/bin/doctor.js +22 -22
  291. package/dist/bin/hook.js +26 -26
  292. package/dist/bin/mcp.js +27 -27
  293. package/dist/bin/plan.js +21 -21
  294. package/dist/bin/remove.js +8 -0
  295. package/dist/bin/uninstall.js +25 -25
  296. package/dist/lib/workspaces.js +1 -1
  297. package/package.json +1 -1
  298. package/.next/server/chunks/1130.js +0 -1
  299. package/.next/server/chunks/1953.js +0 -1
  300. package/.next/server/chunks/2574.js +0 -94
  301. package/.next/server/chunks/873.js +0 -1
  302. package/.next/server/chunks/8815.js +0 -5
  303. package/.next/static/chunks/1a258343-248e24606fc4ca54.js +0 -2
  304. package/.next/static/chunks/2548-a99f7f03a36ea356.js +0 -1
  305. package/.next/static/chunks/app/api/bug-flags/route-0fdd2f2bb2631a50.js +0 -1
  306. package/.next/static/chunks/app/api/code-graph/position/route-0fdd2f2bb2631a50.js +0 -1
  307. package/.next/static/chunks/app/api/code-graph/route-0fdd2f2bb2631a50.js +0 -1
  308. package/.next/static/chunks/app/api/context/feature/route-0fdd2f2bb2631a50.js +0 -1
  309. package/.next/static/chunks/app/api/context/file/route-0fdd2f2bb2631a50.js +0 -1
  310. package/.next/static/chunks/app/api/context/route-0fdd2f2bb2631a50.js +0 -1
  311. package/.next/static/chunks/app/api/db/arrange/route-0fdd2f2bb2631a50.js +0 -1
  312. package/.next/static/chunks/app/api/db/backfill-access/route-0fdd2f2bb2631a50.js +0 -1
  313. package/.next/static/chunks/app/api/db/position/route-0fdd2f2bb2631a50.js +0 -1
  314. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-0fdd2f2bb2631a50.js +0 -1
  315. package/.next/static/chunks/app/api/db/relations/[id]/route-0fdd2f2bb2631a50.js +0 -1
  316. package/.next/static/chunks/app/api/db/tables/[id]/route-0fdd2f2bb2631a50.js +0 -1
  317. package/.next/static/chunks/app/api/draft/approve/route-0fdd2f2bb2631a50.js +0 -1
  318. package/.next/static/chunks/app/api/draft/route-0fdd2f2bb2631a50.js +0 -1
  319. package/.next/static/chunks/app/api/draft/status/route-0fdd2f2bb2631a50.js +0 -1
  320. package/.next/static/chunks/app/api/edges/[id]/route-0fdd2f2bb2631a50.js +0 -1
  321. package/.next/static/chunks/app/api/edges/route-0fdd2f2bb2631a50.js +0 -1
  322. package/.next/static/chunks/app/api/endpoints/[id]/route-0fdd2f2bb2631a50.js +0 -1
  323. package/.next/static/chunks/app/api/entities/route-0fdd2f2bb2631a50.js +0 -1
  324. package/.next/static/chunks/app/api/feedback/[id]/route-0fdd2f2bb2631a50.js +0 -1
  325. package/.next/static/chunks/app/api/feedback/[id]/vote/route-0fdd2f2bb2631a50.js +0 -1
  326. package/.next/static/chunks/app/api/feedback/route-0fdd2f2bb2631a50.js +0 -1
  327. package/.next/static/chunks/app/api/ingest/route-0fdd2f2bb2631a50.js +0 -1
  328. package/.next/static/chunks/app/api/init/route-0fdd2f2bb2631a50.js +0 -1
  329. package/.next/static/chunks/app/api/map/describe/route-0fdd2f2bb2631a50.js +0 -1
  330. package/.next/static/chunks/app/api/map/files/route-0fdd2f2bb2631a50.js +0 -1
  331. package/.next/static/chunks/app/api/map/finish/route-0fdd2f2bb2631a50.js +0 -1
  332. package/.next/static/chunks/app/api/map/route-0fdd2f2bb2631a50.js +0 -1
  333. package/.next/static/chunks/app/api/map/start/route-0fdd2f2bb2631a50.js +0 -1
  334. package/.next/static/chunks/app/api/map/touch-active/route-0fdd2f2bb2631a50.js +0 -1
  335. package/.next/static/chunks/app/api/nodes/[id]/position/route-0fdd2f2bb2631a50.js +0 -1
  336. package/.next/static/chunks/app/api/nodes/[id]/route-0fdd2f2bb2631a50.js +0 -1
  337. package/.next/static/chunks/app/api/nodes/positions/route-0fdd2f2bb2631a50.js +0 -1
  338. package/.next/static/chunks/app/api/nodes/route-0fdd2f2bb2631a50.js +0 -1
  339. package/.next/static/chunks/app/api/nodes/subtasks/route-0fdd2f2bb2631a50.js +0 -1
  340. package/.next/static/chunks/app/api/notes/[id]/route-0fdd2f2bb2631a50.js +0 -1
  341. package/.next/static/chunks/app/api/notes/route-0fdd2f2bb2631a50.js +0 -1
  342. package/.next/static/chunks/app/api/open/route-0fdd2f2bb2631a50.js +0 -1
  343. package/.next/static/chunks/app/api/plan/annotations/route-0fdd2f2bb2631a50.js +0 -1
  344. package/.next/static/chunks/app/api/plan/approve/route-0fdd2f2bb2631a50.js +0 -1
  345. package/.next/static/chunks/app/api/plan/history/route-0fdd2f2bb2631a50.js +0 -1
  346. package/.next/static/chunks/app/api/plan/markdown/route-0fdd2f2bb2631a50.js +0 -1
  347. package/.next/static/chunks/app/api/plan/presence/route-0fdd2f2bb2631a50.js +0 -1
  348. package/.next/static/chunks/app/api/plan/route-0fdd2f2bb2631a50.js +0 -1
  349. package/.next/static/chunks/app/api/plan/verdict/route-0fdd2f2bb2631a50.js +0 -1
  350. package/.next/static/chunks/app/api/preferences/route-0fdd2f2bb2631a50.js +0 -1
  351. package/.next/static/chunks/app/api/reset/route-0fdd2f2bb2631a50.js +0 -1
  352. package/.next/static/chunks/app/api/stream/route-0fdd2f2bb2631a50.js +0 -1
  353. package/.next/static/chunks/app/api/version/route-0fdd2f2bb2631a50.js +0 -1
  354. package/.next/static/chunks/app/api/workspace/activate/route-0fdd2f2bb2631a50.js +0 -1
  355. package/.next/static/chunks/app/api/workspace/route-0fdd2f2bb2631a50.js +0 -1
  356. package/.next/static/chunks/next/dist/client/components/builtin/app-error-0fdd2f2bb2631a50.js +0 -1
  357. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-0fdd2f2bb2631a50.js +0 -1
  358. package/.next/static/chunks/next/dist/client/components/builtin/not-found-0fdd2f2bb2631a50.js +0 -1
  359. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0fdd2f2bb2631a50.js +0 -1
  360. package/.next/static/css/75d4c21b97e04260.css +0 -1
  361. package/.next/static/uz47LXJTPwZFW9gDNmq99/_buildManifest.js +0 -1
  362. /package/.next/static/{uz47LXJTPwZFW9gDNmq99 → MYvJ_ebinIGa9MP5kWFaY}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6773],{4474:(e,t,n)=>{n.d(t,{$:()=>l});var a=n(95155),s=n(6539),r=n(18460),o=n(91337);let i=(0,r.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",...r}){return(0,a.jsx)(s.Button,{"data-slot":"button",className:(0,o.cn)(i({variant:t,size:n,className:e})),...r})}},12410:(e,t,n)=>{n.d(t,{a:()=>o,x:()=>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"],s=["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 r(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=r(e);return null===t?"bg-white/[0.06] text-muted-foreground":a[t]}function i(e){let t=r(e);return null===t?"border-white/10 bg-white/[0.02]":s[t]}},17918:(e,t,n)=>{n.d(t,{Sh:()=>c,V5:()=>d,e0:()=>m});var a=n(95155),s=n(12115),r=n(81750),o=n(6266),i=n(9005),l=n(91337);let d="#ff7a45";function c({data:e,selected:t}){let[n,u]=(0,s.useState)(e.text);return(0,s.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)(r.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…",rows:Math.max(2,Math.min(6,n.split("\n").length)),onChange:e=>u(e.target.value),onBlur:()=>{n!==e.text&&e.onChangeText?.(e.annotationId,n)},onKeyDown:e=>e.stopPropagation(),className:"nodrag nopan mt-1.5 w-full resize-none bg-transparent text-[13px] leading-snug text-foreground/95 outline-none placeholder:text-muted-foreground/60"}):(0,a.jsx)("div",{className:"mt-1.5 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)(r.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:()=>r,qA:()=>s,ru:()=>o});let a={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function s(e){return e&&a[e]||"#8a8a8a"}let r={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}},26518:(e,t,n)=>{n.d(t,{bq:()=>N,eb:()=>C,gC:()=>k,l6:()=>j,yv:()=>w});var a=n(95155);n(12115);var s=n(40595),r=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=s.H;function w({className:e,...t}){return(0,a.jsx)(r.y,{"data-slot":"select-value",className:(0,g.cn)("flex flex-1 text-left",e),...t})}function N({className:e,size:t="default",children:n,...s}){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),...s,children:[n,(0,a.jsx)(i.w,{render:(0,a.jsx)(b.A,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function k({className:e,children:t,side:n="bottom",sideOffset:s=4,align:r="center",alignOffset:o=0,alignItemWithTrigger:i=!0,...m}){return(0,a.jsx)(l.V,{children:(0,a.jsx)(d.l,{side:n,sideOffset:s,align:r,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,{})})}},44267:(e,t,n)=>{n.d(t,{S:()=>a});function a(e,t={}){let n=t.pad??20,s=t.header??26,r=new Map;for(let t of e){let e=r.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++):r.set(t.group,{minX:t.x,minY:t.y,maxX:t.x+t.w,maxY:t.y+t.h,count:1})}return Array.from(r.entries()).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({key:e,label:e,x:t.minX-n,y:t.minY-n-s,w:t.maxX-t.minX+2*n,h:t.maxY-t.minY+2*n+s,count:t.count}))}},54698:(e,t,n)=>{n.d(t,{m:()=>a});function a(e,t){let n=[];return e.forEach((e,a)=>{let s=e.excerpt.trim();if(!s)return;let r={annotationId:e.id,n:a+1};for(let e of t.tables){if(s===e.name)return void n.push({...r,kind:"table",targetId:e.id,column:null});if(s.startsWith(`${e.name}.`)){let t=s.slice(e.name.length+1);if(e.columns.includes(t))return void n.push({...r,kind:"column",targetId:e.id,column:t})}}for(let e of t.endpoints??[])if(s===`${e.method} ${e.path}`)return void n.push({...r,kind:"endpoint",targetId:e.id,column:null});for(let e of t.features??[])if(s===e.title||s===`feature: ${e.title}`)return void n.push({...r,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),s=n(12115),r=n(91337);function o({trigger:e,title:t,align:n="right",children:i}){let[l,d]=(0,s.useState)(!1),c=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!l)return;let e=e=>{c.current?.contains(e.target)||d(!1)},t=e=>{"Escape"===e.key&&d(!1)};return window.addEventListener("mousedown",e),window.addEventListener("keydown",t),()=>{window.removeEventListener("mousedown",e),window.removeEventListener("keydown",t)}},[l]),(0,a.jsxs)("div",{ref:c,className:"relative",children:[e(l,()=>d(e=>!e)),l&&(0,a.jsxs)("div",{className:(0,r.cn)("glass absolute top-full z-30 mt-1.5 w-64 rounded-xl p-3 shadow-xl","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:s="default"}){return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,r.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"}[s]),children:n})}},57144:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(95155),s=n(81750),r=n(6266),o=n(65738);function i(e){let{x:t,y:n}=e.internals.positionAbsolute,a=e.measured?.width??0,s=e.measured?.height??0;return{x:t,y:n,w:a,h:s,cx:t+a/2,cy:n+s/2}}function l(e,t){let n=i(e),a=i(t),s=n.w/2||1,r=n.h/2||1,o=(a.cx-n.cx)/(2*s)-(a.cy-n.cy)/(2*r),l=(a.cx-n.cx)/(2*s)+(a.cy-n.cy)/(2*r),d=1/(Math.abs(o)+Math.abs(l)||1);return{x:s*d*(o+l)+n.cx,y:r*d*(-o+l)+n.cy}}function d(e,t){let n=i(e),a=Math.round(t.x),s=Math.round(t.y);return a<=Math.round(n.x)+1?r.yX.Left:a>=Math.round(n.x+n.w)-1?r.yX.Right:s<=Math.round(n.y)+1?r.yX.Top:r.yX.Bottom}function c(e){let t,n,{deleteElements:i}=(0,s.VH)(),c=(0,s.JY)(e.source),u=(0,s.JY)(e.target),m=c&&u?(t=l(c,u),n=l(u,c),{sx:t.x,sy:t.y,tx:n.x,ty:n.y,sourcePos:d(c,t),targetPos:d(u,n)}):null,[p,x,h]=(0,r.Fp)(m?{sourceX:m.sx,sourceY:m.sy,sourcePosition:m.sourcePos,targetX:m.tx,targetY:m.ty,targetPosition:m.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)(s.tE,{id:e.id,path:p,style:e.style,markerEnd:e.markerEnd,interactionWidth:20}),e.label&&(0,a.jsx)(s.rV,{children:(0,a.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -120%) translate(${x}px, ${h}px)`,fontSize:11,color:"#cfcfcf",background:"#161616",padding:"1px 4px",borderRadius:4,pointerEvents:"none",zIndex:1e3},children:e.label})}),e.selected&&(0,a.jsx)(s.rV,{children:(0,a.jsx)("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, 0) translate(${x}px, ${h+14}px)`,pointerEvents:"all",zIndex:1e3},children:(0,a.jsx)("button",{type:"button",onMouseDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),i({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"})})})})]})}},60874:(e,t,n)=>{n.d(t,{F8:()=>b,NG:()=>x,QH:()=>h,Vq:()=>g,aM:()=>j,cV:()=>N,kz:()=>v,n$:()=>m,pO:()=>o,vB:()=>y});var a=n(95155),s=n(12115),r=n(91337);function o({markdown:e,className:t,variant:n="reading"}){let i=(0,s.useMemo)(()=>m(e),[e]),l="reading"===n;return(0,a.jsx)("div",{className:(0,r.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=[],s=()=>{a.length&&(n.push({kind:"p",text:a.join("\n")}),a=[])},r=null,o=()=>{null!==r&&(n.push({kind:"quote",text:r.join("\n")}),r=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){s(),x=null,(r??=[]).push(f[1]);continue}if(o(),u.test(h)){s(),x=null,p=[];continue}if(/^\s*$/.test(h)){s(),x=null;continue}let g=h.match(/^#### +(.+)$/);if(g){s(),x=null,n.push({kind:"h4",text:g[1]});continue}let b=h.match(/^### +(.+)$/);if(b){s(),x=null,n.push({kind:"h3",text:b[1]});continue}let y=h.match(/^## +(.+)$/);if(y){s(),x=null,n.push({kind:"h2",text:y[1]});continue}let v=h.match(/^# +(.+)$/);if(v){s(),x=null,n.push({kind:"h1",text:v[1]});continue}if(l(h)&&e+1<t.length&&i(t[e+1])){s(),x=null;let a=[d(h)],r=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:r}),e=o-1;continue}let j=h.match(/^(\s*)(\d+)\. +(.+)$/);if(j){s(),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){s(),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 s(),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=[],s=0,r=0,o=e=>(0,a.jsx)("span",{className:"text-foreground/45",children:e},r++);for(p.lastIndex=0;null!==(t=p.exec(e));){if(t.index>s&&n.push(o(e.slice(s,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]},r++)),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]},r++)):void 0!==t[4]&&n.push((0,a.jsx)("span",{className:"text-amber-300",children:t[4]},r++));s=p.lastIndex}return s<e.length&&n.push(o(e.slice(s))),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,...s]=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,r.cn)("whitespace-nowrap px-3 py-1.5 font-semibold text-foreground",i(t)),children:(0,a.jsx)(N,{text:e})},t))})}),(0,a.jsx)("tbody",{children:s.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,r.cn)("px-3 py-1.5 align-top text-foreground/90",i(t)),children:(0,a.jsx)(N,{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,s){let o="reading"===n;switch(e.kind){case"h1":return(0,a.jsx)("h1",{id:s,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:s,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:s,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:s,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,r.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,r.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,r.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)(N,{text:e.text}),t)})}function N({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)(N,{text:e.slice(2,-2)})},t):/^\*[^*]+\*$/.test(e)?(0,a.jsx)("em",{className:"text-muted-foreground",children:(0,a.jsx)(N,{text:e.slice(1,-1)})},t):(0,a.jsx)("span",{children:e},t))})}},62311:(e,t,n)=>{n.d(t,{Z:()=>m});var a=n(95155),s=n(98500),r=n.n(s),o=n(25640),i=n(83599),l=n(94192),d=n(34306),c=n(91337);let u={ROADMAP:o.A,ARCHITECTURE:i.A,FILES:l.A,DATABASE:d.A};function m({tabs:e,active:t}){return(0,a.jsx)("div",{className:"flex items-center gap-0.5",children:e.map(e=>{let n=e.value===t,s=e.Icon??u[e.value];return(0,a.jsxs)(r(),{href:e.href,className:(0,c.cn)("flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[12px] font-medium tracking-tight transition-colors",n?"bg-white/10 text-foreground":"text-muted-foreground/80 hover:bg-white/5 hover:text-foreground"),children:[s?(0,a.jsx)(s,{className:"size-3"}):null,(0,a.jsx)("span",{children:e.label})]},e.value)})})}},65436:(e,t,n)=>{n.d(t,{MapClient:()=>eA});var a=n(95155),s=n(12115),r=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(65377),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)("401868281e2bf14dbd1ae48e10261a561746274979",v.callServer,void 0,v.findSourceMapURL,"acceptSuggestionAction");var w=n(32133),N=n(65408),k=n(8962),C=n(84824),E=n(5736),A=n(86272),S=n(64577),I=n(9005),T=n(65738),z=n(40638),M=n(26518);let D=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],R=["KEEP","REBUILD","REPLACE","DROP"],$=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],P={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"}};var O=n(12410);let F=(0,s.createContext)(null);var L=n(89657),_=n(60874),B=n(91337);let H=[{v:0,l:"P0 \xb7 critical"},{v:1,l:"P1 \xb7 high"},{v:2,l:"P2 \xb7 medium"},{v:3,l:"P3 \xb7 low"}],U="nodrag nopan";function K({nodeId:e}){let t=(0,g.useRouter)(),[n,r]=(0,s.useState)(!1),[o,i]=(0,s.useState)(""),[l,d]=(0,s.useState)(!1),c=()=>{r(!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(),r(e=>!e)},className:(0,B.cn)(U,"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,B.cn)(U,"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 G=["border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]","border-[#ff7a45]/50","border-amber-400/35","border-border"];function X({id:e,data:t,selected:n}){let{categories:r,statuses:o,patch:i,isExpanded:l,toggleExpand:d,openDetailed:c,removeNode:m,editingTitleId:p,onAskAgent:x}=function(){let e=(0,s.useContext)(F);if(!e)throw Error("useNodeEdit must be used inside NodeEditContext");return e}(),h=l(e),[g,v]=(0,s.useState)(!1),[D,R]=(0,s.useState)(!1),[$,W]=(0,s.useState)(t.title),[Z,J]=(0,s.useState)(t.cluster??""),[Y,q]=(0,s.useState)(t.plain??""),V="BUG"===t.kind&&"ROADMAP"===t.view,Q="ARCHITECTURE"===t.view,ee=Q?"border-border":G[t.priority]??"border-border",et=t.openBugs??0,en="CANCELLED"===t.status||"DROP"===t.status,ea="DEPRIORITIZED"===t.status,es="DRAFT"===t.source,er="IN_PROGRESS"===t.status,eo="INIT"===t.source&&"ROADMAP"===t.view,ei=e=>e.stopPropagation(),[el,ed]=(0,s.useTransition)(),ec=(0,L.k)();return"full"!==ec?(0,a.jsxs)("div",{className:(0,B.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",V?"border-rose-400/50 bg-rose-500/[0.05]":ee,er&&"border-sky-400/60",n&&"ring-2 ring-[var(--accent,#f5b942)]",en&&"opacity-60","far"===ec&&"!opacity-0"),children:[(0,a.jsx)(b.x,{}),(0,a.jsx)("div",{className:"break-words text-[15px] font-semibold leading-snug",children:t.title})]}):(0,a.jsxs)("div",{className:(0,B.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",h?"min-w-80":"min-w-64",es?"border-dashed border-sky-400/50 bg-sky-500/[0.06]":eo?"border-dashed border-violet-400/60 bg-violet-500/[0.07] shadow-[0_0_0_1px_rgba(167,139,250,0.18)]":ee,V&&!es&&"border-rose-400/50 bg-rose-500/[0.05]",er&&"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)]",n&&"ring-2 ring-[var(--accent,#f5b942)]",en&&"opacity-60",ea&&"opacity-70 border-dashed"),children:[(0,a.jsx)(b.x,{}),Q&&(0,a.jsx)(K,{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=>{ei(e),t.onComment?.(t.title)},className:(0,B.cn)(U,"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)(w.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"}),(0,a.jsxs)("div",{className:"flex w-0 min-w-full items-start gap-1.5",children:[er&&(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&&!er&&(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:$,autoFocus:p===e,placeholder:"Title…",onFocus:t=>{p===e&&t.currentTarget.select()},onChange:e=>W(e.target.value),onBlur:()=>{let n=$.trim();n&&n!==t.title&&i(e,{title:n},!0)},onKeyDown:e=>{ei(e),"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.currentTarget.blur())},className:(0,B.cn)(U,"field-sizing-content w-full resize-none bg-transparent text-sm font-medium leading-snug outline-none placeholder:text-muted-foreground/60",en&&"line-through")}),(0,a.jsx)("button",{type:"button",onClick:t=>{ei(t),d(e)},title:h?"Collapse":"Expand",className:(0,B.cn)(U,"mt-0.5 shrink-0 text-muted-foreground hover:text-foreground"),children:h?(0,a.jsx)(N.A,{className:"size-3.5"}):(0,a.jsx)(k.A,{className:"size-3.5"})})]}),((t.signals?.untested??0)>0||t.signals?.auth||et>0)&&(0,a.jsxs)("div",{className:"mt-1 flex w-0 min-w-full flex-wrap items-center gap-1",children:[et>0&&(0,a.jsxs)("span",{title:`${et} 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"}),et," ",1===et?"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)(C.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)(E.A,{className:"size-2.5"})," auth"]})]}),t.role&&(0,a.jsx)("div",{className:(0,B.cn)("mt-0.5 w-0 min-w-full text-[10px] leading-snug text-muted-foreground",!h&&"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:V?"Bug — something to fix":t.isChild?"Sub-task of a feature":"Feature — top-level roadmap item",className:(0,B.cn)("flex shrink-0 items-center gap-1 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",V?"bg-rose-500/15 text-rose-300":t.isChild?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300"),children:[V&&(0,a.jsx)(u.A,{className:"size-2.5"}),V?"bug":t.isChild?"sub-task":"feature"]}),eo&&(0,a.jsxs)("span",{className:(0,B.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",el&&"opacity-50"),children:[(0,a.jsx)(A.A,{className:"size-2.5"})," IA",(0,a.jsx)("button",{type:"button",title:"Accept suggestion — turn it into your own feature",disabled:el,onClick:t=>{ei(t),ed(async()=>j(e))},className:(0,B.cn)(U,"-my-0.5 rounded p-0.5 hover:bg-emerald-500/20 hover:text-emerald-300"),children:(0,a.jsx)(S.A,{className:"size-2.5"})}),(0,a.jsx)("button",{type:"button",title:"Dismiss suggestion (deletes the card)",disabled:el,onClick:t=>{ei(t),m(e)},className:(0,B.cn)(U,"-my-0.5 -ml-0.5 rounded p-0.5 hover:bg-red-500/20 hover:text-red-300"),children:(0,a.jsx)(I.A,{className:"size-2.5"})})]}),(0,a.jsx)("input",{list:`cats-${e}`,value:Z,placeholder:"category",onChange:e=>J(e.target.value),onBlur:()=>{let n=Z.trim()||null;n!==(t.cluster??null)&&i(e,{cluster:n},!0)},onKeyDown:e=>{ei(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,B.cn)(U,"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.a)(Z))})]}):(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"}),(0,a.jsx)("input",{list:`cats-${e}`,value:Z,placeholder:"domain",title:"Architecture domain — the lane this component lives in",onChange:e=>J(e.target.value),onBlur:()=>{let n=Z.trim()||null;n!==(t.cluster??null)&&i(e,{cluster:n},!0)},onKeyDown:e=>{ei(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,B.cn)(U,"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.a)(Z))})]}),(0,a.jsx)("datalist",{id:`cats-${e}`,children:r.map(e=>(0,a.jsx)("option",{value:e},e))}),(0,a.jsxs)(M.l6,{value:t.status,onValueChange:t=>i(e,{status:t},!0),children:[(0,a.jsx)(M.bq,{className:(0,B.cn)(U,"ml-auto h-6 shrink-0 gap-1 rounded border px-1.5 py-0 text-[10px] font-medium",P[t.status]?.className??"border-white/10"),children:(0,a.jsx)(M.yv,{children:e=>P[e]?.label??e})}),(0,a.jsx)(M.gC,{alignItemWithTrigger:!1,children:o.map(e=>(0,a.jsx)(M.eb,{value:e,children:P[e]?.label??e},e))})]})]}),h&&(0,a.jsxs)("div",{className:"mt-2 w-0 min-w-full space-y-2 border-t border-white/10 pt-2",children:[D||!Y.trim()?(0,a.jsx)("textarea",{autoFocus:D,value:Y,placeholder:"Description (markdown)…",onChange:e=>q(e.target.value),onBlur:()=>{R(!1);let n=Y.trim()||null;n!==(t.plain??null)&&i(e,{plain:n},!0)},onKeyDown:ei,rows:3,className:(0,B.cn)(U,"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=>{ei(e),R(!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)(_.pO,{markdown:Y,variant:"compact",className:"text-[12px]"})}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)(M.l6,{value:String(t.priority),onValueChange:t=>i(e,{priority:Number(t)},!0),children:[(0,a.jsx)(M.bq,{className:(0,B.cn)(U,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,a.jsx)(M.yv,{children:e=>H.find(t=>String(t.v)===e)?.l??e})}),(0,a.jsx)(M.gC,{alignItemWithTrigger:!1,children:H.map(e=>(0,a.jsx)(M.eb,{value:String(e.v),children:e.l},e.v))})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsxs)("button",{type:"button",onClick:t=>{ei(t),g?m(e):v(!0)},onBlur:()=>v(!1),title:"Delete node",className:(0,B.cn)(U,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] transition-colors",g?"bg-red-500/20 text-red-300":"text-muted-foreground hover:bg-white/5 hover:text-red-300"),children:[(0,a.jsx)(T.A,{className:"size-3"}),g&&"Delete?"]}),x&&(0,a.jsxs)("button",{type:"button",onClick:e=>{ei(e),x(`feature: ${t.title}`)},title:"Ask the agent a question about this feature (answered in its next round)",className:(0,B.cn)(U,"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)(z.A,{className:"size-3"})," Ask"]}),(0,a.jsxs)("button",{type:"button",onClick:t=>{ei(t),c(e)},className:(0,B.cn)(U,"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 W=n(54698),Z=n(57144),J=n(82099),Y=n(4474),q=n(70521),V=n(74350);function Q({className:e,type:t,...n}){return(0,a.jsx)("input",{type:t,"data-slot":"input",className:(0,B.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 ee({className:e,...t}){return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,B.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 et=n(61388);function en({className:e,...t}){return(0,a.jsx)(et.b,{"data-slot":"label",className:(0,B.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 ea=(0,v.createServerReference)("401491e2488e13671be988d14cc4787934e73b0d18",v.callServer,void 0,v.findSourceMapURL,"createNodeAction"),es=(0,v.createServerReference)("60a18908d7abd082f0da39de94dd89b0c04b57087f",v.callServer,void 0,v.findSourceMapURL,"updateNodeAction");function er({open:e,onOpenChange:t,mode:n,view:r,heading:o,nodeId:i,parentId:l,position:d,defaults:c}){let u=(0,g.useRouter)(),[m,p]=(0,s.useState)(c?.title??""),[x,h]=(0,s.useState)(c?.role??""),[f,b]=(0,s.useState)(c?.plain??""),[y,v]=(0,s.useState)(c?.cluster??""),[j,w]=(0,s.useState)(c?.status??("ARCHITECTURE"===r?"REBUILD":"PENDING")),[N,k]=(0,s.useState)(c?.kind==="BUG"?"BUG":"FEATURE"),[C,E]=(0,s.useState)(!1),A="ARCHITECTURE"===r?R:D;async function S(){if(m.trim()){E(!0);try{"create"===n?await ea({view:r,..."ROADMAP"===r?{kind:N}:{},title:m.trim(),role:x.trim()||null,plain:f.trim()||null,cluster:y.trim()||null,parentId:l??null,status:j,x:d?.x??60,y:d?.y??60}):i&&await es(i,{..."ROADMAP"===r?{kind:N}:{},title:m.trim(),role:x.trim()||null,plain:f.trim()||null,cluster:y.trim()||null,status:j}),t(!1),u.refresh()}finally{E(!1)}}}return(0,a.jsx)(V.lG,{open:e,onOpenChange:t,children:(0,a.jsxs)(V.Cf,{children:[(0,a.jsx)(V.c7,{children:(0,a.jsx)(V.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)(en,{htmlFor:"nf-title",children:"Title"}),(0,a.jsx)(Q,{id:"nf-title",value:m,autoFocus:!0,onChange:e=>p(e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(en,{htmlFor:"nf-role",children:"Role (one line)"}),(0,a.jsx)(Q,{id:"nf-role",value:x,onChange:e=>h(e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(en,{htmlFor:"nf-plain",children:"Description"}),(0,a.jsx)(ee,{id:"nf-plain",rows:3,value:f,onChange:e=>b(e.target.value)})]}),"ROADMAP"===r&&(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(en,{children:"Kind"}),(0,a.jsxs)(M.l6,{value:N,onValueChange:e=>null!=e&&k(e),children:[(0,a.jsx)(M.bq,{children:(0,a.jsx)(M.yv,{children:e=>"BUG"===e?"Bug":"Feature"})}),(0,a.jsxs)(M.gC,{children:[(0,a.jsx)(M.eb,{value:"FEATURE",children:"Feature"}),(0,a.jsx)(M.eb,{value:"BUG",children:"Bug"})]})]})]}),(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)(en,{children:"Status"}),(0,a.jsxs)(M.l6,{value:j,onValueChange:e=>null!=e&&w(e),children:[(0,a.jsx)(M.bq,{children:(0,a.jsx)(M.yv,{children:e=>P[e]?.label??e})}),(0,a.jsx)(M.gC,{children:A.map(e=>(0,a.jsx)(M.eb,{value:e,children:P[e]?.label??e},e))})]})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(en,{htmlFor:"nf-cluster",children:"Cluster / lane"}),(0,a.jsx)(Q,{id:"nf-cluster",value:y,onChange:e=>v(e.target.value)})]})]})]}),(0,a.jsxs)(V.Es,{children:[(0,a.jsx)(Y.$,{variant:"outline",onClick:()=>t(!1),children:"Cancel"}),(0,a.jsx)(Y.$,{onClick:S,disabled:C||!m.trim(),children:C?"Saving…":"Save"})]})]})})}let eo=(0,v.createServerReference)("403cf8b4e843c8e191a49593feb352f1b930265683",v.callServer,void 0,v.findSourceMapURL,"deleteNodeAction"),ei=(0,v.createServerReference)("606c70db68ea8a6572fad2972c7fc527810d5dacc2",v.callServer,void 0,v.findSourceMapURL,"setStatusAction"),el=(0,v.createServerReference)("40599c1e74d64b02bd648c326f4acf861498032ee4",v.callServer,void 0,v.findSourceMapURL,"cancelAction"),ed=(0,v.createServerReference)("40262744d289441b0e116058b8be7baa217908fd74",v.callServer,void 0,v.findSourceMapURL,"deprioritizeAction");function ec({view:e,selected:t,allNodes:n,onClose:s,commentsContent:r,commentsCount:o=0,activeTab:i,onTabChange:l,onAddComment:d,topOffset:c}){let u=!!r,m=i??"details";return(0,a.jsxs)(J.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:c??12},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)(eu,{active:"details"===m,onClick:()=>l?.("details"),children:"Details"}),(0,a.jsxs)(eu,{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:s,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)(I.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:s,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,a.jsx)(I.A,{className:"size-4"})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)("div",{className:"p-3",children:"comments"===m&&u?r: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)(w.A,{className:"size-3.5"}),"Comment on this ","ARCHITECTURE"===e?"component":"feature"]}),(0,a.jsx)(em,{node:t,view:e},t.id)]}):(0,a.jsx)(ex,{view:e,nodes:n})})})]})}function eu({active:e,onClick:t,children:n}){return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,B.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 em({node:e,view:t}){var n;let r=(0,g.useRouter)(),[o,i]=(0,s.useTransition)(),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),m="ARCHITECTURE"===t?R:D,p=e=>i(async()=>{await e(),r.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:[(n=e.cluster,n?.trim()||"—"),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)(A.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)(Y.$,{size:"sm",className:"h-7 px-2.5 text-xs",disabled:o,onClick:()=>p(()=>j(e.id)),children:"Accept"}),(0,a.jsx)(Y.$,{size:"sm",variant:"outline",className:"h-7 px-2.5 text-xs text-muted-foreground",disabled:o,onClick:()=>p(()=>eo(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)(M.l6,{value:e.status,onValueChange:t=>null!=t&&p(()=>ei(e.id,t)),children:[(0,a.jsx)(M.bq,{className:"h-8",disabled:o,children:(0,a.jsx)(M.yv,{children:e=>P[e]?.label??e})}),(0,a.jsx)(M.gC,{children:m.map(e=>(0,a.jsx)(M.eb,{value:e,children:P[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)(_.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)(ep,{node:e}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:[(0,a.jsx)(Y.$,{size:"sm",variant:"outline",onClick:()=>d(!0),children:"Edit"}),(0,a.jsx)(Y.$,{size:"sm",variant:"outline",onClick:()=>u(!0),children:"+ Sub-node"}),(0,a.jsx)(Y.$,{size:"sm",variant:"outline",disabled:o,onClick:()=>p(()=>el(e.id)),children:"Cancel"}),(0,a.jsx)(Y.$,{size:"sm",variant:"outline",disabled:o,onClick:()=>p(()=>ed(e.id)),children:"Deprioritize"}),(0,a.jsxs)(q.Lt,{children:[(0,a.jsx)(q.tv,{render:(0,a.jsx)(Y.$,{size:"sm",variant:"outline",className:"text-red-300",children:"Delete"})}),(0,a.jsxs)(q.EO,{children:[(0,a.jsxs)(q.wd,{children:[(0,a.jsxs)(q.r7,{children:["Delete “",e.title,"”?"]}),(0,a.jsx)(q.$v,{children:"This removes the node and all its sub-nodes. It can’t be undone."})]}),(0,a.jsxs)(q.ck,{children:[(0,a.jsx)(q.Zr,{children:"Cancel"}),(0,a.jsx)(q.Rx,{onClick:()=>p(()=>eo(e.id)),children:"Delete"})]})]})]})]}),l&&(0,a.jsx)(er,{open:!0,onOpenChange:d,mode:"edit",view:t,heading:"Edit node",nodeId:e.id,defaults:{title:e.title,role:e.role,plain:e.plain,status:e.status,cluster:e.cluster,kind:e.kind}}),c&&(0,a.jsx)(er,{open:!0,onOpenChange:u,mode:"create",view:t,heading:"New sub-node",parentId:e.id,position:{x:e.x,y:e.y+120},defaults:{cluster:e.cluster}})]})}function ep({node:e}){let t=(0,g.useRouter)(),[n,r]=(0,s.useState)(""),[o,i]=(0,s.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&&r("")})};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,B.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,B.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)(I.A,{className:"size-3"})})]})]}),(0,a.jsx)("p",{className:(0,B.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=>r(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)(Y.$,{size:"sm",variant:"outline",className:"h-7 shrink-0 px-2 text-[11px]",disabled:o||!n.trim(),onClick:c,children:"Flag"})]})]})}function ex({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)(eh,{label:"nodes",value:t.length}),(0,a.jsx)(eh,{label:"critical",value:n})]})]})}function eh({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 ef=n(18874),eg=n(62311),eb=n(56614),ey=n(44267);function ev(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 ej=n(70947);let ew=[{value:"cluster",label:"Theme"},{value:"status",label:"Status"},{value:"priority",label:"Priority"}],eN=new Set(["title","role","plain","cluster","status","priority"]),ek={roadmapNode:X,archNode:X,annotation:y.Sh},eC={deletable:Z.I},eE={CONTAINS:{stroke:"#7c7c8a"},DEPENDS:{stroke:"#f5b942",dash:"6 4"},RELATES:{stroke:"#8a8a95",dash:"4 4"},REPLACES:{stroke:"#ff6b9d"}};function eA({view:e,nodes:t,edges:n,workOnNextId:g=null,embedded:b=!1,commentsContent:v,commentsCount:j=0,controlRef:w,onAskAgent:N,onAddComment:k,annotations:C,onPinClick:E,onUpdateComment:A,onRemoveComment:S,boardAnnotations:I,initialArrangedBy:T=null}){let z=(0,s.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,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]),M=(0,s.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:eE.CONTAINS.stroke}})),...n.filter(t=>e.has(t.fromId)&&e.has(t.toId)).map(e=>{let t=eE[e.kind]??eE.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]),[O,_]=(0,s.useState)(z),[H,U]=(0,s.useState)(M),[K,G]=(0,s.useState)(null),[X,Z]=(0,s.useState)(null),[J,Y]=(0,s.useState)(null),[q,V]=(0,s.useState)(!1),[Q,ee]=(0,s.useState)("details"),et=(0,s.useRef)(!1),en=(0,s.useRef)("details");(0,s.useEffect)(()=>{et.current=q},[q]),(0,s.useEffect)(()=>{en.current=Q},[Q]),(0,s.useEffect)(()=>{if(w)return w.current={open:()=>{if(et.current){V(!1),ee("details");return}V(!0),ee("details")},close:()=>{V(!1),ee("details")},openComments:()=>{V(!0),ee("comments")}},()=>{w&&(w.current=null)}},[w]);let[ea,es]=(0,s.useState)(new Set),[er,eo]=(0,s.useState)(null),[ei,el]=(0,s.useState)(!1),ed=(0,s.useRef)(null);(0,s.useEffect)(()=>_(z),[z]),(0,s.useEffect)(()=>U(M),[M]);let eu=(0,s.useCallback)((e,t,n)=>{_(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])=>eN.has(e))))})},[]),em=(0,s.useMemo)(()=>Array.from(new Set(O.map(e=>e.data.cluster).filter(e=>!!e))).sort(),[O]),ep=(0,s.useCallback)(e=>es(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),[]),ex=(0,s.useCallback)(e=>{G(e),V(!0),ee("details")},[]),eh=(0,s.useCallback)(e=>{_(t=>t.filter(t=>t.id!==e)),G(t=>t===e?null:t),fetch(`/api/nodes/${e}`,{method:"DELETE"})},[]),eS=(0,s.useCallback)(async(t,n,a="FEATURE")=>{let s=(0,r.sX)(),o="ARCHITECTURE"===e?"REBUILD":"PENDING",i="BUG"===a?"New bug":"New node";_(r=>[...r,{id:s,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}}]),es(e=>new Set(e).add(s)),eo(s),G(s);try{if(!(await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:s,view:e,kind:a,title:i,status:o,x:t,y:n})})).ok)throw Error("create failed")}catch{_(e=>e.filter(e=>e.id!==s)),es(e=>{let t=new Set(e);return t.delete(s),t}),eo(e=>e===s?null:e),G(e=>e===s?null:e)}},[e]),eI=(0,s.useCallback)(()=>{let e=O.filter(e=>"annotation"!==e.type);return function(e,t,n={}){let a=n.colW??320,s=n.rowH??150,r=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 ev(t,{x:0,y:e+s+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(r,Math.max(Math.max(...d)+1,Math.ceil(Math.sqrt(e.length+1)))),u=Array(c).fill(l-s);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 ev(t,{x:i+m*a,y:u[m]+s})}(e.filter(e=>!e.data.parentId&&!(e.data.cluster??"").trim()).map(e=>e.position),e.map(e=>e.position))},[O]),eT=(0,s.useCallback)(()=>{let e=eI();eS(e.x,e.y)},[eS,eI]),ez=(0,s.useCallback)(()=>{let e=eI();eS(e.x,e.y,"BUG")},[eS,eI]),eM=(0,s.useMemo)(()=>({view:e,categories:em,statuses:"ARCHITECTURE"===e?R:D,patch:eu,isExpanded:e=>ea.has(e),toggleExpand:ep,openDetailed:ex,removeNode:eh,editingTitleId:er,onAskAgent:N}),[e,em,eu,ea,ep,ex,eh,er,N]),[eD,eR]=(0,s.useState)(T),[e$,eP]=(0,s.useState)(""),[eO,eF]=(0,s.useState)("full"),[eL,e_]=(0,s.useState)(new Set),[eB,eH]=(0,s.useState)(new Set),[eU,eK]=(0,s.useState)(new Set),eG=(0,s.useMemo)(()=>Array.from(new Set(t.map(e=>e.status))),[t]),eX=(0,s.useMemo)(()=>Array.from(new Set(t.map(e=>e.cluster).filter(e=>!!e))).sort(),[t]),eW=(0,s.useMemo)(()=>Array.from(new Set(t.map(e=>e.priority))).sort((e,t)=>e-t),[t]),eZ=(0,s.useCallback)(e=>(!eL.size||!!eL.has(e.status))&&(!eB.size||!!e.cluster&&!!eB.has(e.cluster))&&(!eU.size||!!eU.has(e.priority)),[eL,eB,eU]),eJ=eL.size+eB.size+eU.size,eY=(0,s.useCallback)(()=>{e_(new Set),eH(new Set),eK(new Set)},[]),eq=(0,s.useMemo)(()=>O.map(e=>({...e,hidden:!eZ(e.data)})),[O,eZ]),eV=(0,s.useMemo)(()=>new Set(eq.filter(e=>e.hidden).map(e=>e.id)),[eq]),eQ=(0,s.useMemo)(()=>H.map(e=>({...e,hidden:eV.has(e.source)||eV.has(e.target)})),[H,eV]),e0=(0,s.useMemo)(()=>{if(X){let e=eQ.find(e=>e.id===X);return e?new Set([e.source,e.target]):null}return K?(0,ef.F1)(K,eQ.filter(e=>!e.hidden)):null},[K,X,eQ]),e1=(0,s.useMemo)(()=>eq.map(e=>{let t=g&&e.id===g?{...e,data:{...e.data,isNext:!0}}:e;return(ea.has(e.id)&&(t={...t,zIndex:25}),!e0||t.hidden)?t:{...t,style:{...t.style,opacity:e0.has(e.id)?1:.45,transition:"opacity 120ms"}}}),[eq,e0,g,ea]),e5=(0,s.useMemo)(()=>{if("ROADMAP"===e&&!eD||"ROADMAP"!==e&&"ARCHITECTURE"!==e)return[];let t=new Map(e1.map(e=>[e.id,e])),n=[];for(let s of e1){var a;if(s.hidden||"annotation"===s.type)continue;let r=(s.data.parentId?t.get(s.data.parentId):void 0)??s,o="ROADMAP"===e&&eD?(a=r.data,"status"===eD?P[a.status]?.label??a.status:"priority"===eD?`P${a.priority}`:a.cluster?.trim()||"—"):r.data.cluster?.trim()||"—";n.push({id:s.id,group:o,x:s.position.x,y:s.position.y,w:s.measured?.width??(s.data.isChild?224:256),h:s.measured?.height??96})}return(0,ey.S)(n)},[e1,eD,e]),e2="ARCHITECTURE"===e||"cluster"===eD?"category":"neutral",e3=(0,s.useMemo)(()=>{let e=K??J;return X||e?eQ.map(t=>t.hidden?t:(X?t.id===X: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}}):eQ.map(e=>e.hidden?e:{...e,label:void 0,style:{...e.style,opacity:.18}})},[eQ,K,X,J]),e4=void 0!==I,[e6,e8]=(0,s.useState)(I??[]);(0,s.useEffect)(()=>{I&&e8(I)},[I]);let e9=(0,s.useMemo)(()=>{if(e4){let e=new Set(t.map(e=>e.id));return e6.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,W.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}))},[e4,e6,C,t]),e7=(0,s.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:null}),e.set(t.targetId,n)}return e},[e9]),te=(0,s.useCallback)(async e=>{let n=(0,W.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();e8(t=>[...t,e])}},[t]),tt=(0,s.useCallback)((e,t)=>{e8(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,s.useCallback)(e=>{e8(t=>t.filter(t=>t.id!==e)),fetch(`/api/board-annotations/${e}`,{method:"DELETE"})},[]),ta=e4?te:k,[ts,tr]=(0,s.useState)(()=>new Map),to=(0,s.useMemo)(()=>{let e=new Map(e1.map(e=>[e.id,e])),t=new Map,n=e9.flatMap(n=>{let a=e.get(n.targetId);if(!a||a.hidden)return[];let s=t.get(n.targetId)??0;t.set(n.targetId,s+1);let r=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+r+56+112*s},measured:ts.get(`anno-${n.id}`),draggable:e4,data:{n:n.n,text:n.text,annotationId:n.id,onClick:e4||A?void 0:E,editable:e4||!!A,onChangeText:e4?(e,t)=>tt(e,{body:t}):A,onDelete:e4?tn:S}}]});return[...e1.map(e=>{let t=e7.get(e.id);return t||ta?{...e,data:{...e.data,pins:t,onPinClick:e4?void 0:E,onComment:ta}}:e}),...n]},[e1,e9,e7,e4,E,A,S,ta,tt,tn,ts]),ti=(0,s.useMemo)(()=>e9.map(e=>({id:`annoe-${e.id}`,source:e.targetId,sourceHandle:`pin-${e.id}`,target:`anno-${e.id}`,targetHandle:"in",type:"default",selectable:!1,zIndex:30,style:{stroke:y.V5,strokeWidth:1.5,opacity:.9}})),[e9]),tl=(0,s.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;e8(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&&tr(t=>{let a=t.get(n.id);if(a&&a.width===e.width&&a.height===e.height)return t;let s=new Map(t);return s.set(n.id,e),s})}else t.push(n);t.length&&_(e=>(0,i._0)(t,e))},[]),td=(0,s.useCallback)(e=>U(t=>(0,i.zW)(e,t)),[]),tc=(0,s.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=eE.DEPENDS;U(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}}])},[]),tu=(0,s.useCallback)(async(t,n,a)=>{let s=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(!s.ok)return;let r=await s.json();_(s=>[...s,{id:r.id,type:"ROADMAP"===e?"roadmapNode":"archNode",position:{x:n,y:a},data:{title:r.title,role:r.role,plain:r.plain,status:r.status,priority:r.priority,cluster:r.cluster,view:r.view,source:r.source,sourceRef:r.sourceRef,kind:r.kind,isCriterion:!1,isChild:!0,parentId:t.id,openBugs:0}}]),U(e=>[...e,{id:`c-${r.id}`,source:t.id,target:r.id,type:"smoothstep",style:{stroke:eE.CONTAINS.stroke}}]),es(e=>new Set(e).add(r.id)),eo(r.id),G(r.id)},[e]),tm=(0,s.useCallback)(async(e,t)=>{if(t.isValid||!t.fromNode||!ed.current)return;let n=e.changedTouches,a=n?.[0]?.clientX??e.clientX,s=n?.[0]?.clientY??e.clientY,{x:r,y:o}=ed.current.screenToFlowPosition({x:a,y:s});await tu(t.fromNode,r,o)},[tu]);(0,s.useEffect)(()=>{if(!ei)return;let e=e=>{"Escape"===e.key&&el(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ei]);let tp=(0,s.useMemo)(()=>t.find(e=>e.id===K)??null,[t,K]),tx=(0,s.useCallback)((e,t,n)=>{fetch(`/api/nodes/${e}/position`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({x:t,y:n})})},[]),th=(0,s.useCallback)(e=>{G(e),Z(null);let t=ed.current?.getNode(e);if(!t||!ed.current)return;let n=t.measured?.width??128,a=t.measured?.height??48;ed.current.setCenter(t.position.x+n/2,t.position.y+a/2,{zoom:1.2,duration:600})},[]),tf=(0,s.useCallback)(e=>{let t=function(e,t,n={}){let a=n.colW??320,s=n.rowH??150,r=n.childIndent??24,o=n.laneGap??56,i=n.bandGap??110,l=n.maxCols??10,d=n.maxBandW??8*a,c=new Set(e.map(e=>e.id)),u=e=>!e.parentId||!c.has(e.parentId),m=e.filter(u),p=new Map;for(let t of e){if(u(t))continue;let e=p.get(t.parentId);e?e.push(t):p.set(t.parentId,[t])}let x="status"===t?e=>e.status:"priority"===t?e=>String(e.priority):e=>(e.cluster??"").trim()||"—",h=new Map;for(let e of m){let t=x(e),n=h.get(t);n?n.push(e):h.set(t,[e])}let f=(function(e,t,n){if("status"===e)return[...$];if("priority"===e)return["0","1","2","3"];let a=Array.from(new Set(t.map(n))),s=a.filter(e=>"—"!==e).sort();return a.includes("—")?[...s,"—"]:s})(t,m,x).filter(e=>h.has(e)),g=new Map,b=0,y=0,v=0;for(let e of f){let t=h.get(e),n=t.reduce((e,t)=>e+1+(p.get(t.id)?.length??0),0),c=Math.max(1,Math.min(l,t.length,Math.round(Math.sqrt(.85*n))||1)),u=c*a;b>0&&b+u>d&&(b=0,y+=v+i,v=0);let m=Array(c).fill(0);for(let e of t){let t=0;for(let e=1;e<c;e++)m[e]<m[t]&&(t=e);let n=b+t*a,o=y+m[t]*s;g.set(e.id,{x:n,y:o});let i=p.get(e.id)??[];i.forEach((e,t)=>{g.set(e.id,{x:n+r,y:o+(t+1)*s})}),m[t]+=1+i.length}v=Math.max(v,m.reduce((e,t)=>Math.max(e,t),0)*s),b+=u+o}return g}(O.map(e=>({id:e.id,parentId:e.data.parentId??null,cluster:e.data.cluster,status:e.data.status,priority:e.data.priority})),e);_(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})}),eR(e),fetch("/api/board-layout",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({board:"roadmap",arrangedBy:e})}),requestAnimationFrame(()=>ed.current?.fitView({duration:600,padding:.2}))},[O]),tg=(0,s.useCallback)(()=>{let e=function(e,t){if(0===e.length)return new Map;let n=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 s=new Map,r=[],o=e=>{for(let t of(s.set(e,"visiting"),a.get(e)??[])){let e=s.get(t.toId);"visiting"!==e&&(r.push(t),"done"!==e&&o(t.toId))}s.set(e,"done")};for(let e of n)s.has(e)||o(e);return r}(e,t),a=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,s=e=>{let t=a.get(e);if(void 0!==t)return t;a.set(e,0);let r=n.get(e)??[],o=r.length?1+Math.max(...r.map(s)):0;return a.set(e,o),o};for(let t of e)s(t.id);return a}(e,n),s=new Map(e.map(e=>[e.id,[]]));for(let e of n)s.get(e.fromId)?.push(e.toId);let r=Array.from(new Set(e.map(e=>e.group))),o=r.filter(e=>"—"!==e).sort(),i=r.includes("—")?[...o,"—"]:o,l=[];for(let t of i){let n=e.filter(e=>e.group===t),r=Math.min(...n.map(e=>a.get(e.id)??0)),o=Math.max(...n.map(e=>a.get(e.id)??0)),i=new Map,d=new Map,c=0,u=1;for(let e=r;e<=o;e++){let t=n.filter(t=>a.get(t.id)===e);if(!t.length)continue;let r=e=>{let t=(s.get(e.id)??[]).map(e=>d.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)=>r(e)-r(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;d.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)}l.push({d:t,w:c,h:150*u,local:i})}let d=new Map,c=0,u=0,m=0;for(let e of l){for(let[t,n]of(c>0&&c+e.w>2880&&(u+=m+170,c=0,m=0),e.local))d.set(t,{x:c+n.x,y:u+n.y});m=Math.max(m,e.h),c+=e.w+140}return d}(O.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})));_(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(()=>ed.current?.fitView({duration:600,padding:.2}))},[O,n]),tb=(0,s.useMemo)(()=>{let e=e$.trim().toLowerCase();return e?O.filter(t=>eZ(t.data)&&t.data.title.toLowerCase().includes(e)).slice(0,8):[]},[O,e$,eZ]);function ty(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:eM,children:(0,a.jsxs)("div",{className:(0,B.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")||!ed.current)return;e.preventDefault();let{x:t,y:n}=ed.current.screenToFlowPosition({x:e.clientX,y:e.clientY});eS(t,n,"BUG"===e.dataTransfer.getData("application/beacon-node-kind")?"BUG":"FEATURE")},children:[(0,a.jsxs)(i.Gc,{nodes:to,edges:"far"===eO?[...e3,...ti].map(e=>({...e,hidden:!0})):[...e3,...ti],nodeTypes:ek,edgeTypes:eC,connectionMode:o.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:e=>{ed.current=e},onNodesChange:tl,onEdgesChange:td,onConnect:tc,onConnectEnd:tm,onNodeMouseEnter:(e,t)=>Y(t.id),onNodeMouseLeave:()=>Y(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"}),G(e=>e===t.id?null:e))},onNodeClick:(e,t)=>{if("annotation"===t.type)return void E?.(t.data.annotationId);if(ei){if(el(!1),t.data.isChild)return;tu(t,t.position.x+300,t.position.y+60);return}if(G(t.id),Z(null),ee("details"),b){let t=e.target;t?.closest("input, textarea, select, button, [role='combobox']")||V(!0)}},onEdgeClick:(e,t)=>{Z(t.id),G(null),ee("details")},onPaneClick:()=>{ei?el(!1):(G(null),Z(null))},onNodeDragStop:(e,t)=>{if(t.id.startsWith("anno-")){e4&&tt(t.id.slice(5),{x:t.position.x,y:t.position.y});return}tx(t.id,t.position.x,t.position.y)},deleteKeyCode:["Backspace","Delete"],colorMode:"dark",fitView:!0,minZoom:.2,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,a.jsx)(ej.Z,{regions:e5,tone:e2,lod:eO}),(0,a.jsx)(L.J,{onLod:eF}),(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)(eb.er,{title:"Legend",trigger:(e,t)=>(0,a.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,B.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:[(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",{"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.jsx)("span",{children:"depends on \xb7 drag between two cards"})]})]})})}),!b&&(0,a.jsx)(i.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!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:[ei&&(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:tg,title:"Arrange components into a left→right dependency flow, grouped by domain",className:"flex h-6 items-center gap-1 rounded-full px-2 text-[10px] 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"}),ew.map(e=>(0,a.jsx)("button",{onClick:()=>tf(e.value),title:`Arrange features into lanes by ${e.label.toLowerCase()}`,className:(0,B.cn)("h-7 rounded-full px-2.5 text-[11px] font-medium transition-colors",eD===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:eT,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:ez,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:()=>el(e=>!e),title:"ARCHITECTURE"===e?"Add sub-component (click a component next)":"Add sub-task (click a feature next)",className:(0,B.cn)("flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium transition-colors",ei?"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&&(0,a.jsx)(i.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,a.jsx)(eg.Z,{active:e,tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"FILES",label:"Files",href:"/map?view=FILES"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"}]})}),(0,a.jsxs)(i.Zk,{position:"top-right",className:(0,B.cn)("flex items-center gap-1 transition-[margin] duration-200",q&&"!mr-[332px]",b&&"hidden"),children:[(0,a.jsxs)(eb.er,{title:"Search",trigger:(e,t)=>(0,a.jsx)("button",{type:"button",onClick:t,title:"Search features",className:(0,B.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)(p.A,{className:"size-4"})}),children:[(0,a.jsx)("input",{autoFocus:!0,value:e$,onChange:e=>eP(e.target.value),placeholder:"Find a feature…",className:"w-full rounded-md border border-white/10 bg-white/[0.04] px-2 py-1 text-[12px] outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]"}),(0,a.jsxs)("div",{className:"mt-2 max-h-64 space-y-0.5 overflow-y-auto",children:[e$.trim()&&0===tb.length&&(0,a.jsx)("div",{className:"px-1 py-1 text-[11px] text-muted-foreground",children:"No matches"}),tb.map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>th(e.id),className:"block w-full truncate rounded-md px-2 py-1 text-left text-[12px] text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:e.data.title},e.id))]})]}),"ROADMAP"===e&&g&&(0,a.jsx)("button",{type:"button",onClick:()=>th(g),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)(eb.er,{title:"Filters",trigger:(e,t)=>(0,a.jsxs)("button",{type:"button",onClick:t,title:"Filters",className:(0,B.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",e||eJ>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(h.A,{className:"size-4"}),eJ>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:eJ})]}),children:[eG.length>0&&(0,a.jsx)(eb.r1,{title:"Status",children:eG.map(e=>(0,a.jsx)(eb.vu,{on:eL.has(e),onClick:()=>ty(e,e_),children:P[e]?.label??e},e))}),eX.length>0&&(0,a.jsx)(eb.r1,{title:"Cluster",children:eX.map(e=>(0,a.jsx)(eb.vu,{on:eB.has(e),onClick:()=>ty(e,eH),children:e},e))}),eW.length>0&&(0,a.jsx)(eb.r1,{title:"Priority",children:eW.map(e=>(0,a.jsxs)(eb.vu,{on:eU.has(e),onClick:()=>ty(e,eK),children:["P",e]},e))}),eJ>0&&(0,a.jsx)("button",{type:"button",onClick:eY,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"})]}),!q&&(0,a.jsx)("button",{onClick:()=>{V(!0),ee("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"})})]})]}),q&&(0,a.jsx)(ec,{view:e,selected:tp,allNodes:t,onClose:()=>{V(!1),ee("details")},commentsContent:v,commentsCount:j,activeTab:Q,onTabChange:ee,onAddComment:ta,topOffset:b?64:void 0})]})})}},70521:(e,t,n)=>{n.d(t,{$v:()=>w,EO:()=>b,Lt:()=>x,Rx:()=>N,Zr:()=>k,ck:()=>v,r7:()=>j,tv:()=>h,wd:()=>y});var a=n(95155);n(12115);var s=n(25381),r=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)(s.V,{"data-slot":"alert-dialog",...e})}function h({...e}){return(0,a.jsx)(r.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 N({className:e,variant:t,size:n,...s}){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}),...s})}function k({className:e,variant:t="outline",size:n="default",...s}){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}),...s})}},70947:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(95155),s=n(81750),r=n(12410),o=n(91337);function i({regions:e,tone:t="neutral",lod:n="full"}){let l=(0,s.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)(s.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,r.x)(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 s=n(17112),r=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)(s.D,{"data-slot":"dialog",...e})}function h({...e}){return(0,a.jsx)(r.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,...s}){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),...s,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,...s}){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),...s,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:()=>r});var a=n(95155);n(12115);var s=n(91337);function r({className:e,children:t,...n}){return(0,a.jsxs)("div",{className:(0,s.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]})}},89657:(e,t,n)=>{n.d(t,{J:()=>o,k:()=>r});var a=n(12115),s=n(81750);function r(){let[e,t]=(0,a.useState)("full"),n=(0,s.Pj)(t=>(function(e,t="full"){return e<.3||"far"===t&&e<.34?"far":e<.55||"mid"===t&&e<.6?"mid":"full"})(t.transform[2],e));return n!==e&&t(n),n}function o({onLod:e}){let t=r(),n=(0,a.useRef)(null);return(0,a.useEffect)(()=>{n.current!==t&&(n.current=t,e(t))},[t,e]),null}},91337:(e,t,n)=>{n.d(t,{cn:()=>r});var a=n(29722),s=n(622);function r(...e){return(0,s.QP)((0,a.$)(e))}},91588:(e,t,n)=>{n.d(t,{DbMapClient:()=>el});var a=n(95155),s=n(12115),r=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,s.createContext)(null);function g(){let e=(0,s.useContext)(f);if(!e)throw Error("useDbEdit must be used inside DbEditContext");return e}var b=n(89657),y=n(95635),v=n(17918);let j={danger:"bg-red-500/15 text-red-300",warn:"bg-amber-500/15 text-amber-300"};function w({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",j[e.tone]),children:e.label},e.label))}):null}let N=/pass(word)?|token|secret|api[_-]?key|credential|priv(ate)?[_-]?key|hash|salt/i,k=/auth|login|logout|session|token|password|oauth|sso|credential/i,C="nodrag nopan",E=y.x;function A({onClick:e,title:t}){return(0,a.jsx)("button",{type:"button",title:t,onClick:t=>{t.stopPropagation(),e()},className:(0,x.cn)(C,"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 S({c:e,fkTargets:t}){let n=t?.[e.name];return(0,a.jsx)("span",{className:"ml-auto shrink-0 truncate font-mono text-[11px] text-muted-foreground/80",children:n?(0,a.jsxs)(a.Fragment,{children:["→\xa0",n]}):e.type})}let I="nodrag nopan",T=["GET","POST","PUT","PATCH","DELETE"];var z=n(54698),M=n(82099),D=n(4474);let R=[{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(" ")}),s=e.relations.filter(e=>e.fromTable===n.name).map(e=>` FOREIGN KEY (${e.fromColumn}) REFERENCES ${e.toTable}(${e.toColumn})`);t.push([...a,...s].join(",\n")),t.push(");","")}return t.join("\n").trim()}}];function $({draftGraph:e}){let[t,n]=(0,s.useState)(null);if(0===e.tables.length)return null;async function r(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:"}),R.map(e=>(0,a.jsx)(D.$,{size:"sm",variant:"outline",className:"h-6 px-2 text-[11px]",onClick:()=>r(e),children:t===e.id?"✓":e.label},e.id))]})]})}function P({selected:e,tables:t,relations:n,endpoints:s,draftGraph:r,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=s.find(t=>t.id===e.id))?`${f.method} ${f.path}`:null;if(e?.kind==="table"){let r=t.find(t=>t.id===e.id);h=r?(0,a.jsx)(F,{table:r,relations:n,endpoints:s,nameById:g}):null}else if(e?.kind==="endpoint"){let t=s.find(t=>t.id===e.id);h=t?(0,a.jsx)(L,{ep:t,nameById:g}):null}else h=(0,a.jsx)(_,{tables:t,relations:n,endpoints:s});return(0,a.jsxs)(M.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:x??12},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)(O,{active:"details"===y,onClick:()=>u?.("details"),children:"Details"}),(0,a.jsxs)(O,{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:"flex-1 overflow-y-auto",children:"comments"===y&&b?(0,a.jsx)("div",{className:"p-3",children:i}):(0,a.jsxs)(a.Fragment,{children:[r.tables.length>0&&(0,a.jsx)("div",{className:"border-b border-white/10 p-3.5",children:(0,a.jsx)($,{draftGraph:r})}),(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 O({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 F({table:e,relations:t,endpoints:n,nameById:s}){let r=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)(B,{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))})}),r.length>0&&(0,a.jsx)(B,{title:"References (FK out)",children:(0,a.jsx)("ul",{className:"space-y-1 text-xs",children:r.map(e=>(0,a.jsxs)("li",{className:"font-mono text-muted-foreground",children:[e.fromColumn," → ",s.get(e.toTableId),".",e.toColumn]},e.id))})}),o.length>0&&(0,a.jsx)(B,{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:[s.get(e.fromTableId),".",e.fromColumn]},e.id))})}),i.length>0&&(0,a.jsx)(B,{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 L({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)(B,{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 _({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)(H,{label:"tables",value:e.length}),(0,a.jsx)(H,{label:"FKs",value:t.length}),(0,a.jsx)(H,{label:"endpoints",value:n.length})]}),(0,a.jsx)(B,{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 B({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 H({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 U=n(56614),K=n(62311);let G=new Set(["GET","HEAD","OPTIONS"]);var X=n(44267);let W="Unattached";var Z=n(70947);let J=e=>e.trim().toLowerCase();var Y=n(85618),q=n(80846),V=n(17356),Q=n(45486),ee=n(15330),et=n(60976),en=n(64577),ea=n(57144);let es={dbTable:function({id:e,data:t,selected:n}){var r;let o,i,l="DRAFT"===t.source,f="added"===t.diffStatus?"#7bd389":"modified"===t.diffStatus?"#ffb86b":"#4ea1ff",j="added"===t.diffStatus?"new":"modified"===t.diffStatus?"changed":"draft",k=t.diffChanges?.length?t.diffChanges.join("\n"):"draft",I=l?f:(0,h.qA)(t.domain),T=(r={domain:t.domain,columns:t.columns},o=[],(i=r.columns.filter(e=>N.test(e.name)).map(e=>e.name)).length&&o.push({label:"secrets",tone:"danger",title:`stores credentials: ${i.join(", ")}`}),r.domain&&/auth/i.test(r.domain)&&o.push({label:"auth",tone:"warn",title:"auth-domain table"}),o),z=g(),[M,D]=(0,s.useState)(t.name),[R,$]=(0,s.useState)(t.columns),[P,O]=(0,s.useState)(!1);(0,s.useEffect)(()=>{D(t.name),$(t.columns)},[t.rev]);let F=e=>e.stopPropagation(),L=t=>{$(t),z.patchTable(e,{columns:t})},_=(t.pins??[]).filter(e=>null===e.column),B=e=>(t.pins??[]).filter(t=>t.column===e),H=(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)]"),U=(0,b.k)();return"full"!==U?(0,a.jsxs)("div",{className:(0,x.cn)(H,"w-[260px] border-white/10 px-3 py-2.5","far"===U&&"!opacity-0"),children:[(0,a.jsx)(y.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:I}}),(0,a.jsx)("span",{className:"truncate font-mono text-[15px] font-semibold",children:t.name})]})]}):l?(0,a.jsxs)("div",{className:(0,x.cn)(H,"group/card w-[252px]"),style:{borderColor:`${f}59`},children:[(0,a.jsx)(E,{}),(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:M,onChange:e=>D(e.target.value),onBlur:()=>{let n=M.trim();n&&n!==t.name&&z.patchTable(e,{name:n})},onKeyDown:e=>{F(e),"Enter"===e.key&&e.currentTarget.blur()},placeholder:"table",className:(0,x.cn)(C,"min-w-0 flex-1 bg-transparent font-mono text-[13px] font-semibold tracking-tight outline-none")}),(0,a.jsx)(w,{badges:T}),(0,a.jsx)("span",{title:k,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:j}),(0,a.jsx)("button",{type:"button",onClick:t=>{F(t),P?z.deleteTable(e):O(!0)},onBlur:()=>O(!1),title:"Delete table",className:(0,x.cn)(C,"shrink-0 transition-all",P?"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"})}),_.length>0?(0,a.jsx)(v.e0,{pins:_,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(A,{title:`Comment on ${t.name}`,onClick:()=>t.onComment?.(t.name)})]}),(0,a.jsxs)("div",{className:"divide-y divide-white/[0.05]",children:[R.map((e,n)=>{let s=B(e.name);return(0,a.jsxs)("div",{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=>{F(e),L(R.map((e,t)=>t===n?{...e,isPk:!e.isPk}:e))},title:"Primary key",className:(0,x.cn)(C,"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=>{F(e),L(R.map((e,t)=>t===n?{...e,isFk:!e.isFk}:e))},title:"Foreign key",className:(0,x.cn)(C,"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=>$(t=>t.map((t,a)=>a===n?{...t,name:e.target.value}:t)),onBlur:()=>L(R),onKeyDown:F,placeholder:"column",className:(0,x.cn)(C,"min-w-0 flex-1 bg-transparent font-mono outline-none")}),t.fkTargets?.[e.name]?(0,a.jsxs)("span",{className:"w-16 shrink-0 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=>$(t=>t.map((t,a)=>a===n?{...t,type:e.target.value}:t)),onBlur:()=>L(R),onKeyDown:F,placeholder:"type",className:(0,x.cn)(C,"w-16 shrink-0 bg-transparent text-right font-mono text-[11px] text-muted-foreground/80 outline-none")}),(0,a.jsx)("button",{type:"button",onClick:e=>{F(e),L(R.filter((e,t)=>t!==n))},title:"Remove column",className:(0,x.cn)(C,"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"})}),s.length>0?(0,a.jsx)(v.e0,{pins:s,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(A,{title:`Comment on ${t.name}.${e.name}`,onClick:()=>t.onComment?.(`${t.name}.${e.name}`)})]},n)}),(0,a.jsxs)("button",{type:"button",onClick:e=>{F(e),L([...R,{name:"",type:"text",isPk:!1,isFk:!1,nullable:!0,note:null}])},className:(0,x.cn)(C,"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:(0,x.cn)(H,"w-[240px]"),style:{borderColor:`${I}3d`},children:[(0,a.jsx)(E,{}),(0,a.jsxs)("div",{className:"group/row relative flex items-center justify-between rounded-t-[11px] px-3 py-2",style:{background:`${I}14`},children:[(0,a.jsxs)("span",{className:"flex 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 rounded-full bg-emerald-400"}),t.name]}),(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(w,{badges:T}),t.domain&&(0,a.jsx)("span",{className:"text-[9px] uppercase tracking-[0.14em]",style:{color:I},children:t.domain})]}),_.length>0?(0,a.jsx)(v.e0,{pins:_,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(A,{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=B(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:"truncate font-mono",children:e.name}),(0,a.jsx)(S,{c:e,fkTargets:t.fkTargets}),n.length>0?(0,a.jsx)(v.e0,{pins:n,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)(A,{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 r;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=(r={method:t.method,domain:t.domain,path:t.path},o=[],/^delete$/i.test(r.method.trim())&&o.push({label:"DELETE",tone:"danger",title:"destructive: deletes data"}),(r.domain&&/auth/i.test(r.domain)||k.test(r.path))&&o.push({label:"auth",tone:"warn",title:"auth-related endpoint"}),o),j=g(),[N,C]=(0,s.useState)(t.path),[E,A]=(0,s.useState)(!1);(0,s.useEffect)(()=>{C(t.path)},[t.rev]);let S=e=>e.stopPropagation(),z=(0,b.k)();return"full"!==z?(0,a.jsxs)("div",{className:(0,x.cn)("relative flex w-[240px] 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)(y.x,{}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[12px] font-bold",style:{color:i},children:t.method}),(0,a.jsx)("span",{className:"truncate font-mono text-[13px]",children:t.path})]}):(0,a.jsxs)("div",{className:(0,x.cn)("group relative flex w-[240px] 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)(y.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=>j.patchEndpoint(e,{method:t.target.value}),onPointerDown:S,className:(0,x.cn)(I,"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,onChange:e=>C(e.target.value),onBlur:()=>{let n=N.trim();n&&n!==t.path&&j.patchEndpoint(e,{path:n})},onKeyDown:e=>{S(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,x.cn)(I,"min-w-0 flex-1 bg-transparent font-mono text-[11px] outline-none")}),(0,a.jsx)(w,{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=>{S(t),E?j.deleteEndpoint(e):A(!0)},onBlur:()=>A(!1),title:"Delete",className:(0,x.cn)(I,"shrink-0 transition-colors",E?"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",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:t.path}),(0,a.jsx)(w,{badges:f}),(0,a.jsx)("button",{type:"button",onClick:t=>{S(t),E?j.deleteRealEndpoint(e):A(!0)},onBlur:()=>A(!1),title:E?"Click again to delete":"Delete endpoint",className:(0,x.cn)(I,"shrink-0 opacity-0 transition-opacity group-hover:opacity-100",E?"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)(v.e0,{pins:t.pins,onPinClick:t.onPinClick}):t.onComment&&(0,a.jsx)("button",{type:"button",title:`Comment on ${t.method} ${t.path}`,onClick:e=>{S(e),t.onComment?.(`${t.method} ${t.path}`)},className:(0,x.cn)(I,"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:v.Sh},er={deletable:ea.I},eo="beacon:db-draft",ei={proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};function el({tables:e,relations:t,endpoints:n,draft:l,workspaceId:d,embedded:c=!1,draftRef:m,onEdit:p,controlRef:g,commentsContent:y,commentsCount:j=0,onAddComment:w,annotations:N,onPinClick:k,onUpdateComment:C,onRemoveComment:E,boardAnnotations:A}){let S=(0,r.useRouter)(),[I,T]=(0,s.useState)(!0),[M,D]=(0,s.useState)(null),[R,$]=(0,s.useState)(null),[O,F]=(0,s.useState)(null),[L,_]=(0,s.useState)(!1),[B,H]=(0,s.useState)("details"),[ea,ed]=(0,s.useState)(!1);(0,s.useEffect)(()=>{if(g)return g.current={open:()=>{_(!0),H("details")},close:()=>{_(!1),H("details")},openComments:()=>{_(!0),H("comments")}},()=>{g&&(g.current=null)}},[g]);let[ec,eu]=(0,s.useState)(new Set),[em,ep]=(0,s.useState)("full"),[ex,eh]=(0,s.useState)(new Set),[ef,eg]=(0,s.useState)(new Set),[eb,ey]=(0,s.useState)(()=>({past:[],present:l??ei,future:[],rev:0,edited:!1})),ev=eb.present,ej=(0,s.useCallback)(e=>{ey(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}})},[]),ew=(0,s.useCallback)(e=>{ey(t=>{let n=e(t.present);return n===t.present?t:{...t,present:n}})},[]),eN=(0,s.useCallback)(()=>ey(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),[]),ek=(0,s.useCallback)(()=>ey(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),[]),eC=(0,s.useCallback)(e=>ey(t=>({past:[],present:e,future:[],rev:t.rev+1,edited:!1})),[]),eE=(0,s.useRef)(!1),eA=l?.proposedAt??0;(0,s.useEffect)(()=>{let e=null;if(eE.current)l&&l.proposedAt!==ev.proposedAt?e=l:!l&&(ev.tables.length>0||ev.endpoints.length>0)&&(e=ei);else{eE.current=!0;let t=null;try{let e=localStorage.getItem(eo);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&&eC(e)},[eA]),(0,s.useEffect)(()=>{try{ev.tables.length>0||ev.endpoints.length>0?localStorage.setItem(eo,JSON.stringify({workspaceId:d,doc:ev})):localStorage.removeItem(eo)}catch{}},[ev,d]),(0,s.useEffect)(()=>{m&&(m.current=ev)},[m,ev]);let eS=(0,s.useRef)(!1);(0,s.useEffect)(()=>{eb.edited&&!eS.current&&(eS.current=!0,p?.())},[eb.edited,p]);let eI=(0,s.useMemo)(()=>ev.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})),[ev]),eT=(0,s.useMemo)(()=>ev.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}))})),[ev]),ez=(0,s.useMemo)(()=>[...e,...eI],[e,eI]),eM=(0,s.useMemo)(()=>[...n,...eT],[n,eT]),eD=(0,s.useMemo)(()=>new Map,[]),eR=(0,s.useMemo)(()=>c?function(e,t){let n=new Map(e.map(e=>[J(e.name),e])),a=new Map;for(let e of t){let t=n.get(J(e.name));if(!t){a.set(e.id,{status:"added",changes:["new table"]});continue}let s=function(e,t){let n=new Map(e.map(e=>[J(e.name),e])),a=new Set(t.map(e=>J(e.name))),s=[];for(let e of t){let t=n.get(J(e.name));if(!t){s.push(`+ column ${e.name} (${e.type})`);continue}let a=[];J(t.type)!==J(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&&s.push(`~ column ${e.name}: ${a.join(", ")}`)}for(let t of e)a.has(J(t.name))||s.push(`- column ${t.name}`);return s}(t.columns,e.columns);a.set(e.id,{status:s.length?"modified":"unchanged",changes:s})}return a}(e,eI):eD,[c,e,eI,eD]),e$=(0,s.useMemo)(()=>c?function(e,t){let n=e=>`${J(e.method)} ${J(e.path)}`,a=new Set(e.map(n)),s=new Map;for(let e of t)s.set(e.id,a.has(n(e))?{status:"unchanged",changes:[]}:{status:"added",changes:["new endpoint"]});return s}(n,eT):eD,[c,n,eT,eD]),eP=(0,s.useMemo)(()=>[...t,...ev.relations.map(e=>({id:e.id,fromTableId:e.fromTableId,toTableId:e.toTableId,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label}))],[t,ev.relations]),eO=(0,s.useMemo)(()=>{let e=new Map;for(let t of eM)for(let n of t.tables)e.set(n.tableId,(e.get(n.tableId)??0)+1);return e},[eM]),eF=(0,s.useMemo)(()=>{let e=new Map;return ez.forEach(t=>e.set(t.id,t.x)),eM.forEach(t=>e.set(t.id,t.x)),e},[ez,eM]),eL=(0,s.useMemo)(()=>{let e=new Map(ez.map(e=>[e.id,e.name])),t=new Map;for(let n of eP){let a=e.get(n.toTableId);if(!a)continue;let s=t.get(n.fromTableId)??{};s[n.fromColumn]=a,t.set(n.fromTableId,s)}return t},[eP,ez]),e_=void 0!==A,[eB,eH]=(0,s.useState)(A??[]);(0,s.useEffect)(()=>{A&&eH(A)},[A]);let eU=(0,s.useMemo)(()=>({tables:ez.map(e=>({id:e.id,name:e.name,columns:e.columns.map(e=>e.name)})),endpoints:eM.map(e=>({id:e.id,method:e.method,path:e.path}))}),[ez,eM]),eK=(0,s.useMemo)(()=>{if(e_){let e=new Set([...ez.map(e=>e.id),...eM.map(e=>e.id)]);return eB.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((N??[]).map(e=>[e.id,e.comment]));return(0,z.m)(N??[],eU).map(t=>({id:t.annotationId,n:t.n,targetId:t.targetId,column:t.column,text:e.get(t.annotationId)??"",x:null,y:null}))},[e_,eB,N,eU,ez,eM]),eG=(0,s.useMemo)(()=>{let e=new Map;for(let t of eK){let n=e.get(t.targetId)??[];n.push({id:t.id,n:t.n,column:t.column}),e.set(t.targetId,n)}return e},[eK]),eX=(0,s.useMemo)(()=>new Map(eK.map(e=>[`anno-${e.id}`,e.targetId])),[eK]),eW=(0,s.useCallback)(async e=>{let t=(0,z.m)([{id:"_",excerpt:e}],eU)[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();eH(t=>[...t,e])}},[eU]),eZ=(0,s.useCallback)((e,t)=>{eH(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)})},[]),eJ=(0,s.useCallback)(e=>{eH(t=>t.filter(t=>t.id!==e)),fetch(`/api/board-annotations/${e}`,{method:"DELETE"})},[]),eY=e_?eW:w,eq=(0,s.useCallback)((e,t)=>(eF.get(e)??0)<=(eF.get(t)??0)?{sourceHandle:"sr",targetHandle:"tl"}:{sourceHandle:"sl",targetHandle:"tr"},[eF]),eV=(0,s.useMemo)(()=>new Set([...ev.tables.map(e=>e.id),...ev.endpoints.map(e=>e.id)]),[ev]),eQ=(0,s.useMemo)(()=>new Set(e.map(e=>e.id)),[e]),e0=(0,s.useCallback)(()=>{let e=ez.map(e=>({id:e.id,type:"dbTable",position:{x:e.x,y:e.y},data:{name:e.name,domain:e.domain,columns:e.columns,usageCount:eO.get(e.id)??0,source:e.source,rev:eb.rev,diffStatus:eR.get(e.id)?.status,diffChanges:eR.get(e.id)?.changes,fkTargets:eL.get(e.id),pins:eG.get(e.id),onPinClick:k,onComment:eY}})),t=eM.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:eb.rev,diffStatus:e$.get(e.id)?.status,diffChanges:e$.get(e.id)?.changes,pins:eG.get(e.id),onPinClick:k,onComment:eY}})),n=new Map,a=new Map(ez.map(e=>[e.id,e])),s=new Map(eM.map(e=>[e.id,e]));return[...e,...t,...eK.map(e=>{let t=a.get(e.targetId),r=s.get(e.targetId),o=t?.x??r?.x??0,i=t?.y??r?.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:e_||C?void 0:k,editable:e_||!!C,onChangeText:e_?(e,t)=>eZ(e,{body:t}):C,onDelete:e_?eJ:E}}})]},[ez,eM,eO,eb.rev,eR,e$,eL,eG,eK,e_,k,C,E,eY,eZ,eJ]),[e1,e5,e2]=(0,o.ck)(e0());(0,s.useEffect)(()=>{e5(e=>{let t=new Map(e.map(e=>[e.id,e.position]));return e0().map(e=>({...e,position:t.get(e.id)??e.position}))})},[e0,e5]);let e3=(0,s.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})})},[]),e4=(0,s.useCallback)((e,t)=>{let{x:n,y:a}=t.position;if(t.id.startsWith("anno-")){e_&&eZ(t.id.slice(5),{x:n,y:a});return}eV.has(t.id)?ew(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):e3("endpoint"===t.type?"endpoint":"table",t.id,n,a)},[eV,ew,e3,e_,eZ]),e6=(0,s.useMemo)(()=>eP.map(e=>({id:`fk-${e.id}`,source:e.fromTableId,target:e.toTableId,...eq(e.fromTableId,e.toTableId),type:"deletable",label:e.label??void 0,markerEnd:{type:i.TG.ArrowClosed,color:"#6b6b6b"},style:{stroke:"#6b6b6b"}})),[eP,eq]),e8=(0,s.useMemo)(()=>eM.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,...eq(e.id,t.tableId),type:"default",markerEnd:{type:i.TG.ArrowClosed,color:n},style:{stroke:n,strokeDasharray:"4 4",opacity:.7}}})),[eM,eq]),e9=(0,s.useMemo)(()=>I?[...e6,...e8]:e6,[e6,e8,I]),e7=(0,s.useMemo)(()=>eK.map(e=>({id:`annoe-${e.id}`,source:e.targetId,sourceHandle:`pin-${e.id}`,target:`anno-${e.id}`,targetHandle:"in",type:"default",selectable:!1,zIndex:30,style:{stroke:v.V5,strokeWidth:1.5,opacity:.9}})),[eK]),te=M?.id??O,tt=(0,s.useMemo)(()=>{if(R){let e=e9.find(e=>e.id===R);return e?new Set([e.source,e.target]):null}return te?(0,h.F1)(te,e9):null},[te,R,e9]),tn=(0,s.useMemo)(()=>new Map(ez.map(e=>[e.id,{domain:e.domain,source:e.source}])),[ez]),ta=(0,s.useMemo)(()=>new Map(eM.map(e=>[e.id,{method:e.method,source:e.source}])),[eM]),ts=(0,s.useMemo)(()=>{let e=new Set;if(!I)for(let t of ta.keys())e.add(t);for(let[t,n]of tn)!ec.size||n.domain&&ec.has(n.domain)||e.add(t),ex.size&&!ex.has(n.source)&&e.add(t);for(let[t,n]of ta)ef.size&&!ef.has(n.method)&&e.add(t),ex.size&&!ex.has(n.source)&&e.add(t);return e},[I,tn,ta,ec,ex,ef]),tr=(0,s.useMemo)(()=>e1.map(e=>{if(e.id.startsWith("anno-")){let t=eX.get(e.id),n=!!t&&ts.has(t);return!!e.hidden!==n?{...e,hidden:n}:e}let t=ts.has(e.id);return tt?{...e,hidden:t,style:{...e.style,opacity:tt.has(e.id)?1:.45,transition:"opacity 120ms"}}:t?{...e,hidden:t}:e}),[e1,ts,tt,eX]),to=(0,s.useMemo)(()=>{let e=new Map(ez.map(e=>[e.id,(e.domain??"").trim()||"—"])),t=function(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 s=null;for(let[e,r]of a){if(null===s){s=e;continue}let o=a.get(s);if(r>o){s=e;continue}if(r<o)continue;let i=n?.get(e)??0,l=n?.get(s)??0;i<l?s=e:i===l&&0>t.get(e).localeCompare(t.get(s))&&(s=e)}return s}(e,n,a)]))}(ez,eM.map(e=>({id:e.id,method:e.method,path:e.path,uses:e.tables.map(e=>({tableId:e.tableId}))})));return new Map(eM.map(n=>{let a=t.get(n.id);return[n.id,a?e.get(a):W]}))},[ez,eM]),ti=(0,s.useMemo)(()=>{let e=[];for(let t of e1)if(!ts.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:to.get(t.id)??W,x:t.position.x,y:t.position.y,w:t.measured?.width??240,h:t.measured?.height??50});return(0,X.S)(e)},[e1,ts,to]),tl=(0,s.useMemo)(()=>e9.map(e=>{let t=ts.has(e.source)||ts.has(e.target);return te||R?(R?e.id===R:te&&(e.source===te||e.target===te))?{...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}}),[e9,te,R,ts]),td=(0,s.useMemo)(()=>Array.from(new Set(ez.map(e=>e.domain).filter(e=>!!e))).sort(),[ez]),tc=(0,s.useMemo)(()=>Array.from(new Set([...ez.map(e=>e.source),...eM.map(e=>e.source)])).sort(),[ez,eM]),tu=(0,s.useMemo)(()=>Array.from(new Set(eM.map(e=>e.method))).sort(),[eM]);function tm(e,t){t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let tp=+!I+ec.size+ex.size+ef.size,tx=(0,s.useCallback)(()=>{T(!0),eu(new Set),eh(new Set),eg(new Set)},[]),th=(0,s.useCallback)(e=>{let{source:t,target:n}=e;t&&n&&t!==n&&ej(e=>{if(!(e.tables.some(e=>e.id===n)||eQ.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,G.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})},[ej,eQ]),tf=(0,s.useMemo)(()=>({patchEndpoint:(e,t)=>ej(n=>({...n,endpoints:n.endpoints.map(n=>n.id===e?{...n,...t}:n)})),deleteEndpoint:e=>ej(t=>({...t,endpoints:t.endpoints.filter(t=>t.id!==e)})),patchTable:(e,t)=>ej(n=>({...n,tables:n.tables.map(n=>n.id===e?{...n,...t}:n)})),deleteTable:e=>ej(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&&S.refresh()})}}),[ej,S]);(0,s.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?ek():eN()):"y"===n&&(e.preventDefault(),ek())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eN,ek]);let tg=(0,s.useCallback)(async()=>{ed(!0);try{if((await fetch("/api/draft/approve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(ev)})).ok){try{localStorage.removeItem(eo)}catch{}eC(ei),S.refresh()}}finally{ed(!1)}},[ev,eC,S]),tb=(0,s.useCallback)(async()=>{ed(!0);try{await fetch("/api/draft",{method:"DELETE"})}catch{}try{localStorage.removeItem(eo)}catch{}eC(ei),S.refresh(),ed(!1)},[eC,S]),ty=(0,s.useMemo)(()=>{let e;return e=new Map(ev.tables.map(e=>[e.id,e.name])),{tables:ev.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:ev.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:ev.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}]:[]})}))}},[ev]),tv=ev.tables.length>0||ev.endpoints.length>0,tj=eb.past.length>0,tw=eb.future.length>0;return(0,a.jsx)(f.Provider,{value:tf,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:tr,edges:"far"===em?[...tl,...e7].map(e=>({...e,hidden:!0})):[...tl,...e7.map(e=>({...e,hidden:ts.has(e.source)}))],nodeTypes:es,edgeTypes:er,connectionMode:i.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onNodesChange:e2,onConnect:th,onNodeMouseEnter:(e,t)=>{"annotation"!==t.type&&F(t.id)},onNodeMouseLeave:()=>F(null),onNodeClick:(e,t)=>{if("annotation"===t.type)return void k?.(t.data.annotationId);let n="endpoint"===t.type?"endpoint":"table";D({id:t.id,kind:n}),$(null),_(!0),H("details")},onEdgeClick:(e,t)=>{$(t.id),D(null)},onPaneClick:()=>{D(null),$(null)},onNodeDragStop:e4,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-")||eV.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:["Backspace","Delete"],colorMode:"dark",fitView:!0,minZoom:.15,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,a.jsx)(Z.Z,{regions:ti,tone:"category",lod:em}),(0,a.jsx)(b.J,{onLod:ep}),(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:"!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:ea,title:"Re-arrange the board — domain clusters with endpoints docked under their tables",onClick:async()=>{ed(!0);try{await fetch("/api/db/arrange",{method:"POST"}),S.refresh()}finally{ed(!1)}},className:"flex h-6 items-center gap-1 rounded-full px-2 text-[10px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground disabled:opacity-40",children:[(0,a.jsx)(Y.A,{className:"size-3"}),ea?"Arranging…":"Arrange"]})})}),!c&&(0,a.jsx)(o.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,a.jsx)(K.Z,{active:"DATABASE",tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"FILES",label:"Files",href:"/map?view=FILES"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"}]})}),(0,a.jsxs)(o.Zk,{position:"top-right",className:(0,x.cn)("flex items-center gap-1 transition-[margin] duration-200",L&&"!mr-[332px]",c&&"hidden"),children:[(0,a.jsx)("button",{type:"button",title:"Arrange board — pack tables + endpoints side by side",disabled:ea,onClick:async()=>{ed(!0);try{await fetch("/api/db/arrange",{method:"POST"}),S.refresh()}finally{ed(!1)}},className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground disabled:opacity-40",children:(0,a.jsx)(Y.A,{className:"size-4"})}),(0,a.jsxs)(U.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)(q.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)(U.r1,{title:"Show",children:(0,a.jsx)(U.vu,{tone:"accent",on:I,onClick:()=>T(e=>!e),children:"endpoints"})}),td.length>0&&(0,a.jsx)(U.r1,{title:"Domain",children:td.map(e=>(0,a.jsx)(U.vu,{on:ec.has(e),onClick:()=>tm(e,eu),children:e},e))}),tu.length>0&&(0,a.jsx)(U.r1,{title:"Method",children:tu.map(e=>(0,a.jsx)(U.vu,{on:ef.has(e),onClick:()=>tm(e,eg),children:e},e))}),tc.length>0&&(0,a.jsx)(U.r1,{title:"Source",children:tc.map(e=>(0,a.jsx)(U.vu,{on:ex.has(e),onClick:()=>tm(e,eh),children:e.toLowerCase()},e))}),tp>0&&(0,a.jsx)("button",{type:"button",onClick:tx,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)(U.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)(V.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",{"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"})]})]})}),!L&&(0,a.jsx)("button",{onClick:()=>_(!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)(Q.A,{className:"size-4"})})]}),tv&&(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:eN,disabled:!tj,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)(ee.A,{className:"size-3.5"})," undo"]}),(0,a.jsxs)("button",{onClick:ek,disabled:!tw,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)(et.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:ea,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:tg,disabled:ea,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)(en.A,{className:"size-3.5"})," approve draft"]})]})]})]}),L&&(0,a.jsx)(P,{selected:M,tables:ez,relations:eP,endpoints:eM,draftGraph:ty,onClose:()=>{_(!1),H("details")},commentsContent:y,commentsCount:j,activeTab:B,onTabChange:H,onAddComment:eY,topOffset:c?64:void 0})]})})}},95635:(e,t,n)=>{n.d(t,{x:()=>o});var a=n(95155),s=n(81750),r=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)(s.h7,{type:"target",position:r.yX.Top,id:"tt",className:e}),(0,a.jsx)(s.h7,{type:"source",position:r.yX.Top,id:"st",className:e}),(0,a.jsx)(s.h7,{type:"target",position:r.yX.Right,id:"tr",className:e}),(0,a.jsx)(s.h7,{type:"source",position:r.yX.Right,id:"sr",className:e}),(0,a.jsx)(s.h7,{type:"target",position:r.yX.Bottom,id:"tb",className:e}),(0,a.jsx)(s.h7,{type:"source",position:r.yX.Bottom,id:"sb",className:e}),(0,a.jsx)(s.h7,{type:"target",position:r.yX.Left,id:"tl",className:e}),(0,a.jsx)(s.h7,{type:"source",position:r.yX.Left,id:"sl",className:e})]})}}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,439,730,1145,1235,1288,1361,1570,1617,1662,1918,1929,2442,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4360,4505,4636,4816,4852,4896,5022,5043,5152,5190,5412,5807,5884,6600,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8235,8617,8650,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);