trybeacon 0.1.8 → 0.1.9

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 (323) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +21 -19
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +14 -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 -0
  27. package/.next/server/app/api/board-annotations/[id]/route.js.nft.json +1 -0
  28. package/.next/server/app/api/board-annotations/[id]/route_client-reference-manifest.js +1 -0
  29. package/.next/server/app/api/board-annotations/route.js +1 -0
  30. package/.next/server/app/api/board-annotations/route.js.nft.json +1 -0
  31. package/.next/server/app/api/board-annotations/route_client-reference-manifest.js +1 -0
  32. package/.next/server/app/api/code-graph/position/route.js +1 -1
  33. package/.next/server/app/api/code-graph/route.js +1 -1
  34. package/.next/server/app/api/code-graph/route.js.nft.json +1 -1
  35. package/.next/server/app/api/context/feature/route.js +1 -1
  36. package/.next/server/app/api/context/feature/route.js.nft.json +1 -1
  37. package/.next/server/app/api/context/file/route.js +1 -1
  38. package/.next/server/app/api/context/file/route.js.nft.json +1 -1
  39. package/.next/server/app/api/context/route.js +2 -2
  40. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  41. package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -1
  42. package/.next/server/app/api/db/position/route.js +1 -1
  43. package/.next/server/app/api/db/position/route.js.nft.json +1 -1
  44. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  45. package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -1
  46. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  47. package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -1
  48. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  49. package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -1
  50. package/.next/server/app/api/draft/approve/route.js +2 -2
  51. package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
  52. package/.next/server/app/api/draft/route.js +2 -2
  53. package/.next/server/app/api/draft/route.js.nft.json +1 -1
  54. package/.next/server/app/api/draft/status/route.js +1 -1
  55. package/.next/server/app/api/draft/status/route.js.nft.json +1 -1
  56. package/.next/server/app/api/edges/[id]/route.js +1 -1
  57. package/.next/server/app/api/edges/route.js +1 -1
  58. package/.next/server/app/api/edges/route.js.nft.json +1 -1
  59. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  60. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -1
  61. package/.next/server/app/api/entities/route.js +1 -1
  62. package/.next/server/app/api/feedback/[id]/route.js +1 -1
  63. package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
  64. package/.next/server/app/api/feedback/route.js +1 -1
  65. package/.next/server/app/api/ingest/route.js +2 -2
  66. package/.next/server/app/api/ingest/route.js.nft.json +1 -1
  67. package/.next/server/app/api/init/route.js +2 -2
  68. package/.next/server/app/api/init/route.js.nft.json +1 -1
  69. package/.next/server/app/api/map/describe/route.js +2 -2
  70. package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
  71. package/.next/server/app/api/map/files/route.js +1 -1
  72. package/.next/server/app/api/map/files/route.js.nft.json +1 -1
  73. package/.next/server/app/api/map/finish/route.js +1 -1
  74. package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
  75. package/.next/server/app/api/map/route.js +1 -1
  76. package/.next/server/app/api/map/route.js.nft.json +1 -1
  77. package/.next/server/app/api/map/start/route.js +1 -1
  78. package/.next/server/app/api/map/start/route.js.nft.json +1 -1
  79. package/.next/server/app/api/map/touch-active/route.js +1 -1
  80. package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
  81. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  82. package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
  83. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  84. package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
  85. package/.next/server/app/api/nodes/positions/route.js +1 -1
  86. package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
  87. package/.next/server/app/api/nodes/route.js +1 -1
  88. package/.next/server/app/api/nodes/route.js.nft.json +1 -1
  89. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  90. package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -1
  91. package/.next/server/app/api/notes/[id]/route.js +1 -1
  92. package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -1
  93. package/.next/server/app/api/notes/route.js +1 -1
  94. package/.next/server/app/api/notes/route.js.nft.json +1 -1
  95. package/.next/server/app/api/open/route.js +1 -1
  96. package/.next/server/app/api/plan/annotations/route.js +3 -3
  97. package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -1
  98. package/.next/server/app/api/plan/approve/route.js +2 -2
  99. package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
  100. package/.next/server/app/api/plan/history/route.js +1 -1
  101. package/.next/server/app/api/plan/markdown/route.js +1 -1
  102. package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -1
  103. package/.next/server/app/api/plan/presence/route.js +1 -1
  104. package/.next/server/app/api/plan/route.js +1 -1
  105. package/.next/server/app/api/plan/route.js.nft.json +1 -1
  106. package/.next/server/app/api/plan/verdict/route.js +2 -2
  107. package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -1
  108. package/.next/server/app/api/preferences/route.js +1 -1
  109. package/.next/server/app/api/reset/route.js +1 -1
  110. package/.next/server/app/api/reset/route.js.nft.json +1 -1
  111. package/.next/server/app/api/settings/route.js +1 -1
  112. package/.next/server/app/api/stream/route.js +2 -2
  113. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  114. package/.next/server/app/api/version/route.js +1 -1
  115. package/.next/server/app/api/version/route.js.nft.json +1 -1
  116. package/.next/server/app/api/workspace/activate/route.js +1 -1
  117. package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -1
  118. package/.next/server/app/api/workspace/route.js +1 -1
  119. package/.next/server/app/apple-icon.png/route.js +1 -1
  120. package/.next/server/app/docs/page.js +2 -2
  121. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/docs.html +1 -1
  123. package/.next/server/app/docs.rsc +2 -2
  124. package/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  125. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  126. package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  127. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  128. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  129. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  130. package/.next/server/app/feedback/page.js +2 -2
  131. package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  132. package/.next/server/app/feedback.html +1 -1
  133. package/.next/server/app/feedback.rsc +2 -2
  134. package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
  135. package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  136. package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
  137. package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  138. package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  139. package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  140. package/.next/server/app/help/page.js +2 -2
  141. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/help.html +1 -1
  143. package/.next/server/app/help.rsc +2 -2
  144. package/.next/server/app/help.segments/_full.segment.rsc +2 -2
  145. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  146. package/.next/server/app/help.segments/_index.segment.rsc +2 -2
  147. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  148. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  149. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  150. package/.next/server/app/icon.svg/route.js +1 -1
  151. package/.next/server/app/index.html +1 -1
  152. package/.next/server/app/index.rsc +2 -2
  153. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  154. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  155. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  156. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  157. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  158. package/.next/server/app/map/page.js +2 -2
  159. package/.next/server/app/map/page.js.nft.json +1 -1
  160. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/page.js +2 -2
  162. package/.next/server/app/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/plan/page.js +2 -2
  164. package/.next/server/app/plan/page.js.nft.json +1 -1
  165. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/settings/page.js +2 -2
  167. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app-paths-manifest.json +21 -19
  169. package/.next/server/chunks/1130.js +1 -1
  170. package/.next/server/chunks/249.js +1 -1
  171. package/.next/server/chunks/29.js +2 -2
  172. package/.next/server/chunks/2933.js +3 -3
  173. package/.next/server/chunks/3349.js +1 -0
  174. package/.next/server/chunks/4046.js +3 -3
  175. package/.next/server/chunks/5330.js +1 -0
  176. package/.next/server/chunks/9683.js +1 -1
  177. package/.next/server/chunks/9734.js +1 -0
  178. package/.next/server/middleware-build-manifest.js +1 -1
  179. package/.next/server/pages/404.html +1 -1
  180. package/.next/server/pages/500.html +1 -1
  181. package/.next/server/server-reference-manifest.js +1 -1
  182. package/.next/server/server-reference-manifest.json +1 -1
  183. package/.next/static/Wg1DNN1mWNEn51gRWvvOz/_buildManifest.js +1 -0
  184. package/.next/static/chunks/1a258343-248e24606fc4ca54.js +2 -0
  185. package/.next/static/chunks/8317-8603ef575e9af04a.js +1 -0
  186. package/.next/static/chunks/app/_global-error/page-fedcca5f9349ab93.js +1 -0
  187. package/.next/static/chunks/app/api/board-annotations/[id]/route-fedcca5f9349ab93.js +1 -0
  188. package/.next/static/chunks/app/api/board-annotations/route-fedcca5f9349ab93.js +1 -0
  189. package/.next/static/chunks/app/api/code-graph/position/route-fedcca5f9349ab93.js +1 -0
  190. package/.next/static/chunks/app/api/code-graph/route-fedcca5f9349ab93.js +1 -0
  191. package/.next/static/chunks/app/api/context/feature/route-fedcca5f9349ab93.js +1 -0
  192. package/.next/static/chunks/app/api/context/file/route-fedcca5f9349ab93.js +1 -0
  193. package/.next/static/chunks/app/api/context/route-fedcca5f9349ab93.js +1 -0
  194. package/.next/static/chunks/app/api/db/backfill-access/route-fedcca5f9349ab93.js +1 -0
  195. package/.next/static/chunks/app/api/db/position/route-fedcca5f9349ab93.js +1 -0
  196. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-fedcca5f9349ab93.js +1 -0
  197. package/.next/static/chunks/app/api/db/relations/[id]/route-fedcca5f9349ab93.js +1 -0
  198. package/.next/static/chunks/app/api/db/tables/[id]/route-fedcca5f9349ab93.js +1 -0
  199. package/.next/static/chunks/app/api/draft/approve/route-fedcca5f9349ab93.js +1 -0
  200. package/.next/static/chunks/app/api/draft/route-fedcca5f9349ab93.js +1 -0
  201. package/.next/static/chunks/app/api/draft/status/route-fedcca5f9349ab93.js +1 -0
  202. package/.next/static/chunks/app/api/edges/[id]/route-fedcca5f9349ab93.js +1 -0
  203. package/.next/static/chunks/app/api/edges/route-fedcca5f9349ab93.js +1 -0
  204. package/.next/static/chunks/app/api/endpoints/[id]/route-fedcca5f9349ab93.js +1 -0
  205. package/.next/static/chunks/app/api/entities/route-fedcca5f9349ab93.js +1 -0
  206. package/.next/static/chunks/app/api/feedback/[id]/route-fedcca5f9349ab93.js +1 -0
  207. package/.next/static/chunks/app/api/feedback/[id]/vote/route-fedcca5f9349ab93.js +1 -0
  208. package/.next/static/chunks/app/api/feedback/route-fedcca5f9349ab93.js +1 -0
  209. package/.next/static/chunks/app/api/ingest/route-fedcca5f9349ab93.js +1 -0
  210. package/.next/static/chunks/app/api/init/route-fedcca5f9349ab93.js +1 -0
  211. package/.next/static/chunks/app/api/map/describe/route-fedcca5f9349ab93.js +1 -0
  212. package/.next/static/chunks/app/api/map/files/route-fedcca5f9349ab93.js +1 -0
  213. package/.next/static/chunks/app/api/map/finish/route-fedcca5f9349ab93.js +1 -0
  214. package/.next/static/chunks/app/api/map/route-fedcca5f9349ab93.js +1 -0
  215. package/.next/static/chunks/app/api/map/start/route-fedcca5f9349ab93.js +1 -0
  216. package/.next/static/chunks/app/api/map/touch-active/route-fedcca5f9349ab93.js +1 -0
  217. package/.next/static/chunks/app/api/nodes/[id]/position/route-fedcca5f9349ab93.js +1 -0
  218. package/.next/static/chunks/app/api/nodes/[id]/route-fedcca5f9349ab93.js +1 -0
  219. package/.next/static/chunks/app/api/nodes/positions/route-fedcca5f9349ab93.js +1 -0
  220. package/.next/static/chunks/app/api/nodes/route-fedcca5f9349ab93.js +1 -0
  221. package/.next/static/chunks/app/api/nodes/subtasks/route-fedcca5f9349ab93.js +1 -0
  222. package/.next/static/chunks/app/api/notes/[id]/route-fedcca5f9349ab93.js +1 -0
  223. package/.next/static/chunks/app/api/notes/route-fedcca5f9349ab93.js +1 -0
  224. package/.next/static/chunks/app/api/open/route-fedcca5f9349ab93.js +1 -0
  225. package/.next/static/chunks/app/api/plan/annotations/route-fedcca5f9349ab93.js +1 -0
  226. package/.next/static/chunks/app/api/plan/approve/route-fedcca5f9349ab93.js +1 -0
  227. package/.next/static/chunks/app/api/plan/history/route-fedcca5f9349ab93.js +1 -0
  228. package/.next/static/chunks/app/api/plan/markdown/route-fedcca5f9349ab93.js +1 -0
  229. package/.next/static/chunks/app/api/plan/presence/route-fedcca5f9349ab93.js +1 -0
  230. package/.next/static/chunks/app/api/plan/route-fedcca5f9349ab93.js +1 -0
  231. package/.next/static/chunks/app/api/plan/verdict/route-fedcca5f9349ab93.js +1 -0
  232. package/.next/static/chunks/app/api/preferences/route-fedcca5f9349ab93.js +1 -0
  233. package/.next/static/chunks/app/api/reset/route-fedcca5f9349ab93.js +1 -0
  234. package/.next/static/chunks/app/api/settings/route-fedcca5f9349ab93.js +1 -0
  235. package/.next/static/chunks/app/api/stream/route-fedcca5f9349ab93.js +1 -0
  236. package/.next/static/chunks/app/api/version/route-fedcca5f9349ab93.js +1 -0
  237. package/.next/static/chunks/app/api/workspace/activate/route-fedcca5f9349ab93.js +1 -0
  238. package/.next/static/chunks/app/api/workspace/route-fedcca5f9349ab93.js +1 -0
  239. package/.next/static/chunks/app/map/page-816b66667be8f94b.js +1 -0
  240. package/.next/static/chunks/app/plan/page-8a3f6f889a981436.js +1 -0
  241. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fedcca5f9349ab93.js +1 -0
  242. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fedcca5f9349ab93.js +1 -0
  243. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fedcca5f9349ab93.js +1 -0
  244. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fedcca5f9349ab93.js +1 -0
  245. package/.next/static/css/f3cfcfba0b79bb6d.css +1 -0
  246. package/.next/trace +37 -37
  247. package/.next/trace-build +1 -1
  248. package/.next/types/app/api/board-annotations/[id]/route.ts +351 -0
  249. package/.next/types/app/api/board-annotations/route.ts +351 -0
  250. package/.next/types/routes.d.ts +3 -1
  251. package/.next/types/validator.ts +18 -0
  252. package/dist/bin/mcp.js +17 -17
  253. package/drizzle/0001_fluffy_venus.sql +13 -0
  254. package/drizzle/meta/0001_snapshot.json +1671 -0
  255. package/drizzle/meta/_journal.json +7 -0
  256. package/package.json +1 -1
  257. package/.next/server/chunks/1172.js +0 -1
  258. package/.next/server/chunks/2996.js +0 -1
  259. package/.next/server/chunks/3777.js +0 -1
  260. package/.next/server/chunks/4490.js +0 -1
  261. package/.next/server/chunks/9252.js +0 -1
  262. package/.next/static/chunks/1a258343-152a68da2b250652.js +0 -2
  263. package/.next/static/chunks/8811-57b200845c2e1f2d.js +0 -1
  264. package/.next/static/chunks/app/_global-error/page-c1b5e3c2b2451a38.js +0 -1
  265. package/.next/static/chunks/app/api/code-graph/position/route-c1b5e3c2b2451a38.js +0 -1
  266. package/.next/static/chunks/app/api/code-graph/route-c1b5e3c2b2451a38.js +0 -1
  267. package/.next/static/chunks/app/api/context/feature/route-c1b5e3c2b2451a38.js +0 -1
  268. package/.next/static/chunks/app/api/context/file/route-c1b5e3c2b2451a38.js +0 -1
  269. package/.next/static/chunks/app/api/context/route-c1b5e3c2b2451a38.js +0 -1
  270. package/.next/static/chunks/app/api/db/backfill-access/route-c1b5e3c2b2451a38.js +0 -1
  271. package/.next/static/chunks/app/api/db/position/route-c1b5e3c2b2451a38.js +0 -1
  272. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-c1b5e3c2b2451a38.js +0 -1
  273. package/.next/static/chunks/app/api/db/relations/[id]/route-c1b5e3c2b2451a38.js +0 -1
  274. package/.next/static/chunks/app/api/db/tables/[id]/route-c1b5e3c2b2451a38.js +0 -1
  275. package/.next/static/chunks/app/api/draft/approve/route-c1b5e3c2b2451a38.js +0 -1
  276. package/.next/static/chunks/app/api/draft/route-c1b5e3c2b2451a38.js +0 -1
  277. package/.next/static/chunks/app/api/draft/status/route-c1b5e3c2b2451a38.js +0 -1
  278. package/.next/static/chunks/app/api/edges/[id]/route-c1b5e3c2b2451a38.js +0 -1
  279. package/.next/static/chunks/app/api/edges/route-c1b5e3c2b2451a38.js +0 -1
  280. package/.next/static/chunks/app/api/endpoints/[id]/route-c1b5e3c2b2451a38.js +0 -1
  281. package/.next/static/chunks/app/api/entities/route-c1b5e3c2b2451a38.js +0 -1
  282. package/.next/static/chunks/app/api/feedback/[id]/route-c1b5e3c2b2451a38.js +0 -1
  283. package/.next/static/chunks/app/api/feedback/[id]/vote/route-c1b5e3c2b2451a38.js +0 -1
  284. package/.next/static/chunks/app/api/feedback/route-c1b5e3c2b2451a38.js +0 -1
  285. package/.next/static/chunks/app/api/ingest/route-c1b5e3c2b2451a38.js +0 -1
  286. package/.next/static/chunks/app/api/init/route-c1b5e3c2b2451a38.js +0 -1
  287. package/.next/static/chunks/app/api/map/describe/route-c1b5e3c2b2451a38.js +0 -1
  288. package/.next/static/chunks/app/api/map/files/route-c1b5e3c2b2451a38.js +0 -1
  289. package/.next/static/chunks/app/api/map/finish/route-c1b5e3c2b2451a38.js +0 -1
  290. package/.next/static/chunks/app/api/map/route-c1b5e3c2b2451a38.js +0 -1
  291. package/.next/static/chunks/app/api/map/start/route-c1b5e3c2b2451a38.js +0 -1
  292. package/.next/static/chunks/app/api/map/touch-active/route-c1b5e3c2b2451a38.js +0 -1
  293. package/.next/static/chunks/app/api/nodes/[id]/position/route-c1b5e3c2b2451a38.js +0 -1
  294. package/.next/static/chunks/app/api/nodes/[id]/route-c1b5e3c2b2451a38.js +0 -1
  295. package/.next/static/chunks/app/api/nodes/positions/route-c1b5e3c2b2451a38.js +0 -1
  296. package/.next/static/chunks/app/api/nodes/route-c1b5e3c2b2451a38.js +0 -1
  297. package/.next/static/chunks/app/api/nodes/subtasks/route-c1b5e3c2b2451a38.js +0 -1
  298. package/.next/static/chunks/app/api/notes/[id]/route-c1b5e3c2b2451a38.js +0 -1
  299. package/.next/static/chunks/app/api/notes/route-c1b5e3c2b2451a38.js +0 -1
  300. package/.next/static/chunks/app/api/open/route-c1b5e3c2b2451a38.js +0 -1
  301. package/.next/static/chunks/app/api/plan/annotations/route-c1b5e3c2b2451a38.js +0 -1
  302. package/.next/static/chunks/app/api/plan/approve/route-c1b5e3c2b2451a38.js +0 -1
  303. package/.next/static/chunks/app/api/plan/history/route-c1b5e3c2b2451a38.js +0 -1
  304. package/.next/static/chunks/app/api/plan/markdown/route-c1b5e3c2b2451a38.js +0 -1
  305. package/.next/static/chunks/app/api/plan/presence/route-c1b5e3c2b2451a38.js +0 -1
  306. package/.next/static/chunks/app/api/plan/route-c1b5e3c2b2451a38.js +0 -1
  307. package/.next/static/chunks/app/api/plan/verdict/route-c1b5e3c2b2451a38.js +0 -1
  308. package/.next/static/chunks/app/api/preferences/route-c1b5e3c2b2451a38.js +0 -1
  309. package/.next/static/chunks/app/api/reset/route-c1b5e3c2b2451a38.js +0 -1
  310. package/.next/static/chunks/app/api/settings/route-c1b5e3c2b2451a38.js +0 -1
  311. package/.next/static/chunks/app/api/stream/route-c1b5e3c2b2451a38.js +0 -1
  312. package/.next/static/chunks/app/api/version/route-c1b5e3c2b2451a38.js +0 -1
  313. package/.next/static/chunks/app/api/workspace/activate/route-c1b5e3c2b2451a38.js +0 -1
  314. package/.next/static/chunks/app/api/workspace/route-c1b5e3c2b2451a38.js +0 -1
  315. package/.next/static/chunks/app/map/page-7c6a7f7b53bcc669.js +0 -1
  316. package/.next/static/chunks/app/plan/page-d281cb104d352713.js +0 -1
  317. package/.next/static/chunks/next/dist/client/components/builtin/app-error-c1b5e3c2b2451a38.js +0 -1
  318. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-c1b5e3c2b2451a38.js +0 -1
  319. package/.next/static/chunks/next/dist/client/components/builtin/not-found-c1b5e3c2b2451a38.js +0 -1
  320. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c1b5e3c2b2451a38.js +0 -1
  321. package/.next/static/css/c1d125c7e7e0530c.css +0 -1
  322. package/.next/static/vkXAuKrDgeKgSM-4XYCAy/_buildManifest.js +0 -1
  323. /package/.next/static/{vkXAuKrDgeKgSM-4XYCAy → Wg1DNN1mWNEn51gRWvvOz}/_ssgManifest.js +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3862],{81750:(e,t,n)=>{n.d(t,{DX:()=>tk,Gc:()=>tw,H2:()=>tF,JY:()=>tM,VH:()=>ea,VS:()=>tR,Zk:()=>k,_0:()=>X,ck:()=>tN,h7:()=>eS,of:()=>tq,rV:()=>tC,tE:()=>eF,zW:()=>W});var o,r,a=n(95155),i=n(12115),l=n(69684),s=n(6266),d=n(50916),c=n(99026),u=n(47650);let g=(0,i.createContext)(null),f=g.Provider,p=s.xc.error001("react");function m(e,t){let n=(0,i.useContext)(g);if(null===n)throw Error(p);return(0,d.n)(n,e,t)}function h(){let e=(0,i.useContext)(g);if(null===e)throw Error(p);return(0,i.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}let y={display:"none"},x={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},b="react-flow__node-desc",v="react-flow__edge-desc",w=e=>e.ariaLiveMessage,S=e=>e.ariaLabelConfig;function C({rfId:e}){let t=m(w);return(0,a.jsx)("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:x,children:t})}function E({rfId:e,disableKeyboardA11y:t}){let n=m(S);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{id:`${b}-${e}`,style:y,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,a.jsx)("div",{id:`${v}-${e}`,style:y,children:n["edge.a11yDescription.default"]}),!t&&(0,a.jsx)(C,{rfId:e})]})}let k=(0,i.forwardRef)(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{let s=`${e}`.split("-");return(0,a.jsx)("div",{className:(0,l.A)(["react-flow__panel",n,...s]),style:o,ref:i,...r,children:t})});function N({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:(0,a.jsx)(k,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:(0,a.jsx)("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}k.displayName="Panel";let M=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},P=e=>e.id;function j(e,t){return(0,c.x)(e.selectedNodes.map(P),t.selectedNodes.map(P))&&(0,c.x)(e.selectedEdges.map(P),t.selectedEdges.map(P))}function D({onSelectionChange:e}){let t=h(),{selectedNodes:n,selectedEdges:o}=m(M,j);return(0,i.useEffect)(()=>{let r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(e=>e(r))},[n,o,e]),null}let _=e=>!!e.onSelectionChangeHandlers;function A({onSelectionChange:e}){let t=m(_);return e||t?(0,a.jsx)(D,{onSelectionChange:e}):null}let R=[0,0],I={x:0,y:0,zoom:1},O=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],L=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),z={translateExtent:s.ZO,nodeOrigin:R,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function $(e){let{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:a,setNodeExtent:l,reset:d,setDefaultNodesAndEdges:u}=m(L,c.x),g=h();(0,i.useEffect)(()=>(u(e.defaultNodes,e.defaultEdges),()=>{f.current=z,d()}),[]);let f=(0,i.useRef)(z);return(0,i.useEffect)(()=>{for(let i of O){let d=e[i];d!==f.current[i]&&void 0!==e[i]&&("nodes"===i?t(d):"edges"===i?n(d):"minZoom"===i?o(d):"maxZoom"===i?r(d):"translateExtent"===i?a(d):"nodeExtent"===i?l(d):"ariaLabelConfig"===i?g.setState({ariaLabelConfig:(0,s.Q6)(d)}):"fitView"===i?g.setState({fitViewQueued:d}):"fitViewOptions"===i?g.setState({fitViewOptions:d}):g.setState({[i]:d}))}f.current=e},O.map(t=>e[t])),null}function B(){return"u"<typeof window||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}let V="u">typeof document?document:null;function H(e=null,t={target:V,actInsideInputWithModifier:!0}){let[n,o]=(0,i.useState)(!1),r=(0,i.useRef)(!1),a=(0,i.useRef)(new Set([])),[l,d]=(0,i.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace("+","\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,i.useEffect)(()=>{let n=t?.target??V,i=t?.actInsideInputWithModifier??!0;if(null!==e){let e=e=>{if(r.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!r.current||r.current&&!i)&&(0,s.v5)(e))return!1;let n=T(e.code,d);if(a.current.add(e[n]),F(l,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName==="BUTTON"||n?.nodeName==="A";!1!==t.preventDefault&&(r.current||!a)&&e.preventDefault(),o(!0)}},c=e=>{let t=T(e.code,d);F(l,a.current,!0)?(o(!1),a.current.clear()):a.current.delete(e[t]),"Meta"===e.key&&a.current.clear(),r.current=!1},u=()=>{a.current.clear(),o(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",c),window.addEventListener("blur",u),window.addEventListener("contextmenu",u),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",c),window.removeEventListener("blur",u),window.removeEventListener("contextmenu",u)}}},[e,o]),n}function F(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function T(e,t){return t.includes(e)?"code":"key"}function Z(e,t){let n=[],o=new Map,r=[];for(let t of e)if("add"===t.type){r.push(t);continue}else if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{let e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}for(let e of t){let t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}let r={...e};for(let e of t){var a=e,i=r;switch(a.type){case"select":i.selected=a.selected;break;case"position":void 0!==a.position&&(i.position=a.position),void 0!==a.dragging&&(i.dragging=a.dragging);break;case"dimensions":void 0!==a.dimensions&&(i.measured={...a.dimensions},a.setAttributes&&((!0===a.setAttributes||"width"===a.setAttributes)&&(i.width=a.dimensions.width),(!0===a.setAttributes||"height"===a.setAttributes)&&(i.height=a.dimensions.height))),"boolean"==typeof a.resizing&&(i.resizing=a.resizing)}}n.push(r)}return r.length&&r.forEach(e=>{void 0!==e.index?n.splice(e.index,0,{...e.item}):n.push({...e.item})}),n}function X(e,t){return Z(e,t)}function W(e,t){return Z(e,t)}function K(e,t){return{id:e,type:"select",selected:t}}function Y(e,t=new Set,n=!1){let o=[];for(let[r,a]of e){let e=t.has(r);(void 0!==a.selected||e)&&a.selected!==e&&(n&&(a.selected=e),o.push(K(a.id,e)))}return o}function Q({items:e=[],lookup:t}){let n=[],o=new Map(e.map(e=>[e.id,e]));for(let[o,r]of e.entries()){let e=t.get(r.id),a=e?.internals?.userNode??e;void 0!==a&&a!==r&&n.push({id:r.id,item:r,type:"replace"}),void 0===a&&n.push({item:r,type:"add",index:o})}for(let[e]of t)void 0===o.get(e)&&n.push({id:e,type:"remove"});return n}function U(e){return{id:e.id,type:"remove"}}let q=(0,s.kr)("React Flow","https://reactflow.dev/"),G=e=>(0,s.oB)(e);function J(e){return(0,i.forwardRef)(e)}let ee="u">typeof window?i.useLayoutEffect:i.useEffect;function et(e){let[t,n]=(0,i.useState)(BigInt(0)),[o]=(0,i.useState)(()=>{var e;let t;return e=()=>n(e=>e+BigInt(1)),t=[],{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}});return ee(()=>{let t=o.get();t.length&&(e(t),o.reset())},[t]),o}let en=(0,i.createContext)(null);function eo({children:e}){let t=h(),n=et((0,i.useCallback)(e=>{let{nodes:n=[],setNodes:o,hasDefaultNodes:r,onNodesChange:a,nodeLookup:i,fitViewQueued:l,onNodesChangeMiddlewareMap:s}=t.getState(),d=n;for(let t of e)d="function"==typeof t?t(d):t;let c=Q({items:d,lookup:i});for(let e of s.values())c=e(c);r&&o(d),c.length>0?a?.(c):l&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:o}=t.getState();e&&o(n)})},[])),o=et((0,i.useCallback)(e=>{let{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:a,edgeLookup:i}=t.getState(),l=n;for(let t of e)l="function"==typeof t?t(l):t;r?o(l):a&&a(Q({items:l,lookup:i}))},[])),r=(0,i.useMemo)(()=>({nodeQueue:n,edgeQueue:o}),[]);return(0,a.jsx)(en.Provider,{value:r,children:e})}let er=e=>!!e.panZoom;function ea(){let e,t=(e=h(),(0,i.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1.2,t)},zoomOut:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1/1.2,t)},zoomTo:async(t,n)=>{let{panZoom:o}=e.getState();return!!o&&o.scaleTo(t,n)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[o,r,a],panZoom:i}=e.getState();return!!i&&(await i.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??a},n),!0)},getViewport:()=>{let[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{let{width:o,height:r,minZoom:a,maxZoom:i,panZoom:l}=e.getState(),d=(0,s.R4)(t,o,r,a,i,n?.padding??.1);return!!l&&(await l.setViewport(d,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0)},screenToFlowPosition:(t,n={})=>{let{transform:o,snapGrid:r,snapToGrid:a,domNode:i}=e.getState();if(!i)return t;let{x:l,y:d}=i.getBoundingClientRect(),c={x:t.x-l,y:t.y-d},u=n.snapGrid??r,g=n.snapToGrid??a;return(0,s.Ff)(c,o,g,u)},flowToScreenPosition:t=>{let{transform:n,domNode:o}=e.getState();if(!o)return t;let{x:r,y:a}=o.getBoundingClientRect(),i=(0,s.zj)(t,n);return{x:i.x+r,y:i.y+a}}}),[])),n=h(),o=function(){let e=(0,i.useContext)(en);if(!e)throw Error("useBatchContext must be used within a BatchProvider");return e}(),r=m(er),a=(0,i.useMemo)(()=>{let e=e=>n.getState().nodeLookup.get(e),t=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},a=e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState(),r=G(e)?e:t.get(e.id),a=r.parentId?(0,s.us)(r.position,r.measured,r.parentId,t,o):r.position,i={...r,position:a,width:r.measured?.width??r.width,height:r.measured?.height??r.height};return(0,s.kM)(i)},i=(e,n,o={replace:!1})=>{t(t=>t.map(t=>{if(t.id===e){let e="function"==typeof n?n(t):n;return o.replace&&G(e)?e:{...t,...e}}return t}))},l=(e,t,n={replace:!1})=>{r(o=>o.map(o=>{if(o.id===e){let e="function"==typeof t?t(o):t;return n.replace&&(0,s.b$)(e)?e:{...o,...e}}return o}))};return{getNodes:()=>n.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=n.getState();return e.map(e=>({...e}))},getEdge:e=>n.getState().edgeLookup.get(e),setNodes:t,setEdges:r,addNodes:e=>{let t=Array.isArray(e)?e:[e];o.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];o.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:t=[],transform:o}=n.getState(),[r,a,i]=o;return{nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:r,y:a,zoom:i}}},deleteElements:async({nodes:e=[],edges:t=[]})=>{let{nodes:o,edges:r,onNodesDelete:a,onEdgesDelete:i,triggerNodeChanges:l,triggerEdgeChanges:d,onDelete:c,onBeforeDelete:u}=n.getState(),{nodes:g,edges:f}=await (0,s.Tq)({nodesToRemove:e,edgesToRemove:t,nodes:o,edges:r,onBeforeDelete:u}),p=f.length>0,m=g.length>0;if(p){let e=f.map(U);i?.(f),d(e)}if(m){let e=g.map(U);a?.(g),l(e)}return(m||p)&&c?.({nodes:g,edges:f}),{deletedNodes:g,deletedEdges:f}},getIntersectingNodes:(e,t=!0,o)=>{let r=(0,s.mW)(e),i=r?e:a(e),l=void 0!==o;return i?(o||n.getState().nodes).filter(o=>{let a=n.getState().nodeLookup.get(o.id);if(a&&!r&&(o.id===e.id||!a.internals.positionAbsolute))return!1;let d=(0,s.kM)(l?o:a),c=(0,s.X6)(d,i);return t&&c>0||c>=d.width*d.height||c>=i.width*i.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let o=(0,s.mW)(e)?e:a(e);if(!o)return!1;let r=(0,s.X6)(o,t);return n&&r>0||r>=t.width*t.height||r>=o.width*o.height},updateNode:i,updateNodeData:(e,t,n={replace:!1})=>{i(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},updateEdge:l,updateEdgeData:(e,t,n={replace:!1})=>{l(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},getNodesBounds:e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState();return(0,s.Jo)(e,{nodeLookup:t,nodeOrigin:o})},getHandleConnections:({type:e,id:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}-${e}${t?`-${t}`:""}`)?.values()??[]),getNodeConnections:({type:e,handleId:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}${e?t?`-${e}-${t}`:`-${e}`:""}`)?.values()??[]),fitView:async e=>{let t=n.getState().fitViewResolver??(0,s.YN)();return n.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:t}),o.nodeQueue.push(e=>[...e]),t.promise}}},[]);return(0,i.useMemo)(()=>({...a,...t,viewportInitialized:r}),[r])}let ei=e=>e.selected,el="u">typeof window?window:void 0,es={position:"absolute",width:"100%",height:"100%",top:0,left:0},ed=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function ec({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:l=s.ny.Free,zoomOnDoubleClick:d=!0,panOnDrag:u=!0,defaultViewport:g,translateExtent:f,minZoom:p,maxZoom:y,zoomActivationKeyCode:x,preventScrolling:b=!0,children:v,noWheelClassName:w,noPanClassName:S,onViewportChange:C,isControlledViewport:E,paneClickDistance:k,selectionOnDrag:N}){let M,P=h(),j=(0,i.useRef)(null),{userSelectionActive:D,lib:_,connectionInProgress:A}=m(ed,c.x),R=H(x),I=(0,i.useRef)();M=h(),(0,i.useEffect)(()=>{let e=()=>{if(!j.current||!(j.current.checkVisibility?.()??!0))return!1;let e=(0,s.Eo)(j.current);(0===e.height||0===e.width)&&M.getState().onError?.("004",s.xc.error004()),M.setState({width:e.width||500,height:e.height||500})};if(j.current){e(),window.addEventListener("resize",e);let t=new ResizeObserver(()=>e());return t.observe(j.current),()=>{window.removeEventListener("resize",e),t&&j.current&&t.unobserve(j.current)}}},[]);let O=(0,i.useCallback)(e=>{C?.({x:e[0],y:e[1],zoom:e[2]}),E||P.setState({transform:e})},[C,E]);return(0,i.useEffect)(()=>{if(j.current){I.current=(0,s.kO)({domNode:j.current,minZoom:p,maxZoom:y,translateExtent:f,viewport:g,onDraggingChange:e=>P.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:o}=P.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:o}=P.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:o}=P.getState();o?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=I.current.getViewport();return P.setState({panZoom:I.current,transform:[e,t,n],domNode:j.current.closest(".react-flow")}),()=>{I.current?.destroy()}}},[]),(0,i.useEffect)(()=>{I.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:l,zoomOnDoubleClick:d,panOnDrag:u,zoomActivationKeyPressed:R,preventScrolling:b,noPanClassName:S,userSelectionActive:D,noWheelClassName:w,lib:_,onTransformChange:O,connectionInProgress:A,selectionOnDrag:N,paneClickDistance:k})},[e,t,n,o,r,l,d,u,R,b,S,D,w,_,O,A,N,k]),(0,a.jsx)("div",{className:"react-flow__renderer",ref:j,style:es,children:v})}let eu=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function eg(){let{userSelectionActive:e,userSelectionRect:t}=m(eu,c.x);return e&&t?(0,a.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}let ef=(e,t)=>n=>{n.target===t.current&&e?.(n)},ep=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function em({isSelecting:e,selectionKeyPressed:t,selectionMode:n=s.Qc.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:d,selectionOnDrag:u,onSelectionStart:g,onSelectionEnd:f,onPaneClick:p,onPaneContextMenu:y,onPaneScroll:x,onPaneMouseEnter:b,onPaneMouseMove:v,onPaneMouseLeave:w,children:S}){let C=(0,i.useRef)(0),E=h(),{userSelectionActive:k,elementsSelectable:N,dragging:M,connectionInProgress:P,panBy:j,autoPanSpeed:D}=m(ep,c.x),_=N&&(e||k),A=(0,i.useRef)(null),R=(0,i.useRef)(),I=(0,i.useRef)(new Set),O=(0,i.useRef)(new Set),L=(0,i.useRef)(!1),z=(0,i.useRef)({x:0,y:0}),$=(0,i.useRef)(!1),B=e=>{if(L.current||P){L.current=!1;return}p?.(e),E.getState().resetSelectedElements(),E.setState({nodesSelectionActive:!1})};function V(e,t){let{userSelectionRect:o}=E.getState();if(!o)return;let{transform:r,nodeLookup:a,edgeLookup:i,connectionLookup:l,triggerNodeChanges:d,triggerEdgeChanges:c,defaultEdgeOptions:u}=E.getState(),g={x:o.startX,y:o.startY},{x:f,y:p}=(0,s.zj)(g,r),m={startX:g.x,startY:g.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=I.current,y=O.current;I.current=new Set((0,s.U$)(a,m,r,n===s.Qc.Partial,!0).map(e=>e.id)),O.current=new Set;let x=u?.selectable??!0;for(let e of I.current){let t=l.get(e);if(t)for(let{edgeId:e}of t.values()){let t=i.get(e);t&&(t.selectable??x)&&O.current.add(e)}}(0,s._s)(h,I.current)||d(Y(a,I.current,!0)),(0,s._s)(y,O.current)||c(Y(i,O.current)),E.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}let H=()=>{cancelAnimationFrame(C.current),C.current=0,$.current=!1};(0,i.useEffect)(()=>()=>H(),[]);let F=!0===o||Array.isArray(o)&&o.includes(0);return(0,a.jsxs)("div",{className:(0,l.A)(["react-flow__pane",{draggable:F,dragging:M,selection:e}]),onClick:_?void 0:ef(B,A),onContextMenu:ef(e=>{Array.isArray(o)&&o?.includes(2)?e.preventDefault():y?.(e)},A),onWheel:ef(x?e=>x(e):void 0,A),onPointerEnter:_?void 0:b,onPointerMove:_?e=>{let{userSelectionRect:n,transform:o,resetSelectedElements:a}=E.getState();if(!R.current||!n)return;let{x:i,y:l}=(0,s.q1)(e.nativeEvent,R.current);z.current={x:i,y:l};let c=(0,s.zj)({x:n.startX,y:n.startY},o);if(!L.current){if(Math.hypot(i-c.x,l-c.y)<=(t?0:d))return;a(),g?.(e)}L.current=!0,$.current||(!function e(){if(!r||!R.current)return;let[t,n]=(0,s._7)(z.current,R.current,D);j({x:t,y:n}).then(t=>{if(!L.current||!t){C.current=requestAnimationFrame(e);return}let{x:n,y:o}=z.current;V(n,o),C.current=requestAnimationFrame(e)})}(),$.current=!0),V(i,l)}:v,onPointerUp:_?e=>{0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!k&&e.target===A.current&&E.getState().userSelectionRect&&B?.(e),E.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(f?.(e),E.setState({nodesSelectionActive:I.current.size>0})),H())}:void 0,onPointerCancel:_?e=>{e.target?.releasePointerCapture?.(e.pointerId),H()}:void 0,onPointerDownCapture:_?n=>{let{domNode:o,transform:r}=E.getState();if(R.current=o?.getBoundingClientRect(),!R.current)return;let a=n.target===A.current;if(!a&&n.target.closest(".nokey")||!e||!(u&&a||t)||0!==n.button||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),L.current=!1;let{x:i,y:l}=(0,s.q1)(n.nativeEvent,R.current),d=(0,s.Ff)({x:i,y:l},r);E.setState({userSelectionRect:{width:0,height:0,startX:d.x,startY:d.y,x:i,y:l}}),a||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:_?e=>{L.current&&(e.stopPropagation(),L.current=!1)}:void 0,onPointerLeave:w,ref:A,style:es,children:[S,(0,a.jsx)(eg,{})]})}function eh({id:e,store:t,unselect:n=!1,nodeRef:o}){let{addSelectedNodes:r,unselectNodesAndEdges:a,multiSelectionActive:i,nodeLookup:l,onError:d}=t.getState(),c=l.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(a({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])):d?.("012",s.xc.error012(e))}function ey({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:a,nodeClickDistance:l}){let d=h(),[c,u]=(0,i.useState)(!1),g=(0,i.useRef)();return(0,i.useEffect)(()=>{g.current=(0,s.I$)({getStoreItems:()=>d.getState(),onNodeMouseDown:t=>{eh({id:t,store:d,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),(0,i.useEffect)(()=>{if(!t&&e.current&&g.current)return g.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:a,nodeId:r,nodeClickDistance:l}),()=>{g.current?.destroy()}},[n,o,t,a,e,r,l]),c}function ex(){let e=h();return(0,i.useCallback)(t=>{let{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:a,onError:i,updateNodePositions:l,nodeLookup:d,nodeOrigin:c}=e.getState(),u=new Map,g=e=>e.selected&&(e.draggable||a&&void 0===e.draggable),f=o?r[0]:5,p=o?r[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of d){if(!g(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};o&&(t=(0,s.s_)(t,r));let{position:a,positionAbsolute:l}=(0,s.aE)({nodeId:e.id,nextPosition:t,nodeLookup:d,nodeExtent:n,nodeOrigin:c,onError:i});e.position=a,e.internals.positionAbsolute=l,u.set(e.id,e)}l(u)},[])}let eb=(0,i.createContext)(null),ev=eb.Provider;eb.Consumer;let ew=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),eS=(0,i.memo)(J(function({type:e="source",position:t=s.yX.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:d=!0,id:u,onConnect:g,children:f,className:p,onMouseDown:y,onTouchStart:x,...b},v){let w=u||null,S="target"===e,C=h(),E=(0,i.useContext)(eb),{connectOnClick:k,noPanClassName:N,rfId:M}=m(ew,c.x),{connectingFrom:P,connectingTo:j,clickConnecting:D,isPossibleEndHandle:_,connectionInProcess:A,clickConnectionInProcess:R,valid:I}=m(t=>{let{connectionClickStartHandle:n,connectionMode:o,connection:r}=t,{fromHandle:a,toHandle:i,isValid:l}=r,d=i?.nodeId===E&&i?.id===w&&i?.type===e;return{connectingFrom:a?.nodeId===E&&a?.id===w&&a?.type===e,connectingTo:d,clickConnecting:n?.nodeId===E&&n?.id===w&&n?.type===e,isPossibleEndHandle:o===s.WZ.Strict?a?.type!==e:E!==a?.nodeId||w!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!n,valid:d&&l}},c.x);E||C.getState().onError?.("010",s.xc.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=C.getState(),r={...t,...e};if(o){let{edges:e,setEdges:t,onError:n}=C.getState();t(function(e,t,n={}){return(0,s.rN)(e,t,{...n,onError:n.onError??q})}(r,e,{onError:n}))}n?.(r),g?.(r)},L=e=>{if(!E)return;let t=(0,s.Er)(e.nativeEvent);if(r&&(t&&0===e.button||!t)){let t=C.getState();s.aQ.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:S,handleId:w,nodeId:E,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>C.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>C.getState().isValidConnection?.(...e)??!0),getTransform:()=>C.getState().transform,getFromHandle:()=>C.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?y?.(e):x?.(e)};return(0,a.jsx)("div",{"data-handleid":w,"data-nodeid":E,"data-handlepos":t,"data-id":`${M}-${E}-${w}-${e}`,className:(0,l.A)(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",N,p,{source:!S,target:S,connectable:o,connectablestart:r,connectableend:d,clickconnecting:D,connectingfrom:P,connectingto:j,valid:I,connectionindicator:o&&(!A||_)&&(A||R?d:r)}]),onMouseDown:L,onTouchStart:L,onClick:k?t=>{let{onClickConnectStart:o,onClickConnectEnd:a,connectionClickStartHandle:i,connectionMode:l,isValidConnection:d,lib:c,rfId:u,nodeLookup:g,connection:f}=C.getState();if(!E||!i&&!r)return;if(!i){o?.(t.nativeEvent,{nodeId:E,handleId:w,handleType:e}),C.setState({connectionClickStartHandle:{nodeId:E,type:e,id:w}});return}let p=(0,s.oj)(t.target),m=n||d,{connection:h,isValid:y}=s.aQ.isValid(t.nativeEvent,{handle:{nodeId:E,id:w,type:e},connectionMode:l,fromNodeId:i.nodeId,fromHandleId:i.id||null,fromType:i.type,isValidConnection:m,flowId:u,doc:p,lib:c,nodeLookup:g});y&&h&&O(h);let x=structuredClone(f);delete x.inProgress,x.toPosition=x.toHandle?x.toHandle.position:null,a?.(t,x),C.setState({connectionClickStartHandle:null})}:void 0,ref:v,...b,children:f})})),eC={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},eE={input:function({data:e,isConnectable:t,sourcePosition:n=s.yX.Bottom}){return(0,a.jsxs)(a.Fragment,{children:[e?.label,(0,a.jsx)(eS,{type:"source",position:n,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:n=s.yX.Top,sourcePosition:o=s.yX.Bottom}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eS,{type:"target",position:n,isConnectable:t}),e?.label,(0,a.jsx)(eS,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:n=s.yX.Top}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eS,{type:"target",position:n,isConnectable:t}),e?.label]})},group:function(){return null}},ek=e=>{let{width:t,height:n,x:o,y:r}=(0,s.aZ)(e.nodeLookup,{filter:e=>!!e.selected});return{width:(0,s.kf)(t)?t:null,height:(0,s.kf)(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function eN({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let o=h(),{width:r,height:s,transformString:d,userSelectionActive:u}=m(ek,c.x),g=ex(),f=(0,i.useRef)(null);(0,i.useEffect)(()=>{n||f.current?.focus({preventScroll:!0})},[n]);let p=!u&&null!==r&&null!==s;if(ey({nodeRef:f,disabled:!p}),!p)return null;let y=e?t=>{e(t,o.getState().nodes.filter(e=>e.selected))}:void 0;return(0,a.jsx)("div",{className:(0,l.A)(["react-flow__nodesselection","react-flow__container",t]),style:{transform:d},children:(0,a.jsx)("div",{ref:f,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(eC,e.key)&&(e.preventDefault(),g({direction:eC[e.key],factor:e.shiftKey?4:1}))},style:{width:r,height:s}})})}let eM="u">typeof window?window:void 0,eP=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ej({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:l,onPaneScroll:s,paneClickDistance:d,deleteKeyCode:u,selectionKeyCode:g,selectionOnDrag:f,selectionMode:p,onSelectionStart:y,onSelectionEnd:x,multiSelectionKeyCode:b,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:S,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:k,panOnScrollSpeed:N,panOnScrollMode:M,zoomOnDoubleClick:P,panOnDrag:j,autoPanOnSelection:D,defaultViewport:_,translateExtent:A,minZoom:R,maxZoom:I,preventScrolling:O,onSelectionContextMenu:L,noWheelClassName:z,noPanClassName:$,disableKeyboardA11y:B,onViewportChange:V,isControlledViewport:F}){let{nodesSelectionActive:T,userSelectionActive:Z}=m(eP,c.x),X=H(g,{target:eM}),W=H(v,{target:eM}),K=W||j,Y=W||k,Q=f&&!0!==K,U=X||Z||Q;return!function({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=h(),{deleteElements:o}=ea(),r=H(e,{actInsideInputWithModifier:!1}),a=H(t,{target:el});(0,i.useEffect)(()=>{if(r){let{edges:e,nodes:t}=n.getState();o({nodes:t.filter(ei),edges:e.filter(ei)}),n.setState({nodesSelectionActive:!1})}},[r]),(0,i.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}({deleteKeyCode:u,multiSelectionKeyCode:b}),(0,a.jsx)(ec,{onPaneContextMenu:l,elementsSelectable:S,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:Y,panOnScrollSpeed:N,panOnScrollMode:M,zoomOnDoubleClick:P,panOnDrag:!X&&K,defaultViewport:_,translateExtent:A,minZoom:R,maxZoom:I,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:z,noPanClassName:$,onViewportChange:V,isControlledViewport:F,paneClickDistance:d,selectionOnDrag:Q,children:(0,a.jsxs)(em,{onSelectionStart:y,onSelectionEnd:x,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:l,onPaneScroll:s,panOnDrag:K,autoPanOnSelection:D,isSelecting:!!U,selectionMode:p,selectionKeyPressed:X,paneClickDistance:d,selectionOnDrag:Q,children:[e,T&&(0,a.jsx)(eN,{onSelectionContextMenu:L,noPanClassName:$,disableKeyboardA11y:B})]})})}ej.displayName="FlowRenderer";let eD=(0,i.memo)(ej),e_=e=>e.updateNodeInternals;var eA=(0,i.memo)(function({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:d,onDoubleClick:u,nodesDraggable:g,elementsSelectable:f,nodesConnectable:p,nodesFocusable:y,resizeObserver:x,noDragClassName:v,noPanClassName:w,disableKeyboardA11y:S,rfId:C,nodeTypes:E,nodeClickDistance:k,onError:N}){let{node:M,internals:P,isParent:j}=m(t=>{let n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}},c.x),D=M.type||"default",_=E?.[D]||eE[D];void 0===_&&(N?.("003",s.xc.error003(D)),D="default",_=E?.default||eE.default);let A=!!(M.draggable||g&&void 0===M.draggable),R=!!(M.selectable||f&&void 0===M.selectable),I=!!(M.connectable||p&&void 0===M.connectable),O=!!(M.focusable||y&&void 0===M.focusable),L=h(),z=(0,s.QE)(M),$=function({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){let r=h(),a=(0,i.useRef)(null),l=(0,i.useRef)(null),s=(0,i.useRef)(e.sourcePosition),d=(0,i.useRef)(e.targetPosition),c=(0,i.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,i.useEffect)(()=>{!a.current||e.hidden||u&&l.current===a.current||(l.current&&o?.unobserve(l.current),o?.observe(a.current),l.current=a.current)},[u,e.hidden]),(0,i.useEffect)(()=>()=>{l.current&&(o?.unobserve(l.current),l.current=null)},[]),(0,i.useEffect)(()=>{if(a.current){let n=c.current!==t,o=s.current!==e.sourcePosition,i=d.current!==e.targetPosition;(n||o||i)&&(c.current=t,s.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}({node:M,nodeType:D,hasDimensions:z,resizeObserver:x}),B=ey({nodeRef:$,disabled:M.hidden||!A,noDragClassName:v,handleSelector:M.dragHandle,nodeId:e,isSelectable:R,nodeClickDistance:k}),V=ex();if(M.hidden)return null;let H=(0,s.uD)(M),F=void 0===M.internals.handleBounds?{width:M.width??M.initialWidth??M.style?.width,height:M.height??M.initialHeight??M.style?.height}:{width:M.width??M.style?.width,height:M.height??M.style?.height},T=R||A||t||n||o||r,Z=n?e=>n(e,{...P.userNode}):void 0,X=o?e=>o(e,{...P.userNode}):void 0,W=r?e=>r(e,{...P.userNode}):void 0,K=d?e=>d(e,{...P.userNode}):void 0,Y=u?e=>u(e,{...P.userNode}):void 0;return(0,a.jsx)("div",{className:(0,l.A)(["react-flow__node",`react-flow__node-${D}`,{[w]:A},M.className,{selected:M.selected,selectable:R,parent:j,draggable:A,dragging:B}]),ref:$,style:{zIndex:P.z,transform:`translate(${P.positionAbsolute.x}px,${P.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:z?"visible":"hidden",...M.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:Z,onMouseMove:X,onMouseLeave:W,onContextMenu:K,onClick:n=>{let{selectNodesOnDrag:o,nodeDragThreshold:r}=L.getState();R&&(!o||!A||r>0)&&eh({id:e,store:L,nodeRef:$}),t&&t(n,{...P.userNode})},onDoubleClick:Y,onKeyDown:O?t=>{if(!(0,s.v5)(t.nativeEvent)&&!S){if(s.tn.includes(t.key)&&R)eh({id:e,store:L,unselect:"Escape"===t.key,nodeRef:$});else if(A&&M.selected&&Object.prototype.hasOwnProperty.call(eC,t.key)){t.preventDefault();let{ariaLabelConfig:e}=L.getState();L.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~P.positionAbsolute.x,y:~~P.positionAbsolute.y})}),V({direction:eC[t.key],factor:t.shiftKey?4:1})}}}:void 0,tabIndex:O?0:void 0,onFocus:O?()=>{if(S||!$.current?.matches(":focus-visible"))return;let{transform:t,width:n,height:o,autoPanOnNodeFocus:r,setCenter:a}=L.getState();!r||(0,s.U$)(new Map([[e,M]]),{x:0,y:0,width:n,height:o},t,!0).length>0||a(M.position.x+H.width/2,M.position.y+H.height/2,{zoom:t[2]})}:void 0,role:M.ariaRole??(O?"group":void 0),"aria-roledescription":"node","aria-describedby":S?void 0:`${b}-${C}`,"aria-label":M.ariaLabel,...M.domAttributes,children:(0,a.jsx)(ev,{value:e,children:(0,a.jsx)(_,{id:e,data:M.data,type:D,positionAbsoluteX:P.positionAbsolute.x,positionAbsoluteY:P.positionAbsolute.y,selected:M.selected??!1,selectable:R,draggable:A,deletable:M.deletable??!0,isConnectable:I,sourcePosition:M.sourcePosition,targetPosition:M.targetPosition,dragging:B,dragHandle:M.dragHandle,zIndex:P.z,parentId:M.parentId,...H})})})});let eR=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function eI(e){var t;let{nodesDraggable:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:l,onError:d}=m(eR,c.x),u=(t=e.onlyRenderVisibleElements,m((0,i.useCallback)(e=>t?(0,s.U$)(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(e=>e.id):Array.from(e.nodeLookup.keys()),[t]),c.x)),g=function(){let e=m(e_),[t]=(0,i.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,i.useEffect)(()=>()=>{t?.disconnect()},[t]),t}();return(0,a.jsx)("div",{className:"react-flow__nodes",style:es,children:u.map(t=>(0,a.jsx)(eA,{id:t,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:g,nodesDraggable:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:l,nodeClickDistance:e.nodeClickDistance,onError:d},t))})}eI.displayName="NodeRenderer";let eO=(0,i.memo)(eI),eL={[s.TG.Arrow]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,a.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[s.TG.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,a.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},ez=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:l="strokeWidth",strokeWidth:d,orient:c="auto-start-reverse"})=>{let u,g=(u=h(),(0,i.useMemo)(()=>Object.prototype.hasOwnProperty.call(eL,t)?eL[t]:(u.getState().onError?.("009",s.xc.error009(t)),null),[t]));return g?(0,a.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:l,orient:c,refX:"0",refY:"0",children:(0,a.jsx)(g,{color:n,strokeWidth:d})}):null},e$=({defaultColor:e,rfId:t})=>{let n=m(e=>e.edges),o=m(e=>e.defaultEdgeOptions),r=(0,i.useMemo)(()=>(0,s.Hm)(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?(0,a.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,a.jsx)("defs",{children:r.map(e=>(0,a.jsx)(ez,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};e$.displayName="MarkerDefinitions";var eB=(0,i.memo)(e$);function eV({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:s,labelBgPadding:d=[2,4],labelBgBorderRadius:c=2,children:u,className:g,...f}){let[p,m]=(0,i.useState)({x:1,y:0,width:0,height:0}),h=(0,l.A)(["react-flow__edge-textwrapper",g]),y=(0,i.useRef)(null);return((0,i.useEffect)(()=>{if(y.current){let e=y.current.getBBox();m({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n)?(0,a.jsxs)("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:h,visibility:p.width?"visible":"hidden",...f,children:[r&&(0,a.jsx)("rect",{width:p.width+2*d[0],x:-d[0],y:-d[1],height:p.height+2*d[1],className:"react-flow__edge-textbg",style:s,rx:c,ry:c}),(0,a.jsx)("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:y,style:o,children:n}),u]}):null}eV.displayName="EdgeText";let eH=(0,i.memo)(eV);function eF({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,interactionWidth:g=20,...f}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{...f,d:e,fill:"none",className:(0,l.A)(["react-flow__edge-path",f.className])}),g?(0,a.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}):null,o&&(0,s.kf)(t)&&(0,s.kf)(n)?(0,a.jsx)(eH,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u}):null]})}function eT({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===s.yX.Left||e===s.yX.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function eZ({sourceX:e,sourceY:t,sourcePosition:n=s.yX.Bottom,targetX:o,targetY:r,targetPosition:a=s.yX.Top}){let[i,l]=eT({pos:n,x1:e,y1:t,x2:o,y2:r}),[d,c]=eT({pos:a,x1:o,y1:r,x2:e,y2:t}),[u,g,f,p]=(0,s.e_)({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:l,targetControlX:d,targetControlY:c});return[`M${e},${t} C${i},${l} ${d},${c} ${o},${r}`,u,g,f,p]}function eX(e){return(0,i.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:l,targetPosition:s,label:d,labelStyle:c,labelShowBg:u,labelBgStyle:g,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:y,interactionWidth:x})=>{let[b,v,w]=eZ({sourceX:n,sourceY:o,sourcePosition:l,targetX:r,targetY:i,targetPosition:s}),S=e.isInternal?void 0:t;return(0,a.jsx)(eF,{id:S,path:b,labelX:v,labelY:w,label:d,labelStyle:c,labelShowBg:u,labelBgStyle:g,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:y,interactionWidth:x})})}let eW=eX({isInternal:!1}),eK=eX({isInternal:!0});function eY(e){return(0,i.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:g,labelBgBorderRadius:f,style:p,sourcePosition:m=s.yX.Bottom,targetPosition:h=s.yX.Top,markerEnd:y,markerStart:x,pathOptions:b,interactionWidth:v})=>{let[w,S,C]=(0,s.oN)({sourceX:n,sourceY:o,sourcePosition:m,targetX:r,targetY:i,targetPosition:h,borderRadius:b?.borderRadius,offset:b?.offset,stepPosition:b?.stepPosition}),E=e.isInternal?void 0:t;return(0,a.jsx)(eF,{id:E,path:w,labelX:S,labelY:C,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:g,labelBgBorderRadius:f,style:p,markerEnd:y,markerStart:x,interactionWidth:v})})}eW.displayName="SimpleBezierEdge",eK.displayName="SimpleBezierEdgeInternal";let eQ=eY({isInternal:!1}),eU=eY({isInternal:!0});function eq(e){return(0,i.memo)(({id:t,...n})=>{let o=e.isInternal?void 0:t;return(0,a.jsx)(eQ,{...n,id:o,pathOptions:(0,i.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}eQ.displayName="SmoothStepEdge",eU.displayName="SmoothStepEdgeInternal";let eG=eq({isInternal:!1}),eJ=eq({isInternal:!0});function e0(e){return(0,i.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:g,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:h,interactionWidth:y})=>{let[x,b,v]=(0,s.ah)({sourceX:n,sourceY:o,targetX:r,targetY:i}),w=e.isInternal?void 0:t;return(0,a.jsx)(eF,{id:w,path:x,labelX:b,labelY:v,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:g,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:h,interactionWidth:y})})}eG.displayName="StepEdge",eJ.displayName="StepEdgeInternal";let e1=e0({isInternal:!1}),e3=e0({isInternal:!0});function e2(e){return(0,i.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:l=s.yX.Bottom,targetPosition:d=s.yX.Top,label:c,labelStyle:u,labelShowBg:g,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:m,style:h,markerEnd:y,markerStart:x,pathOptions:b,interactionWidth:v})=>{let[w,S,C]=(0,s.Fp)({sourceX:n,sourceY:o,sourcePosition:l,targetX:r,targetY:i,targetPosition:d,curvature:b?.curvature}),E=e.isInternal?void 0:t;return(0,a.jsx)(eF,{id:E,path:w,labelX:S,labelY:C,label:c,labelStyle:u,labelShowBg:g,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:m,style:h,markerEnd:y,markerStart:x,interactionWidth:v})})}e1.displayName="StraightEdge",e3.displayName="StraightEdgeInternal";let e4=e2({isInternal:!1}),e5=e2({isInternal:!0});e4.displayName="BezierEdge",e5.displayName="BezierEdgeInternal";let e6={default:e5,straight:e3,step:eJ,smoothstep:eU,simplebezier:eK},e7={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},e8="react-flow__edgeupdater";function e9({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:d,type:c}){return(0,a.jsx)("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:d,className:(0,l.A)([e8,`${e8}-${c}`]),cx:e===s.yX.Left?t-o:e===s.yX.Right?t+o:t,cy:e===s.yX.Top?n-o:e===s.yX.Bottom?n+o:n,r:o,stroke:"transparent",fill:"transparent"})}function te({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:l,sourcePosition:d,targetPosition:c,onReconnect:u,onReconnectStart:g,onReconnectEnd:f,setReconnecting:p,setUpdateHover:m}){let y=h(),x=(e,t)=>{if(0!==e.button)return;let{autoPanOnConnect:o,domNode:r,connectionMode:a,connectionRadius:i,lib:l,onConnectStart:d,cancelConnection:c,nodeLookup:m,rfId:h,panBy:x,updateConnection:b}=y.getState(),v="target"===t.type;s.aQ.onPointerDown(e.nativeEvent,{autoPanOnConnect:o,connectionMode:a,connectionRadius:i,domNode:r,handleId:t.id,nodeId:t.nodeId,nodeLookup:m,isTarget:v,edgeUpdaterType:t.type,lib:l,flowId:h,cancelConnection:c,panBy:x,isValidConnection:(...e)=>y.getState().isValidConnection?.(...e)??!0,onConnect:e=>u?.(n,e),onConnectStart:(o,r)=>{p(!0),g?.(e,n,t.type),d?.(o,r)},onConnectEnd:(...e)=>y.getState().onConnectEnd?.(...e),onReconnectEnd:(e,o)=>{p(!1),f?.(e,n,t.type,o)},updateConnection:b,getTransform:()=>y.getState().transform,getFromHandle:()=>y.getState().connection.fromHandle,dragThreshold:y.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},b=()=>m(!0),v=()=>m(!1);return(0,a.jsxs)(a.Fragment,{children:[(!0===e||"source"===e)&&(0,a.jsx)(e9,{position:d,centerX:o,centerY:r,radius:t,onMouseDown:e=>x(e,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),onMouseEnter:b,onMouseOut:v,type:"source"}),(!0===e||"target"===e)&&(0,a.jsx)(e9,{position:c,centerX:i,centerY:l,radius:t,onMouseDown:e=>x(e,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),onMouseEnter:b,onMouseOut:v,type:"target"})]})}var tt=(0,i.memo)(function({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:d,onContextMenu:u,onMouseEnter:g,onMouseMove:f,onMouseLeave:p,reconnectRadius:y,onReconnect:x,onReconnectStart:b,onReconnectEnd:w,rfId:S,edgeTypes:C,noPanClassName:E,onError:k,disableKeyboardA11y:N}){let M=m(t=>t.edgeLookup.get(e)),P=m(e=>e.defaultEdgeOptions),j=(M=P?{...P,...M}:M).type||"default",D=C?.[j]||e6[j];void 0===D&&(k?.("011",s.xc.error011(j)),j="default",D=C?.default||e6.default);let _=!!(M.focusable||t&&void 0===M.focusable),A=void 0!==x&&(M.reconnectable||n&&void 0===M.reconnectable),R=!!(M.selectable||o&&void 0===M.selectable),I=(0,i.useRef)(null),[O,L]=(0,i.useState)(!1),[z,$]=(0,i.useState)(!1),B=h(),{zIndex:V,sourceX:H,sourceY:F,targetX:T,targetY:Z,sourcePosition:X,targetPosition:W}=m((0,i.useCallback)(t=>{let n=t.nodeLookup.get(M.source),o=t.nodeLookup.get(M.target);if(!n||!o)return{zIndex:M.zIndex,...e7};let r=(0,s.b5)({id:e,sourceNode:n,targetNode:o,sourceHandle:M.sourceHandle||null,targetHandle:M.targetHandle||null,connectionMode:t.connectionMode,onError:k});return{zIndex:(0,s.qX)({selected:M.selected,zIndex:M.zIndex,sourceNode:n,targetNode:o,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...r||e7}},[M.source,M.target,M.sourceHandle,M.targetHandle,M.selected,M.zIndex]),c.x),K=(0,i.useMemo)(()=>M.markerStart?`url('#${(0,s.aW)(M.markerStart,S)}')`:void 0,[M.markerStart,S]),Y=(0,i.useMemo)(()=>M.markerEnd?`url('#${(0,s.aW)(M.markerEnd,S)}')`:void 0,[M.markerEnd,S]);if(M.hidden||null===H||null===F||null===T||null===Z)return null;let Q=d?e=>{d(e,{...M})}:void 0,U=u?e=>{u(e,{...M})}:void 0,q=g?e=>{g(e,{...M})}:void 0,G=f?e=>{f(e,{...M})}:void 0,J=p?e=>{p(e,{...M})}:void 0;return(0,a.jsx)("svg",{style:{zIndex:V},children:(0,a.jsxs)("g",{className:(0,l.A)(["react-flow__edge",`react-flow__edge-${j}`,M.className,E,{selected:M.selected,animated:M.animated,inactive:!R&&!r,updating:O,selectable:R}]),onClick:t=>{let{addSelectedEdges:n,unselectNodesAndEdges:o,multiSelectionActive:a}=B.getState();R&&(B.setState({nodesSelectionActive:!1}),M.selected&&a?(o({nodes:[],edges:[M]}),I.current?.blur()):n([e])),r&&r(t,M)},onDoubleClick:Q,onContextMenu:U,onMouseEnter:q,onMouseMove:G,onMouseLeave:J,onKeyDown:_?t=>{if(!N&&s.tn.includes(t.key)&&R){let{unselectNodesAndEdges:n,addSelectedEdges:o}=B.getState();"Escape"===t.key?(I.current?.blur(),n({edges:[M]})):o([e])}}:void 0,tabIndex:_?0:void 0,role:M.ariaRole??(_?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":null===M.ariaLabel?void 0:M.ariaLabel||`Edge from ${M.source} to ${M.target}`,"aria-describedby":_?`${v}-${S}`:void 0,ref:I,...M.domAttributes,children:[!z&&(0,a.jsx)(D,{id:e,source:M.source,target:M.target,type:M.type,selected:M.selected,animated:M.animated,selectable:R,deletable:M.deletable??!0,label:M.label,labelStyle:M.labelStyle,labelShowBg:M.labelShowBg,labelBgStyle:M.labelBgStyle,labelBgPadding:M.labelBgPadding,labelBgBorderRadius:M.labelBgBorderRadius,sourceX:H,sourceY:F,targetX:T,targetY:Z,sourcePosition:X,targetPosition:W,data:M.data,style:M.style,sourceHandleId:M.sourceHandle,targetHandleId:M.targetHandle,markerStart:K,markerEnd:Y,pathOptions:"pathOptions"in M?M.pathOptions:void 0,interactionWidth:M.interactionWidth}),A&&(0,a.jsx)(te,{edge:M,isReconnectable:A,reconnectRadius:y,onReconnect:x,onReconnectStart:b,onReconnectEnd:w,sourceX:H,sourceY:F,targetX:T,targetY:Z,sourcePosition:X,targetPosition:W,setUpdateHover:L,setReconnecting:$})]})})});let tn=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function to({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:l,onEdgeContextMenu:d,onEdgeMouseEnter:u,onEdgeMouseMove:g,onEdgeMouseLeave:f,onEdgeClick:p,reconnectRadius:h,onEdgeDoubleClick:y,onReconnectStart:x,onReconnectEnd:b,disableKeyboardA11y:v}){let{edgesFocusable:w,edgesReconnectable:S,elementsSelectable:C,onError:E}=m(tn,c.x),k=m((0,i.useCallback)(e=>{if(!t)return e.edges.map(e=>e.id);let n=[];if(e.width&&e.height)for(let t of e.edges){let o=e.nodeLookup.get(t.source),r=e.nodeLookup.get(t.target);o&&r&&(0,s.uj)({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&n.push(t.id)}return n},[t]),c.x);return(0,a.jsxs)("div",{className:"react-flow__edges",children:[(0,a.jsx)(eB,{defaultColor:e,rfId:n}),k.map(e=>(0,a.jsx)(tt,{id:e,edgesFocusable:w,edgesReconnectable:S,elementsSelectable:C,noPanClassName:r,onReconnect:l,onContextMenu:d,onMouseEnter:u,onMouseMove:g,onMouseLeave:f,onClick:p,reconnectRadius:h,onDoubleClick:y,onReconnectStart:x,onReconnectEnd:b,rfId:n,onError:E,edgeTypes:o,disableKeyboardA11y:v},e))]})}to.displayName="EdgeRenderer";let tr=(0,i.memo)(to),ta=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function ti({children:e}){let t=m(ta);return(0,a.jsx)("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}let tl=e=>e.panZoom?.syncViewport;function ts(e){return e.connection.inProgress?{...e.connection,to:(0,s.Ff)(e.connection.to,e.transform)}:{...e.connection}}let td=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function tc({containerStyle:e,style:t,type:n,component:o}){let{nodesConnectable:r,width:i,height:d,isValid:u,inProgress:g}=m(td,c.x);return i&&r&&g?(0,a.jsx)("svg",{style:e,width:i,height:d,className:"react-flow__connectionline react-flow__container",children:(0,a.jsx)("g",{className:(0,l.A)(["react-flow__connection",(0,s.HF)(u)]),children:(0,a.jsx)(tu,{style:t,type:n,CustomComponent:o,isValid:u})})}):null}let tu=({style:e,type:t=s.Do.Bezier,CustomComponent:n,isValid:o})=>{let{inProgress:r,from:i,fromNode:l,fromHandle:d,fromPosition:u,to:g,toNode:f,toHandle:p,toPosition:h,pointer:y}=m(ts,c.x);if(!r)return;if(n)return(0,a.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:l,fromHandle:d,fromX:i.x,fromY:i.y,toX:g.x,toY:g.y,fromPosition:u,toPosition:h,connectionStatus:(0,s.HF)(o),toNode:f,toHandle:p,pointer:y});let x="",b={sourceX:i.x,sourceY:i.y,sourcePosition:u,targetX:g.x,targetY:g.y,targetPosition:h};switch(t){case s.Do.Bezier:[x]=(0,s.Fp)(b);break;case s.Do.SimpleBezier:[x]=eZ(b);break;case s.Do.Step:[x]=(0,s.oN)({...b,borderRadius:0});break;case s.Do.SmoothStep:[x]=(0,s.oN)(b);break;default:[x]=(0,s.ah)(b)}return(0,a.jsx)("path",{d:x,fill:"none",className:"react-flow__connection-path",style:e})};tu.displayName="ConnectionLine";let tg={};function tf(e=tg){(0,i.useRef)(e),h(),(0,i.useEffect)(()=>{},[e])}function tp({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:l,onEdgeDoubleClick:s,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:g,onSelectionContextMenu:f,onSelectionStart:p,onSelectionEnd:y,connectionLineType:x,connectionLineStyle:b,connectionLineComponent:v,connectionLineContainerStyle:w,selectionKeyCode:S,selectionOnDrag:C,selectionMode:E,multiSelectionKeyCode:k,panActivationKeyCode:N,zoomActivationKeyCode:M,deleteKeyCode:P,onlyRenderVisibleElements:j,elementsSelectable:D,defaultViewport:_,translateExtent:A,minZoom:R,maxZoom:I,preventScrolling:O,defaultMarkerColor:L,zoomOnScroll:z,zoomOnPinch:$,panOnScroll:B,panOnScrollSpeed:V,panOnScrollMode:H,zoomOnDoubleClick:F,panOnDrag:T,autoPanOnSelection:Z,onPaneClick:X,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneScroll:Q,onPaneContextMenu:U,paneClickDistance:q,nodeClickDistance:G,onEdgeContextMenu:J,onEdgeMouseEnter:ee,onEdgeMouseMove:et,onEdgeMouseLeave:en,reconnectRadius:eo,onReconnect:er,onReconnectStart:ei,onReconnectEnd:el,noDragClassName:es,noWheelClassName:ed,noPanClassName:ec,disableKeyboardA11y:eu,nodeExtent:eg,rfId:ef,viewport:ep,onViewportChange:em}){let eh,ey,ex,eb;return tf(e),tf(t),h(),(0,i.useRef)(!1),(0,i.useEffect)(()=>{},[]),eh=ea(),ey=(0,i.useRef)(!1),(0,i.useEffect)(()=>{!ey.current&&eh.viewportInitialized&&n&&(setTimeout(()=>n(eh),1),ey.current=!0)},[n,eh.viewportInitialized]),ex=m(tl),eb=h(),(0,i.useEffect)(()=>{ep&&(ex?.(ep),eb.setState({transform:[ep.x,ep.y,ep.zoom]}))},[ep,ex]),(0,a.jsx)(eD,{onPaneClick:X,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneContextMenu:U,onPaneScroll:Q,paneClickDistance:q,deleteKeyCode:P,selectionKeyCode:S,selectionOnDrag:C,selectionMode:E,onSelectionStart:p,onSelectionEnd:y,multiSelectionKeyCode:k,panActivationKeyCode:N,zoomActivationKeyCode:M,elementsSelectable:D,zoomOnScroll:z,zoomOnPinch:$,zoomOnDoubleClick:F,panOnScroll:B,panOnScrollSpeed:V,panOnScrollMode:H,panOnDrag:T,autoPanOnSelection:Z,defaultViewport:_,translateExtent:A,minZoom:R,maxZoom:I,onSelectionContextMenu:f,preventScrolling:O,noDragClassName:es,noWheelClassName:ed,noPanClassName:ec,disableKeyboardA11y:eu,onViewportChange:em,isControlledViewport:!!ep,children:(0,a.jsxs)(ti,{children:[(0,a.jsx)(tr,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:s,onReconnect:er,onReconnectStart:ei,onReconnectEnd:el,onlyRenderVisibleElements:j,onEdgeContextMenu:J,onEdgeMouseEnter:ee,onEdgeMouseMove:et,onEdgeMouseLeave:en,reconnectRadius:eo,defaultMarkerColor:L,noPanClassName:ec,disableKeyboardA11y:eu,rfId:ef}),(0,a.jsx)(tc,{style:b,type:x,component:v,containerStyle:w}),(0,a.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,a.jsx)(eO,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:l,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:g,nodeClickDistance:G,onlyRenderVisibleElements:j,noPanClassName:ec,noDragClassName:es,disableKeyboardA11y:eu,nodeExtent:eg,rfId:ef}),(0,a.jsx)("div",{className:"react-flow__viewport-portal"})]})})}tp.displayName="GraphView";let tm=(0,i.memo)(tp),th=(0,s.kr)("React Flow","https://reactflow.dev/"),ty=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:a,fitView:i,fitViewOptions:l,minZoom:d=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:g,zIndexMode:f="basic"}={})=>{let p=new Map,m=new Map,h=new Map,y=new Map,x=o??t??[],b=n??e??[],v=u??[0,0],w=g??s.ZO;(0,s.qn)(h,y,x);let{nodesInitialized:S}=(0,s.bi)(b,p,m,{nodeOrigin:v,nodeExtent:w,zIndexMode:f}),C=[0,0,1];if(i&&r&&a){let e=(0,s.aZ)(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),{x:t,y:n,zoom:o}=(0,s.R4)(e,r,a,d,c,l?.padding??.1);C=[t,n,o]}return{rfId:"1",width:r??0,height:a??0,transform:C,nodes:b,nodesInitialized:S,nodeLookup:p,parentLookup:m,edges:x,edgeLookup:y,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==n,hasDefaultEdges:void 0!==o,panZoom:null,minZoom:d,maxZoom:c,translateExtent:s.ZO,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:s.WZ.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:v,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:l,fitViewResolver:null,connection:{...s.bK},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:th,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:s.tM,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function tx({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:l,initialMinZoom:c,initialMaxZoom:u,initialFitViewOptions:g,fitView:p,nodeOrigin:m,nodeExtent:h,zIndexMode:y,children:x}){let[b]=(0,i.useState)(()=>(({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:a,fitView:i,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:g,nodeExtent:f,zIndexMode:p})=>(0,d.h)((d,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:o,width:r,height:a,minZoom:i,maxZoom:l}=m();t&&(await (0,s.IO)({nodes:e,width:r,height:a,panZoom:t,minZoom:i,maxZoom:l},n),o?.resolve(!0),d({fitViewResolver:null}))}return{...ty({nodes:e,edges:t,width:r,height:a,fitView:i,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:g,nodeExtent:f,defaultNodes:n,defaultEdges:o,zIndexMode:p}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r,fitViewQueued:a,zIndexMode:i,nodesSelectionActive:l}=m(),{nodesInitialized:c,hasSelectedNodes:u}=(0,s.bi)(e,t,n,{nodeOrigin:o,nodeExtent:f,elevateNodesOnSelect:r,checkEquality:!0,zIndexMode:i}),g=l&&u;a&&c?(h(),d({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:g})):d({nodes:e,nodesInitialized:c,nodesSelectionActive:g})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();(0,s.qn)(t,n,e),d({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),d({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),d({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:o,domNode:r,nodeOrigin:a,nodeExtent:i,debug:l,fitViewQueued:c,zIndexMode:u}=m(),{changes:g,updatedInternals:f}=(0,s.uL)(e,n,o,r,a,i,u);f&&((0,s.vS)(n,o,{nodeOrigin:a,nodeExtent:i,zIndexMode:u}),c?(h(),d({fitViewQueued:!1,fitViewOptions:void 0})):d({}),g?.length>0&&(l&&console.log("React Flow: trigger node changes",g),t?.(g)))},updateNodePositions:(e,t=!1)=>{let n=[],o=[],{nodeLookup:r,triggerNodeChanges:a,connection:i,updateConnection:l,onNodesChangeMiddlewareMap:d}=m();for(let[a,d]of e){let e=r.get(a),c=!!(e?.expandParent&&e?.parentId&&d?.position),u={id:a,type:"position",position:c?{x:Math.max(0,d.position.x),y:Math.max(0,d.position.y)}:d.position,dragging:t};if(e&&i.inProgress&&i.fromNode.id===e.id){let t=(0,s.M_)(e,i.fromHandle,s.yX.Left,!0);l({...i,from:t})}c&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...d.internals.positionAbsolute,width:d.measured.width??0,height:d.measured.height??0}}),o.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=(0,s.r8)(n,r,e,t);o.push(...a)}for(let e of d.values())o=e(o);a(o)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:a}=m();e?.length&&(r&&n(Z(e,o)),a&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:a}=m();e?.length&&(r&&n(Z(e,o)),a&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:a}=m();t?r(e.map(e=>K(e,!0))):(r(Y(o,new Set([...e]),!0)),a(Y(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:a}=m();t?a(e.map(e=>K(e,!0))):(a(Y(n,new Set([...e]))),r(Y(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:o,nodeLookup:r,triggerNodeChanges:a,triggerEdgeChanges:i}=m(),l=[];for(let t of e||o){if(!t.selected)continue;let e=r.get(t.id);e&&(e.selected=!1),l.push(K(t.id,!1))}let s=[];for(let e of t||n)e.selected&&s.push(K(e.id,!1));a(l),i(s)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),d({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),d({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),d({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o,elementsSelectable:r}=m();if(!r)return;let a=t.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]),i=e.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]);n(a),o(i)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:o,nodeOrigin:r,elevateNodesOnSelect:a,nodeExtent:i,zIndexMode:l}=m();(e[0][0]!==i[0][0]||e[0][1]!==i[0][1]||e[1][0]!==i[1][0]||e[1][1]!==i[1][1])&&((0,s.bi)(t,n,o,{nodeOrigin:r,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:l}),d({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:o,panZoom:r,translateExtent:a}=m();return(0,s.No)({delta:e,panZoom:r,transform:t,translateExtent:a,width:n,height:o})},setCenter:async(e,t,n)=>{let{width:o,height:r,maxZoom:a,panZoom:i}=m();if(!i)return!1;let l=void 0!==n?.zoom?n.zoom:a;return await i.setViewport({x:o/2-e*l,y:r/2-t*l,zoom:l},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{d({connection:{...s.bK}})},updateConnection:e=>{d({connection:e})},reset:()=>d({...ty()})}},Object.is))({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:l,fitView:p,minZoom:c,maxZoom:u,fitViewOptions:g,nodeOrigin:m,nodeExtent:h,zIndexMode:y}));return(0,a.jsx)(f,{value:b,children:(0,a.jsx)(eo,{children:x})})}function tb({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:l,height:s,fitView:d,fitViewOptions:c,minZoom:u,maxZoom:f,nodeOrigin:p,nodeExtent:m,zIndexMode:h}){return(0,i.useContext)(g)?(0,a.jsx)(a.Fragment,{children:e}):(0,a.jsx)(tx,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:l,initialHeight:s,fitView:d,initialFitViewOptions:c,initialMinZoom:u,initialMaxZoom:f,nodeOrigin:p,nodeExtent:m,zIndexMode:h,children:e})}let tv={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var tw=J(function({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:d,edgeTypes:c,onNodeClick:u,onEdgeClick:g,onInit:f,onMove:p,onMoveStart:m,onMoveEnd:h,onConnect:y,onConnectStart:x,onConnectEnd:b,onClickConnectStart:v,onClickConnectEnd:w,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:k,onNodeContextMenu:M,onNodeDoubleClick:P,onNodeDragStart:j,onNodeDrag:D,onNodeDragStop:_,onNodesDelete:O,onEdgesDelete:L,onDelete:z,onSelectionChange:V,onSelectionDragStart:H,onSelectionDrag:F,onSelectionDragStop:T,onSelectionContextMenu:Z,onSelectionStart:X,onSelectionEnd:W,onBeforeDelete:K,connectionMode:Y,connectionLineType:Q=s.Do.Bezier,connectionLineStyle:U,connectionLineComponent:q,connectionLineContainerStyle:G,deleteKeyCode:J="Backspace",selectionKeyCode:ee="Shift",selectionOnDrag:et=!1,selectionMode:en=s.Qc.Full,panActivationKeyCode:eo="Space",multiSelectionKeyCode:er=(0,s.Ue)()?"Meta":"Control",zoomActivationKeyCode:ea=(0,s.Ue)()?"Meta":"Control",snapToGrid:ei,snapGrid:el,onlyRenderVisibleElements:es=!1,selectNodesOnDrag:ed,nodesDraggable:ec,autoPanOnNodeFocus:eu,nodesConnectable:eg,nodesFocusable:ef,nodeOrigin:ep=R,edgesFocusable:em,edgesReconnectable:eh,elementsSelectable:ey=!0,defaultViewport:ex=I,minZoom:eb=.5,maxZoom:ev=2,translateExtent:ew=s.ZO,preventScrolling:eS=!0,nodeExtent:eC,defaultMarkerColor:eE="#b1b1b7",zoomOnScroll:ek=!0,zoomOnPinch:eN=!0,panOnScroll:eM=!1,panOnScrollSpeed:eP=.5,panOnScrollMode:ej=s.ny.Free,zoomOnDoubleClick:eD=!0,panOnDrag:e_=!0,onPaneClick:eA,onPaneMouseEnter:eR,onPaneMouseMove:eI,onPaneMouseLeave:eO,onPaneScroll:eL,onPaneContextMenu:ez,paneClickDistance:e$=1,nodeClickDistance:eB=0,children:eV,onReconnect:eH,onReconnectStart:eF,onReconnectEnd:eT,onEdgeContextMenu:eZ,onEdgeDoubleClick:eX,onEdgeMouseEnter:eW,onEdgeMouseMove:eK,onEdgeMouseLeave:eY,reconnectRadius:eQ=10,onNodesChange:eU,onEdgesChange:eq,noDragClassName:eG="nodrag",noWheelClassName:eJ="nowheel",noPanClassName:e0="nopan",fitView:e1,fitViewOptions:e3,connectOnClick:e2,attributionPosition:e4,proOptions:e5,defaultEdgeOptions:e6,elevateNodesOnSelect:e7=!0,elevateEdgesOnSelect:e8=!1,disableKeyboardA11y:e9=!1,autoPanOnConnect:te,autoPanOnNodeDrag:tt,autoPanOnSelection:tn=!0,autoPanSpeed:to,connectionRadius:tr,isValidConnection:ta,onError:ti,style:tl,id:ts,nodeDragThreshold:td,connectionDragThreshold:tc,viewport:tu,onViewportChange:tg,width:tf,height:tp,colorMode:th="light",debug:ty,onScroll:tx,ariaLabelConfig:tw,zIndexMode:tS="basic",...tC},tE){let tk=ts||"1",tN=function(e){let[t,n]=(0,i.useState)("system"===e?null:e);return(0,i.useEffect)(()=>{if("system"!==e)return void n(e);let t=B(),o=()=>n(t?.matches?"dark":"light");return o(),t?.addEventListener("change",o),()=>{t?.removeEventListener("change",o)}},[e]),null!==t?t:B()?.matches?"dark":"light"}(th),tM=(0,i.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),tx?.(e)},[tx]);return(0,a.jsx)("div",{"data-testid":"rf__wrapper",...tC,onScroll:tM,style:{...tl,...tv},ref:tE,className:(0,l.A)(["react-flow",r,tN]),id:ts,role:"application",children:(0,a.jsxs)(tb,{nodes:e,edges:t,width:tf,height:tp,fitView:e1,fitViewOptions:e3,minZoom:eb,maxZoom:ev,nodeOrigin:ep,nodeExtent:eC,zIndexMode:tS,children:[(0,a.jsx)($,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:y,onConnectStart:x,onConnectEnd:b,onClickConnectStart:v,onClickConnectEnd:w,nodesDraggable:ec,autoPanOnNodeFocus:eu,nodesConnectable:eg,nodesFocusable:ef,edgesFocusable:em,edgesReconnectable:eh,elementsSelectable:ey,elevateNodesOnSelect:e7,elevateEdgesOnSelect:e8,minZoom:eb,maxZoom:ev,nodeExtent:eC,onNodesChange:eU,onEdgesChange:eq,snapToGrid:ei,snapGrid:el,connectionMode:Y,translateExtent:ew,connectOnClick:e2,defaultEdgeOptions:e6,fitView:e1,fitViewOptions:e3,onNodesDelete:O,onEdgesDelete:L,onDelete:z,onNodeDragStart:j,onNodeDrag:D,onNodeDragStop:_,onSelectionDrag:F,onSelectionDragStart:H,onSelectionDragStop:T,onMove:p,onMoveStart:m,onMoveEnd:h,noPanClassName:e0,nodeOrigin:ep,rfId:tk,autoPanOnConnect:te,autoPanOnNodeDrag:tt,autoPanSpeed:to,onError:ti,connectionRadius:tr,isValidConnection:ta,selectNodesOnDrag:ed,nodeDragThreshold:td,connectionDragThreshold:tc,onBeforeDelete:K,debug:ty,ariaLabelConfig:tw,zIndexMode:tS}),(0,a.jsx)(tm,{onInit:f,onNodeClick:u,onEdgeClick:g,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:k,onNodeContextMenu:M,onNodeDoubleClick:P,nodeTypes:d,edgeTypes:c,connectionLineType:Q,connectionLineStyle:U,connectionLineComponent:q,connectionLineContainerStyle:G,selectionKeyCode:ee,selectionOnDrag:et,selectionMode:en,deleteKeyCode:J,multiSelectionKeyCode:er,panActivationKeyCode:eo,zoomActivationKeyCode:ea,onlyRenderVisibleElements:es,defaultViewport:ex,translateExtent:ew,minZoom:eb,maxZoom:ev,preventScrolling:eS,zoomOnScroll:ek,zoomOnPinch:eN,zoomOnDoubleClick:eD,panOnScroll:eM,panOnScrollSpeed:eP,panOnScrollMode:ej,panOnDrag:e_,autoPanOnSelection:tn,onPaneClick:eA,onPaneMouseEnter:eR,onPaneMouseMove:eI,onPaneMouseLeave:eO,onPaneScroll:eL,onPaneContextMenu:ez,paneClickDistance:e$,nodeClickDistance:eB,onSelectionContextMenu:Z,onSelectionStart:X,onSelectionEnd:W,onReconnect:eH,onReconnectStart:eF,onReconnectEnd:eT,onEdgeContextMenu:eZ,onEdgeDoubleClick:eX,onEdgeMouseEnter:eW,onEdgeMouseMove:eK,onEdgeMouseLeave:eY,reconnectRadius:eQ,defaultMarkerColor:eE,noDragClassName:eG,noWheelClassName:eJ,noPanClassName:e0,rfId:tk,disableKeyboardA11y:e9,nodeExtent:eC,viewport:tu,onViewportChange:tg}),(0,a.jsx)(A,{onSelectionChange:V}),eV,(0,a.jsx)(N,{proOptions:e5,position:e4}),(0,a.jsx)(E,{rfId:tk,disableKeyboardA11y:e9})]})})});let tS=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function tC({children:e}){let t=m(tS);return t?(0,u.createPortal)(e,t):null}let tE=e=>e.domNode?.querySelector(".react-flow__viewport-portal");function tk({children:e}){let t=m(tE);return t?(0,u.createPortal)(e,t):null}function tN(e){let[t,n]=(0,i.useState)(e),o=(0,i.useCallback)(e=>n(t=>Z(e,t)),[]);return[t,n,o]}function tM(e){return m((0,i.useCallback)(t=>t.nodeLookup.get(e),[e]),c.x)}function tP({dimensions:e,lineWidth:t,variant:n,className:o}){return(0,a.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:(0,l.A)(["react-flow__background-pattern",n,o])})}function tj({radius:e,className:t}){return(0,a.jsx)("circle",{cx:e,cy:e,r:e,className:(0,l.A)(["react-flow__background-pattern","dots",t])})}s.xc.error014(),(o=r||(r={})).Lines="lines",o.Dots="dots",o.Cross="cross";let tD={[r.Dots]:1,[r.Lines]:1,[r.Cross]:6},t_=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function tA({id:e,variant:t=r.Dots,gap:n=20,size:o,lineWidth:s=1,offset:d=0,color:u,bgColor:g,style:f,className:p,patternClassName:h}){let y=(0,i.useRef)(null),{transform:x,patternId:b}=m(t_,c.x),v=o||tD[t],w=t===r.Dots,S=t===r.Cross,C=Array.isArray(n)?n:[n,n],E=[C[0]*x[2]||1,C[1]*x[2]||1],k=v*x[2],N=Array.isArray(d)?d:[d,d],M=S?[k,k]:E,P=[N[0]*x[2]||1+M[0]/2,N[1]*x[2]||1+M[1]/2],j=`${b}${e||""}`;return(0,a.jsxs)("svg",{className:(0,l.A)(["react-flow__background",p]),style:{...f,...es,"--xy-background-color-props":g,"--xy-background-pattern-color-props":u},ref:y,"data-testid":"rf__background",children:[(0,a.jsx)("pattern",{id:j,x:x[0]%E[0],y:x[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${P[0]},-${P[1]})`,children:w?(0,a.jsx)(tj,{radius:k/2,className:h}):(0,a.jsx)(tP,{dimensions:M,lineWidth:s,variant:t,className:h})}),(0,a.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${j})`})]})}tA.displayName="Background";let tR=(0,i.memo)(tA);function tI(){return(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,a.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function tO(){return(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,a.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function tL(){return(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,a.jsx)("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function tz(){return(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,a.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function t$(){return(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,a.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function tB({children:e,className:t,...n}){return(0,a.jsx)("button",{type:"button",className:(0,l.A)(["react-flow__controls-button",t]),...n,children:e})}let tV=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function tH({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:s,onFitView:d,onInteractiveChange:u,className:g,children:f,position:p="bottom-left",orientation:y="vertical","aria-label":x}){let b=h(),{isInteractive:v,minZoomReached:w,maxZoomReached:S,ariaLabelConfig:C}=m(tV,c.x),{zoomIn:E,zoomOut:N,fitView:M}=ea();return(0,a.jsxs)(k,{className:(0,l.A)(["react-flow__controls","horizontal"===y?"horizontal":"vertical",g]),position:p,style:e,"data-testid":"rf__controls","aria-label":x??C["controls.ariaLabel"],children:[t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tB,{onClick:()=>{E(),i?.()},className:"react-flow__controls-zoomin",title:C["controls.zoomIn.ariaLabel"],"aria-label":C["controls.zoomIn.ariaLabel"],disabled:S,children:(0,a.jsx)(tI,{})}),(0,a.jsx)(tB,{onClick:()=>{N(),s?.()},className:"react-flow__controls-zoomout",title:C["controls.zoomOut.ariaLabel"],"aria-label":C["controls.zoomOut.ariaLabel"],disabled:w,children:(0,a.jsx)(tO,{})})]}),n&&(0,a.jsx)(tB,{className:"react-flow__controls-fitview",onClick:()=>{M(r),d?.()},title:C["controls.fitView.ariaLabel"],"aria-label":C["controls.fitView.ariaLabel"],children:(0,a.jsx)(tL,{})}),o&&(0,a.jsx)(tB,{className:"react-flow__controls-interactive",onClick:()=>{b.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),u?.(!v)},title:C["controls.interactive.ariaLabel"],"aria-label":C["controls.interactive.ariaLabel"],children:v?(0,a.jsx)(t$,{}):(0,a.jsx)(tz,{})}),f]})}tH.displayName="Controls";let tF=(0,i.memo)(tH),tT=(0,i.memo)(function({id:e,x:t,y:n,width:o,height:r,style:i,color:s,strokeColor:d,strokeWidth:c,className:u,borderRadius:g,shapeRendering:f,selected:p,onClick:m}){let{background:h,backgroundColor:y}=i||{};return(0,a.jsx)("rect",{className:(0,l.A)(["react-flow__minimap-node",{selected:p},u]),x:t,y:n,rx:g,ry:g,width:o,height:r,style:{fill:s||h||y,stroke:d,strokeWidth:c},shapeRendering:f,onClick:m?t=>m(t,e):void 0})}),tZ=e=>e.nodes.map(e=>e.id),tX=e=>e instanceof Function?e:()=>e,tW=(0,i.memo)(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:l,NodeComponent:d,onClick:u}){let{node:g,x:f,y:p,width:h,height:y}=m(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let o=n.internals.userNode,{x:r,y:a}=n.internals.positionAbsolute,{width:i,height:l}=(0,s.uD)(o);return{node:o,x:r,y:a,width:i,height:l}},c.x);return g&&!g.hidden&&(0,s.QE)(g)?(0,a.jsx)(d,{x:f,y:p,width:h,height:y,style:g.style,selected:!!g.selected,className:o(g),color:t(g),borderRadius:r,strokeColor:n(g),strokeWidth:i,shapeRendering:l,onClick:u,id:g.id}):null});var tK=(0,i.memo)(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=tT,onClick:l}){let s=m(tZ,c.x),d=tX(t),u=tX(e),g=tX(n),f="u"<typeof window||window.chrome?"crispEdges":"geometricPrecision";return(0,a.jsx)(a.Fragment,{children:s.map(e=>(0,a.jsx)(tW,{id:e,nodeColorFunc:d,nodeStrokeColorFunc:u,nodeClassNameFunc:g,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:l,shapeRendering:f},e))})});let tY=e=>!e.hidden,tQ=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?(0,s.Mi)((0,s.aZ)(e.nodeLookup,{filter:tY}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}};function tU({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:d=5,nodeStrokeWidth:u,nodeComponent:g,bgColor:f,maskColor:p,maskStrokeColor:y,maskStrokeWidth:x,position:b="bottom-right",onClick:v,onNodeClick:w,pannable:S=!1,zoomable:C=!1,ariaLabel:E,inversePan:N,zoomStep:M=1,offsetScale:P=5}){let j=h(),D=(0,i.useRef)(null),{boundingRect:_,viewBB:A,rfId:R,panZoom:I,translateExtent:O,flowWidth:L,flowHeight:z,ariaLabelConfig:$}=m(tQ,c.x),B=e?.width??200,V=e?.height??150,H=Math.max(_.width/B,_.height/V),F=H*B,T=H*V,Z=P*H,X=_.x-(F-_.width)/2-Z,W=_.y-(T-_.height)/2-Z,K=F+2*Z,Y=T+2*Z,Q=`react-flow__minimap-desc-${R}`,U=(0,i.useRef)(0),q=(0,i.useRef)();U.current=H,(0,i.useEffect)(()=>{if(D.current&&I)return q.current=(0,s.di)({domNode:D.current,panZoom:I,getTransform:()=>j.getState().transform,getViewScale:()=>U.current}),()=>{q.current?.destroy()}},[I]),(0,i.useEffect)(()=>{q.current?.update({translateExtent:O,width:L,height:z,inversePan:N,pannable:S,zoomStep:M,zoomable:C})},[S,C,N,M,O,L,z]);let G=v?e=>{let[t,n]=q.current?.pointer(e)||[0,0];v(e,{x:t,y:n})}:void 0,J=w?(0,i.useCallback)((e,t)=>{w(e,j.getState().nodeLookup.get(t).internals.userNode)},[]):void 0,ee=E??$["minimap.ariaLabel"];return(0,a.jsx)(k,{position:b,style:{...e,"--xy-minimap-background-color-props":"string"==typeof f?f:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof p?p:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof y?y:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof x?x*H:void 0,"--xy-minimap-node-background-color-props":"string"==typeof o?o:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof n?n:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof u?u:void 0},className:(0,l.A)(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,a.jsxs)("svg",{width:B,height:V,viewBox:`${X} ${W} ${K} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Q,ref:D,onClick:G,children:[ee&&(0,a.jsx)("title",{id:Q,children:ee}),(0,a.jsx)(tK,{onClick:J,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:d,nodeClassName:r,nodeStrokeWidth:u,nodeComponent:g}),(0,a.jsx)("path",{className:"react-flow__minimap-mask",d:`M${X-Z},${W-Z}h${K+2*Z}v${Y+2*Z}h${-K-2*Z}z
2
- M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}tU.displayName="MiniMap";let tq=(0,i.memo)(tU);s.xN.Line,s.xN.Handle}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8811],{4474:(e,t,s)=>{s.d(t,{$:()=>i});var n=s(95155),a=s(6539),r=s(18460),o=s(91337);let l=(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 i({className:e,variant:t="default",size:s="default",...r}){return(0,n.jsx)(a.Button,{"data-slot":"button",className:(0,o.cn)(l({variant:t,size:s,className:e})),...r})}},18874:(e,t,s)=>{s.d(t,{F1:()=>l,e6:()=>r,qA:()=>a,ru:()=>o});let n={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function a(e){return e&&n[e]||"#8a8a8a"}let r={GET:"#7bd389",POST:"#4ea1ff",PUT:"#ffb86b",PATCH:"#ffb86b",DELETE:"#ff3860"},o={read:"#4ea1ff",write:"#ffb86b","read-write":"#c792ea"};function l(e,t){let s=new Set([e]);for(let n of t)n.source===e&&s.add(n.target),n.target===e&&s.add(n.source);return s}},26518:(e,t,s)=>{s.d(t,{bq:()=>w,eb:()=>C,gC:()=>k,l6:()=>y,yv:()=>N});var n=s(95155);s(12115);var a=s(40595),r=s(41294),o=s(75681),l=s(17314),i=s(37265),d=s(23107),c=s(70826),u=s(67564),m=s(1938),p=s(15433),x=s(5919),h=s(45450),f=s(88988),g=s(91337),b=s(12363),v=s(64577),j=s(94088);let y=a.H;function N({className:e,...t}){return(0,n.jsx)(r.y,{"data-slot":"select-value",className:(0,g.cn)("flex flex-1 text-left",e),...t})}function w({className:e,size:t="default",children:s,...a}){return(0,n.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),...a,children:[s,(0,n.jsx)(l.w,{render:(0,n.jsx)(b.A,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function k({className:e,children:t,side:s="bottom",sideOffset:a=4,align:r="center",alignOffset:o=0,alignItemWithTrigger:l=!0,...m}){return(0,n.jsx)(i.V,{children:(0,n.jsx)(d.l,{side:s,sideOffset:a,align:r,alignOffset:o,alignItemWithTrigger:l,className:"isolate z-50",children:(0,n.jsxs)(c.t,{"data-slot":"select-content","data-align-trigger":l,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,n.jsx)(E,{}),(0,n.jsx)(u.B,{children:t}),(0,n.jsx)(S,{})]})})})}function C({className:e,children:t,...s}){return(0,n.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),...s,children:[(0,n.jsx)(p.h,{className:"flex flex-1 shrink-0 gap-2 whitespace-nowrap",children:t}),(0,n.jsx)(x.h,{render:(0,n.jsx)("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:(0,n.jsx)(v.A,{className:"pointer-events-none"})})]})}function E({className:e,...t}){return(0,n.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,n.jsx)(j.A,{})})}function S({className:e,...t}){return(0,n.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,n.jsx)(b.A,{})})}},26856:(e,t,s)=>{s.d(t,{DbMapClient:()=>Q});var n=s(95155),a=s(12115),r=s(73321),o=s(81750),l=s(6266);s(53255);var i=s(81499),d=s(51128),c=s(65738),u=s(9005),m=s(2125),p=s(91337),x=s(18874);let h=(0,a.createContext)(null);function f(){let e=(0,a.useContext)(h);if(!e)throw Error("useDbEdit must be used inside DbEditContext");return e}var g=s(95635);let b={danger:"bg-red-500/15 text-red-300",warn:"bg-amber-500/15 text-amber-300"};function v({badges:e,className:t}){return e.length?(0,n.jsx)("span",{className:(0,p.cn)("flex shrink-0 items-center gap-0.5",t),children:e.map(e=>(0,n.jsx)("span",{title:e.title,className:(0,p.cn)("rounded px-1 text-[8px] font-semibold uppercase tracking-wide",b[e.tone]),children:e.label},e.label))}):null}let j=/pass(word)?|token|secret|api[_-]?key|credential|priv(ate)?[_-]?key|hash|salt/i,y=/auth|login|logout|session|token|password|oauth|sso|credential/i,N="nodrag nopan",w=g.x,k="nodrag nopan",C=["GET","POST","PUT","PATCH","DELETE"];var E=s(32133),S=s(82099),A=s(4474);let z=[{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 s of e.tables){let e=`Table \`${s.name}\``+(s.domain?` (domain: ${s.domain})`:"")+(s.description?` — ${s.description}`:"");for(let n of(t.push(e),s.columns)){let e=[n.isPk&&"PK",n.isFk&&"FK",!1===n.nullable&&"NOT NULL"].filter(Boolean).join(", ");t.push(` - ${n.name}: ${n.type}`+(e?` [${e}]`:"")+(n.note?` — ${n.note}`:""))}t.push("")}if(e.relations.length){for(let s of(t.push("Foreign keys:"),e.relations))t.push(` - ${s.fromTable}.${s.fromColumn} -> ${s.toTable}.${s.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 s of e.tables){for(let e of(t.push(`Table ${s.name} {`),s.columns)){let s=[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}`+(s?` [${s}]`:""))}t.push("}","")}for(let s of e.relations)t.push(`Ref: ${s.fromTable}.${s.fromColumn} > ${s.toTable}.${s.toColumn}`);return t.join("\n").trim()}},{id:"sql",label:"SQL DDL",fn:function(e){let t=[];for(let s of e.tables){t.push(`CREATE TABLE ${s.name} (`);let n=s.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(" ")}),a=e.relations.filter(e=>e.fromTable===s.name).map(e=>` FOREIGN KEY (${e.fromColumn}) REFERENCES ${e.toTable}(${e.toColumn})`);t.push([...n,...a].join(",\n")),t.push(");","")}return t.join("\n").trim()}}];function T({draftGraph:e}){let[t,s]=(0,a.useState)(null);if(0===e.tables.length)return null;async function r(t){await navigator.clipboard.writeText(t.fn(e)).catch(()=>{}),s(t.id),setTimeout(()=>s(null),1500)}return(0,n.jsxs)("div",{className:"space-y-2 rounded-xl border border-sky-400/20 bg-sky-500/[0.04] p-3",children:[(0,n.jsxs)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-sky-300",children:["Rascunho \xb7 ",e.tables.length," tabelas"]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:"copiar:"}),z.map(e=>(0,n.jsx)(A.$,{size:"sm",variant:"outline",className:"h-6 px-2 text-[11px]",onClick:()=>r(e),children:t===e.id?"✓":e.label},e.id))]})]})}function I({selected:e,tables:t,relations:s,endpoints:a,draftGraph:r,onClose:o,commentsContent:l,commentsCount:i=0,activeTab:d,onTabChange:c,onAddComment:m,topOffset:p}){let x,h,f=new Map(t.map(e=>[e.id,e.name])),g=!!l,b=d??"details",v=e?.kind==="table"?t.find(t=>t.id===e.id)?.name??null:e?.kind==="endpoint"&&(h=a.find(t=>t.id===e.id))?`${h.method} ${h.path}`:null;if(e?.kind==="table"){let r=t.find(t=>t.id===e.id);x=r?(0,n.jsx)(R,{table:r,relations:s,endpoints:a,nameById:f}):null}else if(e?.kind==="endpoint"){let t=a.find(t=>t.id===e.id);x=t?(0,n.jsx)(M,{ep:t,nameById:f}):null}else x=(0,n.jsx)($,{tables:t,relations:s,endpoints:a});return(0,n.jsxs)(S.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:p??12},children:[g?(0,n.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,n.jsx)(D,{active:"details"===b,onClick:()=>c?.("details"),children:"Details"}),(0,n.jsxs)(D,{active:"comments"===b,onClick:()=>c?.("comments"),children:["Comments",i>0&&(0,n.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:i})]})]}),(0,n.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,n.jsx)(u.A,{className:"size-4"})})]}):(0,n.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,n.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Panel"}),(0,n.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,n.jsx)(u.A,{className:"size-4"})})]}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto",children:"comments"===b&&g?(0,n.jsx)("div",{className:"p-3",children:l}):(0,n.jsxs)(n.Fragment,{children:[r.tables.length>0&&(0,n.jsx)("div",{className:"border-b border-white/10 p-3.5",children:(0,n.jsx)(T,{draftGraph:r})}),(0,n.jsxs)("div",{className:"p-4",children:[m&&v&&(0,n.jsxs)("button",{type:"button",onClick:()=>m(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,n.jsx)(E.A,{className:"size-3.5"}),"Comment on this ",e?.kind==="endpoint"?"endpoint":"table"]}),x]})]})})]})}function D({active:e,onClick:t,children:s}){return(0,n.jsx)("button",{type:"button",onClick:t,className:(0,p.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:s})}function R({table:e,relations:t,endpoints:s,nameById:a}){let r=t.filter(t=>t.fromTableId===e.id),o=t.filter(t=>t.toTableId===e.id),l=s.map(t=>({e:t,u:t.tables.find(t=>t.tableId===e.id)})).filter(e=>e.u);return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-xs uppercase tracking-wide",style:{color:(0,x.qA)(e.domain)},children:e.domain??"table"}),(0,n.jsx)("h2",{className:"font-mono text-lg font-semibold",children:e.name}),e.description&&(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e.description})]}),(0,n.jsx)(P,{title:`Columns (${e.columns.length})`,children:(0,n.jsx)("ul",{className:"space-y-0.5",children:e.columns.map(e=>(0,n.jsxs)("li",{className:"flex items-center gap-1.5 text-xs",children:[e.isPk?(0,n.jsx)(i.A,{className:"size-3 text-amber-400"}):e.isFk?(0,n.jsx)(d.A,{className:"size-3 text-sky-400"}):(0,n.jsx)("span",{className:"size-3"}),(0,n.jsx)("span",{className:"font-mono",children:e.name}),(0,n.jsxs)("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground",children:[e.type,!e.nullable&&" \xb7NN"]})]},e.name))})}),r.length>0&&(0,n.jsx)(P,{title:"References (FK out)",children:(0,n.jsx)("ul",{className:"space-y-1 text-xs",children:r.map(e=>(0,n.jsxs)("li",{className:"font-mono text-muted-foreground",children:[e.fromColumn," → ",a.get(e.toTableId),".",e.toColumn]},e.id))})}),o.length>0&&(0,n.jsx)(P,{title:"Referenced by (FK in)",children:(0,n.jsx)("ul",{className:"space-y-1 text-xs",children:o.map(e=>(0,n.jsxs)("li",{className:"font-mono text-muted-foreground",children:[a.get(e.fromTableId),".",e.fromColumn]},e.id))})}),l.length>0&&(0,n.jsx)(P,{title:`Used by endpoints (${l.length})`,children:(0,n.jsx)("ul",{className:"space-y-1 text-xs",children:l.map(({e,u:t})=>(0,n.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{style:{color:x.e6[e.method]},className:"font-bold",children:e.method}),(0,n.jsx)("span",{className:"truncate font-mono",children:e.path}),(0,n.jsx)("span",{className:"ml-auto",style:{color:x.ru[t.access]},children:t.access})]},e.id))})})]})}function M({ep:e,nameById:t}){return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-bold",style:{background:`${x.e6[e.method]}22`,color:x.e6[e.method]},children:e.method}),(0,n.jsx)("h2",{className:"mt-2 font-mono text-base font-semibold",children:e.path}),e.description&&(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e.description})]}),(0,n.jsx)(P,{title:`Tables used (${e.tables.length})`,children:(0,n.jsx)("ul",{className:"space-y-1 text-xs",children:e.tables.map(e=>(0,n.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"font-mono",children:t.get(e.tableId)}),(0,n.jsx)("span",{className:"ml-auto",style:{color:x.ru[e.access]},children:e.access})]},e.tableId))})})]})}function $({tables:e,relations:t,endpoints:s}){return(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:"text-sm font-semibold",children:"Database"}),(0,n.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,n.jsxs)("dl",{className:"grid grid-cols-3 gap-2 text-center",children:[(0,n.jsx)(L,{label:"tables",value:e.length}),(0,n.jsx)(L,{label:"FKs",value:t.length}),(0,n.jsx)(L,{label:"endpoints",value:s.length})]}),(0,n.jsx)(P,{title:"Legend",children:(0,n.jsxs)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,n.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(i.A,{className:"size-3 text-amber-400"})," primary key"]}),(0,n.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(d.A,{className:"size-3 text-sky-400"})," foreign key"]}),(0,n.jsx)("li",{children:"— gray line: FK relation between tables"}),(0,n.jsx)("li",{children:"– – dashed line: endpoint uses table (read/write)"})]})})]})}function P({title:e,children:t}){return(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e}),t]})}function L({label:e,value:t}){return(0,n.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/[0.03] py-2",children:[(0,n.jsx)("div",{className:"text-lg font-semibold",children:t}),(0,n.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:e})]})}var O=s(56614),F=s(62311);let _=new Set(["GET","HEAD","OPTIONS"]),H=e=>e.trim().toLowerCase();var B=s(80846),U=s(17356),X=s(45486),K=s(15330),G=s(60976),Z=s(64577),Y=s(57144);let W={dbTable:function({id:e,data:t,selected:s}){var r;let o,l,h="DRAFT"===t.source,g="added"===t.diffStatus?"#7bd389":"modified"===t.diffStatus?"#ffb86b":"#4ea1ff",b="added"===t.diffStatus?"new":"modified"===t.diffStatus?"changed":"draft",y=t.diffChanges?.length?t.diffChanges.join("\n"):"draft",k=h?g:(0,x.qA)(t.domain),C=(r={domain:t.domain,columns:t.columns},o=[],(l=r.columns.filter(e=>j.test(e.name)).map(e=>e.name)).length&&o.push({label:"secrets",tone:"danger",title:`stores credentials: ${l.join(", ")}`}),r.domain&&/auth/i.test(r.domain)&&o.push({label:"auth",tone:"warn",title:"auth-domain table"}),o),E=f(),[S,A]=(0,a.useState)(t.name),[z,T]=(0,a.useState)(t.columns),[I,D]=(0,a.useState)(!1);(0,a.useEffect)(()=>{A(t.name),T(t.columns)},[t.rev]);let R=e=>e.stopPropagation(),M=t=>{T(t),E.patchTable(e,{columns:t})};return h?(0,n.jsxs)("div",{className:(0,p.cn)("w-[252px] overflow-hidden rounded-md border border-dashed bg-card text-card-foreground shadow-sm",s&&"ring-2 ring-[var(--accent,#f5b942)]"),style:{borderColor:`${g}88`},children:[(0,n.jsx)(w,{}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1.5",style:{background:`${k}1f`},children:[(0,n.jsx)("span",{title:y,className:"inline-block size-1.5 shrink-0 rounded-full",style:{background:g}}),(0,n.jsx)("input",{value:S,onChange:e=>A(e.target.value),onBlur:()=>{let s=S.trim();s&&s!==t.name&&E.patchTable(e,{name:s})},onKeyDown:e=>{R(e),"Enter"===e.key&&e.currentTarget.blur()},placeholder:"table",className:(0,p.cn)(N,"min-w-0 flex-1 bg-transparent font-mono text-sm font-semibold outline-none")}),(0,n.jsx)(v,{badges:C}),(0,n.jsx)("span",{title:y,className:"shrink-0 rounded px-1 text-[9px] uppercase tracking-wide",style:{background:`${g}26`,color:g},children:b}),(0,n.jsx)("button",{type:"button",onClick:t=>{R(t),I?E.deleteTable(e):D(!0)},onBlur:()=>D(!1),title:"Delete table",className:(0,p.cn)(N,"shrink-0 transition-colors",I?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,n.jsx)(c.A,{className:"size-3"})})]}),(0,n.jsxs)("div",{className:"divide-y divide-border/40",children:[z.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-center gap-1 px-2 py-0.5 text-[11px]",children:[(0,n.jsx)("button",{type:"button",onClick:e=>{R(e),M(z.map((e,s)=>s===t?{...e,isPk:!e.isPk}:e))},title:"Primary key",className:(0,p.cn)(N,"shrink-0",e.isPk?"text-amber-400":"text-muted-foreground/40 hover:text-amber-400"),children:(0,n.jsx)(i.A,{className:"size-3"})}),(0,n.jsx)("button",{type:"button",onClick:e=>{R(e),M(z.map((e,s)=>s===t?{...e,isFk:!e.isFk}:e))},title:"Foreign key",className:(0,p.cn)(N,"shrink-0",e.isFk?"text-sky-400":"text-muted-foreground/40 hover:text-sky-400"),children:(0,n.jsx)(d.A,{className:"size-3"})}),(0,n.jsx)("input",{value:e.name,onChange:e=>T(s=>s.map((s,n)=>n===t?{...s,name:e.target.value}:s)),onBlur:()=>M(z),onKeyDown:R,placeholder:"column",className:(0,p.cn)(N,"min-w-0 flex-1 bg-transparent font-mono outline-none")}),(0,n.jsx)("input",{value:e.type,onChange:e=>T(s=>s.map((s,n)=>n===t?{...s,type:e.target.value}:s)),onBlur:()=>M(z),onKeyDown:R,placeholder:"type",className:(0,p.cn)(N,"w-16 shrink-0 bg-transparent text-right font-mono text-[10px] text-muted-foreground outline-none")}),(0,n.jsx)("button",{type:"button",onClick:e=>{R(e),M(z.filter((e,s)=>s!==t))},title:"Remove column",className:(0,p.cn)(N,"shrink-0 text-muted-foreground/40 hover:text-red-300"),children:(0,n.jsx)(u.A,{className:"size-3"})})]},t)),(0,n.jsxs)("button",{type:"button",onClick:e=>{R(e),M([...z,{name:"",type:"text",isPk:!1,isFk:!1,nullable:!0,note:null}])},className:(0,p.cn)(N,"flex w-full items-center gap-1 px-2 py-1 text-[10px] text-muted-foreground hover:text-foreground"),children:[(0,n.jsx)(m.A,{className:"size-3"})," column"]})]})]}):(0,n.jsxs)("div",{className:(0,p.cn)("w-[232px] overflow-hidden rounded-md border bg-card text-card-foreground shadow-sm",s&&"ring-2 ring-[var(--accent,#f5b942)]"),style:{borderColor:`${k}55`},children:[(0,n.jsx)(w,{}),(0,n.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5",style:{background:`${k}1f`},children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-sm font-semibold",children:["INTROSPECTION"===t.source&&(0,n.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 rounded-full bg-emerald-400"}),t.name]}),(0,n.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(v,{badges:C}),t.domain&&(0,n.jsx)("span",{className:"text-[10px] uppercase tracking-wide",style:{color:k},children:t.domain})]})]}),(0,n.jsx)("div",{className:"divide-y divide-border/40",children:t.columns.map(e=>(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px]",children:[e.isPk?(0,n.jsx)(i.A,{className:"size-3 shrink-0 text-amber-400"}):e.isFk?(0,n.jsx)(d.A,{className:"size-3 shrink-0 text-sky-400"}):(0,n.jsx)("span",{className:"size-3 shrink-0"}),(0,n.jsx)("span",{className:(0,p.cn)("font-mono",e.isPk&&"font-semibold"),children:e.name}),(0,n.jsx)("span",{className:"ml-auto truncate font-mono text-[10px] text-muted-foreground",children:e.type})]},e.name))})]})},endpoint:function({id:e,data:t,selected:s}){var r;let o,l=x.e6[t.method]??"#8a8a8a",i="DRAFT"===t.source,d="added"===t.diffStatus?"#7bd389":"modified"===t.diffStatus?"#ffb86b":"#4ea1ff",u="added"===t.diffStatus?"new":"modified"===t.diffStatus?"changed":"draft",m=t.diffChanges?.length?t.diffChanges.join("\n"):"draft",h=(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)||y.test(r.path))&&o.push({label:"auth",tone:"warn",title:"auth-related endpoint"}),o),b=f(),[j,N]=(0,a.useState)(t.path),[w,E]=(0,a.useState)(!1);(0,a.useEffect)(()=>{N(t.path)},[t.rev]);let S=e=>e.stopPropagation();return(0,n.jsxs)("div",{className:(0,p.cn)("group flex w-[240px] items-center gap-2 rounded-md border bg-card px-2.5 py-1.5 text-card-foreground shadow-sm",i?"border-dashed":"border-border",s&&"ring-2 ring-[var(--accent,#f5b942)]"),style:i?{borderColor:`${d}88`,background:`${d}0f`}:void 0,children:[(0,n.jsx)(g.x,{}),"INTROSPECTION"===t.source&&(0,n.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("select",{value:t.method,onChange:t=>b.patchEndpoint(e,{method:t.target.value}),onPointerDown:S,className:(0,p.cn)(k,"shrink-0 rounded bg-transparent text-[10px] font-bold outline-none"),style:{color:l},title:"Method",children:C.map(e=>(0,n.jsx)("option",{value:e,className:"bg-card text-foreground",children:e},e))}),(0,n.jsx)("input",{value:j,onChange:e=>N(e.target.value),onBlur:()=>{let s=j.trim();s&&s!==t.path&&b.patchEndpoint(e,{path:s})},onKeyDown:e=>{S(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,p.cn)(k,"min-w-0 flex-1 bg-transparent font-mono text-[11px] outline-none")}),(0,n.jsx)(v,{badges:h}),(0,n.jsx)("span",{title:m,className:"shrink-0 rounded px-1 py-0.5 text-[8px] font-semibold uppercase",style:{background:`${d}26`,color:d},children:u}),(0,n.jsx)("button",{type:"button",onClick:t=>{S(t),w?b.deleteEndpoint(e):E(!0)},onBlur:()=>E(!1),title:"Delete",className:(0,p.cn)(k,"shrink-0 transition-colors",w?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,n.jsx)(c.A,{className:"size-3"})})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] font-bold",style:{background:`${l}22`,color:l},children:t.method}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:t.path}),(0,n.jsx)(v,{badges:h}),(0,n.jsx)("button",{type:"button",onClick:t=>{S(t),w?b.deleteRealEndpoint(e):E(!0)},onBlur:()=>E(!1),title:w?"Click again to delete":"Delete endpoint",className:(0,p.cn)(k,"shrink-0 opacity-0 transition-opacity group-hover:opacity-100",w?"text-red-300 opacity-100":"text-muted-foreground hover:text-red-300"),children:(0,n.jsx)(c.A,{className:"size-3"})})]})]})}},q={deletable:Y.I},V="beacon:db-draft",J={proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};function Q({tables:e,relations:t,endpoints:s,draft:i,workspaceId:d,embedded:u=!1,draftRef:m,onEdit:f,controlRef:g,commentsContent:b,commentsCount:v=0,onAddComment:j}){let y=(0,r.useRouter)(),[N,w]=(0,a.useState)(!0),[k,C]=(0,a.useState)(null),[E,S]=(0,a.useState)(null),[A,z]=(0,a.useState)(!1),[T,D]=(0,a.useState)("details"),[R,M]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(g)return g.current={open:()=>{z(!0),D("details")},close:()=>{z(!1),D("details")},openComments:()=>{z(!0),D("comments")}},()=>{g&&(g.current=null)}},[g]);let[$,P]=(0,a.useState)(new Set),[L,Y]=(0,a.useState)(new Set),[ee,et]=(0,a.useState)(new Set),[es,en]=(0,a.useState)(()=>({past:[],present:i??J,future:[],rev:0,edited:!1})),ea=es.present,er=(0,a.useCallback)(e=>{en(t=>{let s=e(t.present);return s===t.present?t:{past:[...t.past,t.present].slice(-100),present:s,future:[],rev:t.rev+1,edited:!0}})},[]),eo=(0,a.useCallback)(e=>{en(t=>{let s=e(t.present);return s===t.present?t:{...t,present:s}})},[]),el=(0,a.useCallback)(()=>en(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),[]),ei=(0,a.useCallback)(()=>en(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),[]),ed=(0,a.useCallback)(e=>en(t=>({past:[],present:e,future:[],rev:t.rev+1,edited:!1})),[]),ec=(0,a.useRef)(!1),eu=i?.proposedAt??0;(0,a.useEffect)(()=>{let e=null;if(ec.current)i&&i.proposedAt!==ea.proposedAt?e=i:!i&&(ea.tables.length>0||ea.endpoints.length>0)&&(e=J);else{ec.current=!0;let t=null;try{let e=localStorage.getItem(V);if(e){let s=JSON.parse(e);s.workspaceId===d&&s.doc&&i&&s.doc.proposedAt===i.proposedAt&&(t=s.doc)}}catch{}e=t??i??null}e&&ed(e)},[eu]),(0,a.useEffect)(()=>{try{ea.tables.length>0||ea.endpoints.length>0?localStorage.setItem(V,JSON.stringify({workspaceId:d,doc:ea})):localStorage.removeItem(V)}catch{}},[ea,d]),(0,a.useEffect)(()=>{m&&(m.current=ea)},[m,ea]);let em=(0,a.useRef)(!1);(0,a.useEffect)(()=>{es.edited&&!em.current&&(em.current=!0,f?.())},[es.edited,f]);let ep=(0,a.useMemo)(()=>ea.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})),[ea]),ex=(0,a.useMemo)(()=>ea.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}))})),[ea]),eh=(0,a.useMemo)(()=>[...e,...ep],[e,ep]),ef=(0,a.useMemo)(()=>[...s,...ex],[s,ex]),eg=(0,a.useMemo)(()=>new Map,[]),eb=(0,a.useMemo)(()=>u?function(e,t){let s=new Map(e.map(e=>[H(e.name),e])),n=new Map;for(let e of t){let t=s.get(H(e.name));if(!t){n.set(e.id,{status:"added",changes:["new table"]});continue}let a=function(e,t){let s=new Map(e.map(e=>[H(e.name),e])),n=new Set(t.map(e=>H(e.name))),a=[];for(let e of t){let t=s.get(H(e.name));if(!t){a.push(`+ column ${e.name} (${e.type})`);continue}let n=[];H(t.type)!==H(e.type)&&n.push(`type ${t.type}→${e.type}`),t.isPk!==e.isPk&&n.push(e.isPk?"now PK":"no longer PK"),t.isFk!==e.isFk&&n.push(e.isFk?"now FK":"no longer FK"),t.nullable!==e.nullable&&n.push(e.nullable?"now nullable":"now required"),n.length&&a.push(`~ column ${e.name}: ${n.join(", ")}`)}for(let t of e)n.has(H(t.name))||a.push(`- column ${t.name}`);return a}(t.columns,e.columns);n.set(e.id,{status:a.length?"modified":"unchanged",changes:a})}return n}(e,ep):eg,[u,e,ep,eg]),ev=(0,a.useMemo)(()=>u?function(e,t){let s=e=>`${H(e.method)} ${H(e.path)}`,n=new Set(e.map(s)),a=new Map;for(let e of t)a.set(e.id,n.has(s(e))?{status:"unchanged",changes:[]}:{status:"added",changes:["new endpoint"]});return a}(s,ex):eg,[u,s,ex,eg]),ej=(0,a.useMemo)(()=>[...t,...ea.relations.map(e=>({id:e.id,fromTableId:e.fromTableId,toTableId:e.toTableId,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label}))],[t,ea.relations]),ey=(0,a.useMemo)(()=>{let e=new Map;for(let t of ef)for(let s of t.tables)e.set(s.tableId,(e.get(s.tableId)??0)+1);return e},[ef]),eN=(0,a.useMemo)(()=>{let e=new Map;return eh.forEach(t=>e.set(t.id,t.x)),ef.forEach(t=>e.set(t.id,t.x)),e},[eh,ef]),ew=(0,a.useCallback)((e,t)=>(eN.get(e)??0)<=(eN.get(t)??0)?{sourceHandle:"sr",targetHandle:"tl"}:{sourceHandle:"sl",targetHandle:"tr"},[eN]),ek=(0,a.useMemo)(()=>new Set([...ea.tables.map(e=>e.id),...ea.endpoints.map(e=>e.id)]),[ea]),eC=(0,a.useMemo)(()=>new Set(e.map(e=>e.id)),[e]),eE=(0,a.useCallback)(()=>[...eh.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:ey.get(e.id)??0,source:e.source,rev:es.rev,diffStatus:eb.get(e.id)?.status,diffChanges:eb.get(e.id)?.changes}})),...ef.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:es.rev,diffStatus:ev.get(e.id)?.status,diffChanges:ev.get(e.id)?.changes}}))],[eh,ef,ey,es.rev,eb,ev]),[eS,eA,ez]=(0,o.ck)(eE());(0,a.useEffect)(()=>{eA(e=>{let t=new Map(e.map(e=>[e.id,e.position]));return eE().map(e=>({...e,position:t.get(e.id)??e.position}))})},[eE,eA]);let eT=(0,a.useCallback)((e,t,s,n)=>{fetch("/api/db/position",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:e,id:t,x:s,y:n})})},[]),eI=(0,a.useCallback)((e,t)=>{let{x:s,y:n}=t.position;ek.has(t.id)?eo(e=>e.tables.some(e=>e.id===t.id)?{...e,tables:e.tables.map(e=>e.id===t.id?{...e,x:s,y:n}:e)}:e.endpoints.some(e=>e.id===t.id)?{...e,endpoints:e.endpoints.map(e=>e.id===t.id?{...e,x:s,y:n}:e)}:e):eT("endpoint"===t.type?"endpoint":"table",t.id,s,n)},[ek,eo,eT]),eD=(0,a.useMemo)(()=>ej.map(e=>({id:`fk-${e.id}`,source:e.fromTableId,target:e.toTableId,...ew(e.fromTableId,e.toTableId),type:"deletable",label:e.label??void 0,markerEnd:{type:l.TG.ArrowClosed,color:"#6b6b6b"},style:{stroke:"#6b6b6b"}})),[ej,ew]),eR=(0,a.useMemo)(()=>ef.flatMap(e=>e.tables.map(t=>{let s=x.ru[t.access]??"#5a5a5a";return{id:`u-${e.id}-${t.tableId}`,source:e.id,target:t.tableId,...ew(e.id,t.tableId),type:"default",markerEnd:{type:l.TG.ArrowClosed,color:s},style:{stroke:s,strokeDasharray:"4 4",opacity:.7}}})),[ef,ew]),eM=(0,a.useMemo)(()=>N?[...eD,...eR]:eD,[eD,eR,N]),e$=(0,a.useMemo)(()=>{if(E){let e=eM.find(e=>e.id===E);return e?new Set([e.source,e.target]):null}return k?(0,x.F1)(k.id,eM):null},[k,E,eM]),eP=(0,a.useMemo)(()=>new Map(eh.map(e=>[e.id,{domain:e.domain,source:e.source}])),[eh]),eL=(0,a.useMemo)(()=>new Map(ef.map(e=>[e.id,{method:e.method,source:e.source}])),[ef]),eO=(0,a.useMemo)(()=>{let e=new Set;if(!N)for(let t of eL.keys())e.add(t);for(let[t,s]of eP)!$.size||s.domain&&$.has(s.domain)||e.add(t),L.size&&!L.has(s.source)&&e.add(t);for(let[t,s]of eL)ee.size&&!ee.has(s.method)&&e.add(t),L.size&&!L.has(s.source)&&e.add(t);return e},[N,eP,eL,$,L,ee]),eF=(0,a.useMemo)(()=>eS.map(e=>{let t=eO.has(e.id);return e$?{...e,hidden:t,style:{...e.style,opacity:e$.has(e.id)?1:.45,transition:"opacity 120ms"}}:t?{...e,hidden:t}:e}),[eS,eO,e$]),e_=(0,a.useMemo)(()=>eM.map(e=>{let t=eO.has(e.source)||eO.has(e.target);return k||E?(E?e.id===E:k&&(e.source===k.id||e.target===k.id))?{...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}}:t?{...e,hidden:t}:e}),[eM,k,E,eO]),eH=(0,a.useMemo)(()=>Array.from(new Set(eh.map(e=>e.domain).filter(e=>!!e))).sort(),[eh]),eB=(0,a.useMemo)(()=>Array.from(new Set([...eh.map(e=>e.source),...ef.map(e=>e.source)])).sort(),[eh,ef]),eU=(0,a.useMemo)(()=>Array.from(new Set(ef.map(e=>e.method))).sort(),[ef]);function eX(e,t){t(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})}let eK=+!N+$.size+L.size+ee.size,eG=(0,a.useCallback)(()=>{w(!0),P(new Set),Y(new Set),et(new Set)},[]),eZ=(0,a.useCallback)(e=>{let{source:t,target:s}=e;t&&s&&t!==s&&er(e=>{if(!(e.tables.some(e=>e.id===s)||eC.has(s)))return e;let n=e.endpoints.find(e=>e.id===t);return n?n.links.some(e=>e.tableId===s)?e:{...e,endpoints:e.endpoints.map(e=>{var n;return e.id===t?{...e,links:[...e.links,{tableId:s,access:(n=e.method,_.has(n.trim().toUpperCase())?"read":"write")}]}:e})}:e.tables.find(e=>e.id===t)?e.relations.some(e=>e.fromTableId===t&&e.toTableId===s)?e:{...e,relations:[...e.relations,{id:crypto.randomUUID(),fromTableId:t,toTableId:s,fromColumn:"fk",toColumn:"id",label:null}]}:e})},[er,eC]),eY=(0,a.useMemo)(()=>({patchEndpoint:(e,t)=>er(s=>({...s,endpoints:s.endpoints.map(s=>s.id===e?{...s,...t}:s)})),deleteEndpoint:e=>er(t=>({...t,endpoints:t.endpoints.filter(t=>t.id!==e)})),patchTable:(e,t)=>er(s=>({...s,tables:s.tables.map(s=>s.id===e?{...s,...t}:s)})),deleteTable:e=>er(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&&y.refresh()})}}),[er,y]);(0,a.useEffect)(()=>{let e=e=>{if(!(e.metaKey||e.ctrlKey))return;let t=e.target;if(t&&/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName))return;let s=e.key.toLowerCase();"z"===s?(e.preventDefault(),e.shiftKey?ei():el()):"y"===s&&(e.preventDefault(),ei())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[el,ei]);let eW=(0,a.useCallback)(async()=>{M(!0);try{if((await fetch("/api/draft/approve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(ea)})).ok){try{localStorage.removeItem(V)}catch{}ed(J),y.refresh()}}finally{M(!1)}},[ea,ed,y]),eq=(0,a.useCallback)(async()=>{M(!0);try{await fetch("/api/draft",{method:"DELETE"})}catch{}try{localStorage.removeItem(V)}catch{}ed(J),y.refresh(),M(!1)},[ed,y]),eV=(0,a.useMemo)(()=>{let e;return e=new Map(ea.tables.map(e=>[e.id,e.name])),{tables:ea.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:ea.relations.flatMap(t=>{let s=e.get(t.fromTableId),n=e.get(t.toTableId);return s&&n?[{fromTable:s,fromColumn:t.fromColumn,toTable:n,toColumn:t.toColumn,label:t.label}]:[]}),endpoints:ea.endpoints.map(t=>({method:t.method,path:t.path,domain:t.domain,description:t.description,uses:t.links.flatMap(t=>{let s=e.get(t.tableId);return s?[{table:s,access:t.access}]:[]})}))}},[ea]),eJ=ea.tables.length>0||ea.endpoints.length>0,eQ=es.past.length>0,e0=es.future.length>0;return(0,n.jsx)(h.Provider,{value:eY,children:(0,n.jsxs)("div",{className:(0,p.cn)("relative w-full",u?"h-full":"h-screen"),children:[(0,n.jsxs)(o.Gc,{nodes:eF,edges:e_,nodeTypes:W,edgeTypes:q,connectionMode:l.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onNodesChange:ez,onConnect:eZ,onNodeClick:(e,t)=>{let s="endpoint"===t.type?"endpoint":"table";C({id:t.id,kind:s}),S(null),z(!0),D("details")},onEdgeClick:(e,t)=>{S(t.id),C(null)},onPaneClick:()=>{C(null),S(null)},onNodeDragStop:eI,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)ek.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,n.jsx)(o.VS,{gap:22,color:"#2a2a32"}),(0,n.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"}),!u&&(0,n.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"}),!u&&(0,n.jsx)(o.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,n.jsx)(F.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,n.jsxs)(o.Zk,{position:"top-right",className:(0,p.cn)("flex items-center gap-1 transition-[margin] duration-200",A&&"!mr-[332px]",u&&"hidden"),children:[(0,n.jsxs)(O.er,{title:"Filters",trigger:(e,t)=>(0,n.jsxs)("button",{type:"button",onClick:t,title:"Filters",className:(0,p.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",e||eK>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,n.jsx)(B.A,{className:"size-4"}),eK>0&&(0,n.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:eK})]}),children:[(0,n.jsx)(O.r1,{title:"Show",children:(0,n.jsx)(O.vu,{tone:"accent",on:N,onClick:()=>w(e=>!e),children:"endpoints"})}),eH.length>0&&(0,n.jsx)(O.r1,{title:"Domain",children:eH.map(e=>(0,n.jsx)(O.vu,{on:$.has(e),onClick:()=>eX(e,P),children:e},e))}),eU.length>0&&(0,n.jsx)(O.r1,{title:"Method",children:eU.map(e=>(0,n.jsx)(O.vu,{on:ee.has(e),onClick:()=>eX(e,et),children:e},e))}),eB.length>0&&(0,n.jsx)(O.r1,{title:"Source",children:eB.map(e=>(0,n.jsx)(O.vu,{on:L.has(e),onClick:()=>eX(e,Y),children:e.toLowerCase()},e))}),eK>0&&(0,n.jsx)("button",{type:"button",onClick:eG,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,n.jsx)(O.er,{title:"Legend",trigger:(e,t)=>(0,n.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,p.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,n.jsx)(U.A,{className:"size-4"})}),children:(0,n.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#6b6b6b]"}),(0,n.jsx)("span",{children:"foreign key \xb7 drag from a table handle"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#4ea1ff"}}),(0,n.jsx)("span",{children:"endpoint read \xb7 GET / POST / etc"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#ffb86b"}}),(0,n.jsx)("span",{children:"endpoint write"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.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,n.jsx)("span",{children:"agent-proposed \xb7 approve to persist"})]})]})}),!A&&(0,n.jsx)("button",{onClick:()=>z(!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,n.jsx)(X.A,{className:"size-4"})})]}),eJ&&(0,n.jsxs)(o.Zk,{position:"bottom-center",className:"glass flex items-center gap-1 rounded-xl p-1.5",children:[(0,n.jsxs)("button",{onClick:el,disabled:!eQ,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,n.jsx)(K.A,{className:"size-3.5"})," undo"]}),(0,n.jsxs)("button",{onClick:ei,disabled:!e0,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,n.jsx)(G.A,{className:"size-3.5"})," redo"]}),!u&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"mx-1 h-4 w-px bg-white/10"}),(0,n.jsxs)("button",{onClick:eq,disabled:R,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,n.jsx)(c.A,{className:"size-3.5"})," discard"]}),(0,n.jsxs)("button",{onClick:eW,disabled:R,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,n.jsx)(Z.A,{className:"size-3.5"})," approve draft"]})]})]})]}),A&&(0,n.jsx)(I,{selected:k,tables:eh,relations:ej,endpoints:ef,draftGraph:eV,onClose:()=>{z(!1),D("details")},commentsContent:b,commentsCount:v,activeTab:T,onTabChange:D,onAddComment:j,topOffset:u?64:void 0})]})})}},56614:(e,t,s)=>{s.d(t,{er:()=>o,r1:()=>l,vu:()=>i});var n=s(95155),a=s(12115),r=s(91337);function o({trigger:e,title:t,align:s="right",children:l}){let[i,d]=(0,a.useState)(!1),c=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!i)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)}},[i]),(0,n.jsxs)("div",{ref:c,className:"relative",children:[e(i,()=>d(e=>!e)),i&&(0,n.jsxs)("div",{className:(0,r.cn)("glass absolute top-full z-30 mt-1.5 w-64 rounded-xl p-3 shadow-xl","right"===s?"right-0":"left-0"),children:[t&&(0,n.jsx)("div",{className:"mb-2 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),l]})]})}function l({title:e,children:t}){return(0,n.jsxs)("div",{className:"mb-2.5 last:mb-0",children:[(0,n.jsx)("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/80",children:e}),(0,n.jsx)("div",{className:"flex flex-wrap gap-1",children:t})]})}function i({on:e,onClick:t,children:s,tone:a="default"}){return(0,n.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"}[a]),children:s})}},57144:(e,t,s)=>{s.d(t,{I:()=>c});var n=s(95155),a=s(81750),r=s(6266),o=s(65738);function l(e){let{x:t,y:s}=e.internals.positionAbsolute,n=e.measured?.width??0,a=e.measured?.height??0;return{x:t,y:s,w:n,h:a,cx:t+n/2,cy:s+a/2}}function i(e,t){let s=l(e),n=l(t),a=s.w/2||1,r=s.h/2||1,o=(n.cx-s.cx)/(2*a)-(n.cy-s.cy)/(2*r),i=(n.cx-s.cx)/(2*a)+(n.cy-s.cy)/(2*r),d=1/(Math.abs(o)+Math.abs(i)||1);return{x:a*d*(o+i)+s.cx,y:r*d*(-o+i)+s.cy}}function d(e,t){let s=l(e),n=Math.round(t.x),a=Math.round(t.y);return n<=Math.round(s.x)+1?r.yX.Left:n>=Math.round(s.x+s.w)-1?r.yX.Right:a<=Math.round(s.y)+1?r.yX.Top:r.yX.Bottom}function c(e){let t,s,{deleteElements:l}=(0,a.VH)(),c=(0,a.JY)(e.source),u=(0,a.JY)(e.target),m=c&&u?(t=i(c,u),s=i(u,c),{sx:t.x,sy:t.y,tx:s.x,ty:s.y,sourcePos:d(c,t),targetPos:d(u,s)}):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,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.tE,{id:e.id,path:p,style:e.style,markerEnd:e.markerEnd,interactionWidth:20}),e.label&&(0,n.jsx)(a.rV,{children:(0,n.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"},children:e.label})}),e.selected&&(0,n.jsx)(a.rV,{children:(0,n.jsx)("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, 0) translate(${x}px, ${h+14}px)`,pointerEvents:"all",zIndex:1e3},children:(0,n.jsx)("button",{type:"button",onMouseDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),l({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,n.jsx)(o.A,{className:"size-3.5"})})})})]})}},60874:(e,t,s)=>{s.d(t,{F8:()=>b,NG:()=>x,QH:()=>h,Vq:()=>g,aM:()=>y,cV:()=>w,kz:()=>j,n$:()=>m,pO:()=>o,vB:()=>v});var n=s(95155),a=s(12115),r=s(91337);function o({markdown:e,className:t,variant:s="reading"}){let l=(0,a.useMemo)(()=>m(e),[e]),i="reading"===s;return(0,n.jsx)("div",{className:(0,r.cn)("min-w-0 [overflow-wrap:anywhere]",i?"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:l.map((e,t)=>(0,n.jsx)(N,{block:e,variant:s},t))})}function l(e){let t=e.trim();return t.includes("|")&&t.includes("-")&&/^[\s|:-]+$/.test(t)}function i(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(),s=t.startsWith(":"),n=t.endsWith(":");return s&&n?"center":n?"right":s?"left":null}let u=/^\s*```[^\s`]*\s*$/;function m(e){let t=e.split("\n"),s=[],n=[],a=()=>{n.length&&(s.push({kind:"p",text:n.join("\n")}),n=[])},r=null,o=()=>{null!==r&&(s.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)?(s.push({kind:"code",text:p.join("\n")}),p=null):p.push(h);continue}let f=h.match(/^>\s?(.*)$/);if(f){a(),x=null,(r??=[]).push(f[1]);continue}if(o(),u.test(h)){a(),x=null,p=[];continue}if(/^\s*$/.test(h)){a(),x=null;continue}let g=h.match(/^#### +(.+)$/);if(g){a(),x=null,s.push({kind:"h4",text:g[1]});continue}let b=h.match(/^### +(.+)$/);if(b){a(),x=null,s.push({kind:"h3",text:b[1]});continue}let v=h.match(/^## +(.+)$/);if(v){a(),x=null,s.push({kind:"h2",text:v[1]});continue}let j=h.match(/^# +(.+)$/);if(j){a(),x=null,s.push({kind:"h1",text:j[1]});continue}if(i(h)&&e+1<t.length&&l(t[e+1])){a(),x=null;let n=[d(h)],r=d(t[e+1]).map(c),o=e+2;for(;o<t.length&&i(t[o])&&!l(t[o]);)n.push(d(t[o])),o++;s.push({kind:"table",text:t.slice(e,o).join("\n"),rows:n,align:r}),e=o-1;continue}let y=h.match(/^(\s*)(\d+)\. +(.+)$/);if(y){a(),s.push({kind:"ol",text:y[3],depth:m(y[1]),marker:y[2]}),x=s.length-1;continue}let N=h.match(/^(\s*)- +(.+)$/);if(N){a(),s.push({kind:"ul",text:N[2],depth:m(N[1])}),x=s.length-1;continue}if(null!==x&&0===n.length){s[x].text+=" "+h.trim();continue}n.push(h)}return a(),o(),null!==p&&s.push({kind:"code",text:p.join("\n")}),s}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,n.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-white/10 bg-white/[0.06] p-3 text-[12px] leading-relaxed",children:(0,n.jsx)("code",{className:"whitespace-pre font-mono [overflow-wrap:normal]",children:t?function(e){let t,s=[],a=0,r=0,o=e=>(0,n.jsx)("span",{className:"text-foreground/45",children:e},r++);for(p.lastIndex=0;null!==(t=p.exec(e));){if(t.index>a&&s.push(o(e.slice(a,t.index))),void 0!==t[1]){let e=void 0!==t[2];s.push((0,n.jsx)("span",{className:e?"text-sky-300":"text-emerald-300/90",children:t[1]},r++)),e&&t[2]&&s.push(o(t[2]))}else void 0!==t[3]?s.push((0,n.jsx)("span",{className:"text-purple-300",children:t[3]},r++)):void 0!==t[4]&&s.push((0,n.jsx)("span",{className:"text-amber-300",children:t[4]},r++));a=p.lastIndex}return a<e.length&&s.push(o(e.slice(a))),s}(t):(0,n.jsx)("span",{className:"text-foreground/85",children:e})})})}function h({block:e}){let t=e.rows??[];if(0===t.length)return null;let[s,...a]=t,o=e.align??[],l=e=>"center"===o[e]?"text-center":"right"===o[e]?"text-right":"text-left";return(0,n.jsx)("div",{className:"overflow-x-auto rounded-lg border border-white/10",children:(0,n.jsxs)("table",{className:"w-full border-collapse text-[13px] [overflow-wrap:normal]",children:[(0,n.jsx)("thead",{children:(0,n.jsx)("tr",{className:"border-b border-white/15 bg-white/[0.04]",children:s.map((e,t)=>(0,n.jsx)("th",{className:(0,r.cn)("whitespace-nowrap px-3 py-1.5 font-semibold text-foreground",l(t)),children:(0,n.jsx)(w,{text:e})},t))})}),(0,n.jsx)("tbody",{children:a.map((e,t)=>(0,n.jsx)("tr",{className:"border-b border-white/5 last:border-0",children:e.map((e,t)=>(0,n.jsx)("td",{className:(0,r.cn)("px-3 py-1.5 align-top text-foreground/90",l(t)),children:(0,n.jsx)(w,{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 v(e){return`plan-h-${e}`}function j(e){return e.replace(/[`*]/g,"").trim()}function y(e,t,s,a){let o="reading"===s;switch(e.kind){case"h1":return(0,n.jsx)("h1",{id:a,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,n.jsx)("h2",{id:a,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,n.jsx)("h3",{id:a,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,n.jsx)("h4",{id:a,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 s=e.depth??0;return(0,n.jsxs)("div",{className:(0,r.cn)("flex gap-2",o?"text-foreground/95":"text-foreground/90"),style:{marginLeft:`${.75+1.25*s}rem`},children:[(0,n.jsx)("span",{className:"shrink-0 select-none text-muted-foreground tabular-nums",children:"ol"===e.kind?`${e.marker}.`:"•"}),(0,n.jsx)("span",{className:"min-w-0 flex-1",children:t})]})}case"quote":return(0,n.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,n.jsx)("p",{className:(0,r.cn)("whitespace-pre-wrap",o?"text-foreground/95":"text-foreground/90"),children:t})}}function N({block:e,variant:t}){return"code"===e.kind?(0,n.jsx)(x,{text:e.text}):"table"===e.kind?(0,n.jsx)(h,{block:e}):(0,n.jsx)(n.Fragment,{children:y(e,(0,n.jsx)(w,{text:e.text}),t)})}function w({text:e}){let t=e.split(/(`[^`]+`|\*\*[\s\S]+?\*\*|\*[^*]+\*)/g);return(0,n.jsx)(n.Fragment,{children:t.map((e,t)=>/^`[^`]+`$/.test(e)?(0,n.jsx)("code",{className:"rounded bg-white/5 px-1 font-mono text-[12px]",children:e.slice(1,-1)},t):/^\*\*[\s\S]+\*\*$/.test(e)?(0,n.jsx)("strong",{className:"font-semibold text-foreground",children:(0,n.jsx)(w,{text:e.slice(2,-2)})},t):/^\*[^*]+\*$/.test(e)?(0,n.jsx)("em",{className:"text-muted-foreground",children:(0,n.jsx)(w,{text:e.slice(1,-1)})},t):(0,n.jsx)("span",{children:e},t))})}},62311:(e,t,s)=>{s.d(t,{Z:()=>m});var n=s(95155),a=s(98500),r=s.n(a),o=s(25640),l=s(83599),i=s(94192),d=s(34306),c=s(91337);let u={ROADMAP:o.A,ARCHITECTURE:l.A,FILES:i.A,DATABASE:d.A};function m({tabs:e,active:t}){return(0,n.jsx)("div",{className:"flex items-center gap-0.5",children:e.map(e=>{let s=e.value===t,a=e.Icon??u[e.value];return(0,n.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",s?"bg-white/10 text-foreground":"text-muted-foreground/80 hover:bg-white/5 hover:text-foreground"),children:[a?(0,n.jsx)(a,{className:"size-3"}):null,(0,n.jsx)("span",{children:e.label})]},e.value)})})}},70521:(e,t,s)=>{s.d(t,{$v:()=>N,EO:()=>b,Lt:()=>x,Rx:()=>w,Zr:()=>k,ck:()=>j,r7:()=>y,tv:()=>h,wd:()=>v});var n=s(95155);s(12115);var a=s(25381),r=s(7121),o=s(51880),l=s(35176),i=s(11248),d=s(82022),c=s(98758),u=s(45362),m=s(91337),p=s(4474);function x({...e}){return(0,n.jsx)(a.V,{"data-slot":"alert-dialog",...e})}function h({...e}){return(0,n.jsx)(r.t,{"data-slot":"alert-dialog-trigger",...e})}function f({...e}){return(0,n.jsx)(o.Z,{"data-slot":"alert-dialog-portal",...e})}function g({className:e,...t}){return(0,n.jsx)(l.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",...s}){return(0,n.jsxs)(f,{children:[(0,n.jsx)(g,{}),(0,n.jsx)(i.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),...s})]})}function v({className:e,...t}){return(0,n.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 j({className:e,...t}){return(0,n.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 y({className:e,...t}){return(0,n.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 N({className:e,...t}){return(0,n.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 w({className:e,variant:t,size:s,...a}){return(0,n.jsx)(u.H,{"data-slot":"alert-dialog-action",className:(0,m.cn)(e),render:(0,n.jsx)(p.$,{variant:t,size:s}),...a})}function k({className:e,variant:t="outline",size:s="default",...a}){return(0,n.jsx)(u.H,{"data-slot":"alert-dialog-cancel",className:(0,m.cn)(e),render:(0,n.jsx)(p.$,{variant:t,size:s}),...a})}},74350:(e,t,s)=>{s.d(t,{Cf:()=>g,Es:()=>v,L3:()=>j,c7:()=>b,lG:()=>x,rr:()=>y});var n=s(95155);s(12115);var a=s(17112),r=s(51880),o=s(35176),l=s(11248),i=s(45362),d=s(82022),c=s(98758),u=s(91337),m=s(4474),p=s(9005);function x({...e}){return(0,n.jsx)(a.D,{"data-slot":"dialog",...e})}function h({...e}){return(0,n.jsx)(r.Z,{"data-slot":"dialog-portal",...e})}function f({className:e,...t}){return(0,n.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:s=!0,...a}){return(0,n.jsxs)(h,{children:[(0,n.jsx)(f,{}),(0,n.jsxs)(l.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),...a,children:[t,s&&(0,n.jsxs)(i.H,{"data-slot":"dialog-close",render:(0,n.jsx)(m.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,n.jsx)(p.A,{}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function b({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"dialog-header",className:(0,u.cn)("flex flex-col gap-2",e),...t})}function v({className:e,showCloseButton:t=!1,children:s,...a}){return(0,n.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),...a,children:[s,t&&(0,n.jsx)(i.H,{render:(0,n.jsx)(m.$,{variant:"outline"}),children:"Close"})]})}function j({className:e,...t}){return(0,n.jsx)(d.L,{"data-slot":"dialog-title",className:(0,u.cn)("font-heading text-base leading-none font-medium",e),...t})}function y({className:e,...t}){return(0,n.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,s)=>{s.d(t,{b:()=>r});var n=s(95155);s(12115);var a=s(91337);function r({className:e,children:t,...s}){return(0,n.jsxs)("div",{className:(0,a.cn)("glass relative isolate overflow-hidden",e),...s,children:[(0,n.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,n.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]})}},91337:(e,t,s)=>{s.d(t,{cn:()=>r});var n=s(29722),a=s(622);function r(...e){return(0,a.QP)((0,n.$)(e))}},95635:(e,t,s)=>{s.d(t,{x:()=>o});var n=s(95155),a=s(81750),r=s(6266);function o(){let e="!h-2 !w-2 !border-0 !bg-zinc-400";return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.h7,{type:"target",position:r.yX.Top,id:"tt",className:e}),(0,n.jsx)(a.h7,{type:"source",position:r.yX.Top,id:"st",className:e}),(0,n.jsx)(a.h7,{type:"target",position:r.yX.Right,id:"tr",className:e}),(0,n.jsx)(a.h7,{type:"source",position:r.yX.Right,id:"sr",className:e}),(0,n.jsx)(a.h7,{type:"target",position:r.yX.Bottom,id:"tb",className:e}),(0,n.jsx)(a.h7,{type:"source",position:r.yX.Bottom,id:"sb",className:e}),(0,n.jsx)(a.h7,{type:"target",position:r.yX.Left,id:"tl",className:e}),(0,n.jsx)(a.h7,{type:"source",position:r.yX.Left,id:"sl",className:e})]})}},98378:(e,t,s)=>{s.d(t,{MapClient:()=>ef});var n=s(95155),a=s(12115),r=s(98112),o=s(6266),l=s(81750);s(53255);var i=s(17356),d=s(2125),c=s(15480),u=s(65377),m=s(17494),p=s(80846),x=s(45486),h=s(95635),f=s(65408),g=s(8962),b=s(84824),v=s(5736),j=s(86272),y=s(65738),N=s(40638),w=s(26518);let k=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],C=["KEEP","REBUILD","REPLACE","DROP"],E=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],S={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"}},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"];function z(e){let t=(e??"").trim().toUpperCase();if(!t)return"bg-white/[0.06] text-muted-foreground";let s=0;for(let e=0;e<t.length;e++)s=31*s+t.charCodeAt(e)>>>0;return A[s%A.length]}let T=(0,a.createContext)(null);var I=s(60874),D=s(91337);let R=[{v:0,l:"P0 \xb7 critical"},{v:1,l:"P1 \xb7 high"},{v:2,l:"P2 \xb7 medium"},{v:3,l:"P3 \xb7 low"}],M="nodrag nopan";function $({id:e,data:t,selected:s}){let{categories:r,statuses:o,patch:l,isExpanded:i,toggleExpand:d,openDetailed:c,removeNode:u,editingTitleId:m,onAskAgent:p}=function(){let e=(0,a.useContext)(T);if(!e)throw Error("useNodeEdit must be used inside NodeEditContext");return e}(),k=i(e),[C,E]=(0,a.useState)(!1),[A,P]=(0,a.useState)(!1),[L,O]=(0,a.useState)(t.title),[F,_]=(0,a.useState)(t.cluster??""),[H,B]=(0,a.useState)(t.plain??""),U=0===t.priority,X="CANCELLED"===t.status||"DROP"===t.status,K="DEPRIORITIZED"===t.status,G="DRAFT"===t.source,Z="IN_PROGRESS"===t.status,Y="INIT"===t.source&&"ROADMAP"===t.view,W=e=>e.stopPropagation();return(0,n.jsxs)("div",{className:(0,D.cn)("rounded-lg border bg-card px-2.5 py-2 text-card-foreground shadow-sm transition",k?"w-80":t.isChild?"w-56":"w-64",G?"border-dashed border-sky-400/50 bg-sky-500/[0.06]":Y?"border-dashed border-violet-400/60 bg-violet-500/[0.07] shadow-[0_0_0_1px_rgba(167,139,250,0.18)]":U?"border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]":"border-border",Z&&"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)]",s&&"ring-2 ring-[var(--accent,#f5b942)]",X&&"opacity-60",K&&"opacity-70 border-dashed"),children:[(0,n.jsx)(h.x,{}),t.isNext&&(0,n.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,n.jsxs)("div",{className:"flex items-start gap-1.5",children:[Z&&(0,n.jsx)("span",{title:"em andamento",className:"mt-1.5 inline-block size-2 shrink-0 animate-pulse rounded-full bg-sky-400"}),t.isCriterion&&!Z&&(0,n.jsx)("span",{title:"Success criterion",className:"mt-1.5 inline-block size-1.5 shrink-0 rounded-full bg-[var(--accent,#f5b942)]"}),(0,n.jsx)("textarea",{rows:1,value:L,autoFocus:m===e,placeholder:"Title…",onFocus:t=>{m===e&&t.currentTarget.select()},onChange:e=>O(e.target.value),onBlur:()=>{let s=L.trim();s&&s!==t.title&&l(e,{title:s},!0)},onKeyDown:e=>{W(e),"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.currentTarget.blur())},className:(0,D.cn)(M,"field-sizing-content w-full resize-none bg-transparent text-sm font-medium leading-snug outline-none placeholder:text-muted-foreground/60",X&&"line-through")}),(0,n.jsx)("button",{type:"button",onClick:t=>{W(t),d(e)},title:k?"Collapse":"Expand",className:(0,D.cn)(M,"mt-0.5 shrink-0 text-muted-foreground hover:text-foreground"),children:k?(0,n.jsx)(f.A,{className:"size-3.5"}):(0,n.jsx)(g.A,{className:"size-3.5"})})]}),((t.signals?.untested??0)>0||t.signals?.auth)&&(0,n.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:[(t.signals?.untested??0)>0&&(0,n.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,n.jsx)(b.A,{className:"size-2.5"}),t.signals.untested," untested"]}),t.signals?.auth&&(0,n.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,n.jsx)(v.A,{className:"size-2.5"})," auth"]})]}),t.role&&(0,n.jsx)("div",{className:(0,D.cn)("mt-0.5 text-[10px] leading-snug text-muted-foreground",!k&&"line-clamp-1"),children:t.role}),(0,n.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:["ROADMAP"===t.view?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{title:t.isChild?"Sub-task of a feature":"Feature — top-level roadmap item",className:(0,D.cn)("shrink-0 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",t.isChild?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300"),children:t.isChild?"sub-task":"feature"}),Y&&(0,n.jsxs)("span",{className:"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",children:[(0,n.jsx)(j.A,{className:"size-2.5"})," IA"]}),(0,n.jsx)("input",{list:`cats-${e}`,value:F,placeholder:"category",onChange:e=>_(e.target.value),onBlur:()=>{let s=F.trim()||null;s!==(t.cluster??null)&&l(e,{cluster:s},!0)},onKeyDown:e=>{W(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,D.cn)(M,"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",z(F))})]}):(0,n.jsxs)(n.Fragment,{children:[t.isChild&&(0,n.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,n.jsx)("input",{list:`cats-${e}`,value:F,placeholder:"domain",title:"Architecture domain — the lane this component lives in",onChange:e=>_(e.target.value),onBlur:()=>{let s=F.trim()||null;s!==(t.cluster??null)&&l(e,{cluster:s},!0)},onKeyDown:e=>{W(e),"Enter"===e.key&&e.currentTarget.blur()},className:(0,D.cn)(M,"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",z(F))})]}),(0,n.jsx)("datalist",{id:`cats-${e}`,children:r.map(e=>(0,n.jsx)("option",{value:e},e))}),(0,n.jsxs)(w.l6,{value:t.status,onValueChange:t=>l(e,{status:t},!0),children:[(0,n.jsx)(w.bq,{className:(0,D.cn)(M,"ml-auto h-6 shrink-0 gap-1 rounded border px-1.5 py-0 text-[10px] font-medium",S[t.status]?.className??"border-white/10"),children:(0,n.jsx)(w.yv,{children:e=>S[e]?.label??e})}),(0,n.jsx)(w.gC,{alignItemWithTrigger:!1,children:o.map(e=>(0,n.jsx)(w.eb,{value:e,children:S[e]?.label??e},e))})]})]}),k&&(0,n.jsxs)("div",{className:"mt-2 space-y-2 border-t border-white/10 pt-2",children:[A||!H.trim()?(0,n.jsx)("textarea",{autoFocus:A,value:H,placeholder:"Description (markdown)…",onChange:e=>B(e.target.value),onBlur:()=>{P(!1);let s=H.trim()||null;s!==(t.plain??null)&&l(e,{plain:s},!0)},onKeyDown:W,rows:3,className:(0,D.cn)(M,"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,n.jsx)("div",{onClick:e=>{W(e),P(!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,n.jsx)(I.pO,{markdown:H,variant:"compact",className:"text-[12px]"})}),(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)(w.l6,{value:String(t.priority),onValueChange:t=>l(e,{priority:Number(t)},!0),children:[(0,n.jsx)(w.bq,{className:(0,D.cn)(M,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,n.jsx)(w.yv,{children:e=>R.find(t=>String(t.v)===e)?.l??e})}),(0,n.jsx)(w.gC,{alignItemWithTrigger:!1,children:R.map(e=>(0,n.jsx)(w.eb,{value:String(e.v),children:e.l},e.v))})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsxs)("button",{type:"button",onClick:t=>{W(t),C?u(e):E(!0)},onBlur:()=>E(!1),title:"Delete node",className:(0,D.cn)(M,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] transition-colors",C?"bg-red-500/20 text-red-300":"text-muted-foreground hover:bg-white/5 hover:text-red-300"),children:[(0,n.jsx)(y.A,{className:"size-3"}),C&&"Delete?"]}),p&&(0,n.jsxs)("button",{type:"button",onClick:e=>{W(e),p(`feature: ${t.title}`)},title:"Ask the agent a question about this feature (answered in its next round)",className:(0,D.cn)(M,"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,n.jsx)(N.A,{className:"size-3"})," Ask"]}),(0,n.jsxs)("button",{type:"button",onClick:t=>{W(t),c(e)},className:(0,D.cn)(M,"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,n.jsx)(x.A,{className:"size-3"})," Details"]})]})]})]})]})}var P=s(57144),L=s(73321),O=s(9005),F=s(32133),_=s(82099),H=s(4474),B=s(70521),U=s(74350);function X({className:e,type:t,...s}){return(0,n.jsx)("input",{type:t,"data-slot":"input",className:(0,D.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),...s})}function K({className:e,...t}){return(0,n.jsx)("textarea",{"data-slot":"textarea",className:(0,D.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 G=s(61388);function Z({className:e,...t}){return(0,n.jsx)(G.b,{"data-slot":"label",className:(0,D.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})}var Y=s(9339);let W=(0,Y.createServerReference)("4085502f8076ac8b14d776d0935ba24e4bea4253c5",Y.callServer,void 0,Y.findSourceMapURL,"createNodeAction"),q=(0,Y.createServerReference)("605cc0119d2970cbb18ae441cd66e0396a88af8f76",Y.callServer,void 0,Y.findSourceMapURL,"updateNodeAction");function V({open:e,onOpenChange:t,mode:s,view:r,heading:o,nodeId:l,parentId:i,position:d,defaults:c}){let u=(0,L.useRouter)(),[m,p]=(0,a.useState)(c?.title??""),[x,h]=(0,a.useState)(c?.role??""),[f,g]=(0,a.useState)(c?.plain??""),[b,v]=(0,a.useState)(c?.cluster??""),[j,y]=(0,a.useState)(c?.status??("ARCHITECTURE"===r?"REBUILD":"PENDING")),[N,E]=(0,a.useState)(!1),A="ARCHITECTURE"===r?C:k;async function z(){if(m.trim()){E(!0);try{"create"===s?await W({view:r,title:m.trim(),role:x.trim()||null,plain:f.trim()||null,cluster:b.trim()||null,parentId:i??null,status:j,x:d?.x??60,y:d?.y??60}):l&&await q(l,{title:m.trim(),role:x.trim()||null,plain:f.trim()||null,cluster:b.trim()||null,status:j}),t(!1),u.refresh()}finally{E(!1)}}}return(0,n.jsx)(U.lG,{open:e,onOpenChange:t,children:(0,n.jsxs)(U.Cf,{children:[(0,n.jsx)(U.c7,{children:(0,n.jsx)(U.L3,{children:o})}),(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(Z,{htmlFor:"nf-title",children:"Title"}),(0,n.jsx)(X,{id:"nf-title",value:m,autoFocus:!0,onChange:e=>p(e.target.value)})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(Z,{htmlFor:"nf-role",children:"Role (one line)"}),(0,n.jsx)(X,{id:"nf-role",value:x,onChange:e=>h(e.target.value)})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(Z,{htmlFor:"nf-plain",children:"Description"}),(0,n.jsx)(K,{id:"nf-plain",rows:3,value:f,onChange:e=>g(e.target.value)})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(Z,{children:"Status"}),(0,n.jsxs)(w.l6,{value:j,onValueChange:e=>null!=e&&y(e),children:[(0,n.jsx)(w.bq,{children:(0,n.jsx)(w.yv,{children:e=>S[e]?.label??e})}),(0,n.jsx)(w.gC,{children:A.map(e=>(0,n.jsx)(w.eb,{value:e,children:S[e]?.label??e},e))})]})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(Z,{htmlFor:"nf-cluster",children:"Cluster / lane"}),(0,n.jsx)(X,{id:"nf-cluster",value:b,onChange:e=>v(e.target.value)})]})]})]}),(0,n.jsxs)(U.Es,{children:[(0,n.jsx)(H.$,{variant:"outline",onClick:()=>t(!1),children:"Cancel"}),(0,n.jsx)(H.$,{onClick:z,disabled:N||!m.trim(),children:N?"Saving…":"Save"})]})]})})}let J=(0,Y.createServerReference)("4055544e1ba3bb0f316d2ea39f6e452466d29b665e",Y.callServer,void 0,Y.findSourceMapURL,"acceptSuggestionAction"),Q=(0,Y.createServerReference)("402b83934babae9d78f618e7479484a043c9d56a4e",Y.callServer,void 0,Y.findSourceMapURL,"deleteNodeAction"),ee=(0,Y.createServerReference)("60f37ce4d2e928380a13b9bd3aed7837e5b5fde2e4",Y.callServer,void 0,Y.findSourceMapURL,"setStatusAction"),et=(0,Y.createServerReference)("40f737ef546178b8bf80ba5fb058c4307ab268a7ec",Y.callServer,void 0,Y.findSourceMapURL,"cancelAction"),es=(0,Y.createServerReference)("40b228b9d37242d21338e76620e56aa03e5611e109",Y.callServer,void 0,Y.findSourceMapURL,"deprioritizeAction");function en({view:e,selected:t,allNodes:s,onClose:a,commentsContent:r,commentsCount:o=0,activeTab:l,onTabChange:i,onAddComment:d,topOffset:c}){let u=!!r,m=l??"details";return(0,n.jsxs)(_.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:c??12},children:[u?(0,n.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,n.jsx)(ea,{active:"details"===m,onClick:()=>i?.("details"),children:"Details"}),(0,n.jsxs)(ea,{active:"comments"===m,onClick:()=>i?.("comments"),children:["Comments",o>0&&(0,n.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:o})]})]}),(0,n.jsx)("button",{onClick:a,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,n.jsx)(O.A,{className:"size-4"})})]}):(0,n.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,n.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Details"}),(0,n.jsx)("button",{onClick:a,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,n.jsx)(O.A,{className:"size-4"})})]}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,n.jsx)("div",{className:"p-3",children:"comments"===m&&u?r:t?(0,n.jsxs)(n.Fragment,{children:[d&&(0,n.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,n.jsx)(F.A,{className:"size-3.5"}),"Comment on this ","ARCHITECTURE"===e?"component":"feature"]}),(0,n.jsx)(er,{node:t,view:e},t.id)]}):(0,n.jsx)(eo,{view:e,nodes:s})})})]})}function ea({active:e,onClick:t,children:s}){return(0,n.jsx)("button",{type:"button",onClick:t,className:(0,D.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:s})}function er({node:e,view:t}){var s;let r=(0,L.useRouter)(),[o,l]=(0,a.useTransition)(),[i,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(!1),m="ARCHITECTURE"===t?C:k,p=e=>l(async()=>{await e(),r.refresh()});return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:[(s=e.cluster,s?.trim()||"—"),0===e.priority&&(0,n.jsx)("span",{className:"ml-2 text-[#ff7a90]",children:"\xb7 critical path"})]}),(0,n.jsx)("h2",{className:"mt-1 text-lg font-semibold leading-tight",children:e.title})]}),"INIT"===e.source&&(0,n.jsxs)("div",{className:"rounded-lg border border-violet-400/30 bg-violet-500/[0.06] p-2.5",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-violet-300",children:[(0,n.jsx)(j.A,{className:"size-3.5"})," AI suggestion"]}),(0,n.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,n.jsxs)("div",{className:"mt-2 flex gap-1.5",children:[(0,n.jsx)(H.$,{size:"sm",className:"h-7 px-2.5 text-xs",disabled:o,onClick:()=>p(()=>J(e.id)),children:"Accept"}),(0,n.jsx)(H.$,{size:"sm",variant:"outline",className:"h-7 px-2.5 text-xs text-muted-foreground",disabled:o,onClick:()=>p(()=>Q(e.id)),children:"Dismiss"})]})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:"Status"}),(0,n.jsxs)(w.l6,{value:e.status,onValueChange:t=>null!=t&&p(()=>ee(e.id,t)),children:[(0,n.jsx)(w.bq,{className:"h-8",disabled:o,children:(0,n.jsx)(w.yv,{children:e=>S[e]?.label??e})}),(0,n.jsx)(w.gC,{children:m.map(e=>(0,n.jsx)(w.eb,{value:e,children:S[e]?.label??e},e))})]})]}),e.plain&&(0,n.jsx)("div",{className:"rounded-md border border-white/5 bg-card/40 px-2.5 py-2 text-sm",children:(0,n.jsx)(I.pO,{markdown:e.plain,variant:"compact",className:"text-[12.5px]"})}),e.sourceRef&&(0,n.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,n.jsxs)("div",{children:[(0,n.jsxs)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Files (",e.files.length,")"]}),(0,n.jsx)("ul",{className:"space-y-0.5",children:e.files.map(e=>(0,n.jsx)("li",{children:(0,n.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))})]}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:[(0,n.jsx)(H.$,{size:"sm",variant:"outline",onClick:()=>d(!0),children:"Edit"}),(0,n.jsx)(H.$,{size:"sm",variant:"outline",onClick:()=>u(!0),children:"+ Sub-node"}),(0,n.jsx)(H.$,{size:"sm",variant:"outline",disabled:o,onClick:()=>p(()=>et(e.id)),children:"Cancel"}),(0,n.jsx)(H.$,{size:"sm",variant:"outline",disabled:o,onClick:()=>p(()=>es(e.id)),children:"Deprioritize"}),(0,n.jsxs)(B.Lt,{children:[(0,n.jsx)(B.tv,{render:(0,n.jsx)(H.$,{size:"sm",variant:"outline",className:"text-red-300",children:"Delete"})}),(0,n.jsxs)(B.EO,{children:[(0,n.jsxs)(B.wd,{children:[(0,n.jsxs)(B.r7,{children:["Delete “",e.title,"”?"]}),(0,n.jsx)(B.$v,{children:"This removes the node and all its sub-nodes. It can’t be undone."})]}),(0,n.jsxs)(B.ck,{children:[(0,n.jsx)(B.Zr,{children:"Cancel"}),(0,n.jsx)(B.Rx,{onClick:()=>p(()=>Q(e.id)),children:"Delete"})]})]})]})]}),i&&(0,n.jsx)(V,{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}}),c&&(0,n.jsx)(V,{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 eo({view:e,nodes:t}){let s=t.filter(e=>0===e.priority).length;return(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:"text-sm font-semibold",children:"ROADMAP"===e?"Roadmap":"Architecture"}),(0,n.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,n.jsxs)("dl",{className:"grid grid-cols-2 gap-2 text-center",children:[(0,n.jsx)(el,{label:"nodes",value:t.length}),(0,n.jsx)(el,{label:"critical",value:s})]})]})}function el({label:e,value:t}){return(0,n.jsxs)("div",{className:"rounded-md border border-border bg-card py-2",children:[(0,n.jsx)("div",{className:"text-lg font-semibold",children:t}),(0,n.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:e})]})}var ei=s(18874),ed=s(62311),ec=s(56614);let eu=[{value:"cluster",label:"Theme"},{value:"status",label:"Status"},{value:"priority",label:"Priority"}],em=new Set(["title","role","plain","cluster","status","priority"]),ep={roadmapNode:$,archNode:$},ex={deletable:P.I},eh={CONTAINS:{stroke:"#7c7c8a"},DEPENDS:{stroke:"#f5b942",dash:"6 4"},RELATES:{stroke:"#8a8a95",dash:"4 4"},REPLACES:{stroke:"#ff6b9d"}};function ef({view:e,nodes:t,edges:s,workOnNextId:h=null,embedded:f=!1,commentsContent:g,commentsCount:b=0,controlRef:v,onAskAgent:j,onAddComment:y}){let N=(0,a.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,source:e.source,sourceRef:e.sourceRef,isCriterion:e.isCriterion,isChild:null!=e.parentId,parentId:e.parentId,signals:e.signals}})),[t]),w=(0,a.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:eh.CONTAINS.stroke}})),...s.filter(t=>e.has(t.fromId)&&e.has(t.toId)).map(e=>{let t=eh[e.kind]??eh.RELATES,s="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??s,type:"deletable",markerEnd:{type:o.TG.ArrowClosed,color:t.stroke},style:{stroke:t.stroke,strokeDasharray:t.dash}}})]},[t,s]),[A,z]=(0,a.useState)(N),[I,R]=(0,a.useState)(w),[M,$]=(0,a.useState)(null),[P,L]=(0,a.useState)(null),[O,F]=(0,a.useState)(null),[_,H]=(0,a.useState)(!1),[B,U]=(0,a.useState)("details"),X=(0,a.useRef)(!1),K=(0,a.useRef)("details");(0,a.useEffect)(()=>{X.current=_},[_]),(0,a.useEffect)(()=>{K.current=B},[B]),(0,a.useEffect)(()=>{if(v)return v.current={open:()=>{if(X.current){H(!1),U("details");return}H(!0),U("details")},close:()=>{H(!1),U("details")},openComments:()=>{H(!0),U("comments")}},()=>{v&&(v.current=null)}},[v]);let[G,Z]=(0,a.useState)(new Set),[Y,W]=(0,a.useState)(null),[q,V]=(0,a.useState)(!1),J=(0,a.useRef)(0),Q=(0,a.useRef)(null);(0,a.useEffect)(()=>z(N),[N]),(0,a.useEffect)(()=>R(w),[w]);let ee=(0,a.useCallback)((e,t,s)=>{z(s=>s.map(s=>s.id===e?{...s,data:{...s.data,...t}}:s)),s&&fetch(`/api/nodes/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(Object.fromEntries(Object.entries(t).filter(([e])=>em.has(e))))})},[]),et=(0,a.useMemo)(()=>Array.from(new Set(A.map(e=>e.data.cluster).filter(e=>!!e))).sort(),[A]),es=(0,a.useCallback)(e=>Z(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s}),[]),ea=(0,a.useCallback)(e=>{$(e),H(!0),U("details")},[]),er=(0,a.useCallback)(e=>{z(t=>t.filter(t=>t.id!==e)),$(t=>t===e?null:t),fetch(`/api/nodes/${e}`,{method:"DELETE"})},[]),eo=(0,a.useCallback)(async(t,s)=>{let n=(0,r.sX)(),a="ARCHITECTURE"===e?"REBUILD":"PENDING";z(r=>[...r,{id:n,type:"ROADMAP"===e?"roadmapNode":"archNode",position:{x:t,y:s},data:{title:"New node",role:null,plain:null,status:a,priority:2,cluster:null,view:e,source:"MANUAL",sourceRef:null,isCriterion:!1,isChild:!1,parentId:null}}]),Z(e=>new Set(e).add(n)),W(n),$(n);try{if(!(await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:n,view:e,title:"New node",status:a,x:t,y:s})})).ok)throw Error("create failed")}catch{z(e=>e.filter(e=>e.id!==n)),Z(e=>{let t=new Set(e);return t.delete(n),t}),W(e=>e===n?null:e),$(e=>e===n?null:e)}},[e]),el=(0,a.useCallback)(()=>{let e=J.current++%8*28;eo(80+e,80+e)},[eo]),eg=(0,a.useMemo)(()=>({view:e,categories:et,statuses:"ARCHITECTURE"===e?C:k,patch:ee,isExpanded:e=>G.has(e),toggleExpand:es,openDetailed:ea,removeNode:er,editingTitleId:Y,onAskAgent:j}),[e,et,ee,G,es,ea,er,Y,j]),[eb,ev]=(0,a.useState)(null),[ej,ey]=(0,a.useState)(""),[eN,ew]=(0,a.useState)(new Set),[ek,eC]=(0,a.useState)(new Set),[eE,eS]=(0,a.useState)(new Set),eA=(0,a.useMemo)(()=>Array.from(new Set(t.map(e=>e.status))),[t]),ez=(0,a.useMemo)(()=>Array.from(new Set(t.map(e=>e.cluster).filter(e=>!!e))).sort(),[t]),eT=(0,a.useMemo)(()=>Array.from(new Set(t.map(e=>e.priority))).sort((e,t)=>e-t),[t]),eI=(0,a.useCallback)(e=>(!eN.size||!!eN.has(e.status))&&(!ek.size||!!e.cluster&&!!ek.has(e.cluster))&&(!eE.size||!!eE.has(e.priority)),[eN,ek,eE]),eD=eN.size+ek.size+eE.size,eR=(0,a.useCallback)(()=>{ew(new Set),eC(new Set),eS(new Set)},[]),eM=(0,a.useMemo)(()=>A.map(e=>({...e,hidden:!eI(e.data)})),[A,eI]),e$=(0,a.useMemo)(()=>new Set(eM.filter(e=>e.hidden).map(e=>e.id)),[eM]),eP=(0,a.useMemo)(()=>I.map(e=>({...e,hidden:e$.has(e.source)||e$.has(e.target)})),[I,e$]),eL=(0,a.useMemo)(()=>{if(P){let e=eP.find(e=>e.id===P);return e?new Set([e.source,e.target]):null}return M?(0,ei.F1)(M,eP.filter(e=>!e.hidden)):null},[M,P,eP]),eO=(0,a.useMemo)(()=>eM.map(e=>{let t=h&&e.id===h?{...e,data:{...e.data,isNext:!0}}:e;return!eL||t.hidden?t:{...t,style:{...t.style,opacity:eL.has(e.id)?1:.45,transition:"opacity 120ms"}}}),[eM,eL,h]),eF=(0,a.useMemo)(()=>{if(!eb||"ROADMAP"!==e)return[];let t=new Map(eO.map(e=>[e.id,e])),s=new Map;for(let e of eO){var n;if(e.hidden)continue;let a=(n=((e.data.parentId?t.get(e.data.parentId):void 0)??e).data,"status"===eb?S[n.status]?.label??n.status:"priority"===eb?`P${n.priority}`:n.cluster?.trim()||"—"),r=e.measured?.width??(e.data.isChild?224:256),o=e.measured?.height??96,l=e.position.x,i=e.position.y,d=s.get(a);d?(d.minX=Math.min(d.minX,l),d.minY=Math.min(d.minY,i),d.maxX=Math.max(d.maxX,l+r),d.maxY=Math.max(d.maxY,i+o)):s.set(a,{label:a,minX:l,minY:i,maxX:l+r,maxY:i+o})}return Array.from(s.values()).map(e=>({label:e.label,x:e.minX-20,y:e.minY-20-26,w:e.maxX-e.minX+40,h:e.maxY-e.minY+40+26}))},[eO,eb,e]),e_=(0,a.useMemo)(()=>{let e=M??O;return P||e?eP.map(t=>t.hidden?t:(P?t.id===P: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}}):eP.map(e=>e.hidden?e:{...e,label:void 0,style:{...e.style,opacity:.18}})},[eP,M,P,O]),eH=(0,a.useCallback)(e=>z(t=>(0,l._0)(e,t)),[]),eB=(0,a.useCallback)(e=>R(t=>(0,l.zW)(e,t)),[]),eU=(0,a.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 s=await t.json(),n=eh.DEPENDS;R(t=>t.some(e=>e.id===s.id)?t:[...t,{id:s.id,source:s.fromId,sourceHandle:e.sourceHandle??void 0,target:s.toId,targetHandle:e.targetHandle??void 0,label:"depends on",type:"deletable",markerEnd:{type:o.TG.ArrowClosed,color:n.stroke},style:{stroke:n.stroke,strokeDasharray:n.dash}}])},[]),eX=(0,a.useCallback)(async(t,s,n)=>{let a=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:s,y:n})});if(!a.ok)return;let r=await a.json();z(a=>[...a,{id:r.id,type:"ROADMAP"===e?"roadmapNode":"archNode",position:{x:s,y:n},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,isCriterion:!1,isChild:!0,parentId:t.id}}]),R(e=>[...e,{id:`c-${r.id}`,source:t.id,target:r.id,type:"smoothstep",style:{stroke:eh.CONTAINS.stroke}}]),Z(e=>new Set(e).add(r.id)),W(r.id),$(r.id)},[e]),eK=(0,a.useCallback)(async(e,t)=>{if(t.isValid||!t.fromNode||!Q.current)return;let s=e.changedTouches,n=s?.[0]?.clientX??e.clientX,a=s?.[0]?.clientY??e.clientY,{x:r,y:o}=Q.current.screenToFlowPosition({x:n,y:a});await eX(t.fromNode,r,o)},[eX]);(0,a.useEffect)(()=>{if(!q)return;let e=e=>{"Escape"===e.key&&V(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[q]);let eG=(0,a.useMemo)(()=>t.find(e=>e.id===M)??null,[t,M]),eZ=(0,a.useCallback)((e,t,s)=>{fetch(`/api/nodes/${e}/position`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({x:t,y:s})})},[]),eY=(0,a.useCallback)(e=>{$(e),L(null);let t=Q.current?.getNode(e);if(!t||!Q.current)return;let s=t.measured?.width??128,n=t.measured?.height??48;Q.current.setCenter(t.position.x+s/2,t.position.y+n/2,{zoom:1.2,duration:600})},[]),eW=(0,a.useCallback)(e=>{let t=function(e,t,s={}){let n=s.colW??320,a=s.rowH??150,r=s.childIndent??24,o=s.laneGap??56,l=s.bandGap??110,i=s.maxCols??4,d=s.maxBandW??6*n,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),s=h.get(t);s?s.push(e):h.set(t,[e])}let f=(function(e,t,s){if("status"===e)return[...E];if("priority"===e)return["0","1","2","3"];let n=Array.from(new Set(t.map(s))),a=n.filter(e=>"—"!==e).sort();return n.includes("—")?[...a,"—"]:a})(t,m,x).filter(e=>h.has(e)),g=new Map,b=0,v=0,j=0;for(let e of f){let t=h.get(e),s=Math.max(1,Math.min(i,Math.ceil(Math.sqrt(t.length)))),c=s*n;b>0&&b+c>d&&(b=0,v+=j+l,j=0);let u=Array(s).fill(0);for(let e of t){let t=0;for(let e=1;e<s;e++)u[e]<u[t]&&(t=e);let o=b+t*n,l=v+u[t]*a;g.set(e.id,{x:o,y:l});let i=p.get(e.id)??[];i.forEach((e,t)=>{g.set(e.id,{x:o+r,y:l+(t+1)*a})}),u[t]+=1+i.length}j=Math.max(j,u.reduce((e,t)=>Math.max(e,t),0)*a),b+=c+o}return g}(A.map(e=>({id:e.id,parentId:e.data.parentId??null,cluster:e.data.cluster,status:e.data.status,priority:e.data.priority})),e);z(e=>e.map(e=>{let s=t.get(e.id);return s?{...e,position:s}:e}));let s=Array.from(t,([e,t])=>({id:e,x:t.x,y:t.y}));s.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:s})}),ev(e),requestAnimationFrame(()=>Q.current?.fitView({duration:600,padding:.2}))},[A]),eq=(0,a.useMemo)(()=>{let e=ej.trim().toLowerCase();return e?A.filter(t=>eI(t.data)&&t.data.title.toLowerCase().includes(e)).slice(0,8):[]},[A,ej,eI]);function eV(e,t){t(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})}return(0,n.jsx)(T.Provider,{value:eg,children:(0,n.jsxs)("div",{className:(0,D.cn)("relative w-full",f?"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")||!Q.current)return;e.preventDefault();let{x:t,y:s}=Q.current.screenToFlowPosition({x:e.clientX,y:e.clientY});eo(t,s)},children:[(0,n.jsxs)(l.Gc,{nodes:eO,edges:e_,nodeTypes:ep,edgeTypes:ex,connectionMode:o.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:e=>{Q.current=e},onNodesChange:eH,onEdgesChange:eB,onConnect:eU,onConnectEnd:eK,onNodeMouseEnter:(e,t)=>F(t.id),onNodeMouseLeave:()=>F(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)fetch(`/api/nodes/${t.id}`,{method:"DELETE"}),$(e=>e===t.id?null:e)},onNodeClick:(e,t)=>{if(q){if(V(!1),t.data.isChild)return;eX(t,t.position.x+300,t.position.y+60);return}if($(t.id),L(null),U("details"),f){let t=e.target;t?.closest("input, textarea, select, button, [role='combobox']")||H(!0)}},onEdgeClick:(e,t)=>{L(t.id),$(null),U("details")},onPaneClick:()=>{q?V(!1):($(null),L(null))},onNodeDragStop:(e,t)=>eZ(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,n.jsx)(l.VS,{gap:22,color:"#2a2a32"}),eF.length>0&&(0,n.jsx)(l.DX,{children:eF.map(e=>(0,n.jsx)("div",{style:{position:"absolute",transform:`translate(${e.x}px, ${e.y}px)`,width:e.w,height:e.h,pointerEvents:"none",zIndex:0},className:"rounded-2xl border border-white/[0.08] bg-white/[0.015]",children:(0,n.jsx)("div",{className:"px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:e.label})},e.label))}),(0,n.jsx)(l.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,n.jsx)(l.Zk,{position:"bottom-right",style:{marginBottom:152},children:(0,n.jsx)(ec.er,{title:"Legend",trigger:(e,t)=>(0,n.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,D.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,n.jsx)(i.A,{className:"size-4"})}),children:(0,n.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.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,n.jsx)("span",{children:"top-level card \xb7 can have sub-tasks"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.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,n.jsx)("span",{children:"child of a feature"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#33333a]"}),(0,n.jsx)("span",{children:"contains \xb7 drag the bottom handle to empty canvas"})]}),(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#f5b942"}}),(0,n.jsx)("span",{children:"depends on \xb7 drag between two cards"})]})]})})}),!f&&(0,n.jsx)(l.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,n.jsxs)(l.Zk,{position:"bottom-center",className:"!mb-4 flex flex-col items-center gap-2",children:[q&&(0,n.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"]}),"ROADMAP"===e&&(0,n.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,n.jsx)("span",{className:"pl-2 pr-0.5 text-[11px] text-muted-foreground",children:"Group by"}),eu.map(e=>(0,n.jsx)("button",{onClick:()=>eW(e.value),title:`Arrange features into lanes by ${e.label.toLowerCase()}`,className:(0,D.cn)("h-7 rounded-full px-2.5 text-[11px] font-medium transition-colors",eb===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,n.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,n.jsxs)("button",{onClick:el,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,n.jsx)(d.A,{className:"size-3.5 text-[var(--accent-2,#ff7a45)]"}),"ARCHITECTURE"===e?"Component":"Feature"]}),(0,n.jsx)("span",{"aria-hidden":!0,className:"mx-0.5 h-5 w-px bg-white/10"}),(0,n.jsxs)("button",{onClick:()=>V(e=>!e),title:"ARCHITECTURE"===e?"Add sub-component (click a component next)":"Add sub-task (click a feature next)",className:(0,D.cn)("flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium transition-colors",q?"bg-white/[0.1] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,n.jsx)(c.A,{className:"size-3.5"}),"ARCHITECTURE"===e?"Sub-component":"Sub-task"]})]})]}),!f&&(0,n.jsx)(l.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,n.jsx)(ed.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,n.jsxs)(l.Zk,{position:"top-right",className:(0,D.cn)("flex items-center gap-1 transition-[margin] duration-200",_&&"!mr-[332px]",f&&"hidden"),children:[(0,n.jsxs)(ec.er,{title:"Search",trigger:(e,t)=>(0,n.jsx)("button",{type:"button",onClick:t,title:"Search features",className:(0,D.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,n.jsx)(u.A,{className:"size-4"})}),children:[(0,n.jsx)("input",{autoFocus:!0,value:ej,onChange:e=>ey(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,n.jsxs)("div",{className:"mt-2 max-h-64 space-y-0.5 overflow-y-auto",children:[ej.trim()&&0===eq.length&&(0,n.jsx)("div",{className:"px-1 py-1 text-[11px] text-muted-foreground",children:"No matches"}),eq.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>eY(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&&h&&(0,n.jsx)("button",{type:"button",onClick:()=>eY(h),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,n.jsx)(m.A,{className:"size-4"})}),(0,n.jsxs)(ec.er,{title:"Filters",trigger:(e,t)=>(0,n.jsxs)("button",{type:"button",onClick:t,title:"Filters",className:(0,D.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",e||eD>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,n.jsx)(p.A,{className:"size-4"}),eD>0&&(0,n.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:eD})]}),children:[eA.length>0&&(0,n.jsx)(ec.r1,{title:"Status",children:eA.map(e=>(0,n.jsx)(ec.vu,{on:eN.has(e),onClick:()=>eV(e,ew),children:S[e]?.label??e},e))}),ez.length>0&&(0,n.jsx)(ec.r1,{title:"Cluster",children:ez.map(e=>(0,n.jsx)(ec.vu,{on:ek.has(e),onClick:()=>eV(e,eC),children:e},e))}),eT.length>0&&(0,n.jsx)(ec.r1,{title:"Priority",children:eT.map(e=>(0,n.jsxs)(ec.vu,{on:eE.has(e),onClick:()=>eV(e,eS),children:["P",e]},e))}),eD>0&&(0,n.jsx)("button",{type:"button",onClick:eR,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,n.jsx)("button",{onClick:()=>{H(!0),U("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,n.jsx)(x.A,{className:"size-4"})})]})]}),_&&(0,n.jsx)(en,{view:e,selected:eG,allNodes:t,onClose:()=>{H(!1),U("details")},commentsContent:g,commentsCount:b,activeTab:B,onTabChange:U,onAddComment:y,topOffset:f?64:void 0})]})})}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,204,730,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,5177,5190,5412,5807,5884,6600,6714,6760,6805,6819,6950,6988,7137,7317,7423,7612,7691,7705,7743,7851,8167,8617,9140,9550,9560],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);