vibedoc 1.5.0 → 1.6.0

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 (405) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/prerender-manifest.json +11 -11
  4. package/.next/required-server-files.json +0 -4
  5. package/.next/server/app/(app)/activity/page/build-manifest.json +1 -1
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page/build-manifest.json +1 -1
  9. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/docs/page/build-manifest.json +1 -1
  12. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/explorer/page/build-manifest.json +1 -1
  15. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/memory/page/build-manifest.json +1 -1
  18. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/roadmap/page/build-manifest.json +1 -1
  21. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/settings/page/build-manifest.json +1 -1
  24. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/setup/page/build-manifest.json +1 -1
  27. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/_global-error/page/build-manifest.json +1 -1
  30. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  31. package/.next/server/app/_global-error.html +1 -1
  32. package/.next/server/app/_global-error.rsc +1 -1
  33. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/.next/server/app/_not-found/page/build-manifest.json +1 -1
  37. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  38. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/_not-found.html +1 -1
  40. package/.next/server/app/_not-found.rsc +2 -2
  41. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  42. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/activity.html +1 -1
  45. package/.next/server/app/activity.rsc +23 -22
  46. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +5 -5
  47. package/.next/server/app/activity.segments/_full.segment.rsc +23 -22
  48. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  49. package/.next/server/app/api/activity/route.js +3 -3
  50. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  51. package/.next/server/app/api/backlinks/route.js +3 -3
  52. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  53. package/.next/server/app/api/chat/route.js +3 -3
  54. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  55. package/.next/server/app/api/context/route.js +3 -3
  56. package/.next/server/app/api/context/route.js.nft.json +1 -1
  57. package/.next/server/app/api/decisions/route.js +3 -3
  58. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  59. package/.next/server/app/api/docs/route.js +3 -3
  60. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  61. package/.next/server/app/api/events/route.js.nft.json +1 -1
  62. package/.next/server/app/api/explorer/route.js +4 -3
  63. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  64. package/.next/server/app/api/mcp/route.js +4 -4
  65. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  66. package/.next/server/app/api/memory/route.js +3 -3
  67. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  68. package/.next/server/app/api/plan/apply/route.js +4 -4
  69. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  70. package/.next/server/app/api/projects/route.js +3 -3
  71. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  72. package/.next/server/app/api/registry/route.js +3 -3
  73. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  74. package/.next/server/app/api/roadmap/create/route.js +4 -4
  75. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  76. package/.next/server/app/api/roadmap/delete/route.js +4 -4
  77. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  78. package/.next/server/app/api/roadmap/generate/route.js +4 -4
  79. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  80. package/.next/server/app/api/roadmap/layout/route.js +4 -4
  81. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  82. package/.next/server/app/api/roadmap/route.js +3 -3
  83. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  84. package/.next/server/app/api/roadmap/update/route.js +4 -4
  85. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  86. package/.next/server/app/api/sessions/route.js +3 -3
  87. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  88. package/.next/server/app/api/settings/route.js +4 -4
  89. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  90. package/.next/server/app/api/setup/generate/route.js +2 -2
  91. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  92. package/.next/server/app/api/setup/write/route.js +3 -3
  93. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  94. package/.next/server/app/api/summary/route.js +3 -3
  95. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  96. package/.next/server/app/api/tasks/create/route.js +3 -3
  97. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  98. package/.next/server/app/api/tasks/route.js +3 -3
  99. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  100. package/.next/server/app/board.html +1 -1
  101. package/.next/server/app/board.rsc +23 -21
  102. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +5 -5
  103. package/.next/server/app/board.segments/_full.segment.rsc +23 -21
  104. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  105. package/.next/server/app/docs.html +1 -1
  106. package/.next/server/app/docs.rsc +27 -25
  107. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +9 -10
  108. package/.next/server/app/docs.segments/_full.segment.rsc +27 -25
  109. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/explorer.html +1 -1
  111. package/.next/server/app/explorer.rsc +23 -22
  112. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
  113. package/.next/server/app/explorer.segments/_full.segment.rsc +23 -22
  114. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  115. package/.next/server/app/index.html +1 -1
  116. package/.next/server/app/index.rsc +2 -2
  117. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  118. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  119. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  120. package/.next/server/app/memory.html +1 -1
  121. package/.next/server/app/memory.rsc +23 -22
  122. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +5 -5
  123. package/.next/server/app/memory.segments/_full.segment.rsc +23 -22
  124. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  125. package/.next/server/app/page/build-manifest.json +1 -1
  126. package/.next/server/app/page.js.nft.json +1 -1
  127. package/.next/server/app/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/roadmap.html +1 -1
  129. package/.next/server/app/roadmap.rsc +26 -25
  130. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +11 -9
  131. package/.next/server/app/roadmap.segments/_full.segment.rsc +26 -25
  132. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  133. package/.next/server/app/settings.html +1 -1
  134. package/.next/server/app/settings.rsc +23 -22
  135. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +5 -5
  136. package/.next/server/app/settings.segments/_full.segment.rsc +23 -22
  137. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  138. package/.next/server/app/setup.html +1 -1
  139. package/.next/server/app/setup.rsc +23 -21
  140. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
  141. package/.next/server/app/setup.segments/_full.segment.rsc +23 -21
  142. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  143. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-q4v32._.js → 11mp_@anthropic-ai_sdk_0-5bkpj._.js} +2 -2
  144. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05hfnhc._.js → 11mp_@anthropic-ai_sdk_00psb_y._.js} +2 -2
  145. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05dmim9._.js → 11mp_@anthropic-ai_sdk_01l5h3i._.js} +2 -2
  146. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07xtb0h._.js → 11mp_@anthropic-ai_sdk_072r2bd._.js} +2 -2
  147. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +3 -0
  148. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +3 -0
  149. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +3 -0
  150. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +3 -0
  151. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +3 -0
  152. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +3 -0
  153. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +3 -0
  154. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +3 -0
  155. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +3 -0
  156. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +3 -0
  157. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +3 -0
  158. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +3 -0
  159. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +3 -0
  160. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +3 -0
  161. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +3 -0
  162. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +3 -0
  163. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +3 -0
  164. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +3 -0
  165. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +3 -0
  166. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +3 -0
  167. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +3 -0
  168. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +3 -0
  169. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +3 -0
  170. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +3 -0
  171. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +3 -0
  172. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +3 -0
  173. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +3 -0
  174. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +3 -0
  175. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +3 -0
  176. package/.next/server/chunks/[root-of-the-server]__03upgv8._.js +3 -0
  177. package/.next/server/chunks/[root-of-the-server]__03upgv8._.js.map +1 -0
  178. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +3 -0
  179. package/.next/server/chunks/{[root-of-the-server]__0u2rl0m._.js.map → [root-of-the-server]__05l6129._.js.map} +1 -1
  180. package/.next/server/chunks/[root-of-the-server]__06zf_sh._.js +3 -0
  181. package/.next/server/chunks/{[root-of-the-server]__01yk8oi._.js.map → [root-of-the-server]__06zf_sh._.js.map} +1 -1
  182. package/.next/server/chunks/[root-of-the-server]__093hlkh._.js +3 -0
  183. package/.next/server/chunks/{[root-of-the-server]__1337jpl._.js.map → [root-of-the-server]__093hlkh._.js.map} +1 -1
  184. package/.next/server/chunks/[root-of-the-server]__0aynzrb._.js +3 -0
  185. package/.next/server/chunks/{[root-of-the-server]__0b49g9i._.js.map → [root-of-the-server]__0aynzrb._.js.map} +1 -1
  186. package/.next/server/chunks/[root-of-the-server]__0e59y5j._.js +3 -0
  187. package/.next/server/chunks/[root-of-the-server]__0eqd-tw._.js +3 -0
  188. package/.next/server/chunks/{[root-of-the-server]__0yd6wlm._.js.map → [root-of-the-server]__0eqd-tw._.js.map} +1 -1
  189. package/.next/server/chunks/[root-of-the-server]__0nfvvy9._.js +3 -0
  190. package/.next/server/chunks/{[root-of-the-server]__0j-xjbf._.js.map → [root-of-the-server]__0nfvvy9._.js.map} +1 -1
  191. package/.next/server/chunks/{[root-of-the-server]__03t5uqz._.js → [root-of-the-server]__0qac4k0._.js} +2 -2
  192. package/.next/server/chunks/{[root-of-the-server]__03t5uqz._.js.map → [root-of-the-server]__0qac4k0._.js.map} +1 -1
  193. package/.next/server/chunks/[root-of-the-server]__106gpvh._.js +3 -0
  194. package/.next/server/chunks/{[root-of-the-server]__0kaegk7._.js.map → [root-of-the-server]__106gpvh._.js.map} +1 -1
  195. package/.next/server/chunks/[root-of-the-server]__11s-8eg._.js +3 -0
  196. package/.next/server/chunks/{[root-of-the-server]__02k1gkk._.js.map → [root-of-the-server]__11s-8eg._.js.map} +1 -1
  197. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js +3 -0
  198. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js.map +1 -0
  199. package/.next/server/chunks/[root-of-the-server]__142icjb._.js +3 -0
  200. package/.next/server/chunks/{[root-of-the-server]__1yow6hw._.js.map → [root-of-the-server]__142icjb._.js.map} +1 -1
  201. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +3 -0
  202. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js.map +1 -0
  203. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +88 -0
  204. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -0
  205. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +10 -0
  206. package/.next/server/chunks/{[root-of-the-server]__0d4jkve._.js.map → [root-of-the-server]__169hmq_._.js.map} +1 -1
  207. package/.next/server/chunks/[root-of-the-server]__17p0rkn._.js +3 -0
  208. package/.next/server/chunks/{[root-of-the-server]__0v8x64y._.js.map → [root-of-the-server]__17p0rkn._.js.map} +1 -1
  209. package/.next/server/chunks/[root-of-the-server]__17xb02p._.js +3 -0
  210. package/.next/server/chunks/{[root-of-the-server]__0zybyuh._.js.map → [root-of-the-server]__17xb02p._.js.map} +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +3 -0
  212. package/.next/server/chunks/{[root-of-the-server]__1znbm9i._.js.map → [root-of-the-server]__18kxo4a._.js.map} +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__1c55c2q._.js +3 -0
  214. package/.next/server/chunks/{[root-of-the-server]__0l3voov._.js.map → [root-of-the-server]__1c55c2q._.js.map} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__1j0rrps._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__0635d15._.js.map → [root-of-the-server]__1j0rrps._.js.map} +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +3 -0
  218. package/.next/server/chunks/{[root-of-the-server]__0qsx33x._.js.map → [root-of-the-server]__1lj_2cv._.js.map} +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +3 -0
  220. package/.next/server/chunks/{[root-of-the-server]__1vaownn._.js.map → [root-of-the-server]__1o4a-4j._.js.map} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__1q4ahvz._.js +3 -0
  222. package/.next/server/chunks/{[root-of-the-server]__1hsybai._.js.map → [root-of-the-server]__1q4ahvz._.js.map} +1 -1
  223. package/.next/server/chunks/{[root-of-the-server]__1337jpl._.js → [root-of-the-server]__1u_q61h._.js} +2 -2
  224. package/.next/server/chunks/{[root-of-the-server]__0kkefbq._.js.map → [root-of-the-server]__1u_q61h._.js.map} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +3 -0
  226. package/.next/server/chunks/{[root-of-the-server]__0-rjzmv._.js.map → [root-of-the-server]__1wr0m-s._.js.map} +1 -1
  227. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +3 -0
  228. package/.next/server/chunks/{[root-of-the-server]__15suc44._.js.map → [root-of-the-server]__1xb0fmp._.js.map} +1 -1
  229. package/.next/server/chunks/{[root-of-the-server]__1hsybai._.js → [root-of-the-server]__1y-tt29._.js} +2 -2
  230. package/.next/server/chunks/{[root-of-the-server]__0af0ma6._.js.map → [root-of-the-server]__1y-tt29._.js.map} +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__1y3u5ud._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__0xqsv4h._.js.map → [root-of-the-server]__1y3u5ud._.js.map} +1 -1
  233. package/.next/server/chunks/[turbopack]_runtime.js +0 -132
  234. package/.next/server/chunks/[turbopack]_runtime.js.map +4 -5
  235. package/.next/server/chunks/_04byth9._.js +34 -0
  236. package/.next/server/chunks/_04byth9._.js.map +1 -0
  237. package/.next/server/chunks/_1au4syj._.js +1 -1
  238. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  239. package/.next/server/chunks/_1b5fqxy._.js +3 -0
  240. package/.next/server/chunks/_1b5fqxy._.js.map +1 -0
  241. package/.next/server/chunks/_1si7nb_._.js +8 -8
  242. package/.next/server/chunks/_1si7nb_._.js.map +1 -1
  243. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +3 -0
  244. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +1 -0
  245. package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -132
  246. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +4 -5
  247. package/.next/server/chunks/ssr/_01suk2m._.js +3 -0
  248. package/.next/server/chunks/ssr/_01suk2m._.js.map +1 -0
  249. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  250. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  251. package/.next/server/chunks/ssr/_0qyglif._.js +2 -2
  252. package/.next/server/chunks/ssr/_0qyglif._.js.map +1 -1
  253. package/.next/server/chunks/ssr/_0skuoxv._.js +3 -1
  254. package/.next/server/chunks/ssr/_0skuoxv._.js.map +1 -1
  255. package/.next/server/chunks/ssr/{_1alz6n5._.js → _14i_6yb._.js} +2 -2
  256. package/.next/server/chunks/ssr/_14i_6yb._.js.map +1 -0
  257. package/.next/server/chunks/ssr/{_1s08bv8._.js → _1cbhuz4._.js} +2 -2
  258. package/.next/server/chunks/ssr/_1cbhuz4._.js.map +1 -0
  259. package/.next/server/chunks/ssr/_1ewk_mn._.js +3 -0
  260. package/.next/server/chunks/ssr/_1ewk_mn._.js.map +1 -0
  261. package/.next/server/chunks/ssr/node_modules__pnpm_1dcmsrg._.js +3 -0
  262. package/.next/server/chunks/ssr/node_modules__pnpm_1dcmsrg._.js.map +1 -0
  263. package/.next/server/chunks/ssr/src_components_008q3v8._.js +3 -0
  264. package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +1 -0
  265. package/.next/server/middleware-build-manifest.js +4 -4
  266. package/.next/server/pages/404.html +1 -1
  267. package/.next/server/pages/500.html +1 -1
  268. package/.next/server/server-reference-manifest.js +1 -1
  269. package/.next/server/server-reference-manifest.json +1 -1
  270. package/.next/static/chunks/0eggcu0ovk8sd.js +68 -0
  271. package/.next/static/chunks/{145g20k60txhc.js → 0iva6rdtfqpbz.js} +1 -1
  272. package/.next/static/chunks/0qm101bdsxdyh.css +10 -0
  273. package/.next/static/chunks/0wg9n5zb8mo2p.js +1 -0
  274. package/.next/static/chunks/{2-faknwci76np.js → 0wjw1laqwg-cr.js} +1 -1
  275. package/.next/static/chunks/0z_y7el6m76yk.js +1 -0
  276. package/.next/static/chunks/1-ekntoveuxzd.js +4 -0
  277. package/.next/static/chunks/1r7z33e9jk3vp.js +1 -0
  278. package/.next/static/chunks/{2f7yju8yks2m9.js → 1xyepk9227yej.js} +6 -73
  279. package/.next/static/chunks/{1lfr973ckp6by.js → 1ytqu-ra-fylk.js} +2 -2
  280. package/.next/static/chunks/3dlnlsyyysw5m.js +1 -0
  281. package/.next/static/chunks/{0aiy7o5bsiixt.js → 3kkg030rcpz7l.js} +1 -1
  282. package/.next/static/chunks/3pf_4ye6ju8gt.js +1 -0
  283. package/.next/static/chunks/turbopack-2qsbj8zx38t0j.js +1 -0
  284. package/README.md +2 -0
  285. package/next.config.js +4 -7
  286. package/package.json +1 -1
  287. package/skills/epic-breakdown/SKILL.md +11 -1
  288. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fw_tls._.js +0 -3
  289. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0q6tm_c._.js +0 -3
  290. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qyh79u._.js +0 -3
  291. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0rfkb6q._.js +0 -3
  292. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0x1yqfb._.js +0 -3
  293. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yt3ewg._.js +0 -3
  294. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-kttjy._.js +0 -3
  295. package/.next/server/chunks/11mp_@anthropic-ai_sdk_12h8gza._.js +0 -3
  296. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18c2w1i._.js +0 -3
  297. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18fnlqa._.js +0 -3
  298. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19on0yg._.js +0 -3
  299. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1alh48t._.js +0 -3
  300. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ck56ir._.js +0 -3
  301. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1daia98._.js +0 -3
  302. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1f6snvo._.js +0 -3
  303. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1p6s626._.js +0 -3
  304. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ps921l._.js +0 -3
  305. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rqxfdf._.js +0 -3
  306. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1s7maye._.js +0 -3
  307. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vuy6_x._.js +0 -3
  308. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xv39eu._.js +0 -3
  309. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_078qkb6._.js +0 -3
  310. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0q7-hjh._.js +0 -3
  311. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_165bzk6._.js +0 -3
  312. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hfbfb5._.js +0 -3
  313. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1sa-8tw._.js +0 -3
  314. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1xq_gof._.js +0 -3
  315. package/.next/server/chunks/[root-of-the-server]__0-rjzmv._.js +0 -3
  316. package/.next/server/chunks/[root-of-the-server]__01yk8oi._.js +0 -3
  317. package/.next/server/chunks/[root-of-the-server]__02k1gkk._.js +0 -3
  318. package/.next/server/chunks/[root-of-the-server]__0635d15._.js +0 -3
  319. package/.next/server/chunks/[root-of-the-server]__0af0ma6._.js +0 -3
  320. package/.next/server/chunks/[root-of-the-server]__0b49g9i._.js +0 -3
  321. package/.next/server/chunks/[root-of-the-server]__0d4jkve._.js +0 -10
  322. package/.next/server/chunks/[root-of-the-server]__0j-xjbf._.js +0 -3
  323. package/.next/server/chunks/[root-of-the-server]__0kaegk7._.js +0 -3
  324. package/.next/server/chunks/[root-of-the-server]__0kkefbq._.js +0 -3
  325. package/.next/server/chunks/[root-of-the-server]__0l3voov._.js +0 -3
  326. package/.next/server/chunks/[root-of-the-server]__0qsx33x._.js +0 -3
  327. package/.next/server/chunks/[root-of-the-server]__0sc44r6._.js +0 -86
  328. package/.next/server/chunks/[root-of-the-server]__0sc44r6._.js.map +0 -1
  329. package/.next/server/chunks/[root-of-the-server]__0u2rl0m._.js +0 -3
  330. package/.next/server/chunks/[root-of-the-server]__0uk0tga._.js +0 -3
  331. package/.next/server/chunks/[root-of-the-server]__0v8x64y._.js +0 -3
  332. package/.next/server/chunks/[root-of-the-server]__0xqsv4h._.js +0 -3
  333. package/.next/server/chunks/[root-of-the-server]__0yd6wlm._.js +0 -3
  334. package/.next/server/chunks/[root-of-the-server]__0zybyuh._.js +0 -3
  335. package/.next/server/chunks/[root-of-the-server]__134sb3d._.js +0 -3
  336. package/.next/server/chunks/[root-of-the-server]__134sb3d._.js.map +0 -1
  337. package/.next/server/chunks/[root-of-the-server]__15suc44._.js +0 -3
  338. package/.next/server/chunks/[root-of-the-server]__1jeqjz6._.js +0 -3
  339. package/.next/server/chunks/[root-of-the-server]__1kfohrq._.js +0 -3
  340. package/.next/server/chunks/[root-of-the-server]__1mz21a2._.js +0 -3
  341. package/.next/server/chunks/[root-of-the-server]__1mz21a2._.js.map +0 -1
  342. package/.next/server/chunks/[root-of-the-server]__1vaownn._.js +0 -3
  343. package/.next/server/chunks/[root-of-the-server]__1yow6hw._.js +0 -3
  344. package/.next/server/chunks/[root-of-the-server]__1znbm9i._.js +0 -3
  345. package/.next/server/chunks/_0csymdc._.js +0 -34
  346. package/.next/server/chunks/_0csymdc._.js.map +0 -1
  347. package/.next/server/chunks/_1f1rssd._.js +0 -3
  348. package/.next/server/chunks/_1f1rssd._.js.map +0 -1
  349. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1v0h3_3._.js +0 -3
  350. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1v0h3_3._.js.map +0 -1
  351. package/.next/server/chunks/ssr/_0v7muti._.js +0 -3
  352. package/.next/server/chunks/ssr/_0v7muti._.js.map +0 -1
  353. package/.next/server/chunks/ssr/_1a9mqm1._.js +0 -3
  354. package/.next/server/chunks/ssr/_1a9mqm1._.js.map +0 -1
  355. package/.next/server/chunks/ssr/_1alz6n5._.js.map +0 -1
  356. package/.next/server/chunks/ssr/_1s08bv8._.js.map +0 -1
  357. package/.next/server/chunks/ssr/node_modules__pnpm_051nq8c._.js +0 -3
  358. package/.next/server/chunks/ssr/node_modules__pnpm_051nq8c._.js.map +0 -1
  359. package/.next/server/chunks/ssr/src_components_0wg3bi2._.js +0 -3
  360. package/.next/server/chunks/ssr/src_components_0wg3bi2._.js.map +0 -1
  361. package/.next/static/chunks/05qw7-fs1exlt.js +0 -1
  362. package/.next/static/chunks/0_vu3y1bvg843.js +0 -1
  363. package/.next/static/chunks/0fvzbdfwiu4a2.js +0 -1
  364. package/.next/static/chunks/14ewdzt8piprq.js +0 -1
  365. package/.next/static/chunks/2g08tblvdp0t_.js +0 -2
  366. package/.next/static/chunks/2gdlf-xhbpc75.css +0 -10
  367. package/.next/static/chunks/2xu8bb_0152j-.js +0 -1
  368. package/.next/static/chunks/turbopack-181pehyg9iyaw.js +0 -1
  369. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-q4v32._.js.map → 11mp_@anthropic-ai_sdk_0-5bkpj._.js.map} +0 -0
  370. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05dmim9._.js.map → 11mp_@anthropic-ai_sdk_00psb_y._.js.map} +0 -0
  371. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05hfnhc._.js.map → 11mp_@anthropic-ai_sdk_01l5h3i._.js.map} +0 -0
  372. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07xtb0h._.js.map → 11mp_@anthropic-ai_sdk_072r2bd._.js.map} +0 -0
  373. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0fw_tls._.js.map → 11mp_@anthropic-ai_sdk_0am8bw2._.js.map} +0 -0
  374. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0q6tm_c._.js.map → 11mp_@anthropic-ai_sdk_0enefn6._.js.map} +0 -0
  375. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qyh79u._.js.map → 11mp_@anthropic-ai_sdk_0k3n_5f._.js.map} +0 -0
  376. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0rfkb6q._.js.map → 11mp_@anthropic-ai_sdk_0lcfjm4._.js.map} +0 -0
  377. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0x1yqfb._.js.map → 11mp_@anthropic-ai_sdk_0lfx9av._.js.map} +0 -0
  378. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0yt3ewg._.js.map → 11mp_@anthropic-ai_sdk_0qau3qw._.js.map} +0 -0
  379. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1-kttjy._.js.map → 11mp_@anthropic-ai_sdk_0r1pmvm._.js.map} +0 -0
  380. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_12h8gza._.js.map → 11mp_@anthropic-ai_sdk_11t-z2t._.js.map} +0 -0
  381. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18c2w1i._.js.map → 11mp_@anthropic-ai_sdk_15hyn79._.js.map} +0 -0
  382. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18fnlqa._.js.map → 11mp_@anthropic-ai_sdk_1_qk07x._.js.map} +0 -0
  383. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_19on0yg._.js.map → 11mp_@anthropic-ai_sdk_1b2929e._.js.map} +0 -0
  384. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1alh48t._.js.map → 11mp_@anthropic-ai_sdk_1e72c89._.js.map} +0 -0
  385. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ck56ir._.js.map → 11mp_@anthropic-ai_sdk_1eq7asn._.js.map} +0 -0
  386. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1daia98._.js.map → 11mp_@anthropic-ai_sdk_1fhdojs._.js.map} +0 -0
  387. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1f6snvo._.js.map → 11mp_@anthropic-ai_sdk_1lh_vwq._.js.map} +0 -0
  388. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1p6s626._.js.map → 11mp_@anthropic-ai_sdk_1ludf-o._.js.map} +0 -0
  389. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ps921l._.js.map → 11mp_@anthropic-ai_sdk_1m3luz3._.js.map} +0 -0
  390. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rqxfdf._.js.map → 11mp_@anthropic-ai_sdk_1x1iz3d._.js.map} +0 -0
  391. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1s7maye._.js.map → 11mp_@anthropic-ai_sdk_1xsmwlh._.js.map} +0 -0
  392. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vuy6_x._.js.map → 11mp_@anthropic-ai_sdk_202spah._.js.map} +0 -0
  393. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xv39eu._.js.map → 11mp_@anthropic-ai_sdk_215hw9u._.js.map} +0 -0
  394. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_078qkb6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map} +0 -0
  395. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0q7-hjh._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map} +0 -0
  396. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_165bzk6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map} +0 -0
  397. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hfbfb5._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map} +0 -0
  398. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1sa-8tw._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map} +0 -0
  399. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1xq_gof._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map} +0 -0
  400. /package/.next/server/chunks/{[root-of-the-server]__0uk0tga._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map} +0 -0
  401. /package/.next/server/chunks/{[root-of-the-server]__1jeqjz6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map} +0 -0
  402. /package/.next/server/chunks/{[root-of-the-server]__1kfohrq._.js.map → [root-of-the-server]__0e59y5j._.js.map} +0 -0
  403. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H → ICaoXcRMmgrIFWk8C_Z6D}/_buildManifest.js +0 -0
  404. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H → ICaoXcRMmgrIFWk8C_Z6D}/_clientMiddlewareManifest.js +0 -0
  405. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H → ICaoXcRMmgrIFWk8C_Z6D}/_ssgManifest.js +0 -0
@@ -1,2 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,908664,(e,t,n)=>{"use strict";var o=e.r(180338),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=o.useState,a=o.useEffect,s=o.useLayoutEffect,l=o.useDebugValue;function d(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var u="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),o=i({inst:{value:n,getSnapshot:t}}),r=o[0].inst,u=o[1];return s(function(){r.value=n,r.getSnapshot=t,d(r)&&u({inst:r})},[e,n,t]),a(function(){return d(r)&&u({inst:r}),e(function(){d(r)&&u({inst:r})})},[e]),l(n),n};n.useSyncExternalStore=void 0!==o.useSyncExternalStore?o.useSyncExternalStore:u},94674,(e,t,n)=>{"use strict";e.i(583225),t.exports=e.r(908664)},285923,(e,t,n)=>{"use strict";var o=e.r(180338),r=e.r(94674),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useSyncExternalStore,s=o.useRef,l=o.useEffect,d=o.useMemo,u=o.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,o,r){var c=s(null);if(null===c.current){var h={hasValue:!1,value:null};c.current=h}else h=c.current;var f=a(e,(c=d(function(){function e(e){if(!l){if(l=!0,a=e,e=o(e),void 0!==r&&h.hasValue){var t=h.value;if(r(t,e))return s=t}return s=e}if(t=s,i(a,e))return t;var n=o(e);return void 0!==r&&r(t,n)?(a=e,t):(a=e,s=n)}var a,s,l=!1,d=void 0===n?null:n;return[function(){return e(t())},null===d?void 0:function(){return e(d())}]},[t,n,o,r]))[0],c[1]);return l(function(){h.hasValue=!0,h.value=f},[f]),u(f),f}},279720,(e,t,n)=>{"use strict";e.i(583225),t.exports=e.r(285923)},298367,e=>{"use strict";var t,n,o,r,i,a,s,l,d,u,c,h,f,p,g,m,x=e.i(72345),y=e.i(180338);function b(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)""!==(o=b(e[n]))&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var v=e.i(8164),w=e.i(692423),S=e.i(954542),N=e.i(816947),k=e.i(811975);let j=e=>()=>e;function E(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:l,dy:d,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:u}})}function C(e){return!e.ctrlKey&&!e.button}function M(){return this.parentNode}function $(e,t){return null==t?{x:e.x,y:e.y}:t}function P(){return navigator.maxTouchPoints||"ontouchstart"in this}function I(){var e,t,n,o,r=C,i=M,a=$,s=P,l={},d=(0,v.dispatch)("start","drag","end"),u=0,c=0;function h(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",x,k.nonpassive).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=b(this,i.call(this,a,s),a,s,"mouse");l&&((0,w.select)(a.view).on("mousemove.drag",p,k.nonpassivecapture).on("mouseup.drag",g,k.nonpassivecapture),(0,N.default)(a.view),(0,k.nopropagation)(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function p(o){if((0,k.default)(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>c}l.mouse("drag",o)}function g(e){(0,w.select)(e.view).on("mousemove.drag mouseup.drag",null),(0,N.yesdrag)(e.view,n),(0,k.default)(e),l.mouse("end",e)}function m(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=b(this,s,e,t,a[n].identifier,a[n]))&&((0,k.nopropagation)(e),o("start",e,a[n]))}}function x(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&((0,k.default)(e),n("drag",e,o[t]))}function y(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout(function(){o=null},500),t=0;t<i;++t)(n=l[r[t].identifier])&&((0,k.nopropagation)(e),n("end",e,r[t]))}function b(e,t,n,o,r,i){var s,c,f,p=d.copy(),g=(0,S.pointer)(i||n,t);if(null!=(f=a.call(e,new E("beforestart",{sourceEvent:n,target:h,identifier:r,active:u,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),o)))return s=f.x-g[0]||0,c=f.y-g[1]||0,function n(i,a,d){var m,x=g;switch(i){case"start":l[r]=n,m=u++;break;case"end":delete l[r],--u;case"drag":g=(0,S.pointer)(d||a,t),m=u}p.call(i,e,new E(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:g[0]+s,y:g[1]+c,dx:g[0]-x[0],dy:g[1]-x[1],dispatch:p}),o)}}return h.filter=function(e){return arguments.length?(r="function"==typeof e?e:j(!!e),h):r},h.container=function(e){return arguments.length?(i="function"==typeof e?e:j(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:j(e),h):a},h.touchable=function(e){return arguments.length?(s="function"==typeof e?e:j(!!e),h):s},h.on=function(){var e=d.on.apply(d,arguments);return e===d?h:e},h.clickDistance=function(e){return arguments.length?(c=(e*=1)*e,h):Math.sqrt(c)},h}E.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.i(250149);var D=e.i(953752),D=D,z=e.i(644200),z=z,A=z,R=e.i(274017),O=e.i(678152);let B=[[-1/0,-1/0],[1/0,1/0]],L=["Enter"," ","Escape"],_={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};(t=d||(d={})).Strict="strict",t.Loose="loose",(n=u||(u={})).Free="free",n.Vertical="vertical",n.Horizontal="horizontal",(o=c||(c={})).Partial="partial",o.Full="full";let H={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(r=h||(h={})).Bezier="default",r.Straight="straight",r.Step="step",r.SmoothStep="smoothstep",r.SimpleBezier="simplebezier",(i=f||(f={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(a=p||(p={})).Left="left",a.Top="top",a.Right="right",a.Bottom="bottom";let T={[p.Left]:p.Right,[p.Right]:p.Left,[p.Top]:p.Bottom,[p.Bottom]:p.Top},V=e=>!!e&&"object"==typeof e&&"id"in e&&"source"in e&&"target"in e,F=e=>!!e&&"object"==typeof e&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Z=(e,t=[0,0])=>{let{width:n,height:o}=eb(e),r=e.origin??t,i=n*r[0],a=o*r[1];return{x:e.position.x-i,y:e.position.y-a}},X=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=et(n,ei(e)),o=!0)}),o?eo(n):{x:0,y:0,width:0,height:0}},Y=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1)=>{let s=(t.x-n)/r,l=(t.y-o)/r,d=t.width/r,u=t.height/r,c=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:o=!1}=t;if(a&&!n||o)continue;let r=e.width??t.width??t.initialWidth??0,h=e.height??t.height??t.initialHeight??0,{x:f,y:p}=t.internals.positionAbsolute,g=es(s,l,d,u,f,p,r,h),m=r*h,x=i&&g>0;(!t.internals.handleBounds||x||g>=m||t.dragging)&&c.push(t)}return c};async function W({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},a){let s,l;if(0===e.size)return!0;let d=em(X((s=new Map,l=a?.nodes?new Set(a.nodes.map(e=>e.id)):null,e.forEach(e=>{let t;if(a?.includeHiddenNodes){let{width:n,height:o}=eb(e);t=n>0&&o>0}else t=!!(e.measured.width&&e.measured.height&&!e.hidden);t&&(!l||l.has(e.id))&&s.set(e.id,e)}),s)),t,n,a?.minZoom??r,a?.maxZoom??i,a?.padding??.1);return await o.setViewport(d,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function K({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){let a=n.get(e),s=a.parentId?n.get(a.parentId):void 0,{x:l,y:d}=s?s.internals.positionAbsolute:{x:0,y:0},u=a.origin??o,c=a.extent||r;if("parent"!==a.extent||a.expandParent)s&&ey(a.extent)&&(c=[[a.extent[0][0]+l,a.extent[0][1]+d],[a.extent[1][0]+l,a.extent[1][1]+d]]);else if(s){let{width:e,height:t}=eb(s);e&&t&&(c=[[l,d],[l+e,d+t]])}else i?.("005","Only child nodes can use a parent extent.");let h=ey(c)?G(t,c,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&i?.("015","It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."),{position:{x:h.x-l+(a.measured.width??0)*u[0],y:h.y-d+(a.measured.height??0)*u[1]},positionAbsolute:h}}async function U({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){let i,a=new Set(e.map(e=>e.id)),s=[];for(let e of n){if(!1===e.deletable)continue;let t=a.has(e.id),n=!t&&e.parentId&&s.find(t=>t.id===e.parentId);(t||n)&&s.push(e)}let l=new Set(t.map(e=>e.id)),d=o.filter(e=>!1!==e.deletable),u=(i=new Set,s.forEach(e=>{i.add(e.id)}),d.filter(e=>i.has(e.source)||i.has(e.target)));for(let e of d)l.has(e.id)&&!u.find(t=>t.id===e.id)&&u.push(e);if(!r)return{edges:u,nodes:s};let c=await r({nodes:s,edges:u});return"boolean"==typeof c?c?{edges:u,nodes:s}:{edges:[],nodes:[]}:c}let q=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),G=(e={x:0,y:0},t,n)=>({x:q(e.x,t[0][0],t[1][0]-(n?.width??0)),y:q(e.y,t[0][1],t[1][1]-(n?.height??0))});function Q(e,t,n){let{width:o,height:r}=eb(n),{x:i,y:a}=n.internals.positionAbsolute;return G(e,[[i,a],[i+o,a+r]],t)}let J=(e,t,n)=>e<t?q(Math.abs(e-t),1,t)/t:e>n?-q(Math.abs(e-n),1,t)/t:0,ee=(e,t,n=15,o=40)=>[J(e.x,o,t.width-o)*n,J(e.y,o,t.height-o)*n],et=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),en=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),eo=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),er=(e,t=[0,0])=>{let{x:n,y:o}=F(e)?e.internals.positionAbsolute:Z(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ei=(e,t=[0,0])=>{let{x:n,y:o}=F(e)?e.internals.positionAbsolute:Z(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},ea=(e,t)=>eo(et(en(e),en(t))),es=(e,t,n,o,r,i,a,s)=>Math.ceil(Math.max(0,Math.min(e+n,r+a)-Math.max(e,r))*Math.max(0,Math.min(t+o,i+s)-Math.max(t,i))),el=(e,t)=>es(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),ed=e=>eu(e.width)&&eu(e.height)&&eu(e.x)&&eu(e.y),eu=e=>!isNaN(e)&&isFinite(e),ec=(e,t)=>(e,t)=>{},eh=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ef=({x:e,y:t},[n,o,r],i=!1,a=[1,1])=>{let s={x:(e-n)/r,y:(t-o)/r};return i?eh(s,a):s},ep=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function eg(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let em=(e,t,n,o,r,i)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let o=eg(e,n),r=eg(e,t);return{top:o,right:r,bottom:o,left:r,x:2*r,y:2*o}}if("object"==typeof e){let o=eg(e.top??e.y??0,n),r=eg(e.bottom??e.y??0,n),i=eg(e.left??e.x??0,t),a=eg(e.right??e.x??0,t);return{top:o,right:a,bottom:r,left:i,x:i+a,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),s=q(Math.min((t-a.x)/e.width,(n-a.y)/e.height),o,r),l=e.x+e.width/2,d=e.y+e.height/2,u=t/2-l*s,c=n/2-d*s,h=function(e,t,n,o,r,i){let{x:a,y:s}=ep(e,[t,n,o]),{x:l,y:d}=ep({x:e.x+e.width,y:e.y+e.height},[t,n,o]);return{left:Math.floor(a),top:Math.floor(s),right:Math.floor(r-l),bottom:Math.floor(i-d)}}(e,u,c,s,t,n),f={left:Math.min(h.left-a.left,0),top:Math.min(h.top-a.top,0),right:Math.min(h.right-a.right,0),bottom:Math.min(h.bottom-a.bottom,0)};return{x:u-f.left+f.right,y:c-f.top+f.bottom,zoom:s}},ex=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function ey(e){return null!=e&&"parent"!==e}function eb(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ev(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ew(e,t={width:0,height:0},n,o,r){let i={...e},a=o.get(n);if(a){let e=a.origin||r;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function eS(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function eN(e){return null===e?null:e?"valid":"invalid"}function ek(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){let{x:i,y:a}=e$(e),s=ef({x:i-(r?.left??0),y:a-(r?.top??0)},o),{x:l,y:d}=n?eh(s,t):s;return{xSnapped:l,ySnapped:d,...s}}let ej=e=>({width:e.offsetWidth,height:e.offsetHeight}),eE=e=>e?.getRootNode?.()||window?.document,eC=["INPUT","SELECT","TEXTAREA"];function eM(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(eC.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let e$=(e,t)=>{let n="clientX"in e,o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},eP=(e,t,n,o,r)=>{let i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{let i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:r,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/o,y:(i.top-n.top)/o,...ej(t)}}):null};function eI({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){let l=.125*e+.375*r+.375*a+.125*n,d=.125*t+.375*i+.375*s+.125*o,u=Math.abs(l-e),c=Math.abs(d-t);return[l,d,u,c]}function eD(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ez({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case p.Left:return[t-eD(t-o,i),n];case p.Right:return[t+eD(o-t,i),n];case p.Top:return[t,n-eD(n-r,i)];case p.Bottom:return[t,n+eD(r-n,i)]}}function eA({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:o,targetY:r,targetPosition:i=p.Top,curvature:a=.25}){let[s,l]=ez({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[d,u]=ez({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[c,h,f,g]=eI({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:d,targetControlY:u});return[`M${e},${t} C${s},${l} ${d},${u} ${o},${r}`,c,h,f,g]}function eR({sourceX:e,sourceY:t,targetX:n,targetY:o}){let r=Math.abs(n-e)/2,i=Math.abs(o-t)/2;return[n<e?n+r:n-r,o<t?o+i:o-i,r,i]}let eO=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`;function eB({sourceX:e,sourceY:t,targetX:n,targetY:o}){let[r,i,a,s]=eR({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}let eL={[p.Left]:{x:-1,y:0},[p.Right]:{x:1,y:0},[p.Top]:{x:0,y:-1},[p.Bottom]:{x:0,y:1}},e_=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function eH({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:o,targetY:r,targetPosition:i=p.Top,borderRadius:a=5,centerX:s,centerY:l,offset:d=20,stepPosition:u=.5}){let[c,h,f,g,m]=function({source:e,sourcePosition:t=p.Bottom,target:n,targetPosition:o=p.Top,center:r,offset:i,stepPosition:a}){let s,l,d=eL[t],u=eL[o],c={x:e.x+d.x*i,y:e.y+d.y*i},h={x:n.x+u.x*i,y:n.y+u.y*i},f=(({source:e,sourcePosition:t=p.Bottom,target:n})=>t===p.Left||t===p.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1})({source:c,sourcePosition:t,target:h}),g=0!==f.x?"x":"y",m=f[g],x=[],y={x:0,y:0},b={x:0,y:0},[,,v,w]=eR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(d[g]*u[g]==-1){"x"===g?(s=r.x??c.x+(h.x-c.x)*a,l=r.y??(c.y+h.y)/2):(s=r.x??(c.x+h.x)/2,l=r.y??c.y+(h.y-c.y)*a);let e=[{x:s,y:c.y},{x:s,y:h.y}],t=[{x:c.x,y:l},{x:h.x,y:l}];x=d[g]===m?"x"===g?e:t:"x"===g?t:e}else{let r=[{x:c.x,y:h.y}],a=[{x:h.x,y:c.y}];if(x="x"===g?d.x===m?a:r:d.y===m?r:a,t===o){let t=Math.abs(e[g]-n[g]);if(t<=i){let o=Math.min(i-1,i-t);d[g]===m?y[g]=(c[g]>e[g]?-1:1)*o:b[g]=(h[g]>n[g]?-1:1)*o}}if(t!==o){let e="x"===g?"y":"x",t=d[g]===u[e],n=c[e]>h[e],o=c[e]<h[e];(1===d[g]&&(!t&&n||t&&o)||1!==d[g]&&(!t&&o||t&&n))&&(x="x"===g?r:a)}let f={x:c.x+y.x,y:c.y+y.y},p={x:h.x+b.x,y:h.y+b.y};Math.max(Math.abs(f.x-x[0].x),Math.abs(p.x-x[0].x))>=Math.max(Math.abs(f.y-x[0].y),Math.abs(p.y-x[0].y))?(s=(f.x+p.x)/2,l=x[0].y):(s=x[0].x,l=(f.y+p.y)/2)}let S={x:c.x+y.x,y:c.y+y.y},N={x:h.x+b.x,y:h.y+b.y};return[[e,...S.x!==x[0].x||S.y!==x[0].y?[S]:[],...x,...N.x!==x[x.length-1].x||N.y!==x[x.length-1].y?[N]:[],n],s,l,v,w]}({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:d,stepPosition:u}),x=`M${c[0].x} ${c[0].y}`;for(let e=1;e<c.length-1;e++)x+=function(e,t,n,o){let r=Math.min(e_(e,t)/2,e_(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,o=e.y<n.y?1:-1;return`L ${i+r*t},${a}Q ${i},${a} ${i},${a+r*o}`}let s=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${a+r*l}Q ${i},${a} ${i+r*s},${a}`}(c[e-1],c[e],c[e+1],a);return[x+=`L${c[c.length-1].x} ${c[c.length-1].y}`,h,f,g,m]}function eT(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function eV(e){if(!e)return null;let t=[],n=[];for(let o of e)o.width=o.width??1,o.height=o.height??1,"source"===o.type?t.push(o):"target"===o.type&&n.push(o);return{source:t,target:n}}function eF(e,t,n=p.Left,o=!1){let r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:s}=t??eb(e);if(o)return{x:r+a/2,y:i+s/2};switch(t?.position??n){case p.Top:return{x:r+a/2,y:i};case p.Right:return{x:r+a,y:i+s/2};case p.Bottom:return{x:r+a/2,y:i+s};case p.Left:return{x:r,y:i+s/2}}}function eZ(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function eX(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}let eY={nodeOrigin:[0,0],nodeExtent:B,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},eW={...eY,checkEquality:!0};function eK(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function eU(e){return"manual"===e}function eq(e,t,n,o={}){let r=eK(eW,o),i={i:0},a=new Map(t),s=r?.elevateNodesOnSelect&&!eU(r.zIndexMode)?1e3:0,l=e.length>0,d=!1;for(let u of(t.clear(),n.clear(),e)){let e=a.get(u.id);if(r.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=G(Z(u,r.nodeOrigin),ey(u.extent)?u.extent:r.nodeExtent,eb(u));e={...r.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:function(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],o=[];for(let t of e.handles){let r={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};"source"===t.type?n.push(r):"target"===t.type&&o.push(r)}return{source:n,target:o}}(u,e),z:eQ(u,s,r.zIndexMode),userNode:u}},t.set(u.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(l=!1),u.parentId&&eG(e,t,n,o,i),d||=u.selected??!1}return{nodesInitialized:l,hasSelectedNodes:d}}function eG(e,t,n,o,r){let{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:s,zIndexMode:l}=eK(eY,o),d=e.parentId,u=t.get(d);if(!u)return void console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n),r&&!u.parentId&&void 0===u.internals.rootParentIndex&&"auto"===l&&(u.internals.rootParentIndex=++r.i,u.internals.z=u.internals.z+10*r.i),r&&void 0!==u.internals.rootParentIndex&&(r.i=u.internals.rootParentIndex);let{x:c,y:h,z:f}=function(e,t,n,o,r,i){let{x:a,y:s}=t.internals.positionAbsolute,l=eb(e),d=Z(e,n),u=ey(e.extent)?G(d,e.extent,l):d,c=G({x:a+u.x,y:s+u.y},o,l);"parent"===e.extent&&(c=Q(c,l,t));let h=eQ(e,r,i),f=t.internals.z??0;return{x:c.x,y:c.y,z:f>=h?f+1:h}}(e,u,a,s,i&&!eU(l)?1e3:0,l),{positionAbsolute:p}=e.internals,g=c!==p.x||h!==p.y;(g||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:g?{x:c,y:h}:p,z:f}})}function eQ(e,t,n){let o=eu(e.zIndex)?e.zIndex:0;return eU(n)?o:o+(e.selected?t:0)}function eJ(e,t,n,o=[0,0]){let r=[],i=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let o=ea(i.get(n.parentId)?.expandedRect??er(e),n.rect);i.set(n.parentId,{expandedRect:o,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{let s=i.internals.positionAbsolute,l=eb(i),d=i.origin??o,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,c=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,h=Math.max(l.width,Math.round(t.width)),f=Math.max(l.height,Math.round(t.height)),p=(h-l.width)*d[0],g=(f-l.height)*d[1];(u>0||c>0||p||g)&&(r.push({id:a,type:"position",position:{x:i.position.x-u+p,y:i.position.y-c+g}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||r.push({id:t.id,type:"position",position:{x:t.position.x+u,y:t.position.y+c}})})),(l.width<t.width||l.height<t.height||u||c)&&r.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:h+(u?d[0]*u-p:0),height:f+(c?d[1]*c-g:0)}})}),r}async function e0({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function e1(e,t,n,o,r,i){let a=r,s=o.get(a)||new Map;o.set(a,s.set(n,t)),a=`${r}-${e}`;let l=o.get(a)||new Map;if(o.set(a,l.set(n,t)),i){a=`${r}-${e}-${i}`;let s=o.get(a)||new Map;o.set(a,s.set(n,t))}}function e2(e,t,n){for(let o of(e.clear(),t.clear(),n)){let{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,s={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a},l=`${n}-${i}--${r}-${a}`;e1("source",s,`${r}-${a}--${n}-${i}`,e,n,i),e1("target",s,l,e,r,a),t.set(o.id,o)}}function e3(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)break;o=o?.parentElement}while(o)return!1}function e5({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){let r=[];for(let[e,i]of t){let t=n.get(e)?.internals.userNode;t&&r.push({...t,position:i.position,dragging:o})}if(!e)return[r[0],r];let i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function e4(e,t,n,o,r,i=!1){let a=o.get(e);if(!a)return null;let s="strict"===r?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?s?.find(e=>e.id===n):s?.[0])??null;return l&&i?{...l,...eF(a,l,l.position,!0)}:l}function e6(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let e7=()=>!0;function e8(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:a,lib:s,flowId:l,isValidConnection:u=e7,nodeLookup:c}){let h="target"===i,f=t?a.querySelector(`.${s}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=e$(e),m=a.elementFromPoint(p,g),x=m?.classList.contains(`${s}-flow__handle`)?m:f,y={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){let e=e6(void 0,x),t=x.getAttribute("data-nodeid"),i=x.getAttribute("data-handleid"),a=x.classList.contains("connectable"),s=x.classList.contains("connectableend");if(!t||!e)return y;let l={source:h?t:o,sourceHandle:h?i:r,target:h?o:t,targetHandle:h?r:i};y.connection=l,y.isValid=a&&s&&(n===d.Strict?h&&"source"===e||!h&&"target"===e:t!==o||i!==r)&&u(l),y.toHandle=e4(t,e,i,c,n,!0)}return y}let e9=function(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:a,domNode:s,nodeLookup:l,lib:d,autoPanOnConnect:u,flowId:c,panBy:h,cancelConnection:f,onConnectStart:g,onConnect:m,onConnectEnd:x,isValidConnection:y=e7,onReconnectEnd:b,updateConnection:v,getTransform:w,getFromHandle:S,autoPanSpeed:N,dragThreshold:k=1,handleDomNode:j}){let E,C=eE(e.target),M=0,{x:$,y:P}=e$(e),I=e6(i,j),D=s?.getBoundingClientRect(),z=!1;if(!D||!I)return;let A=e4(r,I,o,l,t);if(!A)return;let R=e$(e,D),O=!1,B=null,L=!1,_=null,H={...A,nodeId:r,type:I,position:A.position},V=l.get(r),F={inProgress:!0,isValid:null,from:eF(V,H,p.Left,!0),fromHandle:H,fromPosition:H.position,fromNode:V,to:R,toHandle:null,toPosition:T[H.position],toNode:null,pointer:R};function Z(){z=!0,v(F),g?.(e,{nodeId:r,handleId:o,handleType:I})}function X(e){var i,s;let f;if(!z){let{x:t,y:n}=e$(e),o=t-$,r=n-P;if(!(o*o+r*r>k*k))return;Z()}if(!S()||!H)return void Y(e);let g=w();E=function(e,t,n,o){let r=[],i=1/0;for(let a of function(e,t,n){let o=[],r={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())el(r,er(e))>0&&o.push(e);return o}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(o.nodeId===n.nodeId&&o.type===n.type&&o.id===n.id)continue;let{x:s,y:l}=eF(a,n,n.position,!0),d=Math.sqrt(Math.pow(s-e.x,2)+Math.pow(l-e.y,2));d>t||(d<i?(r=[{...n,x:s,y:l}],i=d):d===i&&r.push({...n,x:s,y:l}))}if(!r.length)return null;if(r.length>1){let e="source"===o.type?"target":"source";return r.find(t=>t.type===e)??r[0]}return r[0]}(ef(R=e$(e,D),g,!1,[1,1]),n,l,H),O||(!function e(){if(!u||!D)return;let[t,n]=ee(R,D,N);h({x:t,y:n}),M=requestAnimationFrame(e)}(),O=!0);let m=e8(e,{handle:E,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:a?"target":"source",isValidConnection:y,doc:C,lib:d,flowId:c,nodeLookup:l});_=m.handleDomNode,B=m.connection,i=!!E,s=m.isValid,f=null,s?f=!0:i&&!s&&(f=!1),L=f;let x=l.get(r),b=x?eF(x,H,p.Left,!0):F.from,j={...F,from:b,isValid:L,to:m.toHandle&&L?ep({x:m.toHandle.x,y:m.toHandle.y},g):R,toHandle:m.toHandle,toPosition:L&&m.toHandle?m.toHandle.position:T[H.position],toNode:m.toHandle?l.get(m.toHandle.nodeId):null,pointer:R};v(j),F=j}function Y(e){if(!("touches"in e)||!(e.touches.length>0)){if(z){(E||_)&&B&&L&&m?.(B);let{inProgress:t,...n}=F,o={...n,toPosition:F.toHandle?F.toPosition:null};x?.(e,o),i&&b?.(e,o)}f(),cancelAnimationFrame(M),O=!1,L=!1,B=null,_=null,C.removeEventListener("mousemove",X),C.removeEventListener("mouseup",Y),C.removeEventListener("touchmove",X),C.removeEventListener("touchend",Y)}}0===k&&Z(),C.addEventListener("mousemove",X),C.addEventListener("mouseup",Y),C.addEventListener("touchmove",X),C.addEventListener("touchend",Y)},te=e=>({x:e.x,y:e.y,zoom:e.k}),tt=({x:e,y:t,zoom:n})=>z.identity.translate(e,t).scale(n),tn=(e,t)=>e.target.closest(`.${t}`),to=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),tr=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ti=(e,t=0,n=tr,o=()=>{})=>{let r="number"==typeof t&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},ta=e=>{let t=e.ctrlKey&&ex()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function ts(e){let t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:e.includes("left"),affectsY:e.includes("top")}}function tl(e,t){return Math.max(0,t-e)}function td(e,t){return Math.max(0,e-t)}function tu(e,t,n){return Math.max(0,t-e,e-n)}(s=g||(g={})).Line="line",s.Handle="handle";let tc={width:0,height:0,x:0,y:0},th={...tc,pointerX:0,pointerY:0,aspectRatio:1};var tf=e.i(279720);let tp=e=>{let t,n=new Set,o=(e,o)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:tg}=y.default,{useSyncExternalStoreWithSelector:tm}=tf.default,tx=e=>e;function ty(e,t=tx,n){let o=tm(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tg(o),o}let tb=(e,t)=>{let n=e?tp(e):tp,o=(e,o=t)=>ty(n,e,o);return Object.assign(o,n),o};function tv(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}e.i(399531);let tw=(0,y.createContext)(null),tS=tw.Provider,tN=((e="react")=>`Seems like you have not used ${"svelte"===e?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`)("react");function tk(e,t){let n=(0,y.useContext)(tw);if(null===n)throw Error(tN);return ty(n,e,t)}function tj(){let e=(0,y.useContext)(tw);if(null===e)throw Error(tN);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}let tE={display:"none"},tC={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},tM="react-flow__node-desc",t$="react-flow__edge-desc",tP=e=>e.ariaLiveMessage,tI=e=>e.ariaLabelConfig;function tD({rfId:e}){let t=tk(tP);return(0,x.jsx)("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:tC,children:t})}function tz({rfId:e,disableKeyboardA11y:t}){let n=tk(tI);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{id:`${tM}-${e}`,style:tE,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,x.jsx)("div",{id:`${t$}-${e}`,style:tE,children:n["edge.a11yDescription.default"]}),!t&&(0,x.jsx)(tD,{rfId:e})]})}let tA=(0,y.forwardRef)(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{let a=`${e}`.split("-");return(0,x.jsx)("div",{className:b(["react-flow__panel",n,...a]),style:o,ref:i,...r,children:t})});tA.displayName="Panel";let tR="https://reactflow.dev?utm_source=attribution";function tO({proOptions:e,position:t="bottom-right"}){return((0,y.useEffect)(()=>{},[]),e?.hideAttribution)?null:(0,x.jsx)(tA,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${tR}`,children:(0,x.jsx)("a",{href:tR,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}let tB=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}},tL=e=>e.id;function t_(e,t){return tv(e.selectedNodes.map(tL),t.selectedNodes.map(tL))&&tv(e.selectedEdges.map(tL),t.selectedEdges.map(tL))}function tH({onSelectionChange:e}){let t=tj(),{selectedNodes:n,selectedEdges:o}=tk(tB,t_);return(0,y.useEffect)(()=>{let r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(e=>e(r))},[n,o,e]),null}let tT=e=>!!e.onSelectionChangeHandlers;function tV({onSelectionChange:e}){let t=tk(tT);return e||t?(0,x.jsx)(tH,{onSelectionChange:e}):null}let tF=[0,0],tZ={x:0,y:0,zoom:1},tX=["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"],tY=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}),tW={translateExtent:B,nodeOrigin:tF,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function tK(e){let{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:a,reset:s,setDefaultNodesAndEdges:l}=tk(tY,tv),d=tj();(0,y.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=tW,s()}),[]);let u=(0,y.useRef)(tW);return(0,y.useEffect)(()=>{for(let s of tX){let l=e[s];if(l!==u.current[s]&&void 0!==e[s])if("nodes"===s)t(l);else if("edges"===s)n(l);else if("minZoom"===s)o(l);else if("maxZoom"===s)r(l);else if("translateExtent"===s)i(l);else if("nodeExtent"===s)a(l);else if("ariaLabelConfig"===s)d.setState({ariaLabelConfig:{..._,...l||{}}});else"fitView"===s?d.setState({fitViewQueued:l}):"fitViewOptions"===s?d.setState({fitViewOptions:l}):d.setState({[s]:l})}u.current=e},tX.map(t=>e[t])),null}function tU(){return"u"<typeof window||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}let tq="u">typeof document?document:null;function tG(e=null,t={target:tq,actInsideInputWithModifier:!0}){let[n,o]=(0,y.useState)(!1),r=(0,y.useRef)(!1),i=(0,y.useRef)(new Set([])),[a,s]=(0,y.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace(/\+/g,"\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??tq,l=t?.actInsideInputWithModifier??!0;if(null!==e){let e=e=>{if(r.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!r.current||r.current&&!l)&&eM(e))return!1;let n=tJ(e.code,s);if(i.current.add(e[n]),tQ(a,i.current,!1)){let n=e.composedPath?.()?.[0]||e.target,i=n?.nodeName==="BUTTON"||n?.nodeName==="A";!1!==t.preventDefault&&(r.current||!i)&&e.preventDefault(),o(!0)}},d=e=>{let t=tJ(e.code,s);tQ(a,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(e[t]),"Meta"===e.key&&i.current.clear(),r.current=!1},u=()=>{i.current.clear(),o(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",d),window.addEventListener("blur",u),window.addEventListener("contextmenu",u),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",d),window.removeEventListener("blur",u),window.removeEventListener("contextmenu",u)}}},[e,o]),n}function tQ(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function tJ(e,t){return t.includes(e)?"code":"key"}function t0(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 i=e,a=r;switch(i.type){case"select":a.selected=i.selected;break;case"position":void 0!==i.position&&(a.position=i.position),void 0!==i.dragging&&(a.dragging=i.dragging);break;case"dimensions":void 0!==i.dimensions&&(a.measured={...i.dimensions},i.setAttributes&&((!0===i.setAttributes||"width"===i.setAttributes)&&(a.width=i.dimensions.width),(!0===i.setAttributes||"height"===i.setAttributes)&&(a.height=i.dimensions.height))),"boolean"==typeof i.resizing&&(a.resizing=i.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 t1(e,t){return{id:e,type:"select",selected:t}}function t2(e,t=new Set,n=!1){let o=[];for(let[r,i]of e){let e=t.has(r);(void 0!==i.selected||e)&&i.selected!==e&&(n&&(i.selected=e),o.push(t1(i.id,e)))}return o}function t3({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),i=e?.internals?.userNode??e;void 0!==i&&i!==r&&n.push({id:r.id,item:r,type:"replace"}),void 0===i&&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 t5(e){return{id:e.id,type:"remove"}}let t4=ec("React Flow","https://reactflow.dev/"),t6=e=>!!e&&"object"==typeof e&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e);function t7(e){return(0,y.forwardRef)(e)}let t8="u">typeof window?y.useLayoutEffect:y.useEffect;function t9(e){let[t,n]=(0,y.useState)(BigInt(0)),[o]=(0,y.useState)(()=>{var e;let t;return e=()=>n(e=>e+BigInt(1)),t=[],{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}});return t8(()=>{let t=o.get();t.length&&(e(t),o.reset())},[t]),o}let ne=(0,y.createContext)(null);function nt({children:e}){let t=tj(),n=t9((0,y.useCallback)(e=>{let{nodes:n=[],setNodes:o,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a,fitViewQueued:s,onNodesChangeMiddlewareMap:l}=t.getState(),d=n;for(let t of e)d="function"==typeof t?t(d):t;let u=t3({items:d,lookup:a});for(let e of l.values())u=e(u);r&&o(d),u.length>0?i?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:o}=t.getState();e&&o(n)})},[])),o=t9((0,y.useCallback)(e=>{let{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=t.getState(),s=n;for(let t of e)s="function"==typeof t?t(s):t;r?o(s):i&&i(t3({items:s,lookup:a}))},[])),r=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:o}),[]);return(0,x.jsx)(ne.Provider,{value:r,children:e})}let nn=e=>!!e.panZoom;function no(){let e,t=(e=tj(),(0,y.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,i],panZoom:a}=e.getState();return!!a&&(await a.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},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:i,maxZoom:a,panZoom:s}=e.getState(),l=em(t,o,r,i,a,n?.padding??.1);return!!s&&(await s.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0)},screenToFlowPosition:(t,n={})=>{let{transform:o,snapGrid:r,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;let{x:s,y:l}=a.getBoundingClientRect(),d={x:t.x-s,y:t.y-l},u=n.snapGrid??r;return ef(d,o,n.snapToGrid??i,u)},flowToScreenPosition:t=>{let{transform:n,domNode:o}=e.getState();if(!o)return t;let{x:r,y:i}=o.getBoundingClientRect(),a=ep(t,n);return{x:a.x+r,y:a.y+i}}}),[])),n=tj(),o=function(){let e=(0,y.useContext)(ne);if(!e)throw Error("useBatchContext must be used within a BatchProvider");return e}(),r=tk(nn),i=(0,y.useMemo)(()=>{let e=e=>n.getState().nodeLookup.get(e),t=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState(),r=t6(e)?e:t.get(e.id),i=r.parentId?ew(r.position,r.measured,r.parentId,t,o):r.position;return er({...r,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height})},a=(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&&t6(e)?e:{...t,...e}}return t}))},s=(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&&V(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,i,a]=o;return{nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:t=[]})=>{let{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:d,onBeforeDelete:u}=n.getState(),{nodes:c,edges:h}=await U({nodesToRemove:e,edgesToRemove:t,nodes:o,edges:r,onBeforeDelete:u}),f=h.length>0,p=c.length>0;if(f){let e=h.map(t5);a?.(h),l(e)}if(p){let e=c.map(t5);i?.(c),s(e)}return(p||f)&&d?.({nodes:c,edges:h}),{deletedNodes:c,deletedEdges:h}},getIntersectingNodes:(e,t=!0,o)=>{let r=ed(e),a=r?e:i(e),s=void 0!==o;return a?(o||n.getState().nodes).filter(o=>{let i=n.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;let l=er(s?o:i),d=el(l,a);return t&&d>0||d>=l.width*l.height||d>=a.width*a.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let o=ed(e)?e:i(e);if(!o)return!1;let r=el(o,t);return n&&r>0||r>=t.width*t.height||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(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((e,t={nodeOrigin:[0,0]})=>{if(0===e.length)return{x:0,y:0,width:0,height:0};let n=!1,o=e.reduce((e,o)=>{let r="string"==typeof o,i=t.nodeLookup||r?void 0:o;return(t.nodeLookup&&(i=r?t.nodeLookup.get(o):F(o)?o:t.nodeLookup.get(o.id)),i)?(n=!0,et(e,ei(i,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?eo(o):{x:0,y:0,width:0,height:0}})(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,r,i=n.getState().fitViewResolver??{promise:new Promise((e,n)=>{t=e,r=n}),resolve:t,reject:r};return n.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:i}),o.nodeQueue.push(e=>[...e]),i.promise}}},[]);return(0,y.useMemo)(()=>({...i,...t,viewportInitialized:r}),[r])}let nr=e=>e.selected,ni="u">typeof window?window:void 0,na={position:"absolute",width:"100%",height:"100%",top:0,left:0},ns=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function nl({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panActivationKeyPressed:r,panOnScrollSpeed:i=.5,panOnScrollMode:a=u.Free,zoomOnDoubleClick:s=!0,panOnDrag:l=!0,defaultViewport:d,translateExtent:c,minZoom:h,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:g=!0,children:m,noWheelClassName:b,noPanClassName:v,onViewportChange:N,isControlledViewport:k,paneClickDistance:j,selectionOnDrag:E}){let C,M=tj(),$=(0,y.useRef)(null),{userSelectionActive:P,lib:I,connectionInProgress:z}=tk(ns,tv),B=tG(p),L=(0,y.useRef)();C=tj(),(0,y.useEffect)(()=>{let e=()=>{if(!$.current||!($.current.checkVisibility?.()??!0))return!1;let e=ej($.current);(0===e.height||0===e.width)&&C.getState().onError?.("004","The parent container needs a width and a height to render the graph."),C.setState({width:e.width||500,height:e.height||500})};if($.current){e(),window.addEventListener("resize",e);let t=new ResizeObserver(()=>e());return t.observe($.current),()=>{window.removeEventListener("resize",e),t&&$.current&&t.unobserve($.current)}}},[]);let _=(0,y.useCallback)(e=>{N?.({x:e[0],y:e[1],zoom:e[2]}),k||M.setState({transform:e})},[N,k]);return(0,y.useEffect)(()=>{if($.current){L.current=function({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:a,onPanZoomEnd:s,onDraggingChange:l}){let d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},c=e.getBoundingClientRect(),h=[[0,0],[c.width,c.height]],f="u">typeof ResizeObserver?new ResizeObserver(e=>{let t=e[0];t&&(h=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null;f?.observe(e);let p=(0,D.default)().extent(()=>h).scaleExtent([t,n]).translateExtent(o),g=(0,w.select)(e).call(p);v({x:r.x,y:r.y,zoom:q(r.zoom,t,n)},[[0,0],[c.width,c.height]],o);let m=g.on("wheel.zoom"),x=g.on("dblclick.zoom");async function y(e,t){return!!g&&new Promise(n=>{p?.interpolate(t?.interpolate==="linear"?O.interpolate:R.interpolateZoom).transform(ti(g,t?.duration,t?.ease,()=>n(!0)),e)})}function b(){p.on("zoom",null)}async function v(e,t,n){let o=tt(e),r=p?.constrain()(o,t,n);return r&&await y(r),r}return p.wheelDelta(ta),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:o,panOnScroll:r,panOnDrag:c,panOnScrollMode:h,panOnScrollSpeed:f,preventScrolling:y,zoomOnPinch:v,zoomOnScroll:w,zoomOnDoubleClick:N,panActivationKeyPressed:k=!1,zoomActivationKeyPressed:j,lib:E,onTransformChange:C,connectionInProgress:M,paneClickDistance:$,selectionOnDrag:P}){o&&!d.isZoomingOrPanning&&b();let I=r&&!j&&!o;p.clickDistance(P?1/0:!eu($)||$<0?0:$);let D=I?function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:d}){return c=>{if(tn(c,t))return c.ctrlKey&&c.preventDefault(),!1;c.preventDefault(),c.stopImmediatePropagation();let h=n.property("__zoom").k||1;if(c.ctrlKey&&a){let e=(0,S.pointer)(c),t=h*Math.pow(2,ta(c));o.scaleTo(n,t,e,c);return}let f=1===c.deltaMode?20:1,p=r===u.Vertical?0:c.deltaX*f,g=r===u.Horizontal?0:c.deltaY*f;!ex()&&c.shiftKey&&r!==u.Vertical&&(p=c.deltaY*f,g=0),o.translateBy(n,-(p/h)*i,-(g/h)*i,{internal:!0});let m=te(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l?.(c,m):(e.isPanScrolling=!0,s?.(c,m)),e.panScrollTimeout=setTimeout(()=>{d?.(c,m),e.isPanScrolling=!1},150)}}({zoomPanValues:d,noWheelClassName:e,d3Selection:g,d3Zoom:p,panOnScrollMode:h,panOnScrollSpeed:f,zoomOnPinch:v,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:s}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){let i="wheel"===o.type,a=!t&&i&&!o.ctrlKey,s=tn(o,e);if(o.ctrlKey&&i&&s&&o.preventDefault(),a||s)return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:y,d3ZoomHandler:m});g.on("wheel.zoom",D,{passive:!1});let z=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;let r=te(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:d,onDraggingChange:l,onPanZoomStart:a});p.on("start",z);let A=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&to(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,te(i.transform))}}({zoomPanValues:d,panOnDrag:c,onPaneContextMenu:!!n,onPanZoom:i,onTransformChange:C});p.on("zoom",A);let R=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&to(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){let t=te(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,t)},150*!!n)}}}({zoomPanValues:d,panOnDrag:c,panOnScroll:r,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:l});p.on("end",R);let O=function({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:o,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:s,noWheelClassName:l,noPanClassName:d,lib:u,connectionInProgress:c}){return h=>{let f=t||n,p=o&&h.ctrlKey,g="wheel"===h.type;if(1===h.button&&"mousedown"===h.type&&(tn(h,`${u}-flow__node`)||tn(h,`${u}-flow__edge`)||tn(h,`${u}-flow__selection`)||tn(h,`${u}-flow__nodesselection`)))return!0;if(!r&&!f&&!i&&!a&&!o||s||c&&!g||tn(h,l)&&g||tn(h,d)&&(!g||i&&g&&!t)||!o&&h.ctrlKey&&g)return!1;if(!o&&"touchstart"===h.type&&h.touches?.length>1)return h.preventDefault(),!1;if(!f&&!i&&!p&&g||!r&&("mousedown"===h.type||"touchstart"===h.type)||Array.isArray(r)&&!r.includes(h.button)&&"mousedown"===h.type)return!1;let m=Array.isArray(r)&&r.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||g||e)&&m}}({panActivationKeyPressed:k,zoomActivationKeyPressed:j,panOnDrag:c,zoomOnScroll:w,panOnScroll:r,zoomOnDoubleClick:N,zoomOnPinch:v,userSelectionActive:o,noPanClassName:t,noWheelClassName:e,lib:E,connectionInProgress:M});p.filter(O),N?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)},destroy:b,setViewport:async function e(e,t){let n=tt(e);return await y(n,t),n},setViewportConstrained:v,getViewport:function(){let e=g?(0,A.default)(g.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:async function e(e,t){return!!g&&new Promise(n=>{p?.interpolate(t?.interpolate==="linear"?O.interpolate:R.interpolateZoom).scaleTo(ti(g,t?.duration,t?.ease,()=>n(!0)),e)})},scaleBy:async function e(e,t){return!!g&&new Promise(n=>{p?.interpolate(t?.interpolate==="linear"?O.interpolate:R.interpolateZoom).scaleBy(ti(g,t?.duration,t?.ease,()=>n(!0)),e)})},setScaleExtent:function(e){p?.scaleExtent(e)},setTranslateExtent:function(e){p?.translateExtent(e)},syncViewport:function(e){if(g){let t=tt(e),n=g.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&p?.transform(g,t,null,{sync:!0})}},setClickDistance:function(e){let t=!eu(e)||e<0?0:e;p?.clickDistance(t)}}}({domNode:$.current,minZoom:h,maxZoom:f,translateExtent:c,viewport:d,onDraggingChange:e=>M.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:o}=M.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:o}=M.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:o}=M.getState();o?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=L.current.getViewport();return M.setState({panZoom:L.current,transform:[e,t,n],domNode:$.current.closest(".react-flow")}),()=>{L.current?.destroy()}}},[]),(0,y.useEffect)(()=>{L.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panActivationKeyPressed:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:s,panOnDrag:l,zoomActivationKeyPressed:B,preventScrolling:g,noPanClassName:v,userSelectionActive:P,noWheelClassName:b,lib:I,onTransformChange:_,connectionInProgress:z,selectionOnDrag:E,paneClickDistance:j})},[e,t,n,o,r,i,a,s,l,B,g,v,P,b,I,_,z,E,j]),(0,x.jsx)("div",{className:"react-flow__renderer",ref:$,style:na,children:m})}let nd=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function nu(){let{userSelectionActive:e,userSelectionRect:t}=tk(nd,tv);return e&&t?(0,x.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 nc=(e,t)=>n=>{n.target===t.current&&e?.(n)},nh=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function nf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=c.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:s,onSelectionEnd:l,onPaneClick:d,onPaneContextMenu:u,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:g,children:m}){let v=(0,y.useRef)(0),w=tj(),{userSelectionActive:S,elementsSelectable:N,dragging:k,panBy:j,autoPanSpeed:E}=tk(nh,tv),C=N&&(e||S),M=(0,y.useRef)(null),$=(0,y.useRef)(),P=(0,y.useRef)(new Set),I=(0,y.useRef)(new Set),D=(0,y.useRef)(!1),z=(0,y.useRef)(!1),A=(0,y.useRef)({x:0,y:0}),R=(0,y.useRef)(!1),O=e=>{if(z.current||D.current||w.getState().connection.inProgress){z.current=!1,D.current=!1;return}d?.(e),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})};function B(e,t){let{userSelectionRect:o}=w.getState();if(!o)return;let{transform:r,nodeLookup:i,edgeLookup:a,connectionLookup:s,triggerNodeChanges:l,triggerEdgeChanges:d,defaultEdgeOptions:u}=w.getState(),h={x:o.startX,y:o.startY},{x:f,y:p}=ep(h,r),g={startX:h.x,startY:h.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},m=P.current,x=I.current;P.current=new Set(Y(i,g,r,n===c.Partial,!0).map(e=>e.id)),I.current=new Set;let y=u?.selectable??!0;for(let e of P.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=a.get(e);t&&(t.selectable??y)&&I.current.add(e)}}eS(m,P.current)||l(t2(i,P.current,!0)),eS(x,I.current)||d(t2(a,I.current)),w.setState({userSelectionRect:g,userSelectionActive:!0,nodesSelectionActive:!1})}let L=()=>{cancelAnimationFrame(v.current),v.current=0,R.current=!1};(0,y.useEffect)(()=>()=>L(),[]);let _=!0===o||Array.isArray(o)&&o.includes(0);return(0,x.jsxs)("div",{className:b(["react-flow__pane",{draggable:_,dragging:k,selection:e}]),onClick:C?void 0:nc(O,M),onContextMenu:nc(e=>{Array.isArray(o)&&o?.includes(2)?e.preventDefault():u?.(e)},M),onWheel:nc(h?e=>h(e):void 0,M),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:o,resetSelectedElements:a}=w.getState();if(!$.current||!n)return;let{x:l,y:d}=e$(e.nativeEvent,$.current);A.current={x:l,y:d};let u=ep({x:n.startX,y:n.startY},o);if(!z.current){if(Math.hypot(l-u.x,d-u.y)<=(t?0:i))return;a(),s?.(e)}z.current=!0,R.current||(!function e(){if(!r||!$.current)return;let[t,n]=ee(A.current,$.current,E);j({x:t,y:n}).then(t=>{if(!z.current||!t){v.current=requestAnimationFrame(e);return}let{x:n,y:o}=A.current;B(n,o),v.current=requestAnimationFrame(e)})}(),R.current=!0),B(l,d)}:p,onPointerUp:e=>{if(!C){e.target===M.current&&w.getState().connection.inProgress&&(D.current=!0);return}0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!S&&e.target===M.current&&w.getState().userSelectionRect&&O?.(e),w.setState({userSelectionActive:!1,userSelectionRect:null}),z.current&&(l?.(e),w.setState({nodesSelectionActive:P.current.size>0})),L())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),L()}:void 0,onPointerDownCapture:C?n=>{if("touch"===n.pointerType&&!1!==o&&!t)return;let{domNode:r,transform:i}=w.getState();if($.current=r?.getBoundingClientRect(),!$.current)return;let s=n.target===M.current;if(!s&&n.target.closest(".nokey")||!e||!(a&&s||t)||0!==n.button||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),z.current=!1;let{x:l,y:d}=e$(n.nativeEvent,$.current),u=ef({x:l,y:d},i);w.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:l,y:d}}),s||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:C?e=>{z.current&&(e.stopPropagation(),z.current=!1)}:void 0,onPointerLeave:g,ref:M,style:na,children:[m,(0,x.jsx)(nu,{})]})}function np({id:e,store:t,unselect:n=!1,nodeRef:o}){let r,{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:s,nodeLookup:l,onError:d}=t.getState(),u=l.get(e);u?(t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(a({nodes:[u],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):i([e])):d?.("012",(r=e,`Node with id "${r}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function ng({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:a}){let s=tj(),[l,d]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=function({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,s=new Map,l=!1,d={x:0,y:0},u=null,c=!1,h=null,f=!1,p=!1,g=null;return{update:function({noDragClassName:m,handleSelector:x,domNode:y,isSelectable:b,nodeId:v,nodeClickDistance:S=0}){function N({x:e,y:n}){let{nodeLookup:r,nodeExtent:a,snapGrid:l,snapToGrid:d,nodeOrigin:u,onNodeDrag:c,onSelectionDrag:h,onError:f,updateNodePositions:m}=t();i={x:e,y:n};let x=!1,y=s.size>1,b=y&&a?en(X(s)):null,w=y&&d?function({dragItems:e,snapGrid:t,x:n,y:o}){let r=e.values().next().value;if(!r)return null;let i={x:n-r.distance.x,y:o-r.distance.y},a=eh(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:s,snapGrid:l,x:e,y:n}):null;for(let[t,o]of s){if(!r.has(t))continue;let i={x:e-o.distance.x,y:n-o.distance.y};d&&(i=w?{x:Math.round(i.x+w.x),y:Math.round(i.y+w.y)}:eh(i,l));let s=null;if(y&&a&&!o.extent&&b){let{positionAbsolute:e}=o.internals,t=e.x-b.x+a[0][0],n=e.x+o.measured.width-b.x2+a[1][0];s=[[t,e.y-b.y+a[0][1]],[n,e.y+o.measured.height-b.y2+a[1][1]]]}let{position:c,positionAbsolute:h}=K({nodeId:t,nextPosition:i,nodeLookup:r,nodeExtent:s||a,nodeOrigin:u,onError:f});x=x||o.position.x!==c.x||o.position.y!==c.y,o.position=c,o.internals.positionAbsolute=h}if(p=p||x,x&&(m(s,!0),g&&(o||c||!v&&h))){let[e,t]=e5({nodeId:v,dragItems:s,nodeLookup:r});o?.(g,s,e,t),c?.(g,e,t),v||h?.(g,t)}}async function k(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:o,autoPanOnNodeDrag:r}=t();if(!r){l=!1,cancelAnimationFrame(a);return}let[s,c]=ee(d,u,o);(0!==s||0!==c)&&(i.x=(i.x??0)-s/e[2],i.y=(i.y??0)-c/e[2],await n({x:s,y:c})&&N(i)),a=requestAnimationFrame(k)}function j(o){let{nodeLookup:r,multiSelectionActive:a,nodesDraggable:l,transform:d,snapGrid:h,snapToGrid:f,selectNodesOnDrag:p,onNodeDragStart:g,onSelectionDragStart:m,unselectNodesAndEdges:x}=t();c=!0,p&&b||a||!v||r.get(v)?.selected||x(),b&&p&&v&&e?.(v);let y=ek(o.sourceEvent,{transform:d,snapGrid:h,snapToGrid:f,containerBounds:u});if(i=y,(s=function(e,t,n,o){let r=new Map;for(let[i,a]of e)if((a.selected||a.id===o)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let o=n.get(t.parentId);return!!o&&(!!o.selected||e(o,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(i);t&&r.set(i,{id:i,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return r}(r,l,y,v)).size>0&&(n||g||!v&&m)){let[e,t]=e5({nodeId:v,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,e,t),g?.(o.sourceEvent,e,t),v||m?.(o.sourceEvent,t)}}h=(0,w.select)(y);let E=I().clickDistance(S).on("start",e=>{let{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,f=!1,p=!1,g=e.sourceEvent,0===o&&j(e),i=ek(e.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s,containerBounds:u}),d=e$(e.sourceEvent,u)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:h,nodeLookup:p}=t(),m=ek(e.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a,containerBounds:u});if(g=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||v&&!p.has(v))&&(f=!0),!f){if(!l&&n&&c&&(l=!0,k()),!c){let t=e$(e.sourceEvent,u),n=t.x-d.x,o=t.y-d.y;Math.sqrt(n*n+o*o)>h&&j(e)}(i.x!==m.xSnapped||i.y!==m.ySnapped)&&s&&c&&(d=e$(e.sourceEvent,u),N(m))}}).on("end",e=>{if(!c||f){f&&s.size>0&&t().updateNodePositions(s,!1);return}if(l=!1,c=!1,cancelAnimationFrame(a),s.size>0){let{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=t();if(p&&(o(s,!1),p=!1),r||i||!v&&a){let[t,o]=e5({nodeId:v,dragItems:s,nodeLookup:n,dragging:!1});r?.(e.sourceEvent,s,t,o),i?.(e.sourceEvent,t,o),v||a?.(e.sourceEvent,o)}}}).filter(e=>{let t=e.target;return!e.button&&(!m||!e3(t,`.${m}`,y))&&(!x||e3(t,x,y))});h.call(E)},destroy:function(){h?.on(".drag",null)}}}({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{np({id:t,store:s,nodeRef:e})},onDragStart:()=>{d(!0)},onDragStop:()=>{d(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.useEffect)(()=>{!t&&e.current&&u.current&&u.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:a})},[n,o,t,i,e,r,a]),l}function nm(){let e=tj();return(0,y.useCallback)(t=>{let{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:d}=e.getState(),u=new Map,c=e=>e.selected&&(e.draggable||i&&void 0===e.draggable),h=o?r[0]:5,f=o?r[1]:5,p=t.direction.x*h*t.factor,g=t.direction.y*f*t.factor;for(let[,e]of l){if(!c(e))continue;let t={x:e.internals.positionAbsolute.x+p,y:e.internals.positionAbsolute.y+g};o&&(t=eh(t,r));let{position:i,positionAbsolute:s}=K({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:d,onError:a});e.position=i,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}let nx=(0,y.createContext)(null),ny=nx.Provider;nx.Consumer;let nb=()=>(0,y.useContext)(nx),nv=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),nw=(0,y.createContext)(null);function nS({children:e}){let t=tk(nv,tv);return(0,x.jsx)(nw.Provider,{value:t,children:e})}let nN={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},nk=(0,y.memo)(t7(function({type:e="source",position:t=p.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:a,onConnect:s,children:l,className:u,onMouseDown:c,onTouchStart:h,...f},g){let m=a||null,v="target"===e,w=tj(),S=nb(),{connectOnClick:N,noPanClassName:k,rfId:j}=function(){let e=(0,y.useContext)(nw);if(!e)throw Error("useHandleConfig must be used within a HandleConfigProvider");return e}(),{connectingFrom:E,connectingTo:C,clickConnecting:M,isPossibleEndHandle:$,connectionInProcess:P,clickConnectionInProcess:I,valid:D}=tk(t=>{let{connectionClickStartHandle:n,connectionMode:o,connection:r}=t,{fromHandle:i,toHandle:a,isValid:s}=r;if(!i&&!n)return nN;let l=a?.nodeId===S&&a?.id===m&&a?.type===e;return{connectingFrom:i?.nodeId===S&&i?.id===m&&i?.type===e,connectingTo:l,clickConnecting:n?.nodeId===S&&n?.id===m&&n?.type===e,isPossibleEndHandle:o===d.Strict?i?.type!==e:S!==i?.nodeId||m!==i?.id,connectionInProcess:!!i,clickConnectionInProcess:!!n,valid:l&&s}},tv);S||w.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let z=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=w.getState(),r={...t,...e};if(o){let{edges:e,setEdges:t,onError:n}=w.getState();t(function(e,t,n={}){return((e,t,n={})=>{let o,r;if(!e.source||!e.target)return n.onError?.("006","Can't create edge. An edge needs a source and a target."),t;let i=n.getEdgeId||eO;return(r=o=V(e)?{...e}:{...e,id:i(e)},t.some(e=>e.source===r.source&&e.target===r.target&&(e.sourceHandle===r.sourceHandle||!e.sourceHandle&&!r.sourceHandle)&&(e.targetHandle===r.targetHandle||!e.targetHandle&&!r.targetHandle)))?t:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,t.concat(o))})(e,t,{...n,onError:n.onError??t4})}(r,e,{onError:n}))}n?.(r),s?.(r)},A=e=>{if(!S)return;let t="clientX"in e.nativeEvent;if(r&&(t&&0===e.button||!t)){let t=w.getState();e9(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:v,handleId:m,nodeId:S,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>w.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:z,isValidConnection:n||((...e)=>w.getState().isValidConnection?.(...e)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?c?.(e):h?.(e)};return(0,x.jsx)("div",{"data-handleid":m,"data-nodeid":S,"data-handlepos":t,"data-id":`${j}-${S}-${m}-${e}`,className:b(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",k,u,{source:!v,target:v,connectable:o,connectablestart:r,connectableend:i,clickconnecting:M,connectingfrom:E,connectingto:C,valid:D,connectionindicator:o&&(!P||$)&&(P||I?i:r)}]),onMouseDown:A,onTouchStart:A,onClick:N?t=>{let{onClickConnectStart:o,onClickConnectEnd:i,connectionClickStartHandle:a,connectionMode:s,isValidConnection:l,lib:d,rfId:u,nodeLookup:c,connection:h}=w.getState();if(!S||!a&&!r)return;if(!a){o?.(t.nativeEvent,{nodeId:S,handleId:m,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:S,type:e,id:m}});return}let f=eE(t.target),p=n||l,{connection:g,isValid:x}=e8(t.nativeEvent,{handle:{nodeId:S,id:m,type:e},connectionMode:s,fromNodeId:a.nodeId,fromHandleId:a.id||null,fromType:a.type,isValidConnection:p,flowId:u,doc:f,lib:d,nodeLookup:c});x&&g&&z(g);let y=structuredClone(h);delete y.inProgress,y.toPosition=y.toHandle?y.toHandle.position:null,i?.(t,y),w.setState({connectionClickStartHandle:null})}:void 0,ref:g,...f,children:l})})),nj={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},nE={input:function({data:e,isConnectable:t,sourcePosition:n=p.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[e?.label,(0,x.jsx)(nk,{type:"source",position:n,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:n=p.Top,sourcePosition:o=p.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label,(0,x.jsx)(nk,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:n=p.Top}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label]})},group:function(){return null}},nC=e=>{let{width:t,height:n,x:o,y:r}=X(e.nodeLookup,{filter:e=>!!e.selected});return{width:eu(t)?t:null,height:eu(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 nM({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let o=tj(),{width:r,height:i,transformString:a,userSelectionActive:s}=tk(nC,tv),l=nm(),d=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||d.current?.focus({preventScroll:!0})},[n]);let u=!s&&null!==r&&null!==i;if(ng({nodeRef:d,disabled:!u}),!u)return null;let c=e?t=>{e(t,o.getState().nodes.filter(e=>e.selected))}:void 0;return(0,x.jsx)("div",{className:b(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:(0,x.jsx)("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:c,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(nj,e.key)&&(e.preventDefault(),l({direction:nj[e.key],factor:e.shiftKey?4:1}))},style:{width:r,height:i}})})}let n$="u">typeof window?window:void 0,nP=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function nI({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,paneClickDistance:s,deleteKeyCode:l,selectionKeyCode:d,selectionOnDrag:u,selectionMode:c,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:p,panActivationKeyCode:g,zoomActivationKeyCode:m,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:S,panOnScrollSpeed:N,panOnScrollMode:k,zoomOnDoubleClick:j,panOnDrag:E,autoPanOnSelection:C,defaultViewport:M,translateExtent:$,minZoom:P,maxZoom:I,preventScrolling:D,onSelectionContextMenu:z,noWheelClassName:A,noPanClassName:R,disableKeyboardA11y:O,onViewportChange:B,isControlledViewport:L}){let{nodesSelectionActive:_,userSelectionActive:H}=tk(nP,tv),T=tG(d,{target:n$}),V=tG(g,{target:n$}),F=V||E,Z=V||S,X=u&&!0!==F,Y=T||H||X;return!function({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=tj(),{deleteElements:o}=no(),r=tG(e,{actInsideInputWithModifier:!1}),i=tG(t,{target:ni});(0,y.useEffect)(()=>{if(r){let{edges:e,nodes:t}=n.getState();o({nodes:t.filter(nr),edges:e.filter(nr)}),n.setState({nodesSelectionActive:!1})}},[r]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:l,multiSelectionKeyCode:p}),(0,x.jsx)(nl,{onPaneContextMenu:i,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:Z,panActivationKeyPressed:V,panOnScrollSpeed:N,panOnScrollMode:k,zoomOnDoubleClick:j,panOnDrag:!T&&F,defaultViewport:M,translateExtent:$,minZoom:P,maxZoom:I,zoomActivationKeyCode:m,preventScrolling:D,noWheelClassName:A,noPanClassName:R,onViewportChange:B,isControlledViewport:L,paneClickDistance:s,selectionOnDrag:X,children:(0,x.jsxs)(nf,{onSelectionStart:h,onSelectionEnd:f,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:F,autoPanOnSelection:C,isSelecting:!!Y,selectionMode:c,selectionKeyPressed:T,paneClickDistance:s,selectionOnDrag:X,children:[e,_&&(0,x.jsx)(nM,{onSelectionContextMenu:z,noPanClassName:R,disableKeyboardA11y:O})]})})}nI.displayName="FlowRenderer";let nD=(0,y.memo)(nI),nz=e=>e.updateNodeInternals;var nA=(0,y.memo)(function({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:a,nodesDraggable:s,elementsSelectable:l,nodesConnectable:d,nodesFocusable:u,resizeObserver:c,noDragClassName:h,noPanClassName:f,disableKeyboardA11y:p,rfId:g,nodeTypes:m,nodeClickDistance:v,onError:w}){let S,{node:N,internals:k,isParent:j}=tk(t=>{let n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}},tv),E=N.type||"default",C=m?.[E]||nE[E];void 0===C&&(w?.("003",(S=E,`Node type "${S}" not found. Using fallback type "default".`)),E="default",C=m?.default||nE.default);let M=!!(N.draggable||s&&void 0===N.draggable),$=!!(N.selectable||l&&void 0===N.selectable),P=!!(N.connectable||d&&void 0===N.connectable),I=!!(N.focusable||u&&void 0===N.focusable),D=tj(),z=ev(N),A=function({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){let r=tj(),i=(0,y.useRef)(null),a=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),l=(0,y.useRef)(e.targetPosition),d=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.useEffect)(()=>{!i.current||e.hidden||u&&a.current===i.current||(a.current&&o?.unobserve(a.current),o?.observe(i.current),a.current=i.current)},[u,e.hidden]),(0,y.useEffect)(()=>()=>{a.current&&(o?.unobserve(a.current),a.current=null)},[]),(0,y.useEffect)(()=>{if(i.current){let n=d.current!==t,o=s.current!==e.sourcePosition,a=l.current!==e.targetPosition;(n||o||a)&&(d.current=t,s.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}({node:N,nodeType:E,hasDimensions:z,resizeObserver:c}),R=ng({nodeRef:A,disabled:N.hidden||!M,noDragClassName:h,handleSelector:N.dragHandle,nodeId:e,isSelectable:$,nodeClickDistance:v}),O=nm();if(N.hidden)return null;let B=eb(N),_=void 0===N.internals.handleBounds?{width:N.width??N.initialWidth??N.style?.width,height:N.height??N.initialHeight??N.style?.height}:{width:N.width??N.style?.width,height:N.height??N.style?.height},H=$||M||t||n||o||r,T=n?e=>n(e,{...k.userNode}):void 0,V=o?e=>o(e,{...k.userNode}):void 0,F=r?e=>r(e,{...k.userNode}):void 0,Z=i?e=>i(e,{...k.userNode}):void 0,X=a?e=>a(e,{...k.userNode}):void 0;return(0,x.jsx)("div",{className:b(["react-flow__node",`react-flow__node-${E}`,{[f]:M},N.className,{selected:N.selected,selectable:$,parent:j,draggable:M,dragging:R}]),ref:A,style:{zIndex:k.z,transform:`translate(${k.positionAbsolute.x}px,${k.positionAbsolute.y}px)`,pointerEvents:H?"all":"none",visibility:z?"visible":"hidden",...N.style,..._},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:T,onMouseMove:V,onMouseLeave:F,onContextMenu:Z,onClick:n=>{let{selectNodesOnDrag:o,nodeDragThreshold:r}=D.getState();$&&(!o||!M||r>0)&&np({id:e,store:D,nodeRef:A}),t&&t(n,{...k.userNode})},onDoubleClick:X,onKeyDown:I?t=>{if(!eM(t.nativeEvent)&&!p){if(L.includes(t.key)&&$)np({id:e,store:D,unselect:"Escape"===t.key,nodeRef:A});else if(M&&N.selected&&Object.prototype.hasOwnProperty.call(nj,t.key)){t.preventDefault();let{ariaLabelConfig:e}=D.getState();D.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~k.positionAbsolute.x,y:~~k.positionAbsolute.y})}),O({direction:nj[t.key],factor:t.shiftKey?4:1})}}}:void 0,tabIndex:I?0:void 0,onFocus:I?()=>{if(p||!A.current?.matches(":focus-visible"))return;let{transform:t,width:n,height:o,autoPanOnNodeFocus:r,setCenter:i}=D.getState();!r||Y(new Map([[e,N]]),{x:0,y:0,width:n,height:o},t,!0).length>0||i(N.position.x+B.width/2,N.position.y+B.height/2,{zoom:t[2]})}:void 0,role:N.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${tM}-${g}`,"aria-label":N.ariaLabel,...N.domAttributes,children:(0,x.jsx)(ny,{value:e,children:(0,x.jsx)(C,{id:e,data:N.data,type:E,positionAbsoluteX:k.positionAbsolute.x,positionAbsoluteY:k.positionAbsolute.y,selected:N.selected??!1,selectable:$,draggable:M,deletable:N.deletable??!0,isConnectable:P,sourcePosition:N.sourcePosition,targetPosition:N.targetPosition,dragging:R,dragHandle:N.dragHandle,zIndex:k.z,parentId:N.parentId,...B})})})});let nR=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function nO(e){var t;let{nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:i}=tk(nR,tv),a=(t=e.onlyRenderVisibleElements,tk((0,y.useCallback)(e=>t?Y(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]),tv)),s=function(){let e=tk(nz),[t]=(0,y.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,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}();return(0,x.jsx)("div",{className:"react-flow__nodes",style:na,children:a.map(t=>(0,x.jsx)(nA,{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:s,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},t))})}nO.displayName="NodeRenderer";let nB=(0,y.memo)(nO),nL={[f.Arrow]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,x.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[f.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,x.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},n_=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{let l,d=(l=tj(),(0,y.useMemo)(()=>{let e;return Object.prototype.hasOwnProperty.call(nL,t)?nL[t]:(l.getState().onError?.("009",(e=t,`Marker type "${e}" doesn't exist.`)),null)},[t]));return d?(0,x.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:(0,x.jsx)(d,{color:n,strokeWidth:a})}):null},nH=({defaultColor:e,rfId:t})=>{let n=tk(e=>e.edges),o=tk(e=>e.defaultEdgeOptions),r=(0,y.useMemo)(()=>(function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){let i=new Set;return e.reduce((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach(o=>{if(o&&"object"==typeof o){let r=eX(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))})(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?(0,x.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,x.jsx)("defs",{children:r.map(e=>(0,x.jsx)(n_,{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};nH.displayName="MarkerDefinitions";var nT=(0,y.memo)(nH);function nV({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:d,...u}){let[c,h]=(0,y.useState)({x:1,y:0,width:0,height:0}),f=b(["react-flow__edge-textwrapper",d]),p=(0,y.useRef)(null);return((0,y.useEffect)(()=>{if(p.current){let e=p.current.getBBox();h({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n)?(0,x.jsxs)("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:f,visibility:c.width?"visible":"hidden",...u,children:[r&&(0,x.jsx)("rect",{width:c.width+2*a[0],x:-a[0],y:-a[1],height:c.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),(0,x.jsx)("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:o,children:n}),l]}):null}nV.displayName="EdgeText";let nF=(0,y.memo)(nV);function nZ({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,interactionWidth:d=20,...u}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("path",{...u,d:e,fill:"none",className:b(["react-flow__edge-path",u.className])}),d?(0,x.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,o&&eu(t)&&eu(n)?(0,x.jsx)(nF,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]})}function nX({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===p.Left||e===p.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function nY({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:o,targetY:r,targetPosition:i=p.Top}){let[a,s]=nX({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,d]=nX({pos:i,x1:o,y1:r,x2:e,y2:t}),[u,c,h,f]=eI({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:d});return[`M${e},${t} C${a},${s} ${l},${d} ${o},${r}`,u,c,h,f]}function nW(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a,targetPosition:s,label:l,labelStyle:d,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:g,markerStart:m,interactionWidth:y})=>{let[b,v,w]=nY({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s}),S=e.isInternal?void 0:t;return(0,x.jsx)(nZ,{id:S,path:b,labelX:v,labelY:w,label:l,labelStyle:d,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:g,markerStart:m,interactionWidth:y})})}let nK=nW({isInternal:!1}),nU=nW({isInternal:!0});function nq(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:c,style:h,sourcePosition:f=p.Bottom,targetPosition:g=p.Top,markerEnd:m,markerStart:y,pathOptions:b,interactionWidth:v})=>{let[w,S,N]=eH({sourceX:n,sourceY:o,sourcePosition:f,targetX:r,targetY:i,targetPosition:g,borderRadius:b?.borderRadius,offset:b?.offset,stepPosition:b?.stepPosition}),k=e.isInternal?void 0:t;return(0,x.jsx)(nZ,{id:k,path:w,labelX:S,labelY:N,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:c,style:h,markerEnd:m,markerStart:y,interactionWidth:v})})}nK.displayName="SimpleBezierEdge",nU.displayName="SimpleBezierEdgeInternal";let nG=nq({isInternal:!1}),nQ=nq({isInternal:!0});function nJ(e){return(0,y.memo)(({id:t,...n})=>{let o=e.isInternal?void 0:t;return(0,x.jsx)(nG,{...n,id:o,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}nG.displayName="SmoothStepEdge",nQ.displayName="SmoothStepEdgeInternal";let n0=nJ({isInternal:!1}),n1=nJ({isInternal:!0});function n2(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:c,style:h,markerEnd:f,markerStart:p,interactionWidth:g})=>{let[m,y,b]=eB({sourceX:n,sourceY:o,targetX:r,targetY:i}),v=e.isInternal?void 0:t;return(0,x.jsx)(nZ,{id:v,path:m,labelX:y,labelY:b,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:c,style:h,markerEnd:f,markerStart:p,interactionWidth:g})})}n0.displayName="StepEdge",n1.displayName="StepEdgeInternal";let n3=n2({isInternal:!1}),n5=n2({isInternal:!0});function n4(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a=p.Bottom,targetPosition:s=p.Top,label:l,labelStyle:d,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:m,markerStart:y,pathOptions:b,interactionWidth:v})=>{let[w,S,N]=eA({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s,curvature:b?.curvature}),k=e.isInternal?void 0:t;return(0,x.jsx)(nZ,{id:k,path:w,labelX:S,labelY:N,label:l,labelStyle:d,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:m,markerStart:y,interactionWidth:v})})}n3.displayName="StraightEdge",n5.displayName="StraightEdgeInternal";let n6=n4({isInternal:!1}),n7=n4({isInternal:!0});n6.displayName="BezierEdge",n7.displayName="BezierEdgeInternal";let n8={default:n7,straight:n5,step:n1,smoothstep:nQ,simplebezier:nU},n9={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},oe="react-flow__edgeupdater";function ot({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:a,type:s}){return(0,x.jsx)("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:a,className:b([oe,`${oe}-${s}`]),cx:e===p.Left?t-o:e===p.Right?t+o:t,cy:e===p.Top?n-o:e===p.Bottom?n+o:n,r:o,stroke:"transparent",fill:"transparent"})}function on({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:a,sourcePosition:s,targetPosition:l,onReconnect:d,onReconnectStart:u,onReconnectEnd:c,setReconnecting:h,setUpdateHover:f}){let p=tj(),g=(e,t)=>{if(0!==e.button)return;let{autoPanOnConnect:o,domNode:r,connectionMode:i,connectionRadius:a,lib:s,onConnectStart:l,cancelConnection:f,nodeLookup:g,rfId:m,panBy:x,updateConnection:y}=p.getState(),b="target"===t.type;e9(e.nativeEvent,{autoPanOnConnect:o,connectionMode:i,connectionRadius:a,domNode:r,handleId:t.id,nodeId:t.nodeId,nodeLookup:g,isTarget:b,edgeUpdaterType:t.type,lib:s,flowId:m,cancelConnection:f,panBy:x,isValidConnection:(...e)=>p.getState().isValidConnection?.(...e)??!0,onConnect:e=>d?.(n,e),onConnectStart:(o,r)=>{h(!0),u?.(e,n,t.type),l?.(o,r)},onConnectEnd:(...e)=>p.getState().onConnectEnd?.(...e),onReconnectEnd:(e,o)=>{h(!1),c?.(e,n,t.type,o)},updateConnection:y,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},m=()=>f(!0),y=()=>f(!1);return(0,x.jsxs)(x.Fragment,{children:[(!0===e||"source"===e)&&(0,x.jsx)(ot,{position:s,centerX:o,centerY:r,radius:t,onMouseDown:e=>g(e,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),onMouseEnter:m,onMouseOut:y,type:"source"}),(!0===e||"target"===e)&&(0,x.jsx)(ot,{position:l,centerX:i,centerY:a,radius:t,onMouseDown:e=>g(e,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),onMouseEnter:m,onMouseOut:y,type:"target"})]})}var oo=(0,y.memo)(function({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:u,reconnectRadius:c,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,rfId:m,edgeTypes:v,noPanClassName:w,onError:S,disableKeyboardA11y:N}){let k,j=tk(t=>t.edgeLookup.get(e)),E=tk(e=>e.defaultEdgeOptions),C=(j=E?{...E,...j}:j).type||"default",M=v?.[C]||n8[C];void 0===M&&(S?.("011",(k=C,`Edge type "${k}" not found. Using fallback type "default".`)),C="default",M=v?.default||n8.default);let $=!!(j.focusable||t&&void 0===j.focusable),P=void 0!==h&&(j.reconnectable||n&&void 0===j.reconnectable),I=!!(j.selectable||o&&void 0===j.selectable),D=(0,y.useRef)(null),[z,A]=(0,y.useState)(!1),[R,O]=(0,y.useState)(!1),B=tj(),{zIndex:_=j.zIndex,sourceX:H,sourceY:T,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X}=tk((0,y.useCallback)(t=>{let n=t.nodeLookup.get(j.source),o=t.nodeLookup.get(j.target);if(!n||!o)return n9;let r=function(e){let{sourceNode:t,targetNode:n}=e;if(!eT(t)||!eT(n))return null;let o=t.internals.handleBounds||eV(t.handles),r=n.internals.handleBounds||eV(n.handles),i=eZ(o?.source??[],e.sourceHandle),a=eZ(e.connectionMode===d.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!a)return e.onError?.("008",((e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:o}", edge id: ${t}.`)(!i?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=i?.position||p.Bottom,l=a?.position||p.Top,u=eF(t,i,s),c=eF(n,a,l);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y,sourcePosition:s,targetPosition:l}}({id:e,sourceNode:n,targetNode:o,sourceHandle:j.sourceHandle||null,targetHandle:j.targetHandle||null,connectionMode:t.connectionMode,onError:S}),i=function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if("manual"===i)return o;let a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return(r&&n?o+1e3:o)+a}({selected:j.selected,zIndex:j.zIndex,sourceNode:n,targetNode:o,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...r||n9,zIndex:i}},[j.source,j.target,j.sourceHandle,j.targetHandle,j.selected,j.zIndex,S]),tv),Y=(0,y.useMemo)(()=>j.markerStart?`url('#${eX(j.markerStart,m)}')`:void 0,[j.markerStart,m]),W=(0,y.useMemo)(()=>j.markerEnd?`url('#${eX(j.markerEnd,m)}')`:void 0,[j.markerEnd,m]);if(j.hidden||null===H||null===T||null===V||null===F)return null;let K=i?e=>{i(e,{...j})}:void 0,U=a?e=>{a(e,{...j})}:void 0,q=s?e=>{s(e,{...j})}:void 0,G=l?e=>{l(e,{...j})}:void 0,Q=u?e=>{u(e,{...j})}:void 0;return(0,x.jsx)("svg",{style:{zIndex:_},children:(0,x.jsxs)("g",{className:b(["react-flow__edge",`react-flow__edge-${C}`,j.className,w,{selected:j.selected,animated:j.animated,inactive:!I&&!r,updating:z,selectable:I}]),onClick:t=>{let{addSelectedEdges:n,unselectNodesAndEdges:o,multiSelectionActive:i}=B.getState();I&&(B.setState({nodesSelectionActive:!1}),j.selected&&i?(o({nodes:[],edges:[j]}),D.current?.blur()):n([e])),r&&r(t,j)},onDoubleClick:K,onContextMenu:U,onMouseEnter:q,onMouseMove:G,onMouseLeave:Q,onKeyDown:$?t=>{if(!N&&L.includes(t.key)&&I){let{unselectNodesAndEdges:n,addSelectedEdges:o}=B.getState();"Escape"===t.key?(D.current?.blur(),n({edges:[j]})):o([e])}}:void 0,tabIndex:$?0:void 0,role:j.ariaRole??($?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":null===j.ariaLabel?void 0:j.ariaLabel||`Edge from ${j.source} to ${j.target}`,"aria-describedby":$?`${t$}-${m}`:void 0,ref:D,...j.domAttributes,children:[!R&&(0,x.jsx)(M,{id:e,source:j.source,target:j.target,type:j.type,selected:j.selected,animated:j.animated,selectable:I,deletable:j.deletable??!0,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,sourceX:H,sourceY:T,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,data:j.data,style:j.style,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerStart:Y,markerEnd:W,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth}),P&&(0,x.jsx)(on,{edge:j,isReconnectable:P,reconnectRadius:c,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,sourceX:H,sourceY:T,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,setUpdateHover:A,setReconnecting:O})]})})});let or=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function oi({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:a,onEdgeMouseEnter:s,onEdgeMouseMove:l,onEdgeMouseLeave:d,onEdgeClick:u,reconnectRadius:c,onEdgeDoubleClick:h,onReconnectStart:f,onReconnectEnd:p,disableKeyboardA11y:g}){let{edgesFocusable:m,edgesReconnectable:b,elementsSelectable:v,onError:w}=tk(or,tv),S=tk((0,y.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&&function({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){let i=et(ei(e),ei(t));return i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1),el({x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]},eo(i))>0}({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&n.push(t.id)}return n},[t]),tv);return(0,x.jsxs)("div",{className:"react-flow__edges",children:[(0,x.jsx)(nT,{defaultColor:e,rfId:n}),S.map(e=>(0,x.jsx)(oo,{id:e,edgesFocusable:m,edgesReconnectable:b,elementsSelectable:v,noPanClassName:r,onReconnect:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:d,onClick:u,reconnectRadius:c,onDoubleClick:h,onReconnectStart:f,onReconnectEnd:p,rfId:n,onError:w,edgeTypes:o,disableKeyboardA11y:g},e))]})}oi.displayName="EdgeRenderer";let oa=(0,y.memo)(oi),os=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function ol({children:e}){let t=tj(),n=(0,y.useRef)(null),[o]=(0,y.useState)(()=>t.getState().transform);return t8(()=>{let e=null,o=()=>{let o=t.getState().transform;(!e||o[0]!==e[0]||o[1]!==e[1]||o[2]!==e[2])&&(e=o,n.current&&(n.current.style.transform=os(o)))};return o(),t.subscribe(o)},[t]),(0,x.jsx)("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:os(o)},children:e})}let od=e=>e.panZoom?.syncViewport;function ou(e){return e.connection.inProgress?{...e.connection,to:ef(e.connection.to,e.transform)}:{...e.connection}}let oc=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function oh({containerStyle:e,style:t,type:n,component:o}){let{nodesConnectable:r,width:i,height:a,isValid:s,inProgress:l}=tk(oc,tv);return i&&r&&l?(0,x.jsx)("svg",{style:e,width:i,height:a,className:"react-flow__connectionline react-flow__container",children:(0,x.jsx)("g",{className:b(["react-flow__connection",eN(s)]),children:(0,x.jsx)(of,{style:t,type:n,CustomComponent:o,isValid:s})})}):null}let of=({style:e,type:t=h.Bezier,CustomComponent:n,isValid:o})=>{let{inProgress:r,from:i,fromNode:a,fromHandle:s,fromPosition:l,to:d,toNode:u,toHandle:c,toPosition:f,pointer:p}=tk(ou,tv);if(!r)return;if(n)return(0,x.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:s,fromX:i.x,fromY:i.y,toX:d.x,toY:d.y,fromPosition:l,toPosition:f,connectionStatus:eN(o),toNode:u,toHandle:c,pointer:p});let g="",m={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:d.x,targetY:d.y,targetPosition:f};switch(t){case h.Bezier:[g]=eA(m);break;case h.SimpleBezier:[g]=nY(m);break;case h.Step:[g]=eH({...m,borderRadius:0});break;case h.SmoothStep:[g]=eH(m);break;default:[g]=eB(m)}return(0,x.jsx)("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};of.displayName="ConnectionLine";let op={};function og(e=op){(0,y.useRef)(e),tj(),(0,y.useEffect)(()=>{},[e])}function om({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:u,onSelectionContextMenu:c,onSelectionStart:h,onSelectionEnd:f,connectionLineType:p,connectionLineStyle:g,connectionLineComponent:m,connectionLineContainerStyle:b,selectionKeyCode:v,selectionOnDrag:w,selectionMode:S,multiSelectionKeyCode:N,panActivationKeyCode:k,zoomActivationKeyCode:j,deleteKeyCode:E,onlyRenderVisibleElements:C,elementsSelectable:M,defaultViewport:$,translateExtent:P,minZoom:I,maxZoom:D,preventScrolling:z,defaultMarkerColor:A,zoomOnScroll:R,zoomOnPinch:O,panOnScroll:B,panOnScrollSpeed:L,panOnScrollMode:_,zoomOnDoubleClick:H,panOnDrag:T,autoPanOnSelection:V,onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:K,paneClickDistance:U,nodeClickDistance:q,onEdgeContextMenu:G,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,nodeExtent:ed,rfId:eu,viewport:ec,onViewportChange:eh,nodesDraggable:ef}){let ep,eg,em,ex;return og(e),og(t),tj(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[]),ep=no(),eg=(0,y.useRef)(!1),(0,y.useEffect)(()=>{!eg.current&&ep.viewportInitialized&&n&&(setTimeout(()=>n(ep),1),eg.current=!0)},[n,ep.viewportInitialized]),em=tk(od),ex=tj(),(0,y.useEffect)(()=>{ec&&(em?.(ec),ex.setState({transform:[ec.x,ec.y,ec.zoom]}))},[ec,em]),(0,x.jsx)(nD,{onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:Y,onPaneContextMenu:K,onPaneScroll:W,paneClickDistance:U,deleteKeyCode:E,selectionKeyCode:v,selectionOnDrag:w,selectionMode:S,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:N,panActivationKeyCode:k,zoomActivationKeyCode:j,elementsSelectable:M,zoomOnScroll:R,zoomOnPinch:O,zoomOnDoubleClick:H,panOnScroll:B,panOnScrollSpeed:L,panOnScrollMode:_,panOnDrag:T,autoPanOnSelection:V,defaultViewport:$,translateExtent:P,minZoom:I,maxZoom:D,onSelectionContextMenu:c,preventScrolling:z,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,onViewportChange:eh,isControlledViewport:!!ec,children:(0,x.jsxs)(ol,{children:[(0,x.jsx)(oa,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,onlyRenderVisibleElements:C,onEdgeContextMenu:G,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,defaultMarkerColor:A,noPanClassName:es,disableKeyboardA11y:el,rfId:eu}),(0,x.jsx)(oh,{style:g,type:p,component:m,containerStyle:b}),(0,x.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,x.jsx)(nB,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:u,nodeClickDistance:q,onlyRenderVisibleElements:C,noPanClassName:es,noDragClassName:ei,disableKeyboardA11y:el,nodeExtent:ed,rfId:eu,nodesDraggable:ef}),(0,x.jsx)("div",{className:"react-flow__viewport-portal"})]})})}om.displayName="GraphView";let ox=(0,y.memo)(om),oy=ec("React Flow","https://reactflow.dev/"),ob=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l=.5,maxZoom:u=2,nodeOrigin:c,nodeExtent:h,zIndexMode:f="basic"}={})=>{let p=new Map,g=new Map,m=new Map,x=new Map,y=o??t??[],b=n??e??[],v=c??[0,0],w=h??B;e2(m,x,y);let{nodesInitialized:S}=eq(b,p,g,{nodeOrigin:v,nodeExtent:w,zIndexMode:f}),N=[0,0,1];if(a&&r&&i){let{x:e,y:t,zoom:n}=em(X(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),r,i,l,u,s?.padding??.1);N=[e,t,n]}return{rfId:"1",width:r??0,height:i??0,transform:N,nodes:b,nodesInitialized:S,nodeLookup:p,parentLookup:g,edges:y,edgeLookup:x,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==n,hasDefaultEdges:void 0!==o,panZoom:null,minZoom:l,maxZoom:u,translateExtent:B,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:d.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:a??!1,fitViewOptions:s,fitViewResolver:null,connection:{...H},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:oy,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:_,zIndexMode:f,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}};function ov({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:a,initialMaxZoom:s,initialFitViewOptions:l,fitView:d,nodeOrigin:u,nodeExtent:c,zIndexMode:h,children:f}){let[g]=(0,y.useState)(()=>(({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:u,nodeExtent:c,zIndexMode:h})=>{let f,g;return f=(f,g)=>{async function m(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:o,width:r,height:i,minZoom:a,maxZoom:s}=g();t&&(await W({nodes:e,width:r,height:i,panZoom:t,minZoom:a,maxZoom:s},n),o?.resolve(!0),f({fitViewResolver:null}))}return{...ob({nodes:e,edges:t,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:u,nodeExtent:c,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:o,nodeExtent:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:s,nodesSelectionActive:l}=g(),{nodesInitialized:d,hasSelectedNodes:u}=eq(e,t,n,{nodeOrigin:o,nodeExtent:r,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:s}),c=l&&u;a&&d?(m(),f({nodes:e,nodesInitialized:d,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:c})):f({nodes:e,nodesInitialized:d,nodesSelectionActive:c})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=g();e2(t,n,e),f({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=g();t(e),f({hasDefaultNodes:!0})}if(t){let{setEdges:e}=g();e(t),f({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:o,domNode:r,nodeOrigin:i,nodeExtent:a,debug:s,fitViewQueued:l,zIndexMode:d}=g(),{changes:u,updatedInternals:c}=function(e,t,n,o,r,i,a){let s=o?.querySelector(".xyflow__viewport"),l=!1;if(!s)return{changes:[],updatedInternals:l};let d=[],u=window.getComputedStyle(s),{m22:c}=new window.DOMMatrixReadOnly(u.transform),h=[];for(let o of e.values()){let e=t.get(o.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),l=!0;continue}let s=ej(o.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||o.force)){let f=o.nodeElement.getBoundingClientRect(),p=ey(e.extent)?e.extent:i,{positionAbsolute:g}=e.internals;if(e.parentId&&"parent"===e.extent){let n=t.get(e.parentId);n&&(g=Q(g,s,n))}else p&&(g=G(g,p,s));let m={...e,measured:s,internals:{...e.internals,positionAbsolute:g,handleBounds:{source:eP("source",o.nodeElement,f,c,e.id),target:eP("target",o.nodeElement,f,c,e.id)}}};t.set(e.id,m),e.parentId&&eG(m,t,n,{nodeOrigin:r,zIndexMode:a}),l=!0,u&&(d.push({id:e.id,type:"dimensions",dimensions:s}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:er(m,r)}))}}if(h.length>0){let e=eJ(h,t,n,r);d.push(...e)}return{changes:d,updatedInternals:l}}(e,n,o,r,i,a,d);c&&(!function(e,t,n){let o=eK(eY,n);for(let n of e.values())if(n.parentId)eG(n,e,t,o);else{let e=G(Z(n,o.nodeOrigin),ey(n.extent)?n.extent:o.nodeExtent,eb(n));n.internals.positionAbsolute=e}}(n,o,{nodeOrigin:i,nodeExtent:a,zIndexMode:d}),l?(m(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),u?.length>0&&(s&&console.log("React Flow: trigger node changes",u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],o=[],{nodeLookup:r,triggerNodeChanges:i,connection:a,updateConnection:s,onNodesChangeMiddlewareMap:l}=g();for(let[i,l]of e){let e=r.get(i),d=!!(e?.expandParent&&e?.parentId&&l?.position),u={id:i,type:"position",position:d?{x:Math.max(0,l.position.x),y:Math.max(0,l.position.y)}:l.position,dragging:t};if(e&&a.inProgress&&a.fromNode.id===e.id){let t=eF(e,a.fromHandle,p.Left,!0);s({...a,from:t})}d&&e.parentId&&n.push({id:i,parentId:e.parentId,rect:{...l.internals.positionAbsolute,width:l.measured.width??0,height:l.measured.height??0}}),o.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=g(),i=eJ(n,r,e,t);o.push(...i)}for(let e of l.values())o=e(o);i(o)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=g();e?.length&&(r&&n(t0(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=g();e?.length&&(r&&n(t0(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=g();t?r(e.map(e=>t1(e,!0))):(r(t2(o,new Set([...e]),!0)),i(t2(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=g();t?i(e.map(e=>t1(e,!0))):(i(t2(n,new Set([...e]))),r(t2(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:o,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=g(),s=[];for(let t of e||o){if(!t.selected)continue;let e=r.get(t.id);e&&(e.selected=!1),s.push(t1(t.id,!1))}let l=[];for(let e of t||n)e.selected&&l.push(t1(e.id,!1));i(s),a(l)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=g();t?.setScaleExtent([e,n]),f({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=g();t?.setScaleExtent([n,e]),f({maxZoom:e})},setTranslateExtent:e=>{g().panZoom?.setTranslateExtent(e),f({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o,elementsSelectable:r}=g();if(!r)return;let i=t.reduce((e,t)=>t.selected?[...e,t1(t.id,!1)]:e,[]),a=e.reduce((e,t)=>t.selected?[...e,t1(t.id,!1)]:e,[]);n(i),o(a)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:o,nodeOrigin:r,elevateNodesOnSelect:i,nodeExtent:a,zIndexMode:s}=g();(e[0][0]!==a[0][0]||e[0][1]!==a[0][1]||e[1][0]!==a[1][0]||e[1][1]!==a[1][1])&&(eq(t,n,o,{nodeOrigin:r,nodeExtent:e,elevateNodesOnSelect:i,checkEquality:!1,zIndexMode:s}),f({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=g();return e0({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},setCenter:async(e,t,n)=>{let{width:o,height:r,maxZoom:i,panZoom:a}=g();if(!a)return!1;let s=void 0!==n?.zoom?n.zoom:i;return await a.setViewport({x:o/2-e*s,y:r/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{f({connection:{...H}})},updateConnection:e=>{f({connection:e})},reset:()=>f({...ob()})}},g=Object.is,f?tb(f,g):tb})({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:d,minZoom:a,maxZoom:s,fitViewOptions:l,nodeOrigin:u,nodeExtent:c,zIndexMode:h}));return(0,x.jsx)(tS,{value:g,children:(0,x.jsx)(nt,{children:(0,x.jsx)(nS,{children:f})})})}function ow({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s,fitViewOptions:l,minZoom:d,maxZoom:u,nodeOrigin:c,nodeExtent:h,zIndexMode:f}){return(0,y.useContext)(tw)?(0,x.jsx)(x.Fragment,{children:e}):(0,x.jsx)(ov,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:a,fitView:s,initialFitViewOptions:l,initialMinZoom:d,initialMaxZoom:u,nodeOrigin:c,nodeExtent:h,zIndexMode:f,children:e})}let oS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var oN=t7(function({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:a,onNodeClick:s,onEdgeClick:l,onInit:d,onMove:f,onMoveStart:p,onMoveEnd:g,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:N,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:E,onNodeContextMenu:C,onNodeDoubleClick:M,onNodeDragStart:$,onNodeDrag:P,onNodeDragStop:I,onNodesDelete:D,onEdgesDelete:z,onDelete:A,onSelectionChange:R,onSelectionDragStart:O,onSelectionDrag:L,onSelectionDragStop:_,onSelectionContextMenu:H,onSelectionStart:T,onSelectionEnd:V,onBeforeDelete:F,connectionMode:Z,connectionLineType:X=h.Bezier,connectionLineStyle:Y,connectionLineComponent:W,connectionLineContainerStyle:K,deleteKeyCode:U="Backspace",selectionKeyCode:q="Shift",selectionOnDrag:G=!1,selectionMode:Q=c.Full,panActivationKeyCode:J="Space",multiSelectionKeyCode:ee=ex()?"Meta":"Control",zoomActivationKeyCode:et=ex()?"Meta":"Control",snapToGrid:en,snapGrid:eo,onlyRenderVisibleElements:er=!1,selectNodesOnDrag:ei,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,nodeOrigin:eu=tF,edgesFocusable:ec,edgesReconnectable:eh,elementsSelectable:ef=!0,defaultViewport:ep=tZ,minZoom:eg=.5,maxZoom:em=2,translateExtent:ey=B,preventScrolling:eb=!0,nodeExtent:ev,defaultMarkerColor:ew="#b1b1b7",zoomOnScroll:eS=!0,zoomOnPinch:eN=!0,panOnScroll:ek=!1,panOnScrollSpeed:ej=.5,panOnScrollMode:eE=u.Free,zoomOnDoubleClick:eC=!0,panOnDrag:eM=!0,onPaneClick:e$,onPaneMouseEnter:eP,onPaneMouseMove:eI,onPaneMouseLeave:eD,onPaneScroll:ez,onPaneContextMenu:eA,paneClickDistance:eR=1,nodeClickDistance:eO=0,children:eB,onReconnect:eL,onReconnectStart:e_,onReconnectEnd:eH,onEdgeContextMenu:eT,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eY=10,onNodesChange:eW,onEdgesChange:eK,noDragClassName:eU="nodrag",noWheelClassName:eq="nowheel",noPanClassName:eG="nopan",fitView:eQ,fitViewOptions:eJ,connectOnClick:e0,attributionPosition:e1,proOptions:e2,defaultEdgeOptions:e3,elevateNodesOnSelect:e5=!0,elevateEdgesOnSelect:e4=!1,disableKeyboardA11y:e6=!1,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanOnSelection:e9=!0,autoPanSpeed:te,connectionRadius:tt,isValidConnection:tn,onError:to,style:tr,id:ti,nodeDragThreshold:ta,connectionDragThreshold:ts,viewport:tl,onViewportChange:td,width:tu,height:tc,colorMode:th="light",debug:tf,onScroll:tp,ariaLabelConfig:tg,zIndexMode:tm="basic",...tx},ty){let tb=ti||"1",tv=function(e){let[t,n]=(0,y.useState)("system"===e?null:e);return(0,y.useEffect)(()=>{if("system"!==e)return void n(e);let t=tU(),o=()=>n(t?.matches?"dark":"light");return o(),t?.addEventListener("change",o),()=>{t?.removeEventListener("change",o)}},[e]),null!==t?t:tU()?.matches?"dark":"light"}(th),tw=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),tp?.(e)},[tp]);return(0,x.jsx)("div",{"data-testid":"rf__wrapper",...tx,onScroll:tw,style:{...tr,...oS},ref:ty,className:b(["react-flow",r,tv]),id:ti,role:"application",children:(0,x.jsxs)(ow,{nodes:e,edges:t,width:tu,height:tc,fitView:eQ,fitViewOptions:eJ,minZoom:eg,maxZoom:em,nodeOrigin:eu,nodeExtent:ev,zIndexMode:tm,children:[(0,x.jsx)(tK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:N,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,edgesFocusable:ec,edgesReconnectable:eh,elementsSelectable:ef,elevateNodesOnSelect:e5,elevateEdgesOnSelect:e4,minZoom:eg,maxZoom:em,nodeExtent:ev,onNodesChange:eW,onEdgesChange:eK,snapToGrid:en,snapGrid:eo,connectionMode:Z,translateExtent:ey,connectOnClick:e0,defaultEdgeOptions:e3,fitView:eQ,fitViewOptions:eJ,onNodesDelete:D,onEdgesDelete:z,onDelete:A,onNodeDragStart:$,onNodeDrag:P,onNodeDragStop:I,onSelectionDrag:L,onSelectionDragStart:O,onSelectionDragStop:_,onMove:f,onMoveStart:p,onMoveEnd:g,noPanClassName:eG,nodeOrigin:eu,rfId:tb,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanSpeed:te,onError:to,connectionRadius:tt,isValidConnection:tn,selectNodesOnDrag:ei,nodeDragThreshold:ta,connectionDragThreshold:ts,onBeforeDelete:F,debug:tf,ariaLabelConfig:tg,zIndexMode:tm}),(0,x.jsx)(ox,{onInit:d,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:E,onNodeContextMenu:C,onNodeDoubleClick:M,nodeTypes:i,edgeTypes:a,connectionLineType:X,connectionLineStyle:Y,connectionLineComponent:W,connectionLineContainerStyle:K,selectionKeyCode:q,selectionOnDrag:G,selectionMode:Q,deleteKeyCode:U,multiSelectionKeyCode:ee,panActivationKeyCode:J,zoomActivationKeyCode:et,onlyRenderVisibleElements:er,defaultViewport:ep,translateExtent:ey,minZoom:eg,maxZoom:em,preventScrolling:eb,zoomOnScroll:eS,zoomOnPinch:eN,zoomOnDoubleClick:eC,panOnScroll:ek,panOnScrollSpeed:ej,panOnScrollMode:eE,panOnDrag:eM,autoPanOnSelection:e9,onPaneClick:e$,onPaneMouseEnter:eP,onPaneMouseMove:eI,onPaneMouseLeave:eD,onPaneScroll:ez,onPaneContextMenu:eA,paneClickDistance:eR,nodeClickDistance:eO,onSelectionContextMenu:H,onSelectionStart:T,onSelectionEnd:V,onReconnect:eL,onReconnectStart:e_,onReconnectEnd:eH,onEdgeContextMenu:eT,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eY,defaultMarkerColor:ew,noDragClassName:eU,noWheelClassName:eq,noPanClassName:eG,rfId:tb,disableKeyboardA11y:e6,nodeExtent:ev,viewport:tl,onViewportChange:td,nodesDraggable:ea}),(0,x.jsx)(tV,{onSelectionChange:R}),eB,(0,x.jsx)(tO,{proOptions:e2,position:e1}),(0,x.jsx)(tz,{rfId:tb,disableKeyboardA11y:e6})]})})});function ok({dimensions:e,lineWidth:t,variant:n,className:o}){return(0,x.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:b(["react-flow__background-pattern",n,o])})}function oj({radius:e,className:t}){return(0,x.jsx)("circle",{cx:e,cy:e,r:e,className:b(["react-flow__background-pattern","dots",t])})}(l=m||(m={})).Lines="lines",l.Dots="dots",l.Cross="cross";let oE={[m.Dots]:1,[m.Lines]:1,[m.Cross]:6},oC=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function oM({id:e,variant:t=m.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:a,bgColor:s,style:l,className:d,patternClassName:u}){let c=(0,y.useRef)(null),{transform:h,patternId:f}=tk(oC,tv),p=o||oE[t],g=t===m.Dots,v=t===m.Cross,w=Array.isArray(n)?n:[n,n],S=[w[0]*h[2]||1,w[1]*h[2]||1],N=p*h[2],k=Array.isArray(i)?i:[i,i],j=v?[N,N]:S,E=[k[0]*h[2]+j[0]/2,k[1]*h[2]+j[1]/2],C=`${f}${e||""}`;return(0,x.jsxs)("svg",{className:b(["react-flow__background",d]),style:{...l,...na,"--xy-background-color-props":s,"--xy-background-pattern-color-props":a},ref:c,"data-testid":"rf__background",children:[(0,x.jsx)("pattern",{id:C,x:h[0]%S[0],y:h[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${E[0]},-${E[1]})`,children:g?(0,x.jsx)(oj,{radius:N/2,className:u}):(0,x.jsx)(ok,{dimensions:j,lineWidth:r,variant:t,className:u})}),(0,x.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}oM.displayName="Background";let o$=(0,y.memo)(oM);function oP(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,x.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function oI(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,x.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function oD(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,x.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 oz(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,x.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 oA(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,x.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 oR({children:e,className:t,...n}){return(0,x.jsx)("button",{type:"button",className:b(["react-flow__controls-button",t]),...n,children:e})}let oO=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function oB({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:d,children:u,position:c="bottom-left",orientation:h="vertical","aria-label":f}){let p=tj(),{isInteractive:g,minZoomReached:m,maxZoomReached:y,ariaLabelConfig:v}=tk(oO,tv),{zoomIn:w,zoomOut:S,fitView:N}=no();return(0,x.jsxs)(tA,{className:b(["react-flow__controls","horizontal"===h?"horizontal":"vertical",d]),position:c,style:e,"data-testid":"rf__controls","aria-label":f??v["controls.ariaLabel"],children:[t&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(oR,{onClick:()=>{w(),i?.()},className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:y,children:(0,x.jsx)(oP,{})}),(0,x.jsx)(oR,{onClick:()=>{S(),a?.()},className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:m,children:(0,x.jsx)(oI,{})})]}),n&&(0,x.jsx)(oR,{className:"react-flow__controls-fitview",onClick:()=>{N(r),s?.()},title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:(0,x.jsx)(oD,{})}),o&&(0,x.jsx)(oR,{className:"react-flow__controls-interactive",onClick:()=>{p.setState({nodesDraggable:!g,nodesConnectable:!g,elementsSelectable:!g}),l?.(!g)},title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:g?(0,x.jsx)(oA,{}):(0,x.jsx)(oz,{})}),u]})}oB.displayName="Controls";let oL=(0,y.memo)(oB),o_=(0,y.memo)(function({id:e,x:t,y:n,width:o,height:r,style:i,color:a,strokeColor:s,strokeWidth:l,className:d,borderRadius:u,shapeRendering:c,selected:h,onClick:f}){let{background:p,backgroundColor:g}=i||{};return(0,x.jsx)("rect",{className:b(["react-flow__minimap-node",{selected:h},d]),x:t,y:n,rx:u,ry:u,width:o,height:r,style:{fill:a||p||g,stroke:s,strokeWidth:l},shapeRendering:c,onClick:f?t=>f(t,e):void 0})}),oH=e=>e.nodes.map(e=>e.id),oT=e=>e instanceof Function?e:()=>e,oV=(0,y.memo)(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:a,NodeComponent:s,onClick:l}){let{node:d,x:u,y:c,width:h,height:f}=tk(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:i}=n.internals.positionAbsolute,{width:a,height:s}=eb(o);return{node:o,x:r,y:i,width:a,height:s}},tv);return d&&!d.hidden&&ev(d)?(0,x.jsx)(s,{x:u,y:c,width:h,height:f,style:d.style,selected:!!d.selected,className:o(d),color:t(d),borderRadius:r,strokeColor:n(d),strokeWidth:i,shapeRendering:a,onClick:l,id:d.id}):null});var oF=(0,y.memo)(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=o_,onClick:a}){let s=tk(oH,tv),l=oT(t),d=oT(e),u=oT(n),c="u"<typeof window||window.chrome?"crispEdges":"geometricPrecision";return(0,x.jsx)(x.Fragment,{children:s.map(e=>(0,x.jsx)(oV,{id:e,nodeColorFunc:l,nodeStrokeColorFunc:d,nodeClassNameFunc:u,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:a,shapeRendering:c},e))})});let oZ=e=>!e.hidden,oX=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]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?ea(X(e.nodeLookup,{filter:oZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},oY=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,oW=(e,t)=>oY(e.viewBB,t.viewBB)&&oY(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig;function oK({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:a,nodeComponent:s,bgColor:l,maskColor:d,maskStrokeColor:u,maskStrokeWidth:c,position:h="bottom-right",onClick:f,onNodeClick:p,pannable:g=!1,zoomable:m=!1,ariaLabel:v,inversePan:N,zoomStep:k=1,offsetScale:j=5}){let E=tj(),C=(0,y.useRef)(null),{boundingRect:M,panZoom:$,viewBB:P,rfId:I,translateExtent:z,flowWidth:A,flowHeight:R,ariaLabelConfig:O}=tk(oX,oW),B=e?.width??200,L=e?.height??150,_=Math.max(M.width/B,M.height/L),H=_*B,T=_*L,V=j*_,F=M.x-(H-M.width)/2-V,Z=M.y-(T-M.height)/2-V,X=H+2*V,Y=T+2*V,W=`react-flow__minimap-desc-${I}`,K=(0,y.useRef)(0),U=(0,y.useRef)();K.current=_,(0,y.useEffect)(()=>{let e=E.getState().panZoom;if(C.current&&e)return U.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){let r=(0,w.select)(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=1,pannable:l=!0,zoomable:d=!0,inversePan:u=!1}){let c=[0,0],h=(0,D.default)().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(c=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",l?r=>{let s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;let l=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],d=[l[0]-c[0],l[1]-c[1]];c=l;let h=o()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),f={x:s[0]-d[0]*h,y:s[1]-d[1]*h};t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},[[0,0],[i,a]],e)}:null).on("zoom.wheel",d?e=>{if("wheel"!==e.sourceEvent.type||!t)return;let o=n(),r=e.sourceEvent.ctrlKey&&ex()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,a=o[2]*Math.pow(2,i*r);t.scaleTo(a)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:S.pointer}}({domNode:C.current,panZoom:e,getTransform:()=>E.getState().transform,getViewScale:()=>K.current}),()=>{U.current?.destroy()}},[$]),(0,y.useEffect)(()=>{U.current?.update({translateExtent:z,width:A,height:R,inversePan:N,pannable:g,zoomStep:k,zoomable:m})},[g,m,N,k,z,A,R]);let q=f?e=>{let[t,n]=U.current?.pointer(e)||[0,0];f(e,{x:t,y:n})}:void 0,G=(0,y.useCallback)((e,t)=>{let n=E.getState().nodeLookup.get(t).internals.userNode;p?.(e,n)},[p]),Q=v??O["minimap.ariaLabel"];return(0,x.jsx)(tA,{position:h,style:{...e,"--xy-minimap-background-color-props":"string"==typeof l?l:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof u?u:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof c?c*_: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 a?a:void 0},className:b(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,x.jsxs)("svg",{width:B,height:L,viewBox:`${F} ${Z} ${X} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":W,ref:C,onClick:q,children:[Q&&(0,x.jsx)("title",{id:W,children:Q}),(0,x.jsx)(oF,{onClick:p?G:void 0,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:s}),(0,x.jsx)("path",{className:"react-flow__minimap-mask",d:`M${F-V},${Z-V}h${X+2*V}v${Y+2*V}h${-X-2*V}z
2
- M${P.x},${P.y}h${P.width}v${P.height}h${-P.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}oK.displayName="MiniMap",(0,y.memo)(oK);let oU={[g.Line]:"right",[g.Handle]:"bottom-right"};(0,y.memo)(function({nodeId:e,position:t,variant:n=g.Handle,className:o,style:r,children:i,color:a,minWidth:s=10,minHeight:l=10,maxWidth:d=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:h,autoScale:f=!0,shouldResize:p,onResizeStart:m,onResize:v,onResizeEnd:S}){let N,k=nb(),j="string"==typeof e?e:k,E=tj(),C=(0,y.useRef)(null),M=n===g.Handle,$=tk((0,y.useCallback)((N=M&&f,e=>N?`${Math.max(1/e.transform[2],1)}`:void 0),[M,f]),tv),P=(0,y.useRef)(null),D=t??oU[n];(0,y.useEffect)(()=>{if(C.current&&j)return P.current||(P.current=function({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){let i=(0,w.select)(e),a={controlDirection:ts("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:e,boundaries:s,keepAspectRatio:l,resizeDirection:d,onResizeStart:u,onResize:c,onResizeEnd:h,shouldResize:f}){let p,g,m,x,y={...tc},b={...th};a={boundaries:s,resizeDirection:d,keepAspectRatio:l,controlDirection:ts(e)};let v=null,w=[],S=I().on("start",e=>{let{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s,paneDomNode:l}=n();if(!(p=o.get(t)))return;v=l?.getBoundingClientRect()??null;let{xSnapped:d,ySnapped:c}=ek(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:v});for(let[e,n]of(b={...y={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},pointerX:d,pointerY:c,aspectRatio:y.width/y.height},g=void 0,m=ey(p.extent)?p.extent:void 0,p.parentId&&("parent"===p.extent||p.expandParent)&&(g=o.get(p.parentId)),g&&"parent"===p.extent&&(m=[[0,0],[g.measured.width,g.measured.height]]),w=[],x=void 0,o))if(n.parentId===t&&(w.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){let e=function(e,t,n){let o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,s=n[0]*i,l=n[1]*a;return[[o-s,r-l],[o+i-s,r+a-l]]}(n,p,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...y})}).on("drag",e=>{let{transform:t,snapGrid:r,snapToGrid:i,nodeOrigin:s}=n(),l=ek(e.sourceEvent,{transform:t,snapGrid:r,snapToGrid:i,containerBounds:v}),d=[];if(!p)return;let{x:u,y:h,width:S,height:N}=y,k={},j=p.origin??s,{width:E,height:C,x:M,y:$}=function(e,t,n,o,r,i,a,s){var l,d,u,c;let{affectsX:h,affectsY:f}=t,{isHorizontal:p,isVertical:g}=t,m=p&&g,{xSnapped:x,ySnapped:y}=n,{minWidth:b,maxWidth:v,minHeight:w,maxHeight:S}=o,{x:N,y:k,width:j,height:E,aspectRatio:C}=e,M=Math.floor(p?x-e.pointerX:0),$=Math.floor(g?y-e.pointerY:0),P=j+(h?-M:M),I=E+(f?-$:$),D=-i[0]*j,z=-i[1]*E,A=tu(P,b,v),R=tu(I,w,S);if(a){let e=0,t=0;h&&M<0?e=tl(N+M+D,a[0][0]):!h&&M>0&&(e=td(N+P+D,a[1][0])),f&&$<0?t=tl(k+$+z,a[0][1]):!f&&$>0&&(t=td(k+I+z,a[1][1])),A=Math.max(A,e),R=Math.max(R,t)}if(s){let e=0,t=0;h&&M>0?e=td(N+M,s[0][0]):!h&&M<0&&(e=tl(N+P,s[1][0])),f&&$>0?t=td(k+$,s[0][1]):!f&&$<0&&(t=tl(k+I,s[1][1])),A=Math.max(A,e),R=Math.max(R,t)}if(r){if(p){(A=Math.max(A,tu(P/C,w,S)*C),a)&&(A=Math.max(A,(h||f)&&(!h||f||!m)?tl(k+z+(h?M:-M)/C,a[0][1])*C:td(k+z+P/C,a[1][1])*C));s&&(A=Math.max(A,(h||f)&&(!h||f||!m)?td(k+(h?M:-M)/C,s[0][1])*C:tl(k+P/C,s[1][1])*C))}if(g){(R=Math.max(R,tu(I*C,b,v)/C),a)&&(R=Math.max(R,(h||f)&&(!f||h||!m)?tl(N+(f?$:-$)*C+D,a[0][0])/C:td(N+I*C+D,a[1][0])/C));s&&(R=Math.max(R,(h||f)&&(!f||h||!m)?td(N+(f?$:-$)*C,s[0][0])/C:tl(N+I*C,s[1][0])/C))}}$+=$<0?R:-R,M+=M<0?A:-A,r&&(m?P>I*C?$=((l=h,d=f,l?!d:d)?-M:M)/C:M=((u=h,c=f,u?!c:c)?-$:$)*C:p?($=M/C,f=h):(M=$*C,h=f));let O=h?N+M:N,B=f?k+$:k;return{width:j+(h?-M:M),height:E+(f?-$:$),x:i[0]*M*(h?-1:1)+O,y:i[1]*$*(f?-1:1)+B}}(b,a.controlDirection,l,a.boundaries,a.keepAspectRatio,j,m,x),P=E!==S,I=C!==N,D=M!==u&&P,z=$!==h&&I;if(!D&&!z&&!P&&!I)return;let A={prevValues:{...y},startX:b.x,startY:b.y,childNodes:w.map(e=>({...e,position:{...e.position}}))};if((D||z||1===j[0]||1===j[1])&&(k.x=D?M:y.x,k.y=z?$:y.y,y.x=k.x,y.y=k.y,w.length>0)){let e=M-u,t=$-h;for(let n of w)n.position={x:n.position.x-e+j[0]*(E-S),y:n.position.y-t+j[1]*(C-N)},d.push(n)}if((P||I)&&(k.width=P&&(!a.resizeDirection||"horizontal"===a.resizeDirection)?E:y.width,k.height=I&&(!a.resizeDirection||"vertical"===a.resizeDirection)?C:y.height,y.width=k.width,y.height=k.height),g&&p.expandParent){let e=j[0]*(k.width??0);k.x&&k.x<e&&(y.x=e,b.x=b.x-(k.x-e));let t=j[1]*(k.height??0);k.y&&k.y<t&&(y.y=t,b.y=b.y-(k.y-t))}let R=function({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){let a=e-t,s=n-o,l=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(l[0]=-1*l[0]),s&&i&&(l[1]=-1*l[1]),l}({width:y.width,prevWidth:S,height:y.height,prevHeight:N,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),O={...y,direction:R};if(!1===f?.(e,O)){y=A.prevValues,b.x=A.startX,b.y=A.startY,w.forEach((e,t)=>{e.position=A.childNodes[t].position});return}c?.(e,O),o(k,d)}).on("end",e=>{h?.(e,{...y}),r?.({...y})});i.call(S)},destroy:function(){i.on(".drag",null)}}}({domNode:C.current,nodeId:j,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,domNode:i}=E.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,paneDomNode:i}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=E.getState(),a=[],s={x:e.x,y:e.y},l=o.get(j);if(l&&l.expandParent&&l.parentId){let t=l.origin??i,n=e.width??l.measured.width??0,d=e.height??l.measured.height??0,u=eJ([{id:l.id,parentId:l.parentId,rect:{width:n,height:d,...ew({x:e.x??l.position.x,y:e.y??l.position.y},{width:n,height:d},l.parentId,o,t)}}],o,r,i);a.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*d,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){let e={id:j,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){let t={id:j,type:"dimensions",resizing:!0,setAttributes:!h||("horizontal"===h?"width":"height"),dimensions:{width:e.width,height:e.height}};a.push(t)}for(let e of t){let t={...e,type:"position"};a.push(t)}n(a)},onEnd:({width:e,height:t})=>{E.getState().triggerNodeChanges([{id:j,type:"dimensions",resizing:!1,dimensions:{width:e,height:t}}])}})),P.current.update({controlPosition:D,boundaries:{minWidth:s,minHeight:l,maxWidth:d,maxHeight:u},keepAspectRatio:c,resizeDirection:h,onResizeStart:m,onResize:v,onResizeEnd:S,shouldResize:p}),()=>{P.current?.destroy()}},[D,s,l,d,u,c,m,v,S,p]);let z=D.split("-");return(0,x.jsx)("div",{className:b(["react-flow__resize-control","nodrag",...z,n,o]),ref:C,style:{...r,scale:$,...a&&{[M?"backgroundColor":"borderColor"]:a}},children:i})});var oq=e.i(496385),oG=e.i(479432),oQ=e.i(155515),oJ=e.i(885600),o0=e.i(910172),o1=e.i(763371),o2=e.i(635743),o3=e.i(519455);function o5(e=new Date){let t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}function o4(e,t,n){let o;return e?"done"===t?"done":e<n?"overdue":7>=Math.round(((o=e=>Date.UTC(+e.slice(0,4),e.slice(5,7)-1,+e.slice(8,10)))(e)-o(n))/864e5)?"soon":"ok":null}function o6(e){return e.every(e=>"done"===e)?"done":e.some(e=>"other"!==e)?"in-progress":"planned"}var o7=e.i(975157),o8=e.i(956555),o9=e.i(837001);function re(e){let t=new Set(e.filter(e=>null===e.parent).map(e=>e.id));return e.filter(e=>null===e.parent||!t.has(e.parent)).sort((e,t)=>e.order-t.order)}function rt(e,t){return e.filter(e=>e.parent===t).sort((e,t)=>e.order-t.order)}function rn(e,t){let n={},o=0;for(let r of re(e)){let i=t[r.id]??{x:0,y:o};n[r.id]=i;let a=null===r.parent?rt(e,r.id):[],s=Math.ceil(a.length/2)>6?2:1;a.forEach((e,o)=>{let r=o%2==0?1:-1,a=Math.floor(o/2),l=a%s,d=Math.floor(a/s);n[e.id]=t[e.id]??{x:i.x+20+r*(340+260*l),y:i.y+110*d+55*l}}),o+=110*Math.max(1,Math.ceil(Math.ceil(a.length/2)/s))+90}return n}let ro=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rr=e=>({y:+e.slice(0,4),m:+e.slice(5,7),day:+e.slice(8,10)});function ri(e){let{m:t,day:n}=rr(e);return`${n} ${ro[t-1]}`}let ra=[p.Top,p.Right,p.Bottom,p.Left];function rs(){return(0,x.jsxs)(x.Fragment,{children:[ra.map(e=>(0,x.jsx)(nk,{id:e,type:"source",position:e,isConnectable:!1,className:"opacity-0"},e)),ra.map(e=>(0,x.jsx)(nk,{id:`${e}-t`,type:"target",position:e,isConnectable:!1,className:"opacity-0"},`${e}-t`))]})}function rl({status:e,className:t}){return(0,x.jsx)("span",{title:e,className:(0,o7.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full border-2","done"===e&&"border-teal bg-teal text-bg","in-progress"===e&&"border-accent bg-[linear-gradient(90deg,var(--color-accent)_50%,var(--color-surface)_50%)]","planned"===e&&"border-muted bg-surface",t),children:"done"===e&&(0,x.jsx)(o9.Check,{className:"h-3 w-3",strokeWidth:3})})}function rd({progress:e}){if(!e)return null;let t=Math.round(e.done/e.total*100);return(0,x.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5",title:`${e.done}/${e.total} done`,children:[(0,x.jsx)("div",{className:"h-1 flex-1 overflow-hidden rounded-full bg-border",children:(0,x.jsx)("div",{className:"h-full rounded-full bg-teal",style:{width:`${t}%`}})}),(0,x.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[e.done,"/",e.total]})]})}function ru({due:e,state:t}){return e?(0,x.jsxs)("p",{className:(0,o7.cn)("mt-0.5 font-mono text-[10px]","overdue"===t?"text-danger":"soon"===t?"text-amber":"text-muted"),children:["Due ",ri(e)]}):null}function rc({summary:e,soon:t}){return e?e.overdue>0?(0,x.jsxs)("p",{className:"mt-0.5 font-mono text-[10px] text-danger",children:[e.overdue," ",1===e.overdue?"task":"tasks"," overdue"]}):e.next?(0,x.jsxs)("p",{className:(0,o7.cn)("mt-0.5 font-mono text-[10px]",t?"text-amber":"text-muted"),children:["Next task due ",ri(e.next)]}):null:null}function rh({drift:e}){return e?.length?(0,x.jsx)("span",{title:e.join("\n"),className:"absolute -left-2.5 -top-2.5 rounded-full bg-bg p-0.5 text-amber",children:(0,x.jsx)(oq.AlertTriangle,{className:"h-4 w-4"})}):null}let rf={horizon:function({data:e,selected:t}){return(0,x.jsxs)("div",{style:{width:260},className:(0,o7.cn)("relative rounded-lg border-2 border-accent bg-accent/15 px-4 py-3 text-center",t&&"ring-2 ring-accent/50 ring-offset-2 ring-offset-bg"),children:[(0,x.jsx)(rs,{}),(0,x.jsx)("p",{className:"text-base font-semibold text-txt leading-snug",children:e.item.title}),(0,x.jsx)(ru,{due:e.item.due,state:e.dueState}),(0,x.jsx)(rd,{progress:e.progress}),(0,x.jsx)(rh,{drift:e.drift}),(0,x.jsx)(rl,{status:e.item.status,className:"absolute -right-2.5 -top-2.5"})]})},feature:function({data:e,selected:t}){let{item:n}=e;return(0,x.jsxs)("div",{style:{width:220},className:(0,o7.cn)("relative rounded-md border-2 border-border2 bg-surface px-3 py-2 text-center",t&&"border-accent"),children:[(0,x.jsx)(rs,{}),(0,x.jsx)("p",{className:"line-clamp-2 text-sm text-txt leading-snug",title:n.title,children:n.title}),(0,x.jsx)(ru,{due:n.due,state:e.dueState}),(0,x.jsx)(rc,{summary:e.taskDue,soon:e.taskDueSoon}),n.tasks.length>0&&(0,x.jsx)("div",{className:"mt-1 flex flex-wrap justify-center gap-1",children:n.tasks.map(e=>(0,x.jsx)("span",{className:"rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:e},e))}),(0,x.jsx)(rd,{progress:e.progress}),(0,x.jsx)(rh,{drift:e.drift}),(0,x.jsx)(rl,{status:n.status,className:"absolute -right-2.5 -top-2.5"})]})}};function rp({items:e,today:t,onSelect:n}){let o=(0,y.useMemo)(()=>{let n,o,r,i,a,s,l,d;return o=rr([t,...n=e.map(e=>e.due).filter(e=>!!e)].sort()[0]),r=rr([t,...n].sort().at(-1)??t),i={y:o.y,m:o.m-1},s=Array.from({length:a=Math.max(6,(r.y-o.y)*12+(r.m-o.m)+3)},(e,t)=>{let n=12*i.y+(i.m-1)+t,o=Math.floor(n/12),r=n%12+1;return{y:o,m:r,label:1===r||0===t?`${ro[r-1]} ${o}`:ro[r-1],x:160*t}}),l=e=>{let{y:t,m:n,day:o}=rr(e);return((t-s[0].y)*12+(n-s[0].m))*160+(o-.5)/new Date(t,n,0).getDate()*160},d=re(e).map(n=>{let o=[n,...null===n.parent?rt(e,n.id):[]].filter(e=>e.due),r=[],i=o.map(e=>({item:e,x:l(e.due),horizon:e.id===n.id})).sort((e,t)=>e.x-t.x).map(e=>{let n=r.findIndex(t=>e.x>=t);return -1===n&&(n=r.push(0)-1),r[n]=e.x+180,{...e,row:n,state:o4(e.item.due,e.item.status,t)}});return{item:n,rows:Math.max(1,r.length),markers:i}}),{months:s.map(({label:e,x:t})=>({label:e,x:t})),width:160*a,todayX:l(t),lanes:d,undated:e.filter(e=>!e.due&&"done"!==e.status)}},[e,t]),r=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=r.current;e&&(e.scrollLeft=Math.max(0,o.todayX-(e.clientWidth-200)/3))},[o.todayX]);let i=o.lanes.some(e=>e.markers.length>0);return(0,x.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",children:[(0,x.jsx)("div",{ref:r,className:"relative flex-1 min-h-0 overflow-auto",children:(0,x.jsxs)("div",{className:"relative",style:{width:200+o.width,minHeight:"100%"},children:[(0,x.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:o.width},children:[o.months.map(e=>(0,x.jsx)("div",{className:"absolute inset-y-0 border-l border-border",style:{left:e.x}},e.x)),(0,x.jsx)("div",{className:"absolute inset-y-0 w-0.5 bg-accent",style:{left:o.todayX},children:(0,x.jsx)("span",{className:"absolute left-1 rounded-sm bg-accent px-1 font-mono text-[10px] text-white",style:{top:40},children:"Today"})})]}),(0,x.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-bg",style:{height:36},children:[(0,x.jsx)("div",{className:"sticky left-0 z-10 shrink-0 bg-bg",style:{width:200}}),(0,x.jsx)("div",{className:"relative",children:o.months.map(e=>(0,x.jsx)("span",{className:"absolute top-2.5 whitespace-nowrap pl-2 font-mono text-xs text-muted",style:{left:e.x},children:e.label},e.x))})]}),o.lanes.map(e=>(0,x.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,x.jsxs)("button",{type:"button",onClick:()=>n(e.item.id),className:"sticky left-0 z-10 flex shrink-0 items-center gap-2 border-r border-border bg-surface px-3 text-left hover:bg-surface2",style:{width:200},children:[(0,x.jsx)(rl,{status:e.item.status}),(0,x.jsx)("span",{className:"text-sm font-semibold text-txt leading-snug",children:e.item.title})]}),(0,x.jsx)("div",{className:"relative",style:{width:o.width,height:44*e.rows+12},children:e.markers.map(e=>(0,x.jsxs)("button",{type:"button",onClick:()=>n(e.item.id),title:`${e.item.id} \xb7 ${e.item.title} \xb7 due ${e.item.due}${"overdue"===e.state?" (overdue)":""}`,className:"group absolute flex items-center gap-1.5",style:{left:e.x-10,top:6+44*e.row},children:[e.horizon?(0,x.jsx)("span",{className:(0,o7.cn)("h-4 w-4 rotate-45 border-2 border-accent","done"===e.item.status?"bg-accent":"bg-bg","overdue"===e.state&&"border-danger")}):(0,x.jsx)("span",{className:(0,o7.cn)("rounded-full","overdue"===e.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,x.jsx)(rl,{status:e.item.status})}),(0,x.jsxs)("span",{className:"flex max-w-[150px] flex-col text-left",children:[(0,x.jsx)("span",{className:(0,o7.cn)("truncate text-xs text-txt group-hover:text-accent",e.horizon&&"font-semibold"),children:e.item.title}),(0,x.jsx)("span",{className:(0,o7.cn)("font-mono text-[10px]","overdue"===e.state?"text-danger":"soon"===e.state?"text-amber":"text-muted"),children:ri(e.item.due)})]})]},e.item.id))})]},e.item.id)),!i&&(0,x.jsx)("p",{className:"px-6 py-8 text-sm text-muted",style:{marginLeft:200},children:"No due dates yet — open an item and set a Due date."})]})}),o.undated.length>0&&(0,x.jsxs)("div",{className:"max-h-28 shrink-0 overflow-y-auto border-t border-border bg-surface px-4 py-2",children:[(0,x.jsxs)("p",{className:"mb-1.5 text-xs text-muted",children:["No due date (",o.undated.length,")"]}),(0,x.jsx)("div",{className:"flex flex-wrap gap-1.5",children:o.undated.map(e=>(0,x.jsxs)("button",{type:"button",onClick:()=>n(e.id),className:"flex items-center gap-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-muted hover:border-accent hover:text-txt",children:[(0,x.jsx)(rl,{status:e.status,className:"h-3 w-3 border"}),e.title]},e.id))})]})]})}var rg=e.i(980376),rm=e.i(793479);let rx=e=>"done"===e||"cancelled"===e;var ry=e.i(34086);let rb=["planned","in-progress","done"],rv="w-full rounded-md border border-border bg-bg px-3 py-2 text-sm text-txt focus:outline-hidden focus:ring-1 focus:ring-accent disabled:opacity-50",rw="text-xs font-medium text-muted";function rS({item:e,onClose:t,...n}){return(0,x.jsx)(rg.Sheet,{open:!!e,onOpenChange:e=>{e||t()},children:(0,x.jsx)(rg.SheetContent,{className:"w-[440px] sm:max-w-[440px] bg-surface border-border text-txt flex flex-col overflow-y-auto",children:e&&(0,x.jsx)(rN,{item:e,onClose:t,...n},e.id)})})}function rN({item:e,items:t,onClose:n,onSave:o,onDelete:r,onAddFeature:i,onEditRaw:a,tasksById:s,progress:l}){let[d]=(0,y.useState)(e),[u,c]=(0,y.useState)(e.title),[h,f]=(0,y.useState)(e.status),[p,g]=(0,y.useState)(e.parent??""),[m,b]=(0,y.useState)(String(e.order)),[v,w]=(0,y.useState)(e.tasks.join(", ")),[S,N]=(0,y.useState)(e.due??""),[k,j]=(0,y.useState)(e.body),[E,C]=(0,y.useState)(null),[M,$]=(0,y.useState)(!1),P=t.some(t=>t.parent===e.id),I=t.filter(t=>null===t.parent&&t.id!==e.id),D=null===e.parent,z=null!==e.parent&&!I.some(t=>t.id===e.parent);async function A(e){$(!0),C(null);let t=await e();return $(!1),t&&C(t),!t}async function R(){let t={},r=u.trim()||d.title;if(r!==d.title&&(t.title=r),h!==d.status&&(t.status=h),(p||null)!==d.parent&&(t.parent=p||null),m.trim()!==String(d.order)){let e=Number(m);if(""===m.trim()||!Number.isFinite(e))return void C("Order must be a number");t.order=e}let i=v.split(",").map(e=>e.trim()).filter(Boolean);(i.join(",")!==d.tasks.join(",")&&(t.tasks=i),(S||null)!==d.due&&(t.due=S||null),k!==d.body&&(t.body=k),0===Object.keys(t).length)?n():await A(()=>o(e.id,t))&&n()}async function O(){window.confirm(`Delete ${e.id}: ${e.title}?`)&&await A(()=>r(e.id))&&n()}return(0,x.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,x.jsxs)("div",{className:"pr-6",children:[(0,x.jsx)(rg.SheetTitle,{className:"text-base text-txt",children:e.title}),(0,x.jsxs)(rg.SheetDescription,{className:"font-mono text-xs text-muted",children:[e.id," · ",D?"horizon":"feature"]})]}),!D&&e.tasks.length>0&&(0,x.jsx)(rk,{item:e,tasksById:s,progress:l,onOpen:a}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Title"}),(0,x.jsx)(rm.Input,{value:u,onChange:e=>c(e.target.value),className:"bg-bg border-border text-txt"})]}),(0,x.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Status"}),(0,x.jsx)("select",{value:h,onChange:e=>f(e.target.value),className:rv,children:rb.map(e=>(0,x.jsx)("option",{value:e,children:e},e))})]}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Parent"}),(0,x.jsxs)("select",{value:p,onChange:e=>g(e.target.value),disabled:P,title:P?"Items with children must stay on the spine":void 0,className:rv,children:[(0,x.jsx)("option",{value:"",children:"— (horizon)"}),z&&(0,x.jsxs)("option",{value:e.parent??"",children:[e.parent," · missing"]}),I.map(e=>(0,x.jsxs)("option",{value:e.id,children:[e.id," · ",e.title]},e.id))]})]}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Order"}),(0,x.jsx)(rm.Input,{type:"number",step:10,value:m,onChange:e=>b(e.target.value),title:D?"Position on the spine":"Position within the branch",className:"bg-bg border-border text-txt"})]})]}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Due"}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(rm.Input,{type:"date",value:S,onChange:e=>N(e.target.value),className:"bg-bg border-border text-txt scheme-light dark:scheme-dark"}),S&&(0,x.jsx)("button",{type:"button",onClick:()=>N(""),className:"text-xs text-muted hover:text-txt",children:"Clear"})]})]}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Tasks"}),(0,x.jsx)(rm.Input,{value:v,onChange:e=>w(e.target.value),placeholder:"T001, T012",className:"bg-bg border-border text-txt font-mono"})]}),(0,x.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,x.jsx)("span",{className:rw,children:"Body (markdown)"}),(0,x.jsx)("textarea",{value:k,onChange:e=>j(e.target.value),rows:10,className:`${rv} font-mono resize-y`})]}),E&&(0,x.jsx)("p",{className:"text-xs text-danger",children:E}),(0,x.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,x.jsx)(o3.Button,{size:"sm",onClick:R,disabled:M,className:"bg-accent text-white hover:bg-accent/90",children:"Save"}),D&&(0,x.jsx)(o3.Button,{size:"sm",variant:"ghost",onClick:()=>i(e.id),disabled:M,className:"text-txt",children:"Add feature"}),!D&&0===e.tasks.length&&(0,x.jsx)(o3.Button,{size:"sm",variant:"ghost",onClick:()=>{n(),(0,o8.askAgent)(`Break down epic ${e.id} into tasks.`)},disabled:M,className:"text-txt",children:"Break down with agent"}),(0,x.jsx)(o3.Button,{size:"sm",variant:"ghost",onClick:()=>a(e.file),disabled:M,className:"text-txt",children:"Edit raw"}),(0,x.jsx)(o3.Button,{size:"sm",variant:"ghost",onClick:O,disabled:M,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function rk({item:e,tasksById:t,progress:n,onOpen:o}){let r=o5(),i=function(e,t){let n=new Map(t.map(e=>[e.id,e])),o=e.tasks.map(e=>n.get(e)).filter(e=>!!e),r=e=>[...new Set((e.dependsOn.match(/\bT\d+\b/gi)??[]).map(e=>e.toUpperCase()))].filter(e=>{let t=n.get(e);return!t||!rx(t.status)});for(let e of o)if("todo"===e.status&&!r(e).length)return{kind:"ready",taskId:e.id};if(o.every(e=>rx(e.status)))return{kind:"finished"};let i=new Set(e.tasks),a=new Map,s=e=>{if(a.has(e))return a.get(e)??!1;a.set(e,!1);let t=n.get(e),o=!!t&&"blocked"!==t.status&&("todo"!==t.status||i.has(e)&&r(t).every(s));return a.set(e,o),o},l=[];for(let t of e.tasks){let e=n.get(t);if(e){if("in-progress"===e.status)l.push({taskId:t,reason:`${t} is in progress (claimed)`});else if("blocked"===e.status)l.push({taskId:t,reason:`${t} is blocked`});else if("todo"===e.status){let o=r(e).map(e=>`${e} (${n.get(e)?.status??"missing"})`);l.push({taskId:t,reason:`${t} waits on ${o.join(", ")}`})}}else l.push({taskId:t,reason:`${t} has no task file`})}return{kind:"waiting",waiting:l,needsHuman:l.every(e=>!s(e.taskId))}}(e,Object.values(t)),a="ready"===i.kind?i.taskId:null,s="waiting"===i.kind?[...i.waiting].sort((e,n)=>Number(t[n.taskId]?.status==="todo")-Number(t[e.taskId]?.status==="todo")).map(e=>e.reason):[];return(0,x.jsxs)("section",{className:"flex flex-col gap-2 rounded-md border border-border p-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsx)("span",{className:rw,children:"Tasks"}),(0,x.jsx)(ru,{due:e.due,state:o4(e.due,e.status,r)})]}),(0,x.jsx)(rd,{progress:n}),(0,x.jsx)("ul",{className:"flex flex-col",children:e.tasks.map(e=>{let n=t[e];return n?(0,x.jsx)("li",{children:(0,x.jsxs)("button",{type:"button",onClick:()=>o(n.file),className:"flex w-full items-center gap-2 rounded-sm px-1 py-1.5 text-left hover:bg-bg",children:[(0,x.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted",children:n.id}),(0,x.jsx)("span",{className:(0,o7.cn)("min-w-0 flex-1 truncate text-sm","cancelled"===n.status?"text-muted line-through":"text-txt"),children:n.title}),n.size&&"—"!==n.size&&(0,x.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:n.size.split(" ")[0]}),(0,x.jsx)(ru,{due:n.due,state:o4(n.due,"done"===n.status?"done":"planned",r)}),n.id===a&&(0,x.jsx)("span",{className:"shrink-0 rounded-sm border border-accent/40 px-1.5 text-[10px] text-accent",children:"Next up"}),(0,x.jsx)("span",{className:(0,o7.cn)("shrink-0 rounded-sm border px-1.5 text-[10px]",ry.STATUS_BADGE_COLORS[n.status]),children:n.status})]})},e):(0,x.jsxs)("li",{className:"py-1.5 font-mono text-xs text-danger",children:[e," · missing task file"]},e)})}),s.length>0&&(0,x.jsxs)("p",{className:"truncate text-xs text-muted",title:s.join("\n"),children:[s[0],s.length>1&&` (+${s.length-1} more)`]})]})}var rj=e.i(776639);function rE({open:e,heading:t,onOpenChange:n,onSubmit:o}){let[r,i]=(0,y.useState)(""),[a,s]=(0,y.useState)(null),[l,d]=(0,y.useState)(!1);function u(e){e||(i(""),s(null)),n(e)}async function c(e){if(e.preventDefault(),!r.trim())return;d(!0);let t=await o(r.trim());d(!1),t?s(t):u(!1)}return(0,x.jsx)(rj.Dialog,{open:e,onOpenChange:u,children:(0,x.jsxs)(rj.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,x.jsx)(rj.DialogTitle,{className:"text-sm font-semibold text-txt",children:t}),(0,x.jsxs)("form",{onSubmit:c,className:"flex flex-col gap-3",children:[(0,x.jsx)(rm.Input,{autoFocus:!0,value:r,onChange:e=>i(e.target.value),placeholder:"Title",className:"bg-bg border-border text-txt"}),a&&(0,x.jsx)("p",{className:"text-xs text-danger",children:a}),(0,x.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,x.jsx)(o3.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>u(!1),children:"Cancel"}),(0,x.jsx)(o3.Button,{type:"submit",size:"sm",disabled:l||!r.trim(),className:"bg-accent text-white hover:bg-accent/90",children:"Create"})]})]})]})})}async function rC(e,t){try{let n=await fetch(e,void 0===t?void 0:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),o=await n.json().catch(()=>null);if(!n.ok)return{error:o?.error??`Request failed (${n.status})`};return{data:o}}catch{return{error:"Could not reach the server"}}}function rM(e,t,n,o){var r;let i,a,s,l,d,[u,c]=(r=!o,a=(i=e=>({x:e.position.x+(e.measured?.width??("horizon"===e.type?260:220))/2,y:e.position.y+(e.measured?.height??48)/2}))(t),l=(s=i(n)).x-a.x,d=s.y-a.y,r||Math.abs(l)>Math.abs(d)?l>0?[p.Right,p.Left]:[p.Left,p.Right]:d>0?[p.Bottom,p.Top]:[p.Top,p.Bottom]);return{id:e,source:t.id,target:n.id,sourceHandle:u,targetHandle:`${c}-t`,type:o?"straight":"default",selectable:!1,style:o?{stroke:"var(--color-accent)",strokeWidth:4}:{stroke:"var(--color-accent)",strokeWidth:2,strokeDasharray:"2 6",strokeLinecap:"round",opacity:.7}}}function r$(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()}let rP={"--xy-background-color":"var(--color-bg)"};function rI(){let{rootParam:e,openDoc:t,board:n}=(0,o1.useApp)(),o=(0,o0.useRouter)(),r=(0,o0.useSearchParams)(),i="timeline"===r.get("view")?"timeline":"map",a=o5(),[s,l]=(0,y.useState)([]),[d,u]=(0,y.useState)({}),[c,h]=(0,y.useState)([]),[f,p]=(0,y.useState)(!0),[g,b]=(0,y.useState)(null),[v,w]=(0,y.useState)(null),[S,N]=(0,y.useState)(null),[k,j]=(0,y.useState)(!1),[E,C]=(0,y.useState)(null),M=(0,y.useRef)(!1),$=(0,y.useRef)(null),P=(0,y.useCallback)(e=>{let t=$.current?.clientWidth??0,n=e.getNodesBounds(e.getNodes());if(!t||!n.width)return;let o=Math.min(1,Math.max(.75,(t-80)/n.width));e.setViewport({x:t/2-(n.x+n.width/2)*o,y:40-n.y*o,zoom:o})},[]),I=(0,y.useRef)(!1),D=(0,y.useRef)(0),z=(0,y.useSyncExternalStore)(r$,()=>document.documentElement.classList.contains("dark"),()=>!0),A=(0,y.useCallback)((e,t)=>{l(e),u(t),h(n=>{let o,r;return o=rn(e,t),r=new Map(n.map(e=>[e.id,e])),e.map(e=>{let t=r.get(e.id);return{id:e.id,type:null===e.parent?"horizon":"feature",position:o[e.id]??{x:0,y:0},data:{item:e},measured:t?.measured,selected:t?.selected}})})},[]),R=(0,y.useCallback)(()=>{let t=++D.current;return rC(`/api/roadmap${e}`).then(({data:e,error:n})=>{if(t===D.current){if(p(!1),n){b(n),A([],{}),w(null);return}b(null),N(e?.generateSource??null),A(e?.items??[],e?.layout??{})}})},[e,A]);(0,y.useEffect)(()=>{R()},[R]),(0,y.useEffect)(()=>{let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);if("roadmap_updated"!==t.type)return;M.current?I.current=!0:R()}catch{}},()=>e.close()},[R]);let O=(0,y.useMemo)(()=>{let e=new Map(c.map(e=>[e.id,e])),t=[],n=s.filter(e=>null===e.parent).sort((e,t)=>e.order-t.order);for(let o of(n.forEach((o,r)=>{let i=e.get(o.id),a=n[r+1]&&e.get(n[r+1].id);i&&a&&t.push(rM(`spine-${o.id}`,i,a,!0))}),s)){let n=o.parent&&e.get(o.parent),r=e.get(o.id);n&&r&&"horizon"===n.type&&t.push(rM(`branch-${o.id}`,n,r,!1))}return t},[s,c]),B=(0,y.useMemo)(()=>Object.fromEntries(Object.values(n??{}).flat().map(e=>[e.id,e])),[n]),L=(0,y.useMemo)(()=>(function(e,t,n){let o={},r=[];for(let t of e)t.due&&"overdue"===o4(t.due,t.status,n)&&r.push({id:t.id,kind:"overdue",message:`${t.id} "${t.title}" is overdue since ${t.due}`});let i=new Set(e.filter(e=>null===e.parent).map(e=>e.id));for(let i of e){if(null===i.parent)continue;let e=i.tasks.filter(e=>!(e in t));e.length&&r.push({id:i.id,kind:"missing-task",message:`${i.id} links unknown task ${e.join(", ")}`});let a=i.tasks.filter(e=>e in t&&"cancelled"!==t[e].status),s="done"===i.status?[]:function(e,t,n,o){let r=[];for(let e of t){let t=n[e];"done"!==t.status&&t.due&&t.due<o&&r.push(`${e} overdue since ${t.due}`),"blocked"===t.status&&r.push(`${e} blocked`)}let i=t.some(e=>"done"===n[e].status||"in-progress"===n[e].status);return e.due&&"soon"===o4(e.due,e.status,o)&&!i&&r.push(`due ${e.due}, nothing started`),r}(i,a,t,n);if(s.length&&r.push({id:i.id,kind:"at-risk",message:`${i.id} "${i.title}" at risk: ${s.join("; ")}`}),!a.length)continue;let l=a.map(e=>"done"===t[e].status?"done":"in-progress"===t[e].status?"in-progress":"other");o[i.id]={done:l.filter(e=>"done"===e).length,total:a.length};let d=o6(l);if(d!==i.status){let e=a.filter(e=>"done"!==t[e].status);r.push({id:i.id,kind:"status-mismatch",message:"done"===d?`${i.id} "${i.title}": all tasks done but status is ${i.status}`:`${i.id} "${i.title}" is ${i.status} but tasks ${e.join(", ")} are not done`,suggestedStatus:d})}}for(let t of e){if(!i.has(t.id))continue;let n=e.filter(e=>e.parent===t.id);if(!n.length)continue;let a=n.map(e=>"done"===e.status?"done":"in-progress"===e.status?"in-progress":"other");o[t.id]=n.reduce((e,t)=>{let n=o[t.id]??{done:+("done"===t.status),total:1};return{done:e.done+n.done,total:e.total+n.total}},{done:0,total:0});let s=o6(a);s!==t.status&&r.push({id:t.id,kind:"status-mismatch",message:`${t.id} "${t.title}" is ${t.status} but its features say ${s}`,suggestedStatus:s})}return{progress:o,drift:r}})(s,B,a),[s,B,a]),_=(0,y.useMemo)(()=>c.map(e=>{let t;return{...e,data:{...e.data,progress:L.progress[e.id],drift:L.drift.filter(t=>t.id===e.id).map(e=>e.message),dueState:o4(e.data.item.due,e.data.item.status,a),..."feature"===e.type&&{taskDue:t=function(e,t,n){let o=e.map(e=>t[e]).filter(e=>e&&e.due&&"done"!==e.status&&"cancelled"!==e.status).map(e=>e.due);if(!o.length)return null;let r=o.filter(e=>e>=n).sort();return{overdue:o.length-r.length,next:r[0]??null}}(e.data.item.tasks,B,a),taskDueSoon:!!t?.next&&"soon"===o4(t.next,"planned",a)}}}}),[c,L,a,B]),H=(0,y.useCallback)(e=>h(t=>t0(e,t)),[]);async function T(){j(!0),b(null);let{data:t,error:n}=await rC(`/api/roadmap/generate${e}`,{});if(n){b(n),j(!1);return}let o=Object.fromEntries(Object.entries(rn(t?.items??[],{})).map(([e,t])=>[e,{x:Math.round(t.x),y:Math.round(t.y)}])),{error:r}=await rC(`/api/roadmap/layout${e}`,{positions:o});await R(),r&&b(r),j(!1)}let V=Object.values(n??{}).flat().filter(e=>"cancelled"!==e.status).length,F="roadmap-md"===S?"from ROADMAP.md":"tasks"===S?`from ${V} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function Z(t){let{error:n}=await rC(`/api/roadmap/create${e}`,{title:t,parent:E||null});return n||(await R(),null)}async function X(t,n){let{data:o,error:r}=await rC(`/api/roadmap/update${e}`,{id:t,patch:n});if(r)return r;let i=o?.item;return i?A(s.map(e=>e.id===t?i:e),d):await R(),null}async function Y(t){let{error:n}=await rC(`/api/roadmap/delete${e}`,{id:t});return n||(A(s.filter(e=>e.id!==t),d),null)}let W=s.find(e=>e.id===v)??null,K=(0,x.jsx)(rE,{open:null!==E,heading:E?`New feature under ${E}`:"New horizon",onOpenChange:e=>{e||C(null)},onSubmit:Z});return f?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===s.length?(0,x.jsxs)("div",{className:"flex-1 p-6",children:[g&&(0,x.jsx)("p",{className:"mb-4 text-sm text-danger",children:g}),(0,x.jsx)(o2.EmptyState,{icon:"🗺️",message:"No roadmap yet",subMessage:"Items live in plans/roadmap/R*.md",bordered:!0}),(0,x.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsxs)(o3.Button,{size:"sm",onClick:T,disabled:k,className:"bg-accent text-white hover:bg-accent/90",children:[(0,x.jsx)(oJ.Sparkles,{})," ",k?"Generating…":"Generate roadmap"]}),(0,x.jsxs)(o3.Button,{size:"sm",variant:"outline",onClick:()=>(0,o8.askAgent)("Plan a roadmap for this project."),disabled:k,children:[(0,x.jsx)(oG.Bot,{})," Plan with agent"]}),(0,x.jsxs)(o3.Button,{size:"sm",variant:"outline",onClick:()=>C(""),disabled:k,children:[(0,x.jsx)(oQ.Plus,{})," Create first horizon"]})]}),(0,x.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",F,". Existing files are not modified."]})]}),K]}):(0,x.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,x.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border px-3 py-1.5",children:[(0,x.jsx)("div",{className:"flex rounded-md border border-border p-0.5 text-xs",children:["map","timeline"].map(e=>(0,x.jsx)("button",{type:"button",onClick:()=>{let t,n;return t=new URLSearchParams(r.toString()),"map"===e?t.delete("view"):t.set("view",e),n=t.toString(),void o.replace(n?`/roadmap?${n}`:"/roadmap")},className:(0,o7.cn)("rounded-sm px-3 py-1 capitalize",i===e?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:e},e))}),(0,x.jsxs)("div",{className:"flex items-center gap-3",children:[g&&(0,x.jsx)("p",{className:"text-xs text-danger",children:g}),(0,x.jsxs)(o3.Button,{size:"sm",onClick:()=>C(""),className:"bg-accent text-white hover:bg-accent/90",children:[(0,x.jsx)(oQ.Plus,{})," Horizon"]})]})]}),"map"===i?(0,x.jsx)("div",{ref:$,className:"relative flex-1 min-h-0",children:(0,x.jsxs)(oN,{nodes:_,edges:O,nodeTypes:rf,onNodesChange:H,onNodeClick:(e,t)=>w(t.id),onNodeDragStart:()=>{M.current=!0},onNodeDragStop:(t,n,o)=>{let r;return M.current=!1,r=Object.fromEntries(o.map(e=>[e.id,{x:Math.round(e.position.x),y:Math.round(e.position.y)}])),void(A(s,{...d,...r}),rC(`/api/roadmap/layout${e}`,{positions:r}).then(({error:e})=>{e&&b(e),I.current&&(I.current=!1,R())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:z?"dark":"light",onInit:P,minZoom:.2,style:rP,children:[(0,x.jsx)(o$,{variant:m.Dots,gap:20,size:1}),(0,x.jsx)(oL,{showInteractive:!1}),(0,x.jsx)(tA,{position:"top-left",children:(0,x.jsxs)("div",{className:"flex flex-col gap-1.5 rounded-md border border-border bg-surface px-3 py-2 text-xs text-muted shadow-sm",children:[(0,x.jsxs)("span",{className:"flex items-center gap-2",children:[(0,x.jsx)(rl,{status:"done"})," Done"]}),(0,x.jsxs)("span",{className:"flex items-center gap-2",children:[(0,x.jsx)(rl,{status:"in-progress"})," In progress"]}),(0,x.jsxs)("span",{className:"flex items-center gap-2",children:[(0,x.jsx)(rl,{status:"planned"})," Planned"]})]})})]})}):(0,x.jsx)(rp,{items:s,today:a,onSelect:w}),L.drift.length>0&&(0,x.jsx)(rD,{drift:L.drift,onSelect:w,onApply:e=>e.suggestedStatus&&X(e.id,{status:e.suggestedStatus}).then(e=>{e&&b(e)})}),(0,x.jsx)(rS,{item:W,items:s,onClose:()=>w(null),onSave:X,onDelete:Y,onAddFeature:e=>{w(null),C(e)},onEditRaw:e=>{t(e)},tasksById:B,progress:W?L.progress[W.id]:void 0}),K]})}function rD({drift:e,onSelect:t,onApply:n}){return(0,x.jsxs)("details",{open:!0,className:"absolute right-3 top-14 z-30 w-72 rounded-md border border-amber/50 bg-surface text-xs shadow-sm",children:[(0,x.jsxs)("summary",{className:"flex cursor-pointer items-center gap-1.5 px-3 py-2 font-medium text-amber",children:[(0,x.jsx)(oq.AlertTriangle,{className:"h-3.5 w-3.5"})," ",e.length," need attention"]}),(0,x.jsx)("ul",{className:"max-h-60 overflow-y-auto border-t border-border",children:e.map(e=>(0,x.jsxs)("li",{className:"flex items-start gap-2 border-b border-border px-3 py-2 last:border-0",children:[(0,x.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"flex-1 text-left text-muted hover:text-txt",children:e.message}),e.suggestedStatus&&(0,x.jsxs)("button",{type:"button",onClick:()=>n(e),className:"shrink-0 rounded-sm border border-border px-1.5 py-0.5 text-txt hover:border-accent",title:`Set status to ${e.suggestedStatus}`,children:["→ ",e.suggestedStatus]})]},`${e.id}-${e.kind}`))})]})}e.s(["default",0,function(){return(0,x.jsx)("div",{className:"flex flex-col h-[calc(100svh-3rem)]",children:(0,x.jsx)(y.Suspense,{children:(0,x.jsx)(rI,{})})})}],298367)}]);