vibedoc 1.6.1 → 1.7.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 (297) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +39 -11
  5. package/.next/routes-manifest.json +12 -0
  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.js.nft.json +1 -1
  9. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/chat/page/app-paths-manifest.json +3 -0
  11. package/.next/server/app/(app)/chat/page/build-manifest.json +20 -0
  12. package/.next/server/app/(app)/chat/page/next-font-manifest.json +11 -0
  13. package/.next/server/app/(app)/chat/page/react-loadable-manifest.json +1 -0
  14. package/.next/server/app/(app)/chat/page/server-reference-manifest.json +4 -0
  15. package/.next/server/app/(app)/chat/page.js +15 -0
  16. package/.next/server/app/(app)/chat/page.js.map +5 -0
  17. package/.next/server/app/(app)/chat/page.js.nft.json +1 -0
  18. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +3 -0
  19. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +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.js.nft.json +1 -1
  37. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/_not-found.html +1 -1
  39. package/.next/server/app/_not-found.rsc +2 -2
  40. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  41. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  42. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  43. package/.next/server/app/activity.html +1 -1
  44. package/.next/server/app/activity.rsc +22 -23
  45. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +9 -10
  46. package/.next/server/app/activity.segments/_full.segment.rsc +22 -23
  47. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  48. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  49. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  50. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  51. package/.next/server/app/api/context/route.js.nft.json +1 -1
  52. package/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
  53. package/.next/server/app/api/conversations/route/build-manifest.json +12 -0
  54. package/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
  55. package/.next/server/app/api/conversations/route.js +9 -0
  56. package/.next/server/app/api/conversations/route.js.map +5 -0
  57. package/.next/server/app/api/conversations/route.js.nft.json +1 -0
  58. package/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
  59. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  60. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  61. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  62. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  63. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  64. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  65. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  66. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  67. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  68. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  69. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  70. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  71. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  72. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  73. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  74. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  75. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  76. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  77. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  78. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  79. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  80. package/.next/server/app/board.html +1 -1
  81. package/.next/server/app/board.rsc +22 -23
  82. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +9 -10
  83. package/.next/server/app/board.segments/_full.segment.rsc +22 -23
  84. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  85. package/.next/server/app/chat.html +1 -0
  86. package/.next/server/app/chat.meta +31 -0
  87. package/.next/server/app/chat.rsc +29 -0
  88. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +31 -0
  89. package/.next/server/app/chat.segments/_full.segment.rsc +29 -0
  90. package/.next/server/app/chat.segments/_tree.segment.rsc +4 -0
  91. package/.next/server/app/docs.html +1 -1
  92. package/.next/server/app/docs.rsc +22 -27
  93. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
  94. package/.next/server/app/docs.segments/_full.segment.rsc +22 -27
  95. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  96. package/.next/server/app/explorer.html +1 -1
  97. package/.next/server/app/explorer.rsc +22 -23
  98. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +9 -10
  99. package/.next/server/app/explorer.segments/_full.segment.rsc +22 -23
  100. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  101. package/.next/server/app/index.html +1 -1
  102. package/.next/server/app/index.rsc +2 -2
  103. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  104. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  105. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/memory.html +1 -1
  107. package/.next/server/app/memory.rsc +22 -23
  108. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +9 -10
  109. package/.next/server/app/memory.segments/_full.segment.rsc +22 -23
  110. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  111. package/.next/server/app/page.js.nft.json +1 -1
  112. package/.next/server/app/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/roadmap.html +1 -1
  114. package/.next/server/app/roadmap.rsc +22 -26
  115. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +9 -11
  116. package/.next/server/app/roadmap.segments/_full.segment.rsc +22 -26
  117. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  118. package/.next/server/app/settings.html +1 -1
  119. package/.next/server/app/settings.rsc +22 -23
  120. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +9 -10
  121. package/.next/server/app/settings.segments/_full.segment.rsc +22 -23
  122. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  123. package/.next/server/app/setup.html +1 -1
  124. package/.next/server/app/setup.rsc +22 -23
  125. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +9 -10
  126. package/.next/server/app/setup.segments/_full.segment.rsc +22 -23
  127. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  128. package/.next/server/app-paths-manifest.json +2 -0
  129. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +3 -0
  130. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js.map +1 -0
  131. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +3 -0
  132. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +4 -4
  133. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
  134. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +3 -0
  135. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js.map +1 -0
  136. package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
  137. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js → 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js} +2 -2
  138. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0mwkb-i._.js → 1u84_katex_dist_katex_mjs_1z0p1bs._.js} +1 -1
  139. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +3 -0
  140. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +1 -0
  141. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +3 -0
  142. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +1 -0
  143. package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js +3 -0
  144. package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js.map +1 -0
  145. package/.next/server/chunks/ssr/_059qmur._.js +3 -0
  146. package/.next/server/chunks/ssr/_059qmur._.js.map +1 -0
  147. package/.next/server/chunks/ssr/_081irea._.js +3 -0
  148. package/.next/server/chunks/ssr/_081irea._.js.map +1 -0
  149. package/.next/server/chunks/ssr/_0d8t8l4._.js +3 -0
  150. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +1 -0
  151. package/.next/server/chunks/ssr/_0dyvcdg._.js +3 -0
  152. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +1 -0
  153. package/.next/server/chunks/ssr/_1-ghqy4._.js +3 -0
  154. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +1 -0
  155. package/.next/server/chunks/ssr/_17jy5db._.js +3 -0
  156. package/.next/server/chunks/ssr/_17jy5db._.js.map +1 -0
  157. package/.next/server/chunks/ssr/_1c95ems._.js +1 -1
  158. package/.next/server/chunks/ssr/_1c95ems._.js.map +1 -1
  159. package/.next/server/chunks/ssr/_1dllfz5._.js +4 -0
  160. package/.next/server/chunks/ssr/_1dllfz5._.js.map +1 -0
  161. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js +3 -0
  162. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +3 -0
  163. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +1 -0
  164. package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js → node_modules__pnpm_0286-tg._.js} +1 -1
  165. package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js → node_modules__pnpm_04khl_s._.js} +1 -1
  166. package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js → node_modules__pnpm_07t_e8c._.js} +1 -1
  167. package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js → node_modules__pnpm_08sqeu2._.js} +1 -1
  168. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js → node_modules__pnpm_09_i2jk._.js} +1 -1
  169. package/.next/server/chunks/ssr/node_modules__pnpm_09_i2jk._.js.map +1 -0
  170. package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js → node_modules__pnpm_0a9b2ei._.js} +1 -1
  171. package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js → node_modules__pnpm_0ah02mu._.js} +1 -1
  172. package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js → node_modules__pnpm_0cj8ryj._.js} +1 -1
  173. package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js → node_modules__pnpm_0dwi7mu._.js} +2 -2
  174. package/.next/server/chunks/ssr/node_modules__pnpm_0dwi7mu._.js.map +1 -0
  175. package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js → node_modules__pnpm_0f77_ng._.js} +1 -1
  176. package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js → node_modules__pnpm_0fd3pr1._.js} +2 -2
  177. package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js → node_modules__pnpm_0gifu-u._.js} +2 -2
  178. package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js → node_modules__pnpm_0jpv2b6._.js} +2 -2
  179. package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js → node_modules__pnpm_0og06fy._.js} +1 -1
  180. package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js → node_modules__pnpm_0qc3gsk._.js} +1 -1
  181. package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js → node_modules__pnpm_0ts89ne._.js} +1 -1
  182. package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js → node_modules__pnpm_0ttvopp._.js} +1 -1
  183. package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js → node_modules__pnpm_0u3u82f._.js} +1 -1
  184. package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js → node_modules__pnpm_0y35hs4._.js} +1 -1
  185. package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js → node_modules__pnpm_104pzhc._.js} +2 -2
  186. package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js → node_modules__pnpm_195j8p_._.js} +1 -1
  187. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +3 -0
  188. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +1 -0
  189. package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js → node_modules__pnpm_1l8k8w1._.js} +1 -1
  190. package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js → node_modules__pnpm_1w0f1m5._.js} +1 -1
  191. package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js → node_modules__pnpm_1woddr6._.js} +2 -2
  192. package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js → node_modules__pnpm_1x0t5_z._.js} +1 -1
  193. package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js → node_modules__pnpm_1xzf8g_._.js} +1 -1
  194. package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js → node_modules__pnpm_1yq90z7._.js} +1 -1
  195. package/.next/server/chunks/ssr/node_modules__pnpm_1yq90z7._.js.map +1 -0
  196. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +3 -0
  197. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -0
  198. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +3 -0
  199. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -0
  200. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +5 -0
  201. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -0
  202. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +5 -0
  203. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -0
  204. package/.next/server/chunks/ssr/{_1wf14_u._.js → src_lib_templates_index_ts_1s61uk7._.js} +2 -2
  205. package/.next/server/chunks/ssr/{_1wf14_u._.js.map → src_lib_templates_index_ts_1s61uk7._.js.map} +1 -1
  206. package/.next/server/middleware-build-manifest.js +3 -3
  207. package/.next/server/next-font-manifest.js +1 -1
  208. package/.next/server/next-font-manifest.json +4 -0
  209. package/.next/server/pages/404.html +1 -1
  210. package/.next/server/pages/500.html +1 -1
  211. package/.next/server/prefetch-hints.json +19 -0
  212. package/.next/server/server-reference-manifest.js +1 -1
  213. package/.next/server/server-reference-manifest.json +1 -1
  214. package/.next/static/chunks/050mq8l4e1ubn.js +1 -0
  215. package/.next/static/chunks/098le48845_fg.js +3 -0
  216. package/.next/static/chunks/0cw4-ebkoufdc.js +1 -0
  217. package/.next/static/chunks/0feo-go1w5nct.js +1 -0
  218. package/.next/static/chunks/14sefb904pl64.js +21 -0
  219. package/.next/static/chunks/1fer-wulyrjrs.js +3 -0
  220. package/.next/static/chunks/1o7b1x4umy8a6.js +1 -0
  221. package/.next/static/chunks/1q_io1j58aukw.js +1 -0
  222. package/.next/static/chunks/1t-cgh4477hfo.js +1 -0
  223. package/.next/static/chunks/1u-1po1qesc9f.js +1 -0
  224. package/.next/static/chunks/1u5kegkgm0xoz.js +1 -0
  225. package/.next/static/chunks/24ygzsgd-moqy.js +1 -0
  226. package/.next/static/chunks/26folxgplfa9t.js +68 -0
  227. package/.next/static/chunks/2ocixvjhv34_3.js +1 -0
  228. package/.next/static/chunks/3_lsdgxa-h7ma.css +10 -0
  229. package/.next/static/chunks/3rmv-sb9w9i3e.js +1 -0
  230. package/.next/static/chunks/3ttzomivj48jh.js +2 -0
  231. package/README.md +1 -1
  232. package/package.json +1 -1
  233. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +0 -3
  234. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +0 -1
  235. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js +0 -3
  236. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js.map +0 -1
  237. package/.next/server/chunks/ssr/_0qyglif._.js +0 -5
  238. package/.next/server/chunks/ssr/_0qyglif._.js.map +0 -1
  239. package/.next/server/chunks/ssr/_0skuoxv._.js +0 -6
  240. package/.next/server/chunks/ssr/_0skuoxv._.js.map +0 -1
  241. package/.next/server/chunks/ssr/_14i_6yb._.js +0 -3
  242. package/.next/server/chunks/ssr/_14i_6yb._.js.map +0 -1
  243. package/.next/server/chunks/ssr/_1cbhuz4._.js +0 -3
  244. package/.next/server/chunks/ssr/_1cbhuz4._.js.map +0 -1
  245. package/.next/server/chunks/ssr/_1ewk_mn._.js +0 -3
  246. package/.next/server/chunks/ssr/_1ewk_mn._.js.map +0 -1
  247. package/.next/server/chunks/ssr/_1y-ofyw._.js +0 -3
  248. package/.next/server/chunks/ssr/_1y-ofyw._.js.map +0 -1
  249. package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js +0 -3
  250. package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js.map +0 -1
  251. package/.next/server/chunks/ssr/src_components_008q3v8._.js +0 -3
  252. package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +0 -1
  253. package/.next/static/chunks/0-vk2d2nnzav2.js +0 -3
  254. package/.next/static/chunks/02sab26ica2x3.js +0 -1
  255. package/.next/static/chunks/0eggcu0ovk8sd.js +0 -68
  256. package/.next/static/chunks/0iva6rdtfqpbz.js +0 -1
  257. package/.next/static/chunks/0qm101bdsxdyh.css +0 -10
  258. package/.next/static/chunks/0wg9n5zb8mo2p.js +0 -1
  259. package/.next/static/chunks/0z_y7el6m76yk.js +0 -1
  260. package/.next/static/chunks/1-ekntoveuxzd.js +0 -4
  261. package/.next/static/chunks/10neasnz6hhq1.js +0 -1
  262. package/.next/static/chunks/22dw7r8x0h2sx.js +0 -1
  263. package/.next/static/chunks/26ee8jsbellqk.js +0 -21
  264. package/.next/static/chunks/3kkg030rcpz7l.js +0 -1
  265. package/.next/static/chunks/3pf_4ye6ju8gt.js +0 -1
  266. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map} +0 -0
  267. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_0mwkb-i._.js.map → _next-internal_server_app_api_conversations_route_actions_1-pu7gs.js.map} +0 -0
  268. /package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js.map → 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map} +0 -0
  269. /package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js.map → 1u84_katex_dist_katex_mjs_1z0p1bs._.js.map} +0 -0
  270. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js.map → _next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js.map} +0 -0
  271. /package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js.map → node_modules__pnpm_0286-tg._.js.map} +0 -0
  272. /package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js.map → node_modules__pnpm_04khl_s._.js.map} +0 -0
  273. /package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js.map → node_modules__pnpm_07t_e8c._.js.map} +0 -0
  274. /package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js.map → node_modules__pnpm_08sqeu2._.js.map} +0 -0
  275. /package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js.map → node_modules__pnpm_0a9b2ei._.js.map} +0 -0
  276. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js.map → node_modules__pnpm_0ah02mu._.js.map} +0 -0
  277. /package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js.map → node_modules__pnpm_0cj8ryj._.js.map} +0 -0
  278. /package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js.map → node_modules__pnpm_0f77_ng._.js.map} +0 -0
  279. /package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js.map → node_modules__pnpm_0fd3pr1._.js.map} +0 -0
  280. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js.map → node_modules__pnpm_0gifu-u._.js.map} +0 -0
  281. /package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js.map → node_modules__pnpm_0jpv2b6._.js.map} +0 -0
  282. /package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js.map → node_modules__pnpm_0og06fy._.js.map} +0 -0
  283. /package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js.map → node_modules__pnpm_0qc3gsk._.js.map} +0 -0
  284. /package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js.map → node_modules__pnpm_0ts89ne._.js.map} +0 -0
  285. /package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js.map → node_modules__pnpm_0ttvopp._.js.map} +0 -0
  286. /package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js.map → node_modules__pnpm_0u3u82f._.js.map} +0 -0
  287. /package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js.map → node_modules__pnpm_0y35hs4._.js.map} +0 -0
  288. /package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js.map → node_modules__pnpm_104pzhc._.js.map} +0 -0
  289. /package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js.map → node_modules__pnpm_195j8p_._.js.map} +0 -0
  290. /package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js.map → node_modules__pnpm_1l8k8w1._.js.map} +0 -0
  291. /package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js.map → node_modules__pnpm_1w0f1m5._.js.map} +0 -0
  292. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js.map → node_modules__pnpm_1woddr6._.js.map} +0 -0
  293. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js.map → node_modules__pnpm_1x0t5_z._.js.map} +0 -0
  294. /package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js.map → node_modules__pnpm_1xzf8g_._.js.map} +0 -0
  295. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_buildManifest.js +0 -0
  296. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_clientMiddlewareManifest.js +0 -0
  297. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_ssgManifest.js +0 -0
@@ -1,6 +0,0 @@
1
- module.exports=[683830,(a,b,c)=>{"use strict";var d=a.r(174897);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},873305,(a,b,c)=>{"use strict";b.exports=a.r(683830)},305952,(a,b,c)=>{"use strict";var d=a.r(174897),e=a.r(873305),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},711822,(a,b,c)=>{"use strict";b.exports=a.r(305952)},690793,a=>{"use strict";var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r=a.i(662145),s=a.i(174897);function t(a){if("string"==typeof a||"number"==typeof a)return""+a;let b="";if(Array.isArray(a))for(let c=0,d;c<a.length;c++)""!==(d=t(a[c]))&&(b+=(b&&" ")+d);else for(let c in a)a[c]&&(b+=(b&&" ")+c);return b}var u=a.i(781078),v=a.i(455784),w=a.i(34669),x=a.i(314600),y=a.i(624894);let z=a=>()=>a;function A(a,{sourceEvent:b,subject:c,target:d,identifier:e,active:f,x:g,y:h,dx:i,dy:j,dispatch:k}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},subject:{value:c,enumerable:!0,configurable:!0},target:{value:d,enumerable:!0,configurable:!0},identifier:{value:e,enumerable:!0,configurable:!0},active:{value:f,enumerable:!0,configurable:!0},x:{value:g,enumerable:!0,configurable:!0},y:{value:h,enumerable:!0,configurable:!0},dx:{value:i,enumerable:!0,configurable:!0},dy:{value:j,enumerable:!0,configurable:!0},_:{value:k}})}function B(a){return!a.ctrlKey&&!a.button}function C(){return this.parentNode}function D(a,b){return null==b?{x:a.x,y:a.y}:b}function E(){return navigator.maxTouchPoints||"ontouchstart"in this}function F(){var a,b,c,d,e=B,f=C,g=D,h=E,i={},j=(0,u.dispatch)("start","drag","end"),k=0,l=0;function m(a){a.on("mousedown.drag",n).filter(h).on("touchstart.drag",q).on("touchmove.drag",r,y.nonpassive).on("touchend.drag touchcancel.drag",s).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function n(g,h){if(!d&&e.call(this,g,h)){var i=t(this,f.call(this,g,h),g,h,"mouse");i&&((0,v.select)(g.view).on("mousemove.drag",o,y.nonpassivecapture).on("mouseup.drag",p,y.nonpassivecapture),(0,x.default)(g.view),(0,y.nopropagation)(g),c=!1,a=g.clientX,b=g.clientY,i("start",g))}}function o(d){if((0,y.default)(d),!c){var e=d.clientX-a,f=d.clientY-b;c=e*e+f*f>l}i.mouse("drag",d)}function p(a){(0,v.select)(a.view).on("mousemove.drag mouseup.drag",null),(0,x.yesdrag)(a.view,c),(0,y.default)(a),i.mouse("end",a)}function q(a,b){if(e.call(this,a,b)){var c,d,g=a.changedTouches,h=f.call(this,a,b),i=g.length;for(c=0;c<i;++c)(d=t(this,h,a,b,g[c].identifier,g[c]))&&((0,y.nopropagation)(a),d("start",a,g[c]))}}function r(a){var b,c,d=a.changedTouches,e=d.length;for(b=0;b<e;++b)(c=i[d[b].identifier])&&((0,y.default)(a),c("drag",a,d[b]))}function s(a){var b,c,e=a.changedTouches,f=e.length;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<f;++b)(c=i[e[b].identifier])&&((0,y.nopropagation)(a),c("end",a,e[b]))}function t(a,b,c,d,e,f){var h,l,n,o=j.copy(),p=(0,w.pointer)(f||c,b);if(null!=(n=g.call(a,new A("beforestart",{sourceEvent:c,target:m,identifier:e,active:k,x:p[0],y:p[1],dx:0,dy:0,dispatch:o}),d)))return h=n.x-p[0]||0,l=n.y-p[1]||0,function c(f,g,j){var q,r=p;switch(f){case"start":i[e]=c,q=k++;break;case"end":delete i[e],--k;case"drag":p=(0,w.pointer)(j||g,b),q=k}o.call(f,a,new A(f,{sourceEvent:g,subject:n,target:m,identifier:e,active:q,x:p[0]+h,y:p[1]+l,dx:p[0]-r[0],dy:p[1]-r[1],dispatch:o}),d)}}return m.filter=function(a){return arguments.length?(e="function"==typeof a?a:z(!!a),m):e},m.container=function(a){return arguments.length?(f="function"==typeof a?a:z(a),m):f},m.subject=function(a){return arguments.length?(g="function"==typeof a?a:z(a),m):g},m.touchable=function(a){return arguments.length?(h="function"==typeof a?a:z(!!a),m):h},m.on=function(){var a=j.on.apply(j,arguments);return a===j?m:a},m.clickDistance=function(a){return arguments.length?(l=(a*=1)*a,m):Math.sqrt(l)},m}A.prototype.on=function(){var a=this._.on.apply(this._,arguments);return a===this._?this:a},a.i(633534);var G=a.i(455376),G=G,H=a.i(83356),H=H,I=H,J=a.i(238018),K=a.i(86915);let L=[[-1/0,-1/0],[1/0,1/0]],M=["Enter"," ","Escape"],N={"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:a,x:b,y:c})=>`Moved selected node ${a}. New position, x: ${b}, y: ${c}`,"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"};(b=j||(j={})).Strict="strict",b.Loose="loose",(c=k||(k={})).Free="free",c.Vertical="vertical",c.Horizontal="horizontal",(d=l||(l={})).Partial="partial",d.Full="full";let O={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(e=m||(m={})).Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier",(f=n||(n={})).Arrow="arrow",f.ArrowClosed="arrowclosed",(g=o||(o={})).Left="left",g.Top="top",g.Right="right",g.Bottom="bottom";let P={[o.Left]:o.Right,[o.Right]:o.Left,[o.Top]:o.Bottom,[o.Bottom]:o.Top},Q=a=>!!a&&"object"==typeof a&&"id"in a&&"source"in a&&"target"in a,R=a=>!!a&&"object"==typeof a&&"id"in a&&"internals"in a&&!("source"in a)&&!("target"in a),S=(a,b=[0,0])=>{let{width:c,height:d}=at(a),e=a.origin??b,f=c*e[0],g=d*e[1];return{x:a.position.x-f,y:a.position.y-g}},T=(a,b={})=>{let c={x:1/0,y:1/0,x2:-1/0,y2:-1/0},d=!1;return a.forEach(a=>{(void 0===b.filter||b.filter(a))&&(c=ab(c,af(a)),d=!0)}),d?ad(c):{x:0,y:0,width:0,height:0}},U=(a,b,[c,d,e]=[0,0,1],f=!1,g=!1)=>{let h=(b.x-c)/e,i=(b.y-d)/e,j=b.width/e,k=b.height/e,l=[];for(let b of a.values()){let{measured:a,selectable:c=!0,hidden:d=!1}=b;if(g&&!c||d)continue;let e=a.width??b.width??b.initialWidth??0,m=a.height??b.height??b.initialHeight??0,{x:n,y:o}=b.internals.positionAbsolute,p=ah(h,i,j,k,n,o,e,m),q=e*m,r=f&&p>0;(!b.internals.handleBounds||r||p>=q||b.dragging)&&l.push(b)}return l};async function V({nodes:a,width:b,height:c,panZoom:d,minZoom:e,maxZoom:f},g){let h,i;if(0===a.size)return!0;let j=aq(T((h=new Map,i=g?.nodes?new Set(g.nodes.map(a=>a.id)):null,a.forEach(a=>{let b;if(g?.includeHiddenNodes){let{width:c,height:d}=at(a);b=c>0&&d>0}else b=!!(a.measured.width&&a.measured.height&&!a.hidden);b&&(!i||i.has(a.id))&&h.set(a.id,a)}),h)),b,c,g?.minZoom??e,g?.maxZoom??f,g?.padding??.1);return await d.setViewport(j,{duration:g?.duration,ease:g?.ease,interpolate:g?.interpolate}),!0}function W({nodeId:a,nextPosition:b,nodeLookup:c,nodeOrigin:d=[0,0],nodeExtent:e,onError:f}){let g=c.get(a),h=g.parentId?c.get(g.parentId):void 0,{x:i,y:j}=h?h.internals.positionAbsolute:{x:0,y:0},k=g.origin??d,l=g.extent||e;if("parent"!==g.extent||g.expandParent)h&&as(g.extent)&&(l=[[g.extent[0][0]+i,g.extent[0][1]+j],[g.extent[1][0]+i,g.extent[1][1]+j]]);else if(h){let{width:a,height:b}=at(h);a&&b&&(l=[[i,j],[i+a,j+b]])}else f?.("005","Only child nodes can use a parent extent.");let m=as(l)?Z(b,l,g.measured):b;return(void 0===g.measured.width||void 0===g.measured.height)&&f?.("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:m.x-i+(g.measured.width??0)*k[0],y:m.y-j+(g.measured.height??0)*k[1]},positionAbsolute:m}}async function X({nodesToRemove:a=[],edgesToRemove:b=[],nodes:c,edges:d,onBeforeDelete:e}){let f,g=new Set(a.map(a=>a.id)),h=[];for(let a of c){if(!1===a.deletable)continue;let b=g.has(a.id),c=!b&&a.parentId&&h.find(b=>b.id===a.parentId);(b||c)&&h.push(a)}let i=new Set(b.map(a=>a.id)),j=d.filter(a=>!1!==a.deletable),k=(f=new Set,h.forEach(a=>{f.add(a.id)}),j.filter(a=>f.has(a.source)||f.has(a.target)));for(let a of j)i.has(a.id)&&!k.find(b=>b.id===a.id)&&k.push(a);if(!e)return{edges:k,nodes:h};let l=await e({nodes:h,edges:k});return"boolean"==typeof l?l?{edges:k,nodes:h}:{edges:[],nodes:[]}:l}let Y=(a,b=0,c=1)=>Math.min(Math.max(a,b),c),Z=(a={x:0,y:0},b,c)=>({x:Y(a.x,b[0][0],b[1][0]-(c?.width??0)),y:Y(a.y,b[0][1],b[1][1]-(c?.height??0))});function $(a,b,c){let{width:d,height:e}=at(c),{x:f,y:g}=c.internals.positionAbsolute;return Z(a,[[f,g],[f+d,g+e]],b)}let _=(a,b,c)=>a<b?Y(Math.abs(a-b),1,b)/b:a>c?-Y(Math.abs(a-c),1,b)/b:0,aa=(a,b,c=15,d=40)=>[_(a.x,d,b.width-d)*c,_(a.y,d,b.height-d)*c],ab=(a,b)=>({x:Math.min(a.x,b.x),y:Math.min(a.y,b.y),x2:Math.max(a.x2,b.x2),y2:Math.max(a.y2,b.y2)}),ac=({x:a,y:b,width:c,height:d})=>({x:a,y:b,x2:a+c,y2:b+d}),ad=({x:a,y:b,x2:c,y2:d})=>({x:a,y:b,width:c-a,height:d-b}),ae=(a,b=[0,0])=>{let{x:c,y:d}=R(a)?a.internals.positionAbsolute:S(a,b);return{x:c,y:d,width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}},af=(a,b=[0,0])=>{let{x:c,y:d}=R(a)?a.internals.positionAbsolute:S(a,b);return{x:c,y:d,x2:c+(a.measured?.width??a.width??a.initialWidth??0),y2:d+(a.measured?.height??a.height??a.initialHeight??0)}},ag=(a,b)=>ad(ab(ac(a),ac(b))),ah=(a,b,c,d,e,f,g,h)=>Math.ceil(Math.max(0,Math.min(a+c,e+g)-Math.max(a,e))*Math.max(0,Math.min(b+d,f+h)-Math.max(b,f))),ai=(a,b)=>ah(a.x,a.y,a.width,a.height,b.x,b.y,b.width,b.height),aj=a=>ak(a.width)&&ak(a.height)&&ak(a.x)&&ak(a.y),ak=a=>!isNaN(a)&&isFinite(a),al=(a,b)=>(a,b)=>{},am=(a,b=[1,1])=>({x:b[0]*Math.round(a.x/b[0]),y:b[1]*Math.round(a.y/b[1])}),an=({x:a,y:b},[c,d,e],f=!1,g=[1,1])=>{let h={x:(a-c)/e,y:(b-d)/e};return f?am(h,g):h},ao=({x:a,y:b},[c,d,e])=>({x:a*e+c,y:b*e+d});function ap(a,b){if("number"==typeof a)return Math.floor((b-b/(1+a))*.5);if("string"==typeof a&&a.endsWith("px")){let b=parseFloat(a);if(!Number.isNaN(b))return Math.floor(b)}if("string"==typeof a&&a.endsWith("%")){let c=parseFloat(a);if(!Number.isNaN(c))return Math.floor(b*c*.01)}return console.error(`The padding value "${a}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let aq=(a,b,c,d,e,f)=>{let g=function(a,b,c){if("string"==typeof a||"number"==typeof a){let d=ap(a,c),e=ap(a,b);return{top:d,right:e,bottom:d,left:e,x:2*e,y:2*d}}if("object"==typeof a){let d=ap(a.top??a.y??0,c),e=ap(a.bottom??a.y??0,c),f=ap(a.left??a.x??0,b),g=ap(a.right??a.x??0,b);return{top:d,right:g,bottom:e,left:f,x:f+g,y:d+e}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(f,b,c),h=Y(Math.min((b-g.x)/a.width,(c-g.y)/a.height),d,e),i=a.x+a.width/2,j=a.y+a.height/2,k=b/2-i*h,l=c/2-j*h,m=function(a,b,c,d,e,f){let{x:g,y:h}=ao(a,[b,c,d]),{x:i,y:j}=ao({x:a.x+a.width,y:a.y+a.height},[b,c,d]);return{left:Math.floor(g),top:Math.floor(h),right:Math.floor(e-i),bottom:Math.floor(f-j)}}(a,k,l,h,b,c),n={left:Math.min(m.left-g.left,0),top:Math.min(m.top-g.top,0),right:Math.min(m.right-g.right,0),bottom:Math.min(m.bottom-g.bottom,0)};return{x:k-n.left+n.right,y:l-n.top+n.bottom,zoom:h}},ar=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function as(a){return null!=a&&"parent"!==a}function at(a){return{width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}}function au(a){return(a.measured?.width??a.width??a.initialWidth)!==void 0&&(a.measured?.height??a.height??a.initialHeight)!==void 0}function av(a,b={width:0,height:0},c,d,e){let f={...a},g=d.get(c);if(g){let a=g.origin||e;f.x+=g.internals.positionAbsolute.x-(b.width??0)*a[0],f.y+=g.internals.positionAbsolute.y-(b.height??0)*a[1]}return f}function aw(a,b){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}function ax(a){return null===a?null:a?"valid":"invalid"}function ay(a,{snapGrid:b=[0,0],snapToGrid:c=!1,transform:d,containerBounds:e}){let{x:f,y:g}=aD(a),h=an({x:f-(e?.left??0),y:g-(e?.top??0)},d),{x:i,y:j}=c?am(h,b):h;return{xSnapped:i,ySnapped:j,...h}}let az=a=>({width:a.offsetWidth,height:a.offsetHeight}),aA=a=>a?.getRootNode?.()||window?.document,aB=["INPUT","SELECT","TEXTAREA"];function aC(a){let b=a.composedPath?.()?.[0]||a.target;return b?.nodeType===1&&(aB.includes(b.nodeName)||b.hasAttribute("contenteditable")||!!b.closest(".nokey"))}let aD=(a,b)=>{let c="clientX"in a,d=c?a.clientX:a.touches?.[0].clientX,e=c?a.clientY:a.touches?.[0].clientY;return{x:d-(b?.left??0),y:e-(b?.top??0)}},aE=(a,b,c,d,e)=>{let f=b.querySelectorAll(`.${a}`);return f&&f.length?Array.from(f).map(b=>{let f=b.getBoundingClientRect();return{id:b.getAttribute("data-handleid"),type:a,nodeId:e,position:b.getAttribute("data-handlepos"),x:(f.left-c.left)/d,y:(f.top-c.top)/d,...az(b)}}):null};function aF({sourceX:a,sourceY:b,targetX:c,targetY:d,sourceControlX:e,sourceControlY:f,targetControlX:g,targetControlY:h}){let i=.125*a+.375*e+.375*g+.125*c,j=.125*b+.375*f+.375*h+.125*d,k=Math.abs(i-a),l=Math.abs(j-b);return[i,j,k,l]}function aG(a,b){return a>=0?.5*a:25*b*Math.sqrt(-a)}function aH({pos:a,x1:b,y1:c,x2:d,y2:e,c:f}){switch(a){case o.Left:return[b-aG(b-d,f),c];case o.Right:return[b+aG(d-b,f),c];case o.Top:return[b,c-aG(c-e,f)];case o.Bottom:return[b,c+aG(e-c,f)]}}function aI({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top,curvature:g=.25}){let[h,i]=aH({pos:c,x1:a,y1:b,x2:d,y2:e,c:g}),[j,k]=aH({pos:f,x1:d,y1:e,x2:a,y2:b,c:g}),[l,m,n,p]=aF({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:h,sourceControlY:i,targetControlX:j,targetControlY:k});return[`M${a},${b} C${h},${i} ${j},${k} ${d},${e}`,l,m,n,p]}function aJ({sourceX:a,sourceY:b,targetX:c,targetY:d}){let e=Math.abs(c-a)/2,f=Math.abs(d-b)/2;return[c<a?c+e:c-e,d<b?d+f:d-f,e,f]}let aK=({source:a,sourceHandle:b,target:c,targetHandle:d})=>`xy-edge__${a}${b||""}-${c}${d||""}`;function aL({sourceX:a,sourceY:b,targetX:c,targetY:d}){let[e,f,g,h]=aJ({sourceX:a,sourceY:b,targetX:c,targetY:d});return[`M ${a},${b}L ${c},${d}`,e,f,g,h]}let aM={[o.Left]:{x:-1,y:0},[o.Right]:{x:1,y:0},[o.Top]:{x:0,y:-1},[o.Bottom]:{x:0,y:1}},aN=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function aO({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top,borderRadius:g=5,centerX:h,centerY:i,offset:j=20,stepPosition:k=.5}){let[l,m,n,p,q]=function({source:a,sourcePosition:b=o.Bottom,target:c,targetPosition:d=o.Top,center:e,offset:f,stepPosition:g}){let h,i,j=aM[b],k=aM[d],l={x:a.x+j.x*f,y:a.y+j.y*f},m={x:c.x+k.x*f,y:c.y+k.y*f},n=(({source:a,sourcePosition:b=o.Bottom,target:c})=>b===o.Left||b===o.Right?a.x<c.x?{x:1,y:0}:{x:-1,y:0}:a.y<c.y?{x:0,y:1}:{x:0,y:-1})({source:l,sourcePosition:b,target:m}),p=0!==n.x?"x":"y",q=n[p],r=[],s={x:0,y:0},t={x:0,y:0},[,,u,v]=aJ({sourceX:a.x,sourceY:a.y,targetX:c.x,targetY:c.y});if(j[p]*k[p]==-1){"x"===p?(h=e.x??l.x+(m.x-l.x)*g,i=e.y??(l.y+m.y)/2):(h=e.x??(l.x+m.x)/2,i=e.y??l.y+(m.y-l.y)*g);let a=[{x:h,y:l.y},{x:h,y:m.y}],b=[{x:l.x,y:i},{x:m.x,y:i}];r=j[p]===q?"x"===p?a:b:"x"===p?b:a}else{let e=[{x:l.x,y:m.y}],g=[{x:m.x,y:l.y}];if(r="x"===p?j.x===q?g:e:j.y===q?e:g,b===d){let b=Math.abs(a[p]-c[p]);if(b<=f){let d=Math.min(f-1,f-b);j[p]===q?s[p]=(l[p]>a[p]?-1:1)*d:t[p]=(m[p]>c[p]?-1:1)*d}}if(b!==d){let a="x"===p?"y":"x",b=j[p]===k[a],c=l[a]>m[a],d=l[a]<m[a];(1===j[p]&&(!b&&c||b&&d)||1!==j[p]&&(!b&&d||b&&c))&&(r="x"===p?e:g)}let n={x:l.x+s.x,y:l.y+s.y},o={x:m.x+t.x,y:m.y+t.y};Math.max(Math.abs(n.x-r[0].x),Math.abs(o.x-r[0].x))>=Math.max(Math.abs(n.y-r[0].y),Math.abs(o.y-r[0].y))?(h=(n.x+o.x)/2,i=r[0].y):(h=r[0].x,i=(n.y+o.y)/2)}let w={x:l.x+s.x,y:l.y+s.y},x={x:m.x+t.x,y:m.y+t.y};return[[a,...w.x!==r[0].x||w.y!==r[0].y?[w]:[],...r,...x.x!==r[r.length-1].x||x.y!==r[r.length-1].y?[x]:[],c],h,i,u,v]}({source:{x:a,y:b},sourcePosition:c,target:{x:d,y:e},targetPosition:f,center:{x:h,y:i},offset:j,stepPosition:k}),r=`M${l[0].x} ${l[0].y}`;for(let a=1;a<l.length-1;a++)r+=function(a,b,c,d){let e=Math.min(aN(a,b)/2,aN(b,c)/2,d),{x:f,y:g}=b;if(a.x===f&&f===c.x||a.y===g&&g===c.y)return`L${f} ${g}`;if(a.y===g){let b=a.x<c.x?-1:1,d=a.y<c.y?1:-1;return`L ${f+e*b},${g}Q ${f},${g} ${f},${g+e*d}`}let h=a.x<c.x?1:-1,i=a.y<c.y?-1:1;return`L ${f},${g+e*i}Q ${f},${g} ${f+e*h},${g}`}(l[a-1],l[a],l[a+1],g);return[r+=`L${l[l.length-1].x} ${l[l.length-1].y}`,m,n,p,q]}function aP(a){return a&&!!(a.internals.handleBounds||a.handles?.length)&&!!(a.measured.width||a.width||a.initialWidth)}function aQ(a){if(!a)return null;let b=[],c=[];for(let d of a)d.width=d.width??1,d.height=d.height??1,"source"===d.type?b.push(d):"target"===d.type&&c.push(d);return{source:b,target:c}}function aR(a,b,c=o.Left,d=!1){let e=(b?.x??0)+a.internals.positionAbsolute.x,f=(b?.y??0)+a.internals.positionAbsolute.y,{width:g,height:h}=b??at(a);if(d)return{x:e+g/2,y:f+h/2};switch(b?.position??c){case o.Top:return{x:e+g/2,y:f};case o.Right:return{x:e+g,y:f+h/2};case o.Bottom:return{x:e+g/2,y:f+h};case o.Left:return{x:e,y:f+h/2}}}function aS(a,b){return a&&(b?a.find(a=>a.id===b):a[0])||null}function aT(a,b){if(!a)return"";if("string"==typeof a)return a;let c=b?`${b}__`:"";return`${c}${Object.keys(a).sort().map(b=>`${b}=${a[b]}`).join("&")}`}let aU={nodeOrigin:[0,0],nodeExtent:L,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},aV={...aU,checkEquality:!0};function aW(a,b){let c={...a};for(let a in b)void 0!==b[a]&&(c[a]=b[a]);return c}function aX(a){return"manual"===a}function aY(a,b,c,d={}){let e=aW(aV,d),f={i:0},g=new Map(b),h=e?.elevateNodesOnSelect&&!aX(e.zIndexMode)?1e3:0,i=a.length>0,j=!1;for(let k of(b.clear(),c.clear(),a)){let a=g.get(k.id);if(e.checkEquality&&k===a?.internals.userNode)b.set(k.id,a);else{let c=Z(S(k,e.nodeOrigin),as(k.extent)?k.extent:e.nodeExtent,at(k));a={...e.defaults,...k,measured:{width:k.measured?.width,height:k.measured?.height},internals:{positionAbsolute:c,handleBounds:function(a,b){if(!a.handles)return a.measured?b?.internals.handleBounds:void 0;let c=[],d=[];for(let b of a.handles){let e={id:b.id,width:b.width??1,height:b.height??1,nodeId:a.id,x:b.x,y:b.y,position:b.position,type:b.type};"source"===b.type?c.push(e):"target"===b.type&&d.push(e)}return{source:c,target:d}}(k,a),z:a$(k,h,e.zIndexMode),userNode:k}},b.set(k.id,a)}void 0!==a.measured&&void 0!==a.measured.width&&void 0!==a.measured.height||a.hidden||(i=!1),k.parentId&&aZ(a,b,c,d,f),j||=k.selected??!1}return{nodesInitialized:i,hasSelectedNodes:j}}function aZ(a,b,c,d,e){let{elevateNodesOnSelect:f,nodeOrigin:g,nodeExtent:h,zIndexMode:i}=aW(aU,d),j=a.parentId,k=b.get(j);if(!k)return void console.warn(`Parent node ${j} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(a,b){if(!a.parentId)return;let c=b.get(a.parentId);c?c.set(a.id,a):b.set(a.parentId,new Map([[a.id,a]]))}(a,c),e&&!k.parentId&&void 0===k.internals.rootParentIndex&&"auto"===i&&(k.internals.rootParentIndex=++e.i,k.internals.z=k.internals.z+10*e.i),e&&void 0!==k.internals.rootParentIndex&&(e.i=k.internals.rootParentIndex);let{x:l,y:m,z:n}=function(a,b,c,d,e,f){let{x:g,y:h}=b.internals.positionAbsolute,i=at(a),j=S(a,c),k=as(a.extent)?Z(j,a.extent,i):j,l=Z({x:g+k.x,y:h+k.y},d,i);"parent"===a.extent&&(l=$(l,i,b));let m=a$(a,e,f),n=b.internals.z??0;return{x:l.x,y:l.y,z:n>=m?n+1:m}}(a,k,g,h,f&&!aX(i)?1e3:0,i),{positionAbsolute:o}=a.internals,p=l!==o.x||m!==o.y;(p||n!==a.internals.z)&&b.set(a.id,{...a,internals:{...a.internals,positionAbsolute:p?{x:l,y:m}:o,z:n}})}function a$(a,b,c){let d=ak(a.zIndex)?a.zIndex:0;return aX(c)?d:d+(a.selected?b:0)}function a_(a,b,c,d=[0,0]){let e=[],f=new Map;for(let c of a){let a=b.get(c.parentId);if(!a)continue;let d=ag(f.get(c.parentId)?.expandedRect??ae(a),c.rect);f.set(c.parentId,{expandedRect:d,parent:a})}return f.size>0&&f.forEach(({expandedRect:b,parent:f},g)=>{let h=f.internals.positionAbsolute,i=at(f),j=f.origin??d,k=b.x<h.x?Math.round(Math.abs(h.x-b.x)):0,l=b.y<h.y?Math.round(Math.abs(h.y-b.y)):0,m=Math.max(i.width,Math.round(b.width)),n=Math.max(i.height,Math.round(b.height)),o=(m-i.width)*j[0],p=(n-i.height)*j[1];(k>0||l>0||o||p)&&(e.push({id:g,type:"position",position:{x:f.position.x-k+o,y:f.position.y-l+p}}),c.get(g)?.forEach(b=>{a.some(a=>a.id===b.id)||e.push({id:b.id,type:"position",position:{x:b.position.x+k,y:b.position.y+l}})})),(i.width<b.width||i.height<b.height||k||l)&&e.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:m+(k?j[0]*k-o:0),height:n+(l?j[1]*l-p:0)}})}),e}async function a0({delta:a,panZoom:b,transform:c,translateExtent:d,width:e,height:f}){if(!b||!a.x&&!a.y)return!1;let g=await b.setViewportConstrained({x:c[0]+a.x,y:c[1]+a.y,zoom:c[2]},[[0,0],[e,f]],d);return!!g&&(g.x!==c[0]||g.y!==c[1]||g.k!==c[2])}function a1(a,b,c,d,e,f){let g=e,h=d.get(g)||new Map;d.set(g,h.set(c,b)),g=`${e}-${a}`;let i=d.get(g)||new Map;if(d.set(g,i.set(c,b)),f){g=`${e}-${a}-${f}`;let h=d.get(g)||new Map;d.set(g,h.set(c,b))}}function a2(a,b,c){for(let d of(a.clear(),b.clear(),c)){let{source:c,target:e,sourceHandle:f=null,targetHandle:g=null}=d,h={edgeId:d.id,source:c,target:e,sourceHandle:f,targetHandle:g},i=`${c}-${f}--${e}-${g}`;a1("source",h,`${e}-${g}--${c}-${f}`,a,c,f),a1("target",h,i,a,e,g),b.set(d.id,d)}}function a3(a,b,c){let d=a;do{if(d?.matches?.(b))return!0;if(d===c)break;d=d?.parentElement}while(d)return!1}function a4({nodeId:a,dragItems:b,nodeLookup:c,dragging:d=!0}){let e=[];for(let[a,f]of b){let b=c.get(a)?.internals.userNode;b&&e.push({...b,position:f.position,dragging:d})}if(!a)return[e[0],e];let f=c.get(a)?.internals.userNode;return[f?{...f,position:b.get(a)?.position||f.position,dragging:d}:e[0],e]}function a5(a,b,c,d,e,f=!1){let g=d.get(a);if(!g)return null;let h="strict"===e?g.internals.handleBounds?.[b]:[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]],i=(c?h?.find(a=>a.id===c):h?.[0])??null;return i&&f?{...i,...aR(g,i,i.position,!0)}:i}function a6(a,b){return a?a:b?.classList.contains("target")?"target":b?.classList.contains("source")?"source":null}let a7=()=>!0;function a8(a,{handle:b,connectionMode:c,fromNodeId:d,fromHandleId:e,fromType:f,doc:g,lib:h,flowId:i,isValidConnection:k=a7,nodeLookup:l}){let m="target"===f,n=b?g.querySelector(`.${h}-flow__handle[data-id="${i}-${b?.nodeId}-${b?.id}-${b?.type}"]`):null,{x:o,y:p}=aD(a),q=g.elementFromPoint(o,p),r=q?.classList.contains(`${h}-flow__handle`)?q:n,s={handleDomNode:r,isValid:!1,connection:null,toHandle:null};if(r){let a=a6(void 0,r),b=r.getAttribute("data-nodeid"),f=r.getAttribute("data-handleid"),g=r.classList.contains("connectable"),h=r.classList.contains("connectableend");if(!b||!a)return s;let i={source:m?b:d,sourceHandle:m?f:e,target:m?d:b,targetHandle:m?e:f};s.connection=i,s.isValid=g&&h&&(c===j.Strict?m&&"source"===a||!m&&"target"===a:b!==d||f!==e)&&k(i),s.toHandle=a5(b,a,f,l,c,!0)}return s}let a9=function(a,{connectionMode:b,connectionRadius:c,handleId:d,nodeId:e,edgeUpdaterType:f,isTarget:g,domNode:h,nodeLookup:i,lib:j,autoPanOnConnect:k,flowId:l,panBy:m,cancelConnection:n,onConnectStart:p,onConnect:q,onConnectEnd:r,isValidConnection:s=a7,onReconnectEnd:t,updateConnection:u,getTransform:v,getFromHandle:w,autoPanSpeed:x,dragThreshold:y=1,handleDomNode:z}){let A,B=aA(a.target),C=0,{x:D,y:E}=aD(a),F=a6(f,z),G=h?.getBoundingClientRect(),H=!1;if(!G||!F)return;let I=a5(e,F,d,i,b);if(!I)return;let J=aD(a,G),K=!1,L=null,M=!1,N=null,O={...I,nodeId:e,type:F,position:I.position},Q=i.get(e),R={inProgress:!0,isValid:null,from:aR(Q,O,o.Left,!0),fromHandle:O,fromPosition:O.position,fromNode:Q,to:J,toHandle:null,toPosition:P[O.position],toNode:null,pointer:J};function S(){H=!0,u(R),p?.(a,{nodeId:e,handleId:d,handleType:F})}function T(a){var f,h;let n;if(!H){let{x:b,y:c}=aD(a),d=b-D,e=c-E;if(!(d*d+e*e>y*y))return;S()}if(!w()||!O)return void U(a);let p=v();A=function(a,b,c,d){let e=[],f=1/0;for(let g of function(a,b,c){let d=[],e={x:a.x-c,y:a.y-c,width:2*c,height:2*c};for(let a of b.values())ai(e,ae(a))>0&&d.push(a);return d}(a,c,b+250))for(let c of[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]]){if(d.nodeId===c.nodeId&&d.type===c.type&&d.id===c.id)continue;let{x:h,y:i}=aR(g,c,c.position,!0),j=Math.sqrt(Math.pow(h-a.x,2)+Math.pow(i-a.y,2));j>b||(j<f?(e=[{...c,x:h,y:i}],f=j):j===f&&e.push({...c,x:h,y:i}))}if(!e.length)return null;if(e.length>1){let a="source"===d.type?"target":"source";return e.find(b=>b.type===a)??e[0]}return e[0]}(an(J=aD(a,G),p,!1,[1,1]),c,i,O),K||(!function a(){if(!k||!G)return;let[b,c]=aa(J,G,x);m({x:b,y:c}),C=requestAnimationFrame(a)}(),K=!0);let q=a8(a,{handle:A,connectionMode:b,fromNodeId:e,fromHandleId:d,fromType:g?"target":"source",isValidConnection:s,doc:B,lib:j,flowId:l,nodeLookup:i});N=q.handleDomNode,L=q.connection,f=!!A,h=q.isValid,n=null,h?n=!0:f&&!h&&(n=!1),M=n;let r=i.get(e),t=r?aR(r,O,o.Left,!0):R.from,z={...R,from:t,isValid:M,to:q.toHandle&&M?ao({x:q.toHandle.x,y:q.toHandle.y},p):J,toHandle:q.toHandle,toPosition:M&&q.toHandle?q.toHandle.position:P[O.position],toNode:q.toHandle?i.get(q.toHandle.nodeId):null,pointer:J};u(z),R=z}function U(a){if(!("touches"in a)||!(a.touches.length>0)){if(H){(A||N)&&L&&M&&q?.(L);let{inProgress:b,...c}=R,d={...c,toPosition:R.toHandle?R.toPosition:null};r?.(a,d),f&&t?.(a,d)}n(),cancelAnimationFrame(C),K=!1,M=!1,L=null,N=null,B.removeEventListener("mousemove",T),B.removeEventListener("mouseup",U),B.removeEventListener("touchmove",T),B.removeEventListener("touchend",U)}}0===y&&S(),B.addEventListener("mousemove",T),B.addEventListener("mouseup",U),B.addEventListener("touchmove",T),B.addEventListener("touchend",U)},ba=a=>({x:a.x,y:a.y,zoom:a.k}),bb=({x:a,y:b,zoom:c})=>H.identity.translate(a,b).scale(c),bc=(a,b)=>a.target.closest(`.${b}`),bd=(a,b)=>2===b&&Array.isArray(a)&&a.includes(2),be=a=>((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2,bf=(a,b=0,c=be,d=()=>{})=>{let e="number"==typeof b&&b>0;return e||d(),e?a.transition().duration(b).ease(c).on("end",d):a},bg=a=>{let b=a.ctrlKey&&ar()?10:1;return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*b};function bh(a){let b=a.includes("right")||a.includes("left"),c=a.includes("bottom")||a.includes("top");return{isHorizontal:b,isVertical:c,affectsX:a.includes("left"),affectsY:a.includes("top")}}function bi(a,b){return Math.max(0,b-a)}function bj(a,b){return Math.max(0,a-b)}function bk(a,b,c){return Math.max(0,b-a,a-c)}(h=p||(p={})).Line="line",h.Handle="handle";let bl={width:0,height:0,x:0,y:0},bm={...bl,pointerX:0,pointerY:0,aspectRatio:1};var bn=a.i(711822);let bo=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{c.clear()}},g=b=a(d,e,f);return f},{useDebugValue:bp}=s.default,{useSyncExternalStoreWithSelector:bq}=bn.default,br=a=>a;function bs(a,b=br,c){let d=bq(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return bp(d),d}let bt=(a,b)=>{let c=a?bo(a):bo,d=(a,d=b)=>bs(c,a,d);return Object.assign(d,c),d};function bu(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b)return!1;if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return!1;for(let[c,d]of a)if(!Object.is(d,b.get(c)))return!1;return!0}if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}let c=Object.keys(a);if(c.length!==Object.keys(b).length)return!1;for(let d of c)if(!Object.prototype.hasOwnProperty.call(b,d)||!Object.is(a[d],b[d]))return!1;return!0}a.i(41721);let bv=(0,s.createContext)(null),bw=bv.Provider,bx=((a="react")=>`Seems like you have not used ${"svelte"===a?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${a}flow.dev/error#001`)("react");function by(a,b){let c=(0,s.useContext)(bv);if(null===c)throw Error(bx);return bs(c,a,b)}function bz(){let a=(0,s.useContext)(bv);if(null===a)throw Error(bx);return(0,s.useMemo)(()=>({getState:a.getState,setState:a.setState,subscribe:a.subscribe}),[a])}let bA={display:"none"},bB={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},bC="react-flow__node-desc",bD="react-flow__edge-desc",bE=a=>a.ariaLiveMessage,bF=a=>a.ariaLabelConfig;function bG({rfId:a}){let b=by(bE);return(0,r.jsx)("div",{id:`react-flow__aria-live-${a}`,"aria-live":"assertive","aria-atomic":"true",style:bB,children:b})}function bH({rfId:a,disableKeyboardA11y:b}){let c=by(bF);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{id:`${bC}-${a}`,style:bA,children:b?c["node.a11yDescription.default"]:c["node.a11yDescription.keyboardDisabled"]}),(0,r.jsx)("div",{id:`${bD}-${a}`,style:bA,children:c["edge.a11yDescription.default"]}),!b&&(0,r.jsx)(bG,{rfId:a})]})}let bI=(0,s.forwardRef)(({position:a="top-left",children:b,className:c,style:d,...e},f)=>{let g=`${a}`.split("-");return(0,r.jsx)("div",{className:t(["react-flow__panel",c,...g]),style:d,ref:f,...e,children:b})});bI.displayName="Panel";let bJ="https://reactflow.dev?utm_source=attribution";function bK({proOptions:a,position:b="bottom-right"}){return((0,s.useEffect)(()=>{},[]),a?.hideAttribution)?null:(0,r.jsx)(bI,{position:b,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${bJ}`,children:(0,r.jsx)("a",{href:bJ,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}let bL=a=>{let b=[],c=[];for(let[,c]of a.nodeLookup)c.selected&&b.push(c.internals.userNode);for(let[,b]of a.edgeLookup)b.selected&&c.push(b);return{selectedNodes:b,selectedEdges:c}},bM=a=>a.id;function bN(a,b){return bu(a.selectedNodes.map(bM),b.selectedNodes.map(bM))&&bu(a.selectedEdges.map(bM),b.selectedEdges.map(bM))}function bO({onSelectionChange:a}){let b=bz(),{selectedNodes:c,selectedEdges:d}=by(bL,bN);return(0,s.useEffect)(()=>{let e={nodes:c,edges:d};a?.(e),b.getState().onSelectionChangeHandlers.forEach(a=>a(e))},[c,d,a]),null}let bP=a=>!!a.onSelectionChangeHandlers;function bQ({onSelectionChange:a}){let b=by(bP);return a||b?(0,r.jsx)(bO,{onSelectionChange:a}):null}let bR=[0,0],bS={x:0,y:0,zoom:1},bT=["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"],bU=a=>({setNodes:a.setNodes,setEdges:a.setEdges,setMinZoom:a.setMinZoom,setMaxZoom:a.setMaxZoom,setTranslateExtent:a.setTranslateExtent,setNodeExtent:a.setNodeExtent,reset:a.reset,setDefaultNodesAndEdges:a.setDefaultNodesAndEdges}),bV={translateExtent:L,nodeOrigin:bR,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function bW(a){let{setNodes:b,setEdges:c,setMinZoom:d,setMaxZoom:e,setTranslateExtent:f,setNodeExtent:g,reset:h,setDefaultNodesAndEdges:i}=by(bU,bu),j=bz();(0,s.useEffect)(()=>(i(a.defaultNodes,a.defaultEdges),()=>{k.current=bV,h()}),[]);let k=(0,s.useRef)(bV);return(0,s.useEffect)(()=>{for(let h of bT){let i=a[h];if(i!==k.current[h]&&void 0!==a[h])if("nodes"===h)b(i);else if("edges"===h)c(i);else if("minZoom"===h)d(i);else if("maxZoom"===h)e(i);else if("translateExtent"===h)f(i);else if("nodeExtent"===h)g(i);else if("ariaLabelConfig"===h)j.setState({ariaLabelConfig:{...N,...i||{}}});else"fitView"===h?j.setState({fitViewQueued:i}):"fitViewOptions"===h?j.setState({fitViewOptions:i}):j.setState({[h]:i})}k.current=a},bT.map(b=>a[b])),null}let bX="u">typeof document?document:null;function bY(a=null,b={target:bX,actInsideInputWithModifier:!0}){let[c,d]=(0,s.useState)(!1),e=(0,s.useRef)(!1),f=(0,s.useRef)(new Set([])),[g,h]=(0,s.useMemo)(()=>{if(null!==a){let b=(Array.isArray(a)?a:[a]).filter(a=>"string"==typeof a).map(a=>a.replace(/\+/g,"\n").replace("\n\n","\n+").split("\n")),c=b.reduce((a,b)=>a.concat(...b),[]);return[b,c]}return[[],[]]},[a]);return(0,s.useEffect)(()=>{let c=b?.target??bX,i=b?.actInsideInputWithModifier??!0;if(null!==a){let a=a=>{if(e.current=a.ctrlKey||a.metaKey||a.shiftKey||a.altKey,(!e.current||e.current&&!i)&&aC(a))return!1;let c=b$(a.code,h);if(f.current.add(a[c]),bZ(g,f.current,!1)){let c=a.composedPath?.()?.[0]||a.target,f=c?.nodeName==="BUTTON"||c?.nodeName==="A";!1!==b.preventDefault&&(e.current||!f)&&a.preventDefault(),d(!0)}},j=a=>{let b=b$(a.code,h);bZ(g,f.current,!0)?(d(!1),f.current.clear()):f.current.delete(a[b]),"Meta"===a.key&&f.current.clear(),e.current=!1},k=()=>{f.current.clear(),d(!1)};return c?.addEventListener("keydown",a),c?.addEventListener("keyup",j),window.addEventListener("blur",k),window.addEventListener("contextmenu",k),()=>{c?.removeEventListener("keydown",a),c?.removeEventListener("keyup",j),window.removeEventListener("blur",k),window.removeEventListener("contextmenu",k)}}},[a,d]),c}function bZ(a,b,c){return a.filter(a=>c||a.length===b.size).some(a=>a.every(a=>b.has(a)))}function b$(a,b){return b.includes(a)?"code":"key"}function b_(a,b){let c=[],d=new Map,e=[];for(let b of a)if("add"===b.type){e.push(b);continue}else if("remove"===b.type||"replace"===b.type)d.set(b.id,[b]);else{let a=d.get(b.id);a?a.push(b):d.set(b.id,[b])}for(let a of b){let b=d.get(a.id);if(!b){c.push(a);continue}if("remove"===b[0].type)continue;if("replace"===b[0].type){c.push({...b[0].item});continue}let e={...a};for(let a of b){var f=a,g=e;switch(f.type){case"select":g.selected=f.selected;break;case"position":void 0!==f.position&&(g.position=f.position),void 0!==f.dragging&&(g.dragging=f.dragging);break;case"dimensions":void 0!==f.dimensions&&(g.measured={...f.dimensions},f.setAttributes&&((!0===f.setAttributes||"width"===f.setAttributes)&&(g.width=f.dimensions.width),(!0===f.setAttributes||"height"===f.setAttributes)&&(g.height=f.dimensions.height))),"boolean"==typeof f.resizing&&(g.resizing=f.resizing)}}c.push(e)}return e.length&&e.forEach(a=>{void 0!==a.index?c.splice(a.index,0,{...a.item}):c.push({...a.item})}),c}function b0(a,b){return{id:a,type:"select",selected:b}}function b1(a,b=new Set,c=!1){let d=[];for(let[e,f]of a){let a=b.has(e);(void 0!==f.selected||a)&&f.selected!==a&&(c&&(f.selected=a),d.push(b0(f.id,a)))}return d}function b2({items:a=[],lookup:b}){let c=[],d=new Map(a.map(a=>[a.id,a]));for(let[d,e]of a.entries()){let a=b.get(e.id),f=a?.internals?.userNode??a;void 0!==f&&f!==e&&c.push({id:e.id,item:e,type:"replace"}),void 0===f&&c.push({item:e,type:"add",index:d})}for(let[a]of b)void 0===d.get(a)&&c.push({id:a,type:"remove"});return c}function b3(a){return{id:a.id,type:"remove"}}let b4=al("React Flow","https://reactflow.dev/"),b5=a=>!!a&&"object"==typeof a&&"id"in a&&"position"in a&&!("source"in a)&&!("target"in a);function b6(a){return(0,s.forwardRef)(a)}let b7=s.useEffect;function b8(a){let[b,c]=(0,s.useState)(BigInt(0)),[d]=(0,s.useState)(()=>{var a;let b;return a=()=>c(a=>a+BigInt(1)),b=[],{get:()=>b,reset:()=>{b=[]},push:c=>{b.push(c),a()}}});return b7(()=>{let b=d.get();b.length&&(a(b),d.reset())},[b]),d}let b9=(0,s.createContext)(null);function ca({children:a}){let b=bz(),c=b8((0,s.useCallback)(a=>{let{nodes:c=[],setNodes:d,hasDefaultNodes:e,onNodesChange:f,nodeLookup:g,fitViewQueued:h,onNodesChangeMiddlewareMap:i}=b.getState(),j=c;for(let b of a)j="function"==typeof b?b(j):b;let k=b2({items:j,lookup:g});for(let a of i.values())k=a(k);e&&d(j),k.length>0?f?.(k):h&&window.requestAnimationFrame(()=>{let{fitViewQueued:a,nodes:c,setNodes:d}=b.getState();a&&d(c)})},[])),d=b8((0,s.useCallback)(a=>{let{edges:c=[],setEdges:d,hasDefaultEdges:e,onEdgesChange:f,edgeLookup:g}=b.getState(),h=c;for(let b of a)h="function"==typeof b?b(h):b;e?d(h):f&&f(b2({items:h,lookup:g}))},[])),e=(0,s.useMemo)(()=>({nodeQueue:c,edgeQueue:d}),[]);return(0,r.jsx)(b9.Provider,{value:e,children:a})}let cb=a=>!!a.panZoom;function cc(){let a,b=(a=bz(),(0,s.useMemo)(()=>({zoomIn:async b=>{let{panZoom:c}=a.getState();return!!c&&c.scaleBy(1.2,b)},zoomOut:async b=>{let{panZoom:c}=a.getState();return!!c&&c.scaleBy(1/1.2,b)},zoomTo:async(b,c)=>{let{panZoom:d}=a.getState();return!!d&&d.scaleTo(b,c)},getZoom:()=>a.getState().transform[2],setViewport:async(b,c)=>{let{transform:[d,e,f],panZoom:g}=a.getState();return!!g&&(await g.setViewport({x:b.x??d,y:b.y??e,zoom:b.zoom??f},c),!0)},getViewport:()=>{let[b,c,d]=a.getState().transform;return{x:b,y:c,zoom:d}},setCenter:async(b,c,d)=>a.getState().setCenter(b,c,d),fitBounds:async(b,c)=>{let{width:d,height:e,minZoom:f,maxZoom:g,panZoom:h}=a.getState(),i=aq(b,d,e,f,g,c?.padding??.1);return!!h&&(await h.setViewport(i,{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),!0)},screenToFlowPosition:(b,c={})=>{let{transform:d,snapGrid:e,snapToGrid:f,domNode:g}=a.getState();if(!g)return b;let{x:h,y:i}=g.getBoundingClientRect(),j={x:b.x-h,y:b.y-i},k=c.snapGrid??e;return an(j,d,c.snapToGrid??f,k)},flowToScreenPosition:b=>{let{transform:c,domNode:d}=a.getState();if(!d)return b;let{x:e,y:f}=d.getBoundingClientRect(),g=ao(b,c);return{x:g.x+e,y:g.y+f}}}),[])),c=bz(),d=function(){let a=(0,s.useContext)(b9);if(!a)throw Error("useBatchContext must be used within a BatchProvider");return a}(),e=by(cb),f=(0,s.useMemo)(()=>{let a=a=>c.getState().nodeLookup.get(a),b=a=>{d.nodeQueue.push(a)},e=a=>{d.edgeQueue.push(a)},f=a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState(),e=b5(a)?a:b.get(a.id),f=e.parentId?av(e.position,e.measured,e.parentId,b,d):e.position;return ae({...e,position:f,width:e.measured?.width??e.width,height:e.measured?.height??e.height})},g=(a,c,d={replace:!1})=>{b(b=>b.map(b=>{if(b.id===a){let a="function"==typeof c?c(b):c;return d.replace&&b5(a)?a:{...b,...a}}return b}))},h=(a,b,c={replace:!1})=>{e(d=>d.map(d=>{if(d.id===a){let a="function"==typeof b?b(d):b;return c.replace&&Q(a)?a:{...d,...a}}return d}))};return{getNodes:()=>c.getState().nodes.map(a=>({...a})),getNode:b=>a(b)?.internals.userNode,getInternalNode:a,getEdges:()=>{let{edges:a=[]}=c.getState();return a.map(a=>({...a}))},getEdge:a=>c.getState().edgeLookup.get(a),setNodes:b,setEdges:e,addNodes:a=>{let b=Array.isArray(a)?a:[a];d.nodeQueue.push(a=>[...a,...b])},addEdges:a=>{let b=Array.isArray(a)?a:[a];d.edgeQueue.push(a=>[...a,...b])},toObject:()=>{let{nodes:a=[],edges:b=[],transform:d}=c.getState(),[e,f,g]=d;return{nodes:a.map(a=>({...a})),edges:b.map(a=>({...a})),viewport:{x:e,y:f,zoom:g}}},deleteElements:async({nodes:a=[],edges:b=[]})=>{let{nodes:d,edges:e,onNodesDelete:f,onEdgesDelete:g,triggerNodeChanges:h,triggerEdgeChanges:i,onDelete:j,onBeforeDelete:k}=c.getState(),{nodes:l,edges:m}=await X({nodesToRemove:a,edgesToRemove:b,nodes:d,edges:e,onBeforeDelete:k}),n=m.length>0,o=l.length>0;if(n){let a=m.map(b3);g?.(m),i(a)}if(o){let a=l.map(b3);f?.(l),h(a)}return(o||n)&&j?.({nodes:l,edges:m}),{deletedNodes:l,deletedEdges:m}},getIntersectingNodes:(a,b=!0,d)=>{let e=aj(a),g=e?a:f(a),h=void 0!==d;return g?(d||c.getState().nodes).filter(d=>{let f=c.getState().nodeLookup.get(d.id);if(f&&!e&&(d.id===a.id||!f.internals.positionAbsolute))return!1;let i=ae(h?d:f),j=ai(i,g);return b&&j>0||j>=i.width*i.height||j>=g.width*g.height}):[]},isNodeIntersecting:(a,b,c=!0)=>{let d=aj(a)?a:f(a);if(!d)return!1;let e=ai(d,b);return c&&e>0||e>=b.width*b.height||e>=d.width*d.height},updateNode:g,updateNodeData:(a,b,c={replace:!1})=>{g(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},updateEdge:h,updateEdgeData:(a,b,c={replace:!1})=>{h(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},getNodesBounds:a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState();return((a,b={nodeOrigin:[0,0]})=>{if(0===a.length)return{x:0,y:0,width:0,height:0};let c=!1,d=a.reduce((a,d)=>{let e="string"==typeof d,f=b.nodeLookup||e?void 0:d;return(b.nodeLookup&&(f=e?b.nodeLookup.get(d):R(d)?d:b.nodeLookup.get(d.id)),f)?(c=!0,ab(a,af(f,b.nodeOrigin))):a},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return c?ad(d):{x:0,y:0,width:0,height:0}})(a,{nodeLookup:b,nodeOrigin:d})},getHandleConnections:({type:a,id:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}-${a}${b?`-${b}`:""}`)?.values()??[]),getNodeConnections:({type:a,handleId:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}${a?b?`-${a}-${b}`:`-${a}`:""}`)?.values()??[]),fitView:async a=>{let b,e,f=c.getState().fitViewResolver??{promise:new Promise((a,c)=>{b=a,e=c}),resolve:b,reject:e};return c.setState({fitViewQueued:!0,fitViewOptions:a,fitViewResolver:f}),d.nodeQueue.push(a=>[...a]),f.promise}}},[]);return(0,s.useMemo)(()=>({...f,...b,viewportInitialized:e}),[e])}let cd=a=>a.selected,ce,cf={position:"absolute",width:"100%",height:"100%",top:0,left:0},cg=a=>({userSelectionActive:a.userSelectionActive,lib:a.lib,connectionInProgress:a.connection.inProgress});function ch({onPaneContextMenu:a,zoomOnScroll:b=!0,zoomOnPinch:c=!0,panOnScroll:d=!1,panActivationKeyPressed:e,panOnScrollSpeed:f=.5,panOnScrollMode:g=k.Free,zoomOnDoubleClick:h=!0,panOnDrag:i=!0,defaultViewport:j,translateExtent:l,minZoom:m,maxZoom:n,zoomActivationKeyCode:o,preventScrolling:p=!0,children:q,noWheelClassName:t,noPanClassName:u,onViewportChange:x,isControlledViewport:y,paneClickDistance:z,selectionOnDrag:A}){let B,C=bz(),D=(0,s.useRef)(null),{userSelectionActive:E,lib:F,connectionInProgress:H}=by(cg,bu),L=bY(o),M=(0,s.useRef)();B=bz(),(0,s.useEffect)(()=>{let a=()=>{if(!D.current||!(D.current.checkVisibility?.()??!0))return!1;let a=az(D.current);(0===a.height||0===a.width)&&B.getState().onError?.("004","The parent container needs a width and a height to render the graph."),B.setState({width:a.width||500,height:a.height||500})};if(D.current){a(),window.addEventListener("resize",a);let b=new ResizeObserver(()=>a());return b.observe(D.current),()=>{window.removeEventListener("resize",a),b&&D.current&&b.unobserve(D.current)}}},[]);let N=(0,s.useCallback)(a=>{x?.({x:a[0],y:a[1],zoom:a[2]}),y||C.setState({transform:a})},[x,y]);return(0,s.useEffect)(()=>{if(D.current){M.current=function({domNode:a,minZoom:b,maxZoom:c,translateExtent:d,viewport:e,onPanZoom:f,onPanZoomStart:g,onPanZoomEnd:h,onDraggingChange:i}){let j={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},l=a.getBoundingClientRect(),m=[[0,0],[l.width,l.height]],n="u">typeof ResizeObserver?new ResizeObserver(a=>{let b=a[0];b&&(m=[[0,0],[b.contentRect.width,b.contentRect.height]])}):null;n?.observe(a);let o=(0,G.default)().extent(()=>m).scaleExtent([b,c]).translateExtent(d),p=(0,v.select)(a).call(o);u({x:e.x,y:e.y,zoom:Y(e.zoom,b,c)},[[0,0],[l.width,l.height]],d);let q=p.on("wheel.zoom"),r=p.on("dblclick.zoom");async function s(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?K.interpolate:J.interpolateZoom).transform(bf(p,b?.duration,b?.ease,()=>c(!0)),a)})}function t(){o.on("zoom",null)}async function u(a,b,c){let d=bb(a),e=o?.constrain()(d,b,c);return e&&await s(e),e}return o.wheelDelta(bg),{update:function({noWheelClassName:a,noPanClassName:b,onPaneContextMenu:c,userSelectionActive:d,panOnScroll:e,panOnDrag:l,panOnScrollMode:m,panOnScrollSpeed:n,preventScrolling:s,zoomOnPinch:u,zoomOnScroll:v,zoomOnDoubleClick:x,panActivationKeyPressed:y=!1,zoomActivationKeyPressed:z,lib:A,onTransformChange:B,connectionInProgress:C,paneClickDistance:D,selectionOnDrag:E}){d&&!j.isZoomingOrPanning&&t();let F=e&&!z&&!d;o.clickDistance(E?1/0:!ak(D)||D<0?0:D);let G=F?function({zoomPanValues:a,noWheelClassName:b,d3Selection:c,d3Zoom:d,panOnScrollMode:e,panOnScrollSpeed:f,zoomOnPinch:g,onPanZoomStart:h,onPanZoom:i,onPanZoomEnd:j}){return l=>{if(bc(l,b))return l.ctrlKey&&l.preventDefault(),!1;l.preventDefault(),l.stopImmediatePropagation();let m=c.property("__zoom").k||1;if(l.ctrlKey&&g){let a=(0,w.pointer)(l),b=m*Math.pow(2,bg(l));d.scaleTo(c,b,a,l);return}let n=1===l.deltaMode?20:1,o=e===k.Vertical?0:l.deltaX*n,p=e===k.Horizontal?0:l.deltaY*n;!ar()&&l.shiftKey&&e!==k.Vertical&&(o=l.deltaY*n,p=0),d.translateBy(c,-(o/m)*f,-(p/m)*f,{internal:!0});let q=ba(c.property("__zoom"));clearTimeout(a.panScrollTimeout),a.isPanScrolling?i?.(l,q):(a.isPanScrolling=!0,h?.(l,q)),a.panScrollTimeout=setTimeout(()=>{j?.(l,q),a.isPanScrolling=!1},150)}}({zoomPanValues:j,noWheelClassName:a,d3Selection:p,d3Zoom:o,panOnScrollMode:m,panOnScrollSpeed:n,zoomOnPinch:u,onPanZoomStart:g,onPanZoom:f,onPanZoomEnd:h}):function({noWheelClassName:a,preventScrolling:b,d3ZoomHandler:c}){return function(d,e){let f="wheel"===d.type,g=!b&&f&&!d.ctrlKey,h=bc(d,a);if(d.ctrlKey&&f&&h&&d.preventDefault(),g||h)return null;d.preventDefault(),c.call(this,d,e)}}({noWheelClassName:a,preventScrolling:s,d3ZoomHandler:q});p.on("wheel.zoom",G,{passive:!1});let H=function({zoomPanValues:a,onDraggingChange:b,onPanZoomStart:c}){return d=>{if(d.sourceEvent?.internal)return;let e=ba(d.transform);a.mouseButton=d.sourceEvent?.button||0,a.isZoomingOrPanning=!0,a.prevViewport=e,d.sourceEvent?.type==="mousedown"&&b(!0),c&&c?.(d.sourceEvent,e)}}({zoomPanValues:j,onDraggingChange:i,onPanZoomStart:g});o.on("start",H);let I=function({zoomPanValues:a,panOnDrag:b,onPaneContextMenu:c,onTransformChange:d,onPanZoom:e}){return f=>{a.usedRightMouseButton=!!(c&&bd(b,a.mouseButton??0)),f.sourceEvent?.sync||d([f.transform.x,f.transform.y,f.transform.k]),e&&!f.sourceEvent?.internal&&e?.(f.sourceEvent,ba(f.transform))}}({zoomPanValues:j,panOnDrag:l,onPaneContextMenu:!!c,onPanZoom:f,onTransformChange:B});o.on("zoom",I);let J=function({zoomPanValues:a,panOnDrag:b,panOnScroll:c,onDraggingChange:d,onPanZoomEnd:e,onPaneContextMenu:f}){return g=>{if(!g.sourceEvent?.internal&&(a.isZoomingOrPanning=!1,f&&bd(b,a.mouseButton??0)&&!a.usedRightMouseButton&&g.sourceEvent&&f(g.sourceEvent),a.usedRightMouseButton=!1,d(!1),e)){let b=ba(g.transform);a.prevViewport=b,clearTimeout(a.timerId),a.timerId=setTimeout(()=>{e?.(g.sourceEvent,b)},150*!!c)}}}({zoomPanValues:j,panOnDrag:l,panOnScroll:e,onPaneContextMenu:c,onPanZoomEnd:h,onDraggingChange:i});o.on("end",J);let K=function({panActivationKeyPressed:a,zoomActivationKeyPressed:b,zoomOnScroll:c,zoomOnPinch:d,panOnDrag:e,panOnScroll:f,zoomOnDoubleClick:g,userSelectionActive:h,noWheelClassName:i,noPanClassName:j,lib:k,connectionInProgress:l}){return m=>{let n=b||c,o=d&&m.ctrlKey,p="wheel"===m.type;if(1===m.button&&"mousedown"===m.type&&(bc(m,`${k}-flow__node`)||bc(m,`${k}-flow__edge`)||bc(m,`${k}-flow__selection`)||bc(m,`${k}-flow__nodesselection`)))return!0;if(!e&&!n&&!f&&!g&&!d||h||l&&!p||bc(m,i)&&p||bc(m,j)&&(!p||f&&p&&!b)||!d&&m.ctrlKey&&p)return!1;if(!d&&"touchstart"===m.type&&m.touches?.length>1)return m.preventDefault(),!1;if(!n&&!f&&!o&&p||!e&&("mousedown"===m.type||"touchstart"===m.type)||Array.isArray(e)&&!e.includes(m.button)&&"mousedown"===m.type)return!1;let q=Array.isArray(e)&&e.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||p||a)&&q}}({panActivationKeyPressed:y,zoomActivationKeyPressed:z,panOnDrag:l,zoomOnScroll:v,panOnScroll:e,zoomOnDoubleClick:x,zoomOnPinch:u,userSelectionActive:d,noPanClassName:b,noWheelClassName:a,lib:A,connectionInProgress:C});o.filter(K),x?p.on("dblclick.zoom",r):p.on("dblclick.zoom",null)},destroy:t,setViewport:async function a(a,b){let c=bb(a);return await s(c,b),c},setViewportConstrained:u,getViewport:function(){let a=p?(0,I.default)(p.node()):{x:0,y:0,k:1};return{x:a.x,y:a.y,zoom:a.k}},scaleTo:async function a(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?K.interpolate:J.interpolateZoom).scaleTo(bf(p,b?.duration,b?.ease,()=>c(!0)),a)})},scaleBy:async function a(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?K.interpolate:J.interpolateZoom).scaleBy(bf(p,b?.duration,b?.ease,()=>c(!0)),a)})},setScaleExtent:function(a){o?.scaleExtent(a)},setTranslateExtent:function(a){o?.translateExtent(a)},syncViewport:function(a){if(p){let b=bb(a),c=p.property("__zoom");(c.k!==a.zoom||c.x!==a.x||c.y!==a.y)&&o?.transform(p,b,null,{sync:!0})}},setClickDistance:function(a){let b=!ak(a)||a<0?0:a;o?.clickDistance(b)}}}({domNode:D.current,minZoom:m,maxZoom:n,translateExtent:l,viewport:j,onDraggingChange:a=>C.setState(b=>b.paneDragging===a?b:{paneDragging:a}),onPanZoomStart:(a,b)=>{let{onViewportChangeStart:c,onMoveStart:d}=C.getState();d?.(a,b),c?.(b)},onPanZoom:(a,b)=>{let{onViewportChange:c,onMove:d}=C.getState();d?.(a,b),c?.(b)},onPanZoomEnd:(a,b)=>{let{onViewportChangeEnd:c,onMoveEnd:d}=C.getState();d?.(a,b),c?.(b)}});let{x:a,y:b,zoom:c}=M.current.getViewport();return C.setState({panZoom:M.current,transform:[a,b,c],domNode:D.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),(0,s.useEffect)(()=>{M.current?.update({onPaneContextMenu:a,zoomOnScroll:b,zoomOnPinch:c,panOnScroll:d,panActivationKeyPressed:e,panOnScrollSpeed:f,panOnScrollMode:g,zoomOnDoubleClick:h,panOnDrag:i,zoomActivationKeyPressed:L,preventScrolling:p,noPanClassName:u,userSelectionActive:E,noWheelClassName:t,lib:F,onTransformChange:N,connectionInProgress:H,selectionOnDrag:A,paneClickDistance:z})},[a,b,c,d,e,f,g,h,i,L,p,u,E,t,F,N,H,A,z]),(0,r.jsx)("div",{className:"react-flow__renderer",ref:D,style:cf,children:q})}let ci=a=>({userSelectionActive:a.userSelectionActive,userSelectionRect:a.userSelectionRect});function cj(){let{userSelectionActive:a,userSelectionRect:b}=by(ci,bu);return a&&b?(0,r.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:b.width,height:b.height,transform:`translate(${b.x}px, ${b.y}px)`}}):null}let ck=(a,b)=>c=>{c.target===b.current&&a?.(c)},cl=a=>({userSelectionActive:a.userSelectionActive,elementsSelectable:a.elementsSelectable,dragging:a.paneDragging,panBy:a.panBy,autoPanSpeed:a.autoPanSpeed});function cm({isSelecting:a,selectionKeyPressed:b,selectionMode:c=l.Full,panOnDrag:d,autoPanOnSelection:e,paneClickDistance:f,selectionOnDrag:g,onSelectionStart:h,onSelectionEnd:i,onPaneClick:j,onPaneContextMenu:k,onPaneScroll:m,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:p,children:q}){let u=(0,s.useRef)(0),v=bz(),{userSelectionActive:w,elementsSelectable:x,dragging:y,panBy:z,autoPanSpeed:A}=by(cl,bu),B=x&&(a||w),C=(0,s.useRef)(null),D=(0,s.useRef)(),E=(0,s.useRef)(new Set),F=(0,s.useRef)(new Set),G=(0,s.useRef)(!1),H=(0,s.useRef)(!1),I=(0,s.useRef)({x:0,y:0}),J=(0,s.useRef)(!1),K=a=>{if(H.current||G.current||v.getState().connection.inProgress){H.current=!1,G.current=!1;return}j?.(a),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})};function L(a,b){let{userSelectionRect:d}=v.getState();if(!d)return;let{transform:e,nodeLookup:f,edgeLookup:g,connectionLookup:h,triggerNodeChanges:i,triggerEdgeChanges:j,defaultEdgeOptions:k}=v.getState(),m={x:d.startX,y:d.startY},{x:n,y:o}=ao(m,e),p={startX:m.x,startY:m.y,x:a<n?a:n,y:b<o?b:o,width:Math.abs(a-n),height:Math.abs(b-o)},q=E.current,r=F.current;E.current=new Set(U(f,p,e,c===l.Partial,!0).map(a=>a.id)),F.current=new Set;let s=k?.selectable??!0;for(let a of E.current){let b=h.get(a);if(b)for(let{edgeId:a}of b.values()){let b=g.get(a);b&&(b.selectable??s)&&F.current.add(a)}}aw(q,E.current)||i(b1(f,E.current,!0)),aw(r,F.current)||j(b1(g,F.current)),v.setState({userSelectionRect:p,userSelectionActive:!0,nodesSelectionActive:!1})}let M=()=>{cancelAnimationFrame(u.current),u.current=0,J.current=!1};(0,s.useEffect)(()=>()=>M(),[]);let N=!0===d||Array.isArray(d)&&d.includes(0);return(0,r.jsxs)("div",{className:t(["react-flow__pane",{draggable:N,dragging:y,selection:a}]),onClick:B?void 0:ck(K,C),onContextMenu:ck(a=>{Array.isArray(d)&&d?.includes(2)?a.preventDefault():k?.(a)},C),onWheel:ck(m?a=>m(a):void 0,C),onPointerEnter:B?void 0:n,onPointerMove:B?a=>{let{userSelectionRect:c,transform:d,resetSelectedElements:g}=v.getState();if(!D.current||!c)return;let{x:i,y:j}=aD(a.nativeEvent,D.current);I.current={x:i,y:j};let k=ao({x:c.startX,y:c.startY},d);if(!H.current){if(Math.hypot(i-k.x,j-k.y)<=(b?0:f))return;g(),h?.(a)}H.current=!0,J.current||(!function a(){if(!e||!D.current)return;let[b,c]=aa(I.current,D.current,A);z({x:b,y:c}).then(b=>{if(!H.current||!b){u.current=requestAnimationFrame(a);return}let{x:c,y:d}=I.current;L(c,d),u.current=requestAnimationFrame(a)})}(),J.current=!0),L(i,j)}:o,onPointerUp:a=>{if(!B){a.target===C.current&&v.getState().connection.inProgress&&(G.current=!0);return}0===a.button&&(a.target?.releasePointerCapture?.(a.pointerId),!w&&a.target===C.current&&v.getState().userSelectionRect&&K?.(a),v.setState({userSelectionActive:!1,userSelectionRect:null}),H.current&&(i?.(a),v.setState({nodesSelectionActive:E.current.size>0})),M())},onPointerCancel:B?a=>{a.target?.releasePointerCapture?.(a.pointerId),M()}:void 0,onPointerDownCapture:B?c=>{if("touch"===c.pointerType&&!1!==d&&!b)return;let{domNode:e,transform:f}=v.getState();if(D.current=e?.getBoundingClientRect(),!D.current)return;let h=c.target===C.current;if(!h&&c.target.closest(".nokey")||!a||!(g&&h||b)||0!==c.button||!c.isPrimary)return;c.target?.setPointerCapture?.(c.pointerId),H.current=!1;let{x:i,y:j}=aD(c.nativeEvent,D.current),k=an({x:i,y:j},f);v.setState({userSelectionRect:{width:0,height:0,startX:k.x,startY:k.y,x:i,y:j}}),h||(c.stopPropagation(),c.preventDefault())}:void 0,onClickCapture:B?a=>{H.current&&(a.stopPropagation(),H.current=!1)}:void 0,onPointerLeave:p,ref:C,style:cf,children:[q,(0,r.jsx)(cj,{})]})}function cn({id:a,store:b,unselect:c=!1,nodeRef:d}){let e,{addSelectedNodes:f,unselectNodesAndEdges:g,multiSelectionActive:h,nodeLookup:i,onError:j}=b.getState(),k=i.get(a);k?(b.setState({nodesSelectionActive:!1}),k.selected?(c||k.selected&&h)&&(g({nodes:[k],edges:[]}),requestAnimationFrame(()=>d?.current?.blur())):f([a])):j?.("012",(e=a,`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function co({nodeRef:a,disabled:b=!1,noDragClassName:c,handleSelector:d,nodeId:e,isSelectable:f,nodeClickDistance:g}){let h=bz(),[i,j]=(0,s.useState)(!1),k=(0,s.useRef)();return(0,s.useEffect)(()=>{if(!b)return k.current=function({onNodeMouseDown:a,getStoreItems:b,onDragStart:c,onDrag:d,onDragStop:e}){let f={x:null,y:null},g=0,h=new Map,i=!1,j={x:0,y:0},k=null,l=!1,m=null,n=!1,o=!1,p=null;return{update:function({noDragClassName:q,handleSelector:r,domNode:s,isSelectable:t,nodeId:u,nodeClickDistance:w=0}){function x({x:a,y:c}){let{nodeLookup:e,nodeExtent:g,snapGrid:i,snapToGrid:j,nodeOrigin:k,onNodeDrag:l,onSelectionDrag:m,onError:n,updateNodePositions:q}=b();f={x:a,y:c};let r=!1,s=h.size>1,t=s&&g?ac(T(h)):null,v=s&&j?function({dragItems:a,snapGrid:b,x:c,y:d}){let e=a.values().next().value;if(!e)return null;let f={x:c-e.distance.x,y:d-e.distance.y},g=am(f,b);return{x:g.x-f.x,y:g.y-f.y}}({dragItems:h,snapGrid:i,x:a,y:c}):null;for(let[b,d]of h){if(!e.has(b))continue;let f={x:a-d.distance.x,y:c-d.distance.y};j&&(f=v?{x:Math.round(f.x+v.x),y:Math.round(f.y+v.y)}:am(f,i));let h=null;if(s&&g&&!d.extent&&t){let{positionAbsolute:a}=d.internals,b=a.x-t.x+g[0][0],c=a.x+d.measured.width-t.x2+g[1][0];h=[[b,a.y-t.y+g[0][1]],[c,a.y+d.measured.height-t.y2+g[1][1]]]}let{position:l,positionAbsolute:m}=W({nodeId:b,nextPosition:f,nodeLookup:e,nodeExtent:h||g,nodeOrigin:k,onError:n});r=r||d.position.x!==l.x||d.position.y!==l.y,d.position=l,d.internals.positionAbsolute=m}if(o=o||r,r&&(q(h,!0),p&&(d||l||!u&&m))){let[a,b]=a4({nodeId:u,dragItems:h,nodeLookup:e});d?.(p,h,a,b),l?.(p,a,b),u||m?.(p,b)}}async function y(){if(!k)return;let{transform:a,panBy:c,autoPanSpeed:d,autoPanOnNodeDrag:e}=b();if(!e){i=!1,cancelAnimationFrame(g);return}let[h,l]=aa(j,k,d);(0!==h||0!==l)&&(f.x=(f.x??0)-h/a[2],f.y=(f.y??0)-l/a[2],await c({x:h,y:l})&&x(f)),g=requestAnimationFrame(y)}function z(d){let{nodeLookup:e,multiSelectionActive:g,nodesDraggable:i,transform:j,snapGrid:m,snapToGrid:n,selectNodesOnDrag:o,onNodeDragStart:p,onSelectionDragStart:q,unselectNodesAndEdges:r}=b();l=!0,o&&t||g||!u||e.get(u)?.selected||r(),t&&o&&u&&a?.(u);let s=ay(d.sourceEvent,{transform:j,snapGrid:m,snapToGrid:n,containerBounds:k});if(f=s,(h=function(a,b,c,d){let e=new Map;for(let[f,g]of a)if((g.selected||g.id===d)&&(!g.parentId||!function a(b,c){if(!b.parentId)return!1;let d=c.get(b.parentId);return!!d&&(!!d.selected||a(d,c))}(g,a))&&(g.draggable||b&&void 0===g.draggable)){let b=a.get(f);b&&e.set(f,{id:f,position:b.position||{x:0,y:0},distance:{x:c.x-b.internals.positionAbsolute.x,y:c.y-b.internals.positionAbsolute.y},extent:b.extent,parentId:b.parentId,origin:b.origin,expandParent:b.expandParent,internals:{positionAbsolute:b.internals.positionAbsolute||{x:0,y:0}},measured:{width:b.measured.width??0,height:b.measured.height??0}})}return e}(e,i,s,u)).size>0&&(c||p||!u&&q)){let[a,b]=a4({nodeId:u,dragItems:h,nodeLookup:e});c?.(d.sourceEvent,h,a,b),p?.(d.sourceEvent,a,b),u||q?.(d.sourceEvent,b)}}m=(0,v.select)(s);let A=F().clickDistance(w).on("start",a=>{let{domNode:c,nodeDragThreshold:d,transform:e,snapGrid:g,snapToGrid:h}=b();k=c?.getBoundingClientRect()||null,n=!1,o=!1,p=a.sourceEvent,0===d&&z(a),f=ay(a.sourceEvent,{transform:e,snapGrid:g,snapToGrid:h,containerBounds:k}),j=aD(a.sourceEvent,k)}).on("drag",a=>{let{autoPanOnNodeDrag:c,transform:d,snapGrid:e,snapToGrid:g,nodeDragThreshold:m,nodeLookup:o}=b(),q=ay(a.sourceEvent,{transform:d,snapGrid:e,snapToGrid:g,containerBounds:k});if(p=a.sourceEvent,("touchmove"===a.sourceEvent.type&&a.sourceEvent.touches.length>1||u&&!o.has(u))&&(n=!0),!n){if(!i&&c&&l&&(i=!0,y()),!l){let b=aD(a.sourceEvent,k),c=b.x-j.x,d=b.y-j.y;Math.sqrt(c*c+d*d)>m&&z(a)}(f.x!==q.xSnapped||f.y!==q.ySnapped)&&h&&l&&(j=aD(a.sourceEvent,k),x(q))}}).on("end",a=>{if(!l||n){n&&h.size>0&&b().updateNodePositions(h,!1);return}if(i=!1,l=!1,cancelAnimationFrame(g),h.size>0){let{nodeLookup:c,updateNodePositions:d,onNodeDragStop:f,onSelectionDragStop:g}=b();if(o&&(d(h,!1),o=!1),e||f||!u&&g){let[b,d]=a4({nodeId:u,dragItems:h,nodeLookup:c,dragging:!1});e?.(a.sourceEvent,h,b,d),f?.(a.sourceEvent,b,d),u||g?.(a.sourceEvent,d)}}}).filter(a=>{let b=a.target;return!a.button&&(!q||!a3(b,`.${q}`,s))&&(!r||a3(b,r,s))});m.call(A)},destroy:function(){m?.on(".drag",null)}}}({getStoreItems:()=>h.getState(),onNodeMouseDown:b=>{cn({id:b,store:h,nodeRef:a})},onDragStart:()=>{j(!0)},onDragStop:()=>{j(!1)}}),()=>{k.current?.destroy(),k.current=void 0}},[b,h,a]),(0,s.useEffect)(()=>{!b&&a.current&&k.current&&k.current.update({noDragClassName:c,handleSelector:d,domNode:a.current,isSelectable:f,nodeId:e,nodeClickDistance:g})},[c,d,b,f,a,e,g]),i}function cp(){let a=bz();return(0,s.useCallback)(b=>{let{nodeExtent:c,snapToGrid:d,snapGrid:e,nodesDraggable:f,onError:g,updateNodePositions:h,nodeLookup:i,nodeOrigin:j}=a.getState(),k=new Map,l=a=>a.selected&&(a.draggable||f&&void 0===a.draggable),m=d?e[0]:5,n=d?e[1]:5,o=b.direction.x*m*b.factor,p=b.direction.y*n*b.factor;for(let[,a]of i){if(!l(a))continue;let b={x:a.internals.positionAbsolute.x+o,y:a.internals.positionAbsolute.y+p};d&&(b=am(b,e));let{position:f,positionAbsolute:h}=W({nodeId:a.id,nextPosition:b,nodeLookup:i,nodeExtent:c,nodeOrigin:j,onError:g});a.position=f,a.internals.positionAbsolute=h,k.set(a.id,a)}h(k)},[])}let cq=(0,s.createContext)(null),cr=cq.Provider;cq.Consumer;let cs=()=>(0,s.useContext)(cq),ct=a=>({connectOnClick:a.connectOnClick,noPanClassName:a.noPanClassName,rfId:a.rfId}),cu=(0,s.createContext)(null);function cv({children:a}){let b=by(ct,bu);return(0,r.jsx)(cu.Provider,{value:b,children:a})}let cw={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},cx=(0,s.memo)(b6(function({type:a="source",position:b=o.Top,isValidConnection:c,isConnectable:d=!0,isConnectableStart:e=!0,isConnectableEnd:f=!0,id:g,onConnect:h,children:i,className:k,onMouseDown:l,onTouchStart:m,...n},p){let q=g||null,u="target"===a,v=bz(),w=cs(),{connectOnClick:x,noPanClassName:y,rfId:z}=function(){let a=(0,s.useContext)(cu);if(!a)throw Error("useHandleConfig must be used within a HandleConfigProvider");return a}(),{connectingFrom:A,connectingTo:B,clickConnecting:C,isPossibleEndHandle:D,connectionInProcess:E,clickConnectionInProcess:F,valid:G}=by(b=>{let{connectionClickStartHandle:c,connectionMode:d,connection:e}=b,{fromHandle:f,toHandle:g,isValid:h}=e;if(!f&&!c)return cw;let i=g?.nodeId===w&&g?.id===q&&g?.type===a;return{connectingFrom:f?.nodeId===w&&f?.id===q&&f?.type===a,connectingTo:i,clickConnecting:c?.nodeId===w&&c?.id===q&&c?.type===a,isPossibleEndHandle:d===j.Strict?f?.type!==a:w!==f?.nodeId||q!==f?.id,connectionInProcess:!!f,clickConnectionInProcess:!!c,valid:i&&h}},bu);w||v.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let H=a=>{let{defaultEdgeOptions:b,onConnect:c,hasDefaultEdges:d}=v.getState(),e={...b,...a};if(d){let{edges:a,setEdges:b,onError:c}=v.getState();b(function(a,b,c={}){return((a,b,c={})=>{let d,e;if(!a.source||!a.target)return c.onError?.("006","Can't create edge. An edge needs a source and a target."),b;let f=c.getEdgeId||aK;return(e=d=Q(a)?{...a}:{...a,id:f(a)},b.some(a=>a.source===e.source&&a.target===e.target&&(a.sourceHandle===e.sourceHandle||!a.sourceHandle&&!e.sourceHandle)&&(a.targetHandle===e.targetHandle||!a.targetHandle&&!e.targetHandle)))?b:(null===d.sourceHandle&&delete d.sourceHandle,null===d.targetHandle&&delete d.targetHandle,b.concat(d))})(a,b,{...c,onError:c.onError??b4})}(e,a,{onError:c}))}c?.(e),h?.(e)},I=a=>{if(!w)return;let b="clientX"in a.nativeEvent;if(e&&(b&&0===a.button||!b)){let b=v.getState();a9(a.nativeEvent,{handleDomNode:a.currentTarget,autoPanOnConnect:b.autoPanOnConnect,connectionMode:b.connectionMode,connectionRadius:b.connectionRadius,domNode:b.domNode,nodeLookup:b.nodeLookup,lib:b.lib,isTarget:u,handleId:q,nodeId:w,flowId:b.rfId,panBy:b.panBy,cancelConnection:b.cancelConnection,onConnectStart:b.onConnectStart,onConnectEnd:(...a)=>v.getState().onConnectEnd?.(...a),updateConnection:b.updateConnection,onConnect:H,isValidConnection:c||((...a)=>v.getState().isValidConnection?.(...a)??!0),getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:b.autoPanSpeed,dragThreshold:b.connectionDragThreshold})}b?l?.(a):m?.(a)};return(0,r.jsx)("div",{"data-handleid":q,"data-nodeid":w,"data-handlepos":b,"data-id":`${z}-${w}-${q}-${a}`,className:t(["react-flow__handle",`react-flow__handle-${b}`,"nodrag",y,k,{source:!u,target:u,connectable:d,connectablestart:e,connectableend:f,clickconnecting:C,connectingfrom:A,connectingto:B,valid:G,connectionindicator:d&&(!E||D)&&(E||F?f:e)}]),onMouseDown:I,onTouchStart:I,onClick:x?b=>{let{onClickConnectStart:d,onClickConnectEnd:f,connectionClickStartHandle:g,connectionMode:h,isValidConnection:i,lib:j,rfId:k,nodeLookup:l,connection:m}=v.getState();if(!w||!g&&!e)return;if(!g){d?.(b.nativeEvent,{nodeId:w,handleId:q,handleType:a}),v.setState({connectionClickStartHandle:{nodeId:w,type:a,id:q}});return}let n=aA(b.target),o=c||i,{connection:p,isValid:r}=a8(b.nativeEvent,{handle:{nodeId:w,id:q,type:a},connectionMode:h,fromNodeId:g.nodeId,fromHandleId:g.id||null,fromType:g.type,isValidConnection:o,flowId:k,doc:n,lib:j,nodeLookup:l});r&&p&&H(p);let s=structuredClone(m);delete s.inProgress,s.toPosition=s.toHandle?s.toHandle.position:null,f?.(b,s),v.setState({connectionClickStartHandle:null})}:void 0,ref:p,...n,children:i})})),cy={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},cz={input:function({data:a,isConnectable:b,sourcePosition:c=o.Bottom}){return(0,r.jsxs)(r.Fragment,{children:[a?.label,(0,r.jsx)(cx,{type:"source",position:c,isConnectable:b})]})},default:function({data:a,isConnectable:b,targetPosition:c=o.Top,sourcePosition:d=o.Bottom}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cx,{type:"target",position:c,isConnectable:b}),a?.label,(0,r.jsx)(cx,{type:"source",position:d,isConnectable:b})]})},output:function({data:a,isConnectable:b,targetPosition:c=o.Top}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cx,{type:"target",position:c,isConnectable:b}),a?.label]})},group:function(){return null}},cA=a=>{let{width:b,height:c,x:d,y:e}=T(a.nodeLookup,{filter:a=>!!a.selected});return{width:ak(b)?b:null,height:ak(c)?c:null,userSelectionActive:a.userSelectionActive,transformString:`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]}) translate(${d}px,${e}px)`}};function cB({onSelectionContextMenu:a,noPanClassName:b,disableKeyboardA11y:c}){let d=bz(),{width:e,height:f,transformString:g,userSelectionActive:h}=by(cA,bu),i=cp(),j=(0,s.useRef)(null);(0,s.useEffect)(()=>{c||j.current?.focus({preventScroll:!0})},[c]);let k=!h&&null!==e&&null!==f;if(co({nodeRef:j,disabled:!k}),!k)return null;let l=a?b=>{a(b,d.getState().nodes.filter(a=>a.selected))}:void 0;return(0,r.jsx)("div",{className:t(["react-flow__nodesselection","react-flow__container",b]),style:{transform:g},children:(0,r.jsx)("div",{ref:j,className:"react-flow__nodesselection-rect",onContextMenu:l,tabIndex:c?void 0:-1,onKeyDown:c?void 0:a=>{Object.prototype.hasOwnProperty.call(cy,a.key)&&(a.preventDefault(),i({direction:cy[a.key],factor:a.shiftKey?4:1}))},style:{width:e,height:f}})})}let cC,cD=a=>({nodesSelectionActive:a.nodesSelectionActive,userSelectionActive:a.userSelectionActive});function cE({children:a,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,paneClickDistance:h,deleteKeyCode:i,selectionKeyCode:j,selectionOnDrag:k,selectionMode:l,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:o,panActivationKeyCode:p,zoomActivationKeyCode:q,elementsSelectable:t,zoomOnScroll:u,zoomOnPinch:v,panOnScroll:w,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:A,autoPanOnSelection:B,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,preventScrolling:G,onSelectionContextMenu:H,noWheelClassName:I,noPanClassName:J,disableKeyboardA11y:K,onViewportChange:L,isControlledViewport:M}){let{nodesSelectionActive:N,userSelectionActive:O}=by(cD,bu),P=bY(j,{target:cC}),Q=bY(p,{target:cC}),R=Q||A,S=Q||w,T=k&&!0!==R,U=P||O||T;return!function({deleteKeyCode:a,multiSelectionKeyCode:b}){let c=bz(),{deleteElements:d}=cc(),e=bY(a,{actInsideInputWithModifier:!1}),f=bY(b,{target:ce});(0,s.useEffect)(()=>{if(e){let{edges:a,nodes:b}=c.getState();d({nodes:b.filter(cd),edges:a.filter(cd)}),c.setState({nodesSelectionActive:!1})}},[e]),(0,s.useEffect)(()=>{c.setState({multiSelectionActive:f})},[f])}({deleteKeyCode:i,multiSelectionKeyCode:o}),(0,r.jsx)(ch,{onPaneContextMenu:f,elementsSelectable:t,zoomOnScroll:u,zoomOnPinch:v,panOnScroll:S,panActivationKeyPressed:Q,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:!P&&R,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,zoomActivationKeyCode:q,preventScrolling:G,noWheelClassName:I,noPanClassName:J,onViewportChange:L,isControlledViewport:M,paneClickDistance:h,selectionOnDrag:T,children:(0,r.jsxs)(cm,{onSelectionStart:m,onSelectionEnd:n,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,panOnDrag:R,autoPanOnSelection:B,isSelecting:!!U,selectionMode:l,selectionKeyPressed:P,paneClickDistance:h,selectionOnDrag:T,children:[a,N&&(0,r.jsx)(cB,{onSelectionContextMenu:H,noPanClassName:J,disableKeyboardA11y:K})]})})}cE.displayName="FlowRenderer";let cF=(0,s.memo)(cE),cG=a=>a.updateNodeInternals;var cH=(0,s.memo)(function({id:a,onClick:b,onMouseEnter:c,onMouseMove:d,onMouseLeave:e,onContextMenu:f,onDoubleClick:g,nodesDraggable:h,elementsSelectable:i,nodesConnectable:j,nodesFocusable:k,resizeObserver:l,noDragClassName:m,noPanClassName:n,disableKeyboardA11y:o,rfId:p,nodeTypes:q,nodeClickDistance:u,onError:v}){let w,{node:x,internals:y,isParent:z}=by(b=>{let c=b.nodeLookup.get(a),d=b.parentLookup.has(a);return{node:c,internals:c.internals,isParent:d}},bu),A=x.type||"default",B=q?.[A]||cz[A];void 0===B&&(v?.("003",(w=A,`Node type "${w}" not found. Using fallback type "default".`)),A="default",B=q?.default||cz.default);let C=!!(x.draggable||h&&void 0===x.draggable),D=!!(x.selectable||i&&void 0===x.selectable),E=!!(x.connectable||j&&void 0===x.connectable),F=!!(x.focusable||k&&void 0===x.focusable),G=bz(),H=au(x),I=function({node:a,nodeType:b,hasDimensions:c,resizeObserver:d}){let e=bz(),f=(0,s.useRef)(null),g=(0,s.useRef)(null),h=(0,s.useRef)(a.sourcePosition),i=(0,s.useRef)(a.targetPosition),j=(0,s.useRef)(b),k=c&&!!a.internals.handleBounds;return(0,s.useEffect)(()=>{!f.current||a.hidden||k&&g.current===f.current||(g.current&&d?.unobserve(g.current),d?.observe(f.current),g.current=f.current)},[k,a.hidden]),(0,s.useEffect)(()=>()=>{g.current&&(d?.unobserve(g.current),g.current=null)},[]),(0,s.useEffect)(()=>{if(f.current){let c=j.current!==b,d=h.current!==a.sourcePosition,g=i.current!==a.targetPosition;(c||d||g)&&(j.current=b,h.current=a.sourcePosition,i.current=a.targetPosition,e.getState().updateNodeInternals(new Map([[a.id,{id:a.id,nodeElement:f.current,force:!0}]])))}},[a.id,b,a.sourcePosition,a.targetPosition]),f}({node:x,nodeType:A,hasDimensions:H,resizeObserver:l}),J=co({nodeRef:I,disabled:x.hidden||!C,noDragClassName:m,handleSelector:x.dragHandle,nodeId:a,isSelectable:D,nodeClickDistance:u}),K=cp();if(x.hidden)return null;let L=at(x),N=void 0===x.internals.handleBounds?{width:x.width??x.initialWidth??x.style?.width,height:x.height??x.initialHeight??x.style?.height}:{width:x.width??x.style?.width,height:x.height??x.style?.height},O=D||C||b||c||d||e,P=c?a=>c(a,{...y.userNode}):void 0,Q=d?a=>d(a,{...y.userNode}):void 0,R=e?a=>e(a,{...y.userNode}):void 0,S=f?a=>f(a,{...y.userNode}):void 0,T=g?a=>g(a,{...y.userNode}):void 0;return(0,r.jsx)("div",{className:t(["react-flow__node",`react-flow__node-${A}`,{[n]:C},x.className,{selected:x.selected,selectable:D,parent:z,draggable:C,dragging:J}]),ref:I,style:{zIndex:y.z,transform:`translate(${y.positionAbsolute.x}px,${y.positionAbsolute.y}px)`,pointerEvents:O?"all":"none",visibility:H?"visible":"hidden",...x.style,...N},"data-id":a,"data-testid":`rf__node-${a}`,onMouseEnter:P,onMouseMove:Q,onMouseLeave:R,onContextMenu:S,onClick:c=>{let{selectNodesOnDrag:d,nodeDragThreshold:e}=G.getState();D&&(!d||!C||e>0)&&cn({id:a,store:G,nodeRef:I}),b&&b(c,{...y.userNode})},onDoubleClick:T,onKeyDown:F?b=>{if(!aC(b.nativeEvent)&&!o){if(M.includes(b.key)&&D)cn({id:a,store:G,unselect:"Escape"===b.key,nodeRef:I});else if(C&&x.selected&&Object.prototype.hasOwnProperty.call(cy,b.key)){b.preventDefault();let{ariaLabelConfig:a}=G.getState();G.setState({ariaLiveMessage:a["node.a11yDescription.ariaLiveMessage"]({direction:b.key.replace("Arrow","").toLowerCase(),x:~~y.positionAbsolute.x,y:~~y.positionAbsolute.y})}),K({direction:cy[b.key],factor:b.shiftKey?4:1})}}}:void 0,tabIndex:F?0:void 0,onFocus:F?()=>{if(o||!I.current?.matches(":focus-visible"))return;let{transform:b,width:c,height:d,autoPanOnNodeFocus:e,setCenter:f}=G.getState();!e||U(new Map([[a,x]]),{x:0,y:0,width:c,height:d},b,!0).length>0||f(x.position.x+L.width/2,x.position.y+L.height/2,{zoom:b[2]})}:void 0,role:x.ariaRole??(F?"group":void 0),"aria-roledescription":"node","aria-describedby":o?void 0:`${bC}-${p}`,"aria-label":x.ariaLabel,...x.domAttributes,children:(0,r.jsx)(cr,{value:a,children:(0,r.jsx)(B,{id:a,data:x.data,type:A,positionAbsoluteX:y.positionAbsolute.x,positionAbsoluteY:y.positionAbsolute.y,selected:x.selected??!1,selectable:D,draggable:C,deletable:x.deletable??!0,isConnectable:E,sourcePosition:x.sourcePosition,targetPosition:x.targetPosition,dragging:J,dragHandle:x.dragHandle,zIndex:y.z,parentId:x.parentId,...L})})})});let cI=a=>({nodesConnectable:a.nodesConnectable,nodesFocusable:a.nodesFocusable,elementsSelectable:a.elementsSelectable,onError:a.onError});function cJ(a){var b;let{nodesConnectable:c,nodesFocusable:d,elementsSelectable:e,onError:f}=by(cI,bu),g=(b=a.onlyRenderVisibleElements,by((0,s.useCallback)(a=>b?U(a.nodeLookup,{x:0,y:0,width:a.width,height:a.height},a.transform,!0).map(a=>a.id):Array.from(a.nodeLookup.keys()),[b]),bu)),h=function(){let a=by(cG),[b]=(0,s.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(b=>{let c=new Map;b.forEach(a=>{let b=a.target.getAttribute("data-id");c.set(b,{id:b,nodeElement:a.target,force:!0})}),a(c)}));return(0,s.useEffect)(()=>()=>{b?.disconnect()},[b]),b}();return(0,r.jsx)("div",{className:"react-flow__nodes",style:cf,children:g.map(b=>(0,r.jsx)(cH,{id:b,nodeTypes:a.nodeTypes,nodeExtent:a.nodeExtent,onClick:a.onNodeClick,onMouseEnter:a.onNodeMouseEnter,onMouseMove:a.onNodeMouseMove,onMouseLeave:a.onNodeMouseLeave,onContextMenu:a.onNodeContextMenu,onDoubleClick:a.onNodeDoubleClick,noDragClassName:a.noDragClassName,noPanClassName:a.noPanClassName,rfId:a.rfId,disableKeyboardA11y:a.disableKeyboardA11y,resizeObserver:h,nodesDraggable:a.nodesDraggable??!0,nodesConnectable:c,nodesFocusable:d,elementsSelectable:e,nodeClickDistance:a.nodeClickDistance,onError:f},b))})}cJ.displayName="NodeRenderer";let cK=(0,s.memo)(cJ),cL={[n.Arrow]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a}};return(0,r.jsx)("polyline",{className:"arrow",style:c,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[n.ArrowClosed]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a,fill:a}};return(0,r.jsx)("polyline",{className:"arrowclosed",style:c,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},cM=({id:a,type:b,color:c,width:d=12.5,height:e=12.5,markerUnits:f="strokeWidth",strokeWidth:g,orient:h="auto-start-reverse"})=>{let i,j=(i=bz(),(0,s.useMemo)(()=>{let a;return Object.prototype.hasOwnProperty.call(cL,b)?cL[b]:(i.getState().onError?.("009",(a=b,`Marker type "${a}" doesn't exist.`)),null)},[b]));return j?(0,r.jsx)("marker",{className:"react-flow__arrowhead",id:a,markerWidth:`${d}`,markerHeight:`${e}`,viewBox:"-10 -10 20 20",markerUnits:f,orient:h,refX:"0",refY:"0",children:(0,r.jsx)(j,{color:c,strokeWidth:g})}):null},cN=({defaultColor:a,rfId:b})=>{let c=by(a=>a.edges),d=by(a=>a.defaultEdgeOptions),e=(0,s.useMemo)(()=>(function(a,{id:b,defaultColor:c,defaultMarkerStart:d,defaultMarkerEnd:e}){let f=new Set;return a.reduce((a,g)=>([g.markerStart||d,g.markerEnd||e].forEach(d=>{if(d&&"object"==typeof d){let e=aT(d,b);f.has(e)||(a.push({id:e,color:d.color||c,...d}),f.add(e))}}),a),[]).sort((a,b)=>a.id.localeCompare(b.id))})(c,{id:b,defaultColor:a,defaultMarkerStart:d?.markerStart,defaultMarkerEnd:d?.markerEnd}),[c,d,b,a]);return e.length?(0,r.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,r.jsx)("defs",{children:e.map(a=>(0,r.jsx)(cM,{id:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient},a.id))})}):null};cN.displayName="MarkerDefinitions";var cO=(0,s.memo)(cN);function cP({x:a,y:b,label:c,labelStyle:d,labelShowBg:e=!0,labelBgStyle:f,labelBgPadding:g=[2,4],labelBgBorderRadius:h=2,children:i,className:j,...k}){let[l,m]=(0,s.useState)({x:1,y:0,width:0,height:0}),n=t(["react-flow__edge-textwrapper",j]),o=(0,s.useRef)(null);return((0,s.useEffect)(()=>{if(o.current){let a=o.current.getBBox();m({x:a.x,y:a.y,width:a.width,height:a.height})}},[c]),c)?(0,r.jsxs)("g",{transform:`translate(${a-l.width/2} ${b-l.height/2})`,className:n,visibility:l.width?"visible":"hidden",...k,children:[e&&(0,r.jsx)("rect",{width:l.width+2*g[0],x:-g[0],y:-g[1],height:l.height+2*g[1],className:"react-flow__edge-textbg",style:f,rx:h,ry:h}),(0,r.jsx)("text",{className:"react-flow__edge-text",y:l.height/2,dy:"0.3em",ref:o,style:d,children:c}),i]}):null}cP.displayName="EdgeText";let cQ=(0,s.memo)(cP);function cR({path:a,labelX:b,labelY:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i,interactionWidth:j=20,...k}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{...k,d:a,fill:"none",className:t(["react-flow__edge-path",k.className])}),j?(0,r.jsx)("path",{d:a,fill:"none",strokeOpacity:0,strokeWidth:j,className:"react-flow__edge-interaction"}):null,d&&ak(b)&&ak(c)?(0,r.jsx)(cQ,{x:b,y:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i}):null]})}function cS({pos:a,x1:b,y1:c,x2:d,y2:e}){return a===o.Left||a===o.Right?[.5*(b+d),c]:[b,.5*(c+e)]}function cT({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top}){let[g,h]=cS({pos:c,x1:a,y1:b,x2:d,y2:e}),[i,j]=cS({pos:f,x1:d,y1:e,x2:a,y2:b}),[k,l,m,n]=aF({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:g,sourceControlY:h,targetControlX:i,targetControlY:j});return[`M${a},${b} C${g},${h} ${i},${j} ${d},${e}`,k,l,m,n]}function cU(a){return(0,s.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g,targetPosition:h,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:s})=>{let[t,u,v]=cT({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h}),w=a.isInternal?void 0:b;return(0,r.jsx)(cR,{id:w,path:t,labelX:u,labelY:v,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:s})})}let cV=cU({isInternal:!1}),cW=cU({isInternal:!0});function cX(a){return(0,s.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,sourcePosition:n=o.Bottom,targetPosition:p=o.Top,markerEnd:q,markerStart:s,pathOptions:t,interactionWidth:u})=>{let[v,w,x]=aO({sourceX:c,sourceY:d,sourcePosition:n,targetX:e,targetY:f,targetPosition:p,borderRadius:t?.borderRadius,offset:t?.offset,stepPosition:t?.stepPosition}),y=a.isInternal?void 0:b;return(0,r.jsx)(cR,{id:y,path:v,labelX:w,labelY:x,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:q,markerStart:s,interactionWidth:u})})}cV.displayName="SimpleBezierEdge",cW.displayName="SimpleBezierEdgeInternal";let cY=cX({isInternal:!1}),cZ=cX({isInternal:!0});function c$(a){return(0,s.memo)(({id:b,...c})=>{let d=a.isInternal?void 0:b;return(0,r.jsx)(cY,{...c,id:d,pathOptions:(0,s.useMemo)(()=>({borderRadius:0,offset:c.pathOptions?.offset}),[c.pathOptions?.offset])})})}cY.displayName="SmoothStepEdge",cZ.displayName="SmoothStepEdgeInternal";let c_=c$({isInternal:!1}),c0=c$({isInternal:!0});function c1(a){return(0,s.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})=>{let[q,s,t]=aL({sourceX:c,sourceY:d,targetX:e,targetY:f}),u=a.isInternal?void 0:b;return(0,r.jsx)(cR,{id:u,path:q,labelX:s,labelY:t,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})})}c_.displayName="StepEdge",c0.displayName="StepEdgeInternal";let c2=c1({isInternal:!1}),c3=c1({isInternal:!0});function c4(a){return(0,s.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g=o.Bottom,targetPosition:h=o.Top,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:p,markerEnd:q,markerStart:s,pathOptions:t,interactionWidth:u})=>{let[v,w,x]=aI({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h,curvature:t?.curvature}),y=a.isInternal?void 0:b;return(0,r.jsx)(cR,{id:y,path:v,labelX:w,labelY:x,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:p,markerEnd:q,markerStart:s,interactionWidth:u})})}c2.displayName="StraightEdge",c3.displayName="StraightEdgeInternal";let c5=c4({isInternal:!1}),c6=c4({isInternal:!0});c5.displayName="BezierEdge",c6.displayName="BezierEdgeInternal";let c7={default:c6,straight:c3,step:c0,smoothstep:cZ,simplebezier:cW},c8={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},c9="react-flow__edgeupdater";function da({position:a,centerX:b,centerY:c,radius:d=10,onMouseDown:e,onMouseEnter:f,onMouseOut:g,type:h}){return(0,r.jsx)("circle",{onMouseDown:e,onMouseEnter:f,onMouseOut:g,className:t([c9,`${c9}-${h}`]),cx:a===o.Left?b-d:a===o.Right?b+d:b,cy:a===o.Top?c-d:a===o.Bottom?c+d:c,r:d,stroke:"transparent",fill:"transparent"})}function db({isReconnectable:a,reconnectRadius:b,edge:c,sourceX:d,sourceY:e,targetX:f,targetY:g,sourcePosition:h,targetPosition:i,onReconnect:j,onReconnectStart:k,onReconnectEnd:l,setReconnecting:m,setUpdateHover:n}){let o=bz(),p=(a,b)=>{if(0!==a.button)return;let{autoPanOnConnect:d,domNode:e,connectionMode:f,connectionRadius:g,lib:h,onConnectStart:i,cancelConnection:n,nodeLookup:p,rfId:q,panBy:r,updateConnection:s}=o.getState(),t="target"===b.type;a9(a.nativeEvent,{autoPanOnConnect:d,connectionMode:f,connectionRadius:g,domNode:e,handleId:b.id,nodeId:b.nodeId,nodeLookup:p,isTarget:t,edgeUpdaterType:b.type,lib:h,flowId:q,cancelConnection:n,panBy:r,isValidConnection:(...a)=>o.getState().isValidConnection?.(...a)??!0,onConnect:a=>j?.(c,a),onConnectStart:(d,e)=>{m(!0),k?.(a,c,b.type),i?.(d,e)},onConnectEnd:(...a)=>o.getState().onConnectEnd?.(...a),onReconnectEnd:(a,d)=>{m(!1),l?.(a,c,b.type,d)},updateConnection:s,getTransform:()=>o.getState().transform,getFromHandle:()=>o.getState().connection.fromHandle,dragThreshold:o.getState().connectionDragThreshold,handleDomNode:a.currentTarget})},q=()=>n(!0),s=()=>n(!1);return(0,r.jsxs)(r.Fragment,{children:[(!0===a||"source"===a)&&(0,r.jsx)(da,{position:h,centerX:d,centerY:e,radius:b,onMouseDown:a=>p(a,{nodeId:c.target,id:c.targetHandle??null,type:"target"}),onMouseEnter:q,onMouseOut:s,type:"source"}),(!0===a||"target"===a)&&(0,r.jsx)(da,{position:i,centerX:f,centerY:g,radius:b,onMouseDown:a=>p(a,{nodeId:c.source,id:c.sourceHandle??null,type:"source"}),onMouseEnter:q,onMouseOut:s,type:"target"})]})}var dc=(0,s.memo)(function({id:a,edgesFocusable:b,edgesReconnectable:c,elementsSelectable:d,onClick:e,onDoubleClick:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:k,reconnectRadius:l,onReconnect:m,onReconnectStart:n,onReconnectEnd:p,rfId:q,edgeTypes:u,noPanClassName:v,onError:w,disableKeyboardA11y:x}){let y,z=by(b=>b.edgeLookup.get(a)),A=by(a=>a.defaultEdgeOptions),B=(z=A?{...A,...z}:z).type||"default",C=u?.[B]||c7[B];void 0===C&&(w?.("011",(y=B,`Edge type "${y}" not found. Using fallback type "default".`)),B="default",C=u?.default||c7.default);let D=!!(z.focusable||b&&void 0===z.focusable),E=void 0!==m&&(z.reconnectable||c&&void 0===z.reconnectable),F=!!(z.selectable||d&&void 0===z.selectable),G=(0,s.useRef)(null),[H,I]=(0,s.useState)(!1),[J,K]=(0,s.useState)(!1),L=bz(),{zIndex:N=z.zIndex,sourceX:O,sourceY:P,targetX:Q,targetY:R,sourcePosition:S,targetPosition:T}=by((0,s.useCallback)(b=>{let c=b.nodeLookup.get(z.source),d=b.nodeLookup.get(z.target);if(!c||!d)return c8;let e=function(a){let{sourceNode:b,targetNode:c}=a;if(!aP(b)||!aP(c))return null;let d=b.internals.handleBounds||aQ(b.handles),e=c.internals.handleBounds||aQ(c.handles),f=aS(d?.source??[],a.sourceHandle),g=aS(a.connectionMode===j.Strict?e?.target??[]:(e?.target??[]).concat(e?.source??[]),a.targetHandle);if(!f||!g)return a.onError?.("008",((a,{id:b,sourceHandle:c,targetHandle:d})=>`Couldn't create edge for ${a} handle id: "${"source"===a?c:d}", edge id: ${b}.`)(!f?"source":"target",{id:a.id,sourceHandle:a.sourceHandle,targetHandle:a.targetHandle})),null;let h=f?.position||o.Bottom,i=g?.position||o.Top,k=aR(b,f,h),l=aR(c,g,i);return{sourceX:k.x,sourceY:k.y,targetX:l.x,targetY:l.y,sourcePosition:h,targetPosition:i}}({id:a,sourceNode:c,targetNode:d,sourceHandle:z.sourceHandle||null,targetHandle:z.targetHandle||null,connectionMode:b.connectionMode,onError:w}),f=function({sourceNode:a,targetNode:b,selected:c=!1,zIndex:d=0,elevateOnSelect:e=!1,zIndexMode:f="basic"}){if("manual"===f)return d;let g=Math.max(a.parentId||e&&a.selected?a.internals.z:0,b.parentId||e&&b.selected?b.internals.z:0);return(e&&c?d+1e3:d)+g}({selected:z.selected,zIndex:z.zIndex,sourceNode:c,targetNode:d,elevateOnSelect:b.elevateEdgesOnSelect,zIndexMode:b.zIndexMode});return{...e||c8,zIndex:f}},[z.source,z.target,z.sourceHandle,z.targetHandle,z.selected,z.zIndex,w]),bu),U=(0,s.useMemo)(()=>z.markerStart?`url('#${aT(z.markerStart,q)}')`:void 0,[z.markerStart,q]),V=(0,s.useMemo)(()=>z.markerEnd?`url('#${aT(z.markerEnd,q)}')`:void 0,[z.markerEnd,q]);if(z.hidden||null===O||null===P||null===Q||null===R)return null;let W=f?a=>{f(a,{...z})}:void 0,X=g?a=>{g(a,{...z})}:void 0,Y=h?a=>{h(a,{...z})}:void 0,Z=i?a=>{i(a,{...z})}:void 0,$=k?a=>{k(a,{...z})}:void 0;return(0,r.jsx)("svg",{style:{zIndex:N},children:(0,r.jsxs)("g",{className:t(["react-flow__edge",`react-flow__edge-${B}`,z.className,v,{selected:z.selected,animated:z.animated,inactive:!F&&!e,updating:H,selectable:F}]),onClick:b=>{let{addSelectedEdges:c,unselectNodesAndEdges:d,multiSelectionActive:f}=L.getState();F&&(L.setState({nodesSelectionActive:!1}),z.selected&&f?(d({nodes:[],edges:[z]}),G.current?.blur()):c([a])),e&&e(b,z)},onDoubleClick:W,onContextMenu:X,onMouseEnter:Y,onMouseMove:Z,onMouseLeave:$,onKeyDown:D?b=>{if(!x&&M.includes(b.key)&&F){let{unselectNodesAndEdges:c,addSelectedEdges:d}=L.getState();"Escape"===b.key?(G.current?.blur(),c({edges:[z]})):d([a])}}:void 0,tabIndex:D?0:void 0,role:z.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":a,"data-testid":`rf__edge-${a}`,"aria-label":null===z.ariaLabel?void 0:z.ariaLabel||`Edge from ${z.source} to ${z.target}`,"aria-describedby":D?`${bD}-${q}`:void 0,ref:G,...z.domAttributes,children:[!J&&(0,r.jsx)(C,{id:a,source:z.source,target:z.target,type:z.type,selected:z.selected,animated:z.animated,selectable:F,deletable:z.deletable??!0,label:z.label,labelStyle:z.labelStyle,labelShowBg:z.labelShowBg,labelBgStyle:z.labelBgStyle,labelBgPadding:z.labelBgPadding,labelBgBorderRadius:z.labelBgBorderRadius,sourceX:O,sourceY:P,targetX:Q,targetY:R,sourcePosition:S,targetPosition:T,data:z.data,style:z.style,sourceHandleId:z.sourceHandle,targetHandleId:z.targetHandle,markerStart:U,markerEnd:V,pathOptions:"pathOptions"in z?z.pathOptions:void 0,interactionWidth:z.interactionWidth}),E&&(0,r.jsx)(db,{edge:z,isReconnectable:E,reconnectRadius:l,onReconnect:m,onReconnectStart:n,onReconnectEnd:p,sourceX:O,sourceY:P,targetX:Q,targetY:R,sourcePosition:S,targetPosition:T,setUpdateHover:I,setReconnecting:K})]})})});let dd=a=>({edgesFocusable:a.edgesFocusable,edgesReconnectable:a.edgesReconnectable,elementsSelectable:a.elementsSelectable,connectionMode:a.connectionMode,onError:a.onError});function de({defaultMarkerColor:a,onlyRenderVisibleElements:b,rfId:c,edgeTypes:d,noPanClassName:e,onReconnect:f,onEdgeContextMenu:g,onEdgeMouseEnter:h,onEdgeMouseMove:i,onEdgeMouseLeave:j,onEdgeClick:k,reconnectRadius:l,onEdgeDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,disableKeyboardA11y:p}){let{edgesFocusable:q,edgesReconnectable:t,elementsSelectable:u,onError:v}=by(dd,bu),w=by((0,s.useCallback)(a=>{if(!b)return a.edges.map(a=>a.id);let c=[];if(a.width&&a.height)for(let b of a.edges){let d=a.nodeLookup.get(b.source),e=a.nodeLookup.get(b.target);d&&e&&function({sourceNode:a,targetNode:b,width:c,height:d,transform:e}){let f=ab(af(a),af(b));return f.x===f.x2&&(f.x2+=1),f.y===f.y2&&(f.y2+=1),ai({x:-e[0]/e[2],y:-e[1]/e[2],width:c/e[2],height:d/e[2]},ad(f))>0}({sourceNode:d,targetNode:e,width:a.width,height:a.height,transform:a.transform})&&c.push(b.id)}return c},[b]),bu);return(0,r.jsxs)("div",{className:"react-flow__edges",children:[(0,r.jsx)(cO,{defaultColor:a,rfId:c}),w.map(a=>(0,r.jsx)(dc,{id:a,edgesFocusable:q,edgesReconnectable:t,elementsSelectable:u,noPanClassName:e,onReconnect:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:j,onClick:k,reconnectRadius:l,onDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,rfId:c,onError:v,edgeTypes:d,disableKeyboardA11y:p},a))]})}de.displayName="EdgeRenderer";let df=(0,s.memo)(de),dg=a=>`translate(${a[0]}px,${a[1]}px) scale(${a[2]})`;function dh({children:a}){let b=bz(),c=(0,s.useRef)(null),[d]=(0,s.useState)(()=>b.getState().transform);return b7(()=>{let a=null,d=()=>{let d=b.getState().transform;(!a||d[0]!==a[0]||d[1]!==a[1]||d[2]!==a[2])&&(a=d,c.current&&(c.current.style.transform=dg(d)))};return d(),b.subscribe(d)},[b]),(0,r.jsx)("div",{ref:c,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:dg(d)},children:a})}let di=a=>a.panZoom?.syncViewport;function dj(a){return a.connection.inProgress?{...a.connection,to:an(a.connection.to,a.transform)}:{...a.connection}}let dk=a=>({nodesConnectable:a.nodesConnectable,isValid:a.connection.isValid,inProgress:a.connection.inProgress,width:a.width,height:a.height});function dl({containerStyle:a,style:b,type:c,component:d}){let{nodesConnectable:e,width:f,height:g,isValid:h,inProgress:i}=by(dk,bu);return f&&e&&i?(0,r.jsx)("svg",{style:a,width:f,height:g,className:"react-flow__connectionline react-flow__container",children:(0,r.jsx)("g",{className:t(["react-flow__connection",ax(h)]),children:(0,r.jsx)(dm,{style:b,type:c,CustomComponent:d,isValid:h})})}):null}let dm=({style:a,type:b=m.Bezier,CustomComponent:c,isValid:d})=>{let{inProgress:e,from:f,fromNode:g,fromHandle:h,fromPosition:i,to:j,toNode:k,toHandle:l,toPosition:n,pointer:o}=by(dj,bu);if(!e)return;if(c)return(0,r.jsx)(c,{connectionLineType:b,connectionLineStyle:a,fromNode:g,fromHandle:h,fromX:f.x,fromY:f.y,toX:j.x,toY:j.y,fromPosition:i,toPosition:n,connectionStatus:ax(d),toNode:k,toHandle:l,pointer:o});let p="",q={sourceX:f.x,sourceY:f.y,sourcePosition:i,targetX:j.x,targetY:j.y,targetPosition:n};switch(b){case m.Bezier:[p]=aI(q);break;case m.SimpleBezier:[p]=cT(q);break;case m.Step:[p]=aO({...q,borderRadius:0});break;case m.SmoothStep:[p]=aO(q);break;default:[p]=aL(q)}return(0,r.jsx)("path",{d:p,fill:"none",className:"react-flow__connection-path",style:a})};dm.displayName="ConnectionLine";let dn={};function dp(a=dn){(0,s.useRef)(a),bz(),(0,s.useEffect)(()=>{},[a])}function dq({nodeTypes:a,edgeTypes:b,onInit:c,onNodeClick:d,onEdgeClick:e,onNodeDoubleClick:f,onEdgeDoubleClick:g,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,onSelectionContextMenu:l,onSelectionStart:m,onSelectionEnd:n,connectionLineType:o,connectionLineStyle:p,connectionLineComponent:q,connectionLineContainerStyle:t,selectionKeyCode:u,selectionOnDrag:v,selectionMode:w,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,deleteKeyCode:A,onlyRenderVisibleElements:B,elementsSelectable:C,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,preventScrolling:H,defaultMarkerColor:I,zoomOnScroll:J,zoomOnPinch:K,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,zoomOnDoubleClick:O,panOnDrag:P,autoPanOnSelection:Q,onPaneClick:R,onPaneMouseEnter:S,onPaneMouseMove:T,onPaneMouseLeave:U,onPaneScroll:V,onPaneContextMenu:W,paneClickDistance:X,nodeClickDistance:Y,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,reconnectRadius:ab,onReconnect:ac,onReconnectStart:ad,onReconnectEnd:ae,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,disableKeyboardA11y:ai,nodeExtent:aj,rfId:ak,viewport:al,onViewportChange:am,nodesDraggable:an}){let ao,ap,aq,ar;return dp(a),dp(b),bz(),(0,s.useRef)(!1),(0,s.useEffect)(()=>{},[]),ao=cc(),ap=(0,s.useRef)(!1),(0,s.useEffect)(()=>{!ap.current&&ao.viewportInitialized&&c&&(setTimeout(()=>c(ao),1),ap.current=!0)},[c,ao.viewportInitialized]),aq=by(di),ar=bz(),(0,s.useEffect)(()=>{al&&(aq?.(al),ar.setState({transform:[al.x,al.y,al.zoom]}))},[al,aq]),(0,r.jsx)(cF,{onPaneClick:R,onPaneMouseEnter:S,onPaneMouseMove:T,onPaneMouseLeave:U,onPaneContextMenu:W,onPaneScroll:V,paneClickDistance:X,deleteKeyCode:A,selectionKeyCode:u,selectionOnDrag:v,selectionMode:w,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,elementsSelectable:C,zoomOnScroll:J,zoomOnPinch:K,zoomOnDoubleClick:O,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,panOnDrag:P,autoPanOnSelection:Q,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,onSelectionContextMenu:l,preventScrolling:H,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,disableKeyboardA11y:ai,onViewportChange:am,isControlledViewport:!!al,children:(0,r.jsxs)(dh,{children:[(0,r.jsx)(df,{edgeTypes:b,onEdgeClick:e,onEdgeDoubleClick:g,onReconnect:ac,onReconnectStart:ad,onReconnectEnd:ae,onlyRenderVisibleElements:B,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,reconnectRadius:ab,defaultMarkerColor:I,noPanClassName:ah,disableKeyboardA11y:ai,rfId:ak}),(0,r.jsx)(dl,{style:p,type:o,component:q,containerStyle:t}),(0,r.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,r.jsx)(cK,{nodeTypes:a,onNodeClick:d,onNodeDoubleClick:f,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,nodeClickDistance:Y,onlyRenderVisibleElements:B,noPanClassName:ah,noDragClassName:af,disableKeyboardA11y:ai,nodeExtent:aj,rfId:ak,nodesDraggable:an}),(0,r.jsx)("div",{className:"react-flow__viewport-portal"})]})})}dq.displayName="GraphView";let dr=(0,s.memo)(dq),ds=al("React Flow","https://reactflow.dev/"),dt=({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i=.5,maxZoom:k=2,nodeOrigin:l,nodeExtent:m,zIndexMode:n="basic"}={})=>{let o=new Map,p=new Map,q=new Map,r=new Map,s=d??b??[],t=c??a??[],u=l??[0,0],v=m??L;a2(q,r,s);let{nodesInitialized:w}=aY(t,o,p,{nodeOrigin:u,nodeExtent:v,zIndexMode:n}),x=[0,0,1];if(g&&e&&f){let{x:a,y:b,zoom:c}=aq(T(o,{filter:a=>!!((a.width||a.initialWidth)&&(a.height||a.initialHeight))}),e,f,i,k,h?.padding??.1);x=[a,b,c]}return{rfId:"1",width:e??0,height:f??0,transform:x,nodes:t,nodesInitialized:w,nodeLookup:o,parentLookup:p,edges:s,edgeLookup:r,connectionLookup:q,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==c,hasDefaultEdges:void 0!==d,panZoom:null,minZoom:i,maxZoom:k,translateExtent:L,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:j.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:u,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:g??!1,fitViewOptions:h,fitViewResolver:null,connection:{...O},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ds,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:N,zIndexMode:n,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 du({initialNodes:a,initialEdges:b,defaultNodes:c,defaultEdges:d,initialWidth:e,initialHeight:f,initialMinZoom:g,initialMaxZoom:h,initialFitViewOptions:i,fitView:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m,children:n}){let[p]=(0,s.useState)(()=>(({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m})=>{let n,p;return n=(n,p)=>{async function q(){let{nodeLookup:a,panZoom:b,fitViewOptions:c,fitViewResolver:d,width:e,height:f,minZoom:g,maxZoom:h}=p();b&&(await V({nodes:a,width:e,height:f,panZoom:b,minZoom:g,maxZoom:h},c),d?.resolve(!0),n({fitViewResolver:null}))}return{...dt({nodes:a,edges:b,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,defaultNodes:c,defaultEdges:d,zIndexMode:m}),setNodes:a=>{let{nodeLookup:b,parentLookup:c,nodeOrigin:d,nodeExtent:e,elevateNodesOnSelect:f,fitViewQueued:g,zIndexMode:h,nodesSelectionActive:i}=p(),{nodesInitialized:j,hasSelectedNodes:k}=aY(a,b,c,{nodeOrigin:d,nodeExtent:e,elevateNodesOnSelect:f,checkEquality:!0,zIndexMode:h}),l=i&&k;g&&j?(q(),n({nodes:a,nodesInitialized:j,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:l})):n({nodes:a,nodesInitialized:j,nodesSelectionActive:l})},setEdges:a=>{let{connectionLookup:b,edgeLookup:c}=p();a2(b,c,a),n({edges:a})},setDefaultNodesAndEdges:(a,b)=>{if(a){let{setNodes:b}=p();b(a),n({hasDefaultNodes:!0})}if(b){let{setEdges:a}=p();a(b),n({hasDefaultEdges:!0})}},updateNodeInternals:a=>{let{triggerNodeChanges:b,nodeLookup:c,parentLookup:d,domNode:e,nodeOrigin:f,nodeExtent:g,debug:h,fitViewQueued:i,zIndexMode:j}=p(),{changes:k,updatedInternals:l}=function(a,b,c,d,e,f,g){let h=d?.querySelector(".xyflow__viewport"),i=!1;if(!h)return{changes:[],updatedInternals:i};let j=[],k=window.getComputedStyle(h),{m22:l}=new window.DOMMatrixReadOnly(k.transform),m=[];for(let d of a.values()){let a=b.get(d.id);if(!a)continue;if(a.hidden){b.set(a.id,{...a,internals:{...a.internals,handleBounds:void 0}}),i=!0;continue}let h=az(d.nodeElement),k=a.measured.width!==h.width||a.measured.height!==h.height;if(h.width&&h.height&&(k||!a.internals.handleBounds||d.force)){let n=d.nodeElement.getBoundingClientRect(),o=as(a.extent)?a.extent:f,{positionAbsolute:p}=a.internals;if(a.parentId&&"parent"===a.extent){let c=b.get(a.parentId);c&&(p=$(p,h,c))}else o&&(p=Z(p,o,h));let q={...a,measured:h,internals:{...a.internals,positionAbsolute:p,handleBounds:{source:aE("source",d.nodeElement,n,l,a.id),target:aE("target",d.nodeElement,n,l,a.id)}}};b.set(a.id,q),a.parentId&&aZ(q,b,c,{nodeOrigin:e,zIndexMode:g}),i=!0,k&&(j.push({id:a.id,type:"dimensions",dimensions:h}),a.expandParent&&a.parentId&&m.push({id:a.id,parentId:a.parentId,rect:ae(q,e)}))}}if(m.length>0){let a=a_(m,b,c,e);j.push(...a)}return{changes:j,updatedInternals:i}}(a,c,d,e,f,g,j);l&&(!function(a,b,c){let d=aW(aU,c);for(let c of a.values())if(c.parentId)aZ(c,a,b,d);else{let a=Z(S(c,d.nodeOrigin),as(c.extent)?c.extent:d.nodeExtent,at(c));c.internals.positionAbsolute=a}}(c,d,{nodeOrigin:f,nodeExtent:g,zIndexMode:j}),i?(q(),n({fitViewQueued:!1,fitViewOptions:void 0})):n({}),k?.length>0&&(h&&console.log("React Flow: trigger node changes",k),b?.(k)))},updateNodePositions:(a,b=!1)=>{let c=[],d=[],{nodeLookup:e,triggerNodeChanges:f,connection:g,updateConnection:h,onNodesChangeMiddlewareMap:i}=p();for(let[f,i]of a){let a=e.get(f),j=!!(a?.expandParent&&a?.parentId&&i?.position),k={id:f,type:"position",position:j?{x:Math.max(0,i.position.x),y:Math.max(0,i.position.y)}:i.position,dragging:b};if(a&&g.inProgress&&g.fromNode.id===a.id){let b=aR(a,g.fromHandle,o.Left,!0);h({...g,from:b})}j&&a.parentId&&c.push({id:f,parentId:a.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width??0,height:i.measured.height??0}}),d.push(k)}if(c.length>0){let{parentLookup:a,nodeOrigin:b}=p(),f=a_(c,e,a,b);d.push(...f)}for(let a of i.values())d=a(d);f(d)},triggerNodeChanges:a=>{let{onNodesChange:b,setNodes:c,nodes:d,hasDefaultNodes:e,debug:f}=p();a?.length&&(e&&c(b_(a,d)),f&&console.log("React Flow: trigger node changes",a),b?.(a))},triggerEdgeChanges:a=>{let{onEdgesChange:b,setEdges:c,edges:d,hasDefaultEdges:e,debug:f}=p();a?.length&&(e&&c(b_(a,d)),f&&console.log("React Flow: trigger edge changes",a),b?.(a))},addSelectedNodes:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=p();b?e(a.map(a=>b0(a,!0))):(e(b1(d,new Set([...a]),!0)),f(b1(c)))},addSelectedEdges:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=p();b?f(a.map(a=>b0(a,!0))):(f(b1(c,new Set([...a]))),e(b1(d,new Set,!0)))},unselectNodesAndEdges:({nodes:a,edges:b}={})=>{let{edges:c,nodes:d,nodeLookup:e,triggerNodeChanges:f,triggerEdgeChanges:g}=p(),h=[];for(let b of a||d){if(!b.selected)continue;let a=e.get(b.id);a&&(a.selected=!1),h.push(b0(b.id,!1))}let i=[];for(let a of b||c)a.selected&&i.push(b0(a.id,!1));f(h),g(i)},setMinZoom:a=>{let{panZoom:b,maxZoom:c}=p();b?.setScaleExtent([a,c]),n({minZoom:a})},setMaxZoom:a=>{let{panZoom:b,minZoom:c}=p();b?.setScaleExtent([c,a]),n({maxZoom:a})},setTranslateExtent:a=>{p().panZoom?.setTranslateExtent(a),n({translateExtent:a})},resetSelectedElements:()=>{let{edges:a,nodes:b,triggerNodeChanges:c,triggerEdgeChanges:d,elementsSelectable:e}=p();if(!e)return;let f=b.reduce((a,b)=>b.selected?[...a,b0(b.id,!1)]:a,[]),g=a.reduce((a,b)=>b.selected?[...a,b0(b.id,!1)]:a,[]);c(f),d(g)},setNodeExtent:a=>{let{nodes:b,nodeLookup:c,parentLookup:d,nodeOrigin:e,elevateNodesOnSelect:f,nodeExtent:g,zIndexMode:h}=p();(a[0][0]!==g[0][0]||a[0][1]!==g[0][1]||a[1][0]!==g[1][0]||a[1][1]!==g[1][1])&&(aY(b,c,d,{nodeOrigin:e,nodeExtent:a,elevateNodesOnSelect:f,checkEquality:!1,zIndexMode:h}),n({nodeExtent:a}))},panBy:a=>{let{transform:b,width:c,height:d,panZoom:e,translateExtent:f}=p();return a0({delta:a,panZoom:e,transform:b,translateExtent:f,width:c,height:d})},setCenter:async(a,b,c)=>{let{width:d,height:e,maxZoom:f,panZoom:g}=p();if(!g)return!1;let h=void 0!==c?.zoom?c.zoom:f;return await g.setViewport({x:d/2-a*h,y:e/2-b*h,zoom:h},{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),!0},cancelConnection:()=>{n({connection:{...O}})},updateConnection:a=>{n({connection:a})},reset:()=>n({...dt()})}},p=Object.is,n?bt(n,p):bt})({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:j,minZoom:g,maxZoom:h,fitViewOptions:i,nodeOrigin:k,nodeExtent:l,zIndexMode:m}));return(0,r.jsx)(bw,{value:p,children:(0,r.jsx)(ca,{children:(0,r.jsx)(cv,{children:n})})})}function dv({children:a,nodes:b,edges:c,defaultNodes:d,defaultEdges:e,width:f,height:g,fitView:h,fitViewOptions:i,minZoom:j,maxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n}){return(0,s.useContext)(bv)?(0,r.jsx)(r.Fragment,{children:a}):(0,r.jsx)(du,{initialNodes:b,initialEdges:c,defaultNodes:d,defaultEdges:e,initialWidth:f,initialHeight:g,fitView:h,initialFitViewOptions:i,initialMinZoom:j,initialMaxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n,children:a})}let dw={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var dx=b6(function({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,className:e,nodeTypes:f,edgeTypes:g,onNodeClick:h,onEdgeClick:i,onInit:j,onMove:n,onMoveStart:o,onMoveEnd:p,onConnect:q,onConnectStart:u,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:x,onNodeMouseEnter:y,onNodeMouseMove:z,onNodeMouseLeave:A,onNodeContextMenu:B,onNodeDoubleClick:C,onNodeDragStart:D,onNodeDrag:E,onNodeDragStop:F,onNodesDelete:G,onEdgesDelete:H,onDelete:I,onSelectionChange:J,onSelectionDragStart:K,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:O,onSelectionStart:P,onSelectionEnd:Q,onBeforeDelete:R,connectionMode:S,connectionLineType:T=m.Bezier,connectionLineStyle:U,connectionLineComponent:V,connectionLineContainerStyle:W,deleteKeyCode:X="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:Z=!1,selectionMode:$=l.Full,panActivationKeyCode:_="Space",multiSelectionKeyCode:aa=ar()?"Meta":"Control",zoomActivationKeyCode:ab=ar()?"Meta":"Control",snapToGrid:ac,snapGrid:ad,onlyRenderVisibleElements:ae=!1,selectNodesOnDrag:af,nodesDraggable:ag,autoPanOnNodeFocus:ah,nodesConnectable:ai,nodesFocusable:aj,nodeOrigin:ak=bR,edgesFocusable:al,edgesReconnectable:am,elementsSelectable:an=!0,defaultViewport:ao=bS,minZoom:ap=.5,maxZoom:aq=2,translateExtent:as=L,preventScrolling:at=!0,nodeExtent:au,defaultMarkerColor:av="#b1b1b7",zoomOnScroll:aw=!0,zoomOnPinch:ax=!0,panOnScroll:ay=!1,panOnScrollSpeed:az=.5,panOnScrollMode:aA=k.Free,zoomOnDoubleClick:aB=!0,panOnDrag:aC=!0,onPaneClick:aD,onPaneMouseEnter:aE,onPaneMouseMove:aF,onPaneMouseLeave:aG,onPaneScroll:aH,onPaneContextMenu:aI,paneClickDistance:aJ=1,nodeClickDistance:aK=0,children:aL,onReconnect:aM,onReconnectStart:aN,onReconnectEnd:aO,onEdgeContextMenu:aP,onEdgeDoubleClick:aQ,onEdgeMouseEnter:aR,onEdgeMouseMove:aS,onEdgeMouseLeave:aT,reconnectRadius:aU=10,onNodesChange:aV,onEdgesChange:aW,noDragClassName:aX="nodrag",noWheelClassName:aY="nowheel",noPanClassName:aZ="nopan",fitView:a$,fitViewOptions:a_,connectOnClick:a0,attributionPosition:a1,proOptions:a2,defaultEdgeOptions:a3,elevateNodesOnSelect:a4=!0,elevateEdgesOnSelect:a5=!1,disableKeyboardA11y:a6=!1,autoPanOnConnect:a7,autoPanOnNodeDrag:a8,autoPanOnSelection:a9=!0,autoPanSpeed:ba,connectionRadius:bb,isValidConnection:bc,onError:bd,style:be,id:bf,nodeDragThreshold:bg,connectionDragThreshold:bh,viewport:bi,onViewportChange:bj,width:bk,height:bl,colorMode:bm="light",debug:bn,onScroll:bo,ariaLabelConfig:bp,zIndexMode:bq="basic",...br},bs){let bt=bf||"1",bu=function(a){let[b,c]=(0,s.useState)("system"===a?null:a);return(0,s.useEffect)(()=>"system"!==a?void c(a):(c("light"),()=>{}),[a]),null!==b?b:"light"}(bm),bv=(0,s.useCallback)(a=>{a.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),bo?.(a)},[bo]);return(0,r.jsx)("div",{"data-testid":"rf__wrapper",...br,onScroll:bv,style:{...be,...dw},ref:bs,className:t(["react-flow",e,bu]),id:bf,role:"application",children:(0,r.jsxs)(dv,{nodes:a,edges:b,width:bk,height:bl,fitView:a$,fitViewOptions:a_,minZoom:ap,maxZoom:aq,nodeOrigin:ak,nodeExtent:au,zIndexMode:bq,children:[(0,r.jsx)(bW,{nodes:a,edges:b,defaultNodes:c,defaultEdges:d,onConnect:q,onConnectStart:u,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:x,nodesDraggable:ag,autoPanOnNodeFocus:ah,nodesConnectable:ai,nodesFocusable:aj,edgesFocusable:al,edgesReconnectable:am,elementsSelectable:an,elevateNodesOnSelect:a4,elevateEdgesOnSelect:a5,minZoom:ap,maxZoom:aq,nodeExtent:au,onNodesChange:aV,onEdgesChange:aW,snapToGrid:ac,snapGrid:ad,connectionMode:S,translateExtent:as,connectOnClick:a0,defaultEdgeOptions:a3,fitView:a$,fitViewOptions:a_,onNodesDelete:G,onEdgesDelete:H,onDelete:I,onNodeDragStart:D,onNodeDrag:E,onNodeDragStop:F,onSelectionDrag:M,onSelectionDragStart:K,onSelectionDragStop:N,onMove:n,onMoveStart:o,onMoveEnd:p,noPanClassName:aZ,nodeOrigin:ak,rfId:bt,autoPanOnConnect:a7,autoPanOnNodeDrag:a8,autoPanSpeed:ba,onError:bd,connectionRadius:bb,isValidConnection:bc,selectNodesOnDrag:af,nodeDragThreshold:bg,connectionDragThreshold:bh,onBeforeDelete:R,debug:bn,ariaLabelConfig:bp,zIndexMode:bq}),(0,r.jsx)(dr,{onInit:j,onNodeClick:h,onEdgeClick:i,onNodeMouseEnter:y,onNodeMouseMove:z,onNodeMouseLeave:A,onNodeContextMenu:B,onNodeDoubleClick:C,nodeTypes:f,edgeTypes:g,connectionLineType:T,connectionLineStyle:U,connectionLineComponent:V,connectionLineContainerStyle:W,selectionKeyCode:Y,selectionOnDrag:Z,selectionMode:$,deleteKeyCode:X,multiSelectionKeyCode:aa,panActivationKeyCode:_,zoomActivationKeyCode:ab,onlyRenderVisibleElements:ae,defaultViewport:ao,translateExtent:as,minZoom:ap,maxZoom:aq,preventScrolling:at,zoomOnScroll:aw,zoomOnPinch:ax,zoomOnDoubleClick:aB,panOnScroll:ay,panOnScrollSpeed:az,panOnScrollMode:aA,panOnDrag:aC,autoPanOnSelection:a9,onPaneClick:aD,onPaneMouseEnter:aE,onPaneMouseMove:aF,onPaneMouseLeave:aG,onPaneScroll:aH,onPaneContextMenu:aI,paneClickDistance:aJ,nodeClickDistance:aK,onSelectionContextMenu:O,onSelectionStart:P,onSelectionEnd:Q,onReconnect:aM,onReconnectStart:aN,onReconnectEnd:aO,onEdgeContextMenu:aP,onEdgeDoubleClick:aQ,onEdgeMouseEnter:aR,onEdgeMouseMove:aS,onEdgeMouseLeave:aT,reconnectRadius:aU,defaultMarkerColor:av,noDragClassName:aX,noWheelClassName:aY,noPanClassName:aZ,rfId:bt,disableKeyboardA11y:a6,nodeExtent:au,viewport:bi,onViewportChange:bj,nodesDraggable:ag}),(0,r.jsx)(bQ,{onSelectionChange:J}),aL,(0,r.jsx)(bK,{proOptions:a2,position:a1}),(0,r.jsx)(bH,{rfId:bt,disableKeyboardA11y:a6})]})})});function dy({dimensions:a,lineWidth:b,variant:c,className:d}){return(0,r.jsx)("path",{strokeWidth:b,d:`M${a[0]/2} 0 V${a[1]} M0 ${a[1]/2} H${a[0]}`,className:t(["react-flow__background-pattern",c,d])})}function dz({radius:a,className:b}){return(0,r.jsx)("circle",{cx:a,cy:a,r:a,className:t(["react-flow__background-pattern","dots",b])})}(i=q||(q={})).Lines="lines",i.Dots="dots",i.Cross="cross";let dA={[q.Dots]:1,[q.Lines]:1,[q.Cross]:6},dB=a=>({transform:a.transform,patternId:`pattern-${a.rfId}`});function dC({id:a,variant:b=q.Dots,gap:c=20,size:d,lineWidth:e=1,offset:f=0,color:g,bgColor:h,style:i,className:j,patternClassName:k}){let l=(0,s.useRef)(null),{transform:m,patternId:n}=by(dB,bu),o=d||dA[b],p=b===q.Dots,u=b===q.Cross,v=Array.isArray(c)?c:[c,c],w=[v[0]*m[2]||1,v[1]*m[2]||1],x=o*m[2],y=Array.isArray(f)?f:[f,f],z=u?[x,x]:w,A=[y[0]*m[2]+z[0]/2,y[1]*m[2]+z[1]/2],B=`${n}${a||""}`;return(0,r.jsxs)("svg",{className:t(["react-flow__background",j]),style:{...i,...cf,"--xy-background-color-props":h,"--xy-background-pattern-color-props":g},ref:l,"data-testid":"rf__background",children:[(0,r.jsx)("pattern",{id:B,x:m[0]%w[0],y:m[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${A[0]},-${A[1]})`,children:p?(0,r.jsx)(dz,{radius:x/2,className:k}):(0,r.jsx)(dy,{dimensions:z,lineWidth:e,variant:b,className:k})}),(0,r.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${B})`})]})}dC.displayName="Background";let dD=(0,s.memo)(dC);function dE(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,r.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function dF(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,r.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function dG(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,r.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 dH(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,r.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 dI(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,r.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 dJ({children:a,className:b,...c}){return(0,r.jsx)("button",{type:"button",className:t(["react-flow__controls-button",b]),...c,children:a})}let dK=a=>({isInteractive:a.nodesDraggable||a.nodesConnectable||a.elementsSelectable,minZoomReached:a.transform[2]<=a.minZoom,maxZoomReached:a.transform[2]>=a.maxZoom,ariaLabelConfig:a.ariaLabelConfig});function dL({style:a,showZoom:b=!0,showFitView:c=!0,showInteractive:d=!0,fitViewOptions:e,onZoomIn:f,onZoomOut:g,onFitView:h,onInteractiveChange:i,className:j,children:k,position:l="bottom-left",orientation:m="vertical","aria-label":n}){let o=bz(),{isInteractive:p,minZoomReached:q,maxZoomReached:s,ariaLabelConfig:u}=by(dK,bu),{zoomIn:v,zoomOut:w,fitView:x}=cc();return(0,r.jsxs)(bI,{className:t(["react-flow__controls","horizontal"===m?"horizontal":"vertical",j]),position:l,style:a,"data-testid":"rf__controls","aria-label":n??u["controls.ariaLabel"],children:[b&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(dJ,{onClick:()=>{v(),f?.()},className:"react-flow__controls-zoomin",title:u["controls.zoomIn.ariaLabel"],"aria-label":u["controls.zoomIn.ariaLabel"],disabled:s,children:(0,r.jsx)(dE,{})}),(0,r.jsx)(dJ,{onClick:()=>{w(),g?.()},className:"react-flow__controls-zoomout",title:u["controls.zoomOut.ariaLabel"],"aria-label":u["controls.zoomOut.ariaLabel"],disabled:q,children:(0,r.jsx)(dF,{})})]}),c&&(0,r.jsx)(dJ,{className:"react-flow__controls-fitview",onClick:()=>{x(e),h?.()},title:u["controls.fitView.ariaLabel"],"aria-label":u["controls.fitView.ariaLabel"],children:(0,r.jsx)(dG,{})}),d&&(0,r.jsx)(dJ,{className:"react-flow__controls-interactive",onClick:()=>{o.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),i?.(!p)},title:u["controls.interactive.ariaLabel"],"aria-label":u["controls.interactive.ariaLabel"],children:p?(0,r.jsx)(dI,{}):(0,r.jsx)(dH,{})}),k]})}dL.displayName="Controls";let dM=(0,s.memo)(dL),dN=(0,s.memo)(function({id:a,x:b,y:c,width:d,height:e,style:f,color:g,strokeColor:h,strokeWidth:i,className:j,borderRadius:k,shapeRendering:l,selected:m,onClick:n}){let{background:o,backgroundColor:p}=f||{};return(0,r.jsx)("rect",{className:t(["react-flow__minimap-node",{selected:m},j]),x:b,y:c,rx:k,ry:k,width:d,height:e,style:{fill:g||o||p,stroke:h,strokeWidth:i},shapeRendering:l,onClick:n?b=>n(b,a):void 0})}),dO=a=>a.nodes.map(a=>a.id),dP=a=>a instanceof Function?a:()=>a,dQ=(0,s.memo)(function({id:a,nodeColorFunc:b,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:e,nodeStrokeWidth:f,shapeRendering:g,NodeComponent:h,onClick:i}){let{node:j,x:k,y:l,width:m,height:n}=by(b=>{let c=b.nodeLookup.get(a);if(!c)return{node:void 0,x:0,y:0,width:0,height:0};let d=c.internals.userNode,{x:e,y:f}=c.internals.positionAbsolute,{width:g,height:h}=at(d);return{node:d,x:e,y:f,width:g,height:h}},bu);return j&&!j.hidden&&au(j)?(0,r.jsx)(h,{x:k,y:l,width:m,height:n,style:j.style,selected:!!j.selected,className:d(j),color:b(j),borderRadius:e,strokeColor:c(j),strokeWidth:f,shapeRendering:g,onClick:i,id:j.id}):null});var dR=(0,s.memo)(function({nodeStrokeColor:a,nodeColor:b,nodeClassName:c="",nodeBorderRadius:d=5,nodeStrokeWidth:e,nodeComponent:f=dN,onClick:g}){let h=by(dO,bu),i=dP(b),j=dP(a),k=dP(c);return(0,r.jsx)(r.Fragment,{children:h.map(a=>(0,r.jsx)(dQ,{id:a,nodeColorFunc:i,nodeStrokeColorFunc:j,nodeClassNameFunc:k,nodeBorderRadius:d,nodeStrokeWidth:e,NodeComponent:f,onClick:g,shapeRendering:"crispEdges"},a))})});let dS=a=>!a.hidden,dT=a=>{let b={x:-a.transform[0]/a.transform[2],y:-a.transform[1]/a.transform[2],width:a.width/a.transform[2],height:a.height/a.transform[2]},c=!1;for(let b of a.nodeLookup.values())if(!b.hidden){c=!0;break}return{viewBB:b,boundingRect:c?ag(T(a.nodeLookup,{filter:dS}),b):b,rfId:a.rfId,panZoom:a.panZoom,translateExtent:a.translateExtent,flowWidth:a.width,flowHeight:a.height,ariaLabelConfig:a.ariaLabelConfig}},dU=(a,b)=>a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height,dV=(a,b)=>dU(a.viewBB,b.viewBB)&&dU(a.boundingRect,b.boundingRect)&&a.rfId===b.rfId&&a.panZoom===b.panZoom&&a.translateExtent===b.translateExtent&&a.flowWidth===b.flowWidth&&a.flowHeight===b.flowHeight&&a.ariaLabelConfig===b.ariaLabelConfig;function dW({style:a,className:b,nodeStrokeColor:c,nodeColor:d,nodeClassName:e="",nodeBorderRadius:f=5,nodeStrokeWidth:g,nodeComponent:h,bgColor:i,maskColor:j,maskStrokeColor:k,maskStrokeWidth:l,position:m="bottom-right",onClick:n,onNodeClick:o,pannable:p=!1,zoomable:q=!1,ariaLabel:u,inversePan:x,zoomStep:y=1,offsetScale:z=5}){let A=bz(),B=(0,s.useRef)(null),{boundingRect:C,panZoom:D,viewBB:E,rfId:F,translateExtent:H,flowWidth:I,flowHeight:J,ariaLabelConfig:K}=by(dT,dV),L=a?.width??200,M=a?.height??150,N=Math.max(C.width/L,C.height/M),O=N*L,P=N*M,Q=z*N,R=C.x-(O-C.width)/2-Q,S=C.y-(P-C.height)/2-Q,T=O+2*Q,U=P+2*Q,V=`react-flow__minimap-desc-${F}`,W=(0,s.useRef)(0),X=(0,s.useRef)();W.current=N,(0,s.useEffect)(()=>{let a=A.getState().panZoom;if(B.current&&a)return X.current=function({domNode:a,panZoom:b,getTransform:c,getViewScale:d}){let e=(0,v.select)(a);return{update:function({translateExtent:a,width:f,height:g,zoomStep:h=1,pannable:i=!0,zoomable:j=!0,inversePan:k=!1}){let l=[0,0],m=(0,G.default)().on("start",a=>{("mousedown"===a.sourceEvent.type||"touchstart"===a.sourceEvent.type)&&(l=[a.sourceEvent.clientX??a.sourceEvent.touches[0].clientX,a.sourceEvent.clientY??a.sourceEvent.touches[0].clientY])}).on("zoom",i?e=>{let h=c();if("mousemove"!==e.sourceEvent.type&&"touchmove"!==e.sourceEvent.type||!b)return;let i=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY],j=[i[0]-l[0],i[1]-l[1]];l=i;let m=d()*Math.max(h[2],Math.log(h[2]))*(k?-1:1),n={x:h[0]-j[0]*m,y:h[1]-j[1]*m};b.setViewportConstrained({x:n.x,y:n.y,zoom:h[2]},[[0,0],[f,g]],a)}:null).on("zoom.wheel",j?a=>{if("wheel"!==a.sourceEvent.type||!b)return;let d=c(),e=a.sourceEvent.ctrlKey&&ar()?10:1,f=-a.sourceEvent.deltaY*(1===a.sourceEvent.deltaMode?.05:a.sourceEvent.deltaMode?1:.002)*h,g=d[2]*Math.pow(2,f*e);b.scaleTo(g)}:null);e.call(m,{})},destroy:function(){e.on("zoom",null)},pointer:w.pointer}}({domNode:B.current,panZoom:a,getTransform:()=>A.getState().transform,getViewScale:()=>W.current}),()=>{X.current?.destroy()}},[D]),(0,s.useEffect)(()=>{X.current?.update({translateExtent:H,width:I,height:J,inversePan:x,pannable:p,zoomStep:y,zoomable:q})},[p,q,x,y,H,I,J]);let Y=n?a=>{let[b,c]=X.current?.pointer(a)||[0,0];n(a,{x:b,y:c})}:void 0,Z=(0,s.useCallback)((a,b)=>{let c=A.getState().nodeLookup.get(b).internals.userNode;o?.(a,c)},[o]),$=u??K["minimap.ariaLabel"];return(0,r.jsx)(bI,{position:m,style:{...a,"--xy-minimap-background-color-props":"string"==typeof i?i:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof j?j:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof k?k:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof l?l*N:void 0,"--xy-minimap-node-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof c?c:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof g?g:void 0},className:t(["react-flow__minimap",b]),"data-testid":"rf__minimap",children:(0,r.jsxs)("svg",{width:L,height:M,viewBox:`${R} ${S} ${T} ${U}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":V,ref:B,onClick:Y,children:[$&&(0,r.jsx)("title",{id:V,children:$}),(0,r.jsx)(dR,{onClick:o?Z:void 0,nodeColor:d,nodeStrokeColor:c,nodeBorderRadius:f,nodeClassName:e,nodeStrokeWidth:g,nodeComponent:h}),(0,r.jsx)("path",{className:"react-flow__minimap-mask",d:`M${R-Q},${S-Q}h${T+2*Q}v${U+2*Q}h${-T-2*Q}z
2
- M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}dW.displayName="MiniMap",(0,s.memo)(dW);let dX={[p.Line]:"right",[p.Handle]:"bottom-right"};(0,s.memo)(function({nodeId:a,position:b,variant:c=p.Handle,className:d,style:e,children:f,color:g,minWidth:h=10,minHeight:i=10,maxWidth:j=Number.MAX_VALUE,maxHeight:k=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:m,autoScale:n=!0,shouldResize:o,onResizeStart:q,onResize:u,onResizeEnd:w}){let x,y=cs(),z="string"==typeof a?a:y,A=bz(),B=(0,s.useRef)(null),C=c===p.Handle,D=by((0,s.useCallback)((x=C&&n,a=>x?`${Math.max(1/a.transform[2],1)}`:void 0),[C,n]),bu),E=(0,s.useRef)(null),G=b??dX[c];(0,s.useEffect)(()=>{if(B.current&&z)return E.current||(E.current=function({domNode:a,nodeId:b,getStoreItems:c,onChange:d,onEnd:e}){let f=(0,v.select)(a),g={controlDirection:bh("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:a,boundaries:h,keepAspectRatio:i,resizeDirection:j,onResizeStart:k,onResize:l,onResizeEnd:m,shouldResize:n}){let o,p,q,r,s={...bl},t={...bm};g={boundaries:h,resizeDirection:j,keepAspectRatio:i,controlDirection:bh(a)};let u=null,v=[],w=F().on("start",a=>{let{nodeLookup:d,transform:e,snapGrid:f,snapToGrid:g,nodeOrigin:h,paneDomNode:i}=c();if(!(o=d.get(b)))return;u=i?.getBoundingClientRect()??null;let{xSnapped:j,ySnapped:l}=ay(a.sourceEvent,{transform:e,snapGrid:f,snapToGrid:g,containerBounds:u});for(let[a,c]of(t={...s={width:o.measured.width??0,height:o.measured.height??0,x:o.position.x??0,y:o.position.y??0},pointerX:j,pointerY:l,aspectRatio:s.width/s.height},p=void 0,q=as(o.extent)?o.extent:void 0,o.parentId&&("parent"===o.extent||o.expandParent)&&(p=d.get(o.parentId)),p&&"parent"===o.extent&&(q=[[0,0],[p.measured.width,p.measured.height]]),v=[],r=void 0,d))if(c.parentId===b&&(v.push({id:a,position:{...c.position},extent:c.extent}),"parent"===c.extent||c.expandParent)){let a=function(a,b,c){let d=b.position.x+a.position.x,e=b.position.y+a.position.y,f=a.measured.width??0,g=a.measured.height??0,h=c[0]*f,i=c[1]*g;return[[d-h,e-i],[d+f-h,e+g-i]]}(c,o,c.origin??h);r=r?[[Math.min(a[0][0],r[0][0]),Math.min(a[0][1],r[0][1])],[Math.max(a[1][0],r[1][0]),Math.max(a[1][1],r[1][1])]]:a}k?.(a,{...s})}).on("drag",a=>{let{transform:b,snapGrid:e,snapToGrid:f,nodeOrigin:h}=c(),i=ay(a.sourceEvent,{transform:b,snapGrid:e,snapToGrid:f,containerBounds:u}),j=[];if(!o)return;let{x:k,y:m,width:w,height:x}=s,y={},z=o.origin??h,{width:A,height:B,x:C,y:D}=function(a,b,c,d,e,f,g,h){var i,j,k,l;let{affectsX:m,affectsY:n}=b,{isHorizontal:o,isVertical:p}=b,q=o&&p,{xSnapped:r,ySnapped:s}=c,{minWidth:t,maxWidth:u,minHeight:v,maxHeight:w}=d,{x:x,y:y,width:z,height:A,aspectRatio:B}=a,C=Math.floor(o?r-a.pointerX:0),D=Math.floor(p?s-a.pointerY:0),E=z+(m?-C:C),F=A+(n?-D:D),G=-f[0]*z,H=-f[1]*A,I=bk(E,t,u),J=bk(F,v,w);if(g){let a=0,b=0;m&&C<0?a=bi(x+C+G,g[0][0]):!m&&C>0&&(a=bj(x+E+G,g[1][0])),n&&D<0?b=bi(y+D+H,g[0][1]):!n&&D>0&&(b=bj(y+F+H,g[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(h){let a=0,b=0;m&&C>0?a=bj(x+C,h[0][0]):!m&&C<0&&(a=bi(x+E,h[1][0])),n&&D>0?b=bj(y+D,h[0][1]):!n&&D<0&&(b=bi(y+F,h[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(e){if(o){(I=Math.max(I,bk(E/B,v,w)*B),g)&&(I=Math.max(I,(m||n)&&(!m||n||!q)?bi(y+H+(m?C:-C)/B,g[0][1])*B:bj(y+H+E/B,g[1][1])*B));h&&(I=Math.max(I,(m||n)&&(!m||n||!q)?bj(y+(m?C:-C)/B,h[0][1])*B:bi(y+E/B,h[1][1])*B))}if(p){(J=Math.max(J,bk(F*B,t,u)/B),g)&&(J=Math.max(J,(m||n)&&(!n||m||!q)?bi(x+(n?D:-D)*B+G,g[0][0])/B:bj(x+F*B+G,g[1][0])/B));h&&(J=Math.max(J,(m||n)&&(!n||m||!q)?bj(x+(n?D:-D)*B,h[0][0])/B:bi(x+F*B,h[1][0])/B))}}D+=D<0?J:-J,C+=C<0?I:-I,e&&(q?E>F*B?D=((i=m,j=n,i?!j:j)?-C:C)/B:C=((k=m,l=n,k?!l:l)?-D:D)*B:o?(D=C/B,n=m):(C=D*B,m=n));let K=m?x+C:x,L=n?y+D:y;return{width:z+(m?-C:C),height:A+(n?-D:D),x:f[0]*C*(m?-1:1)+K,y:f[1]*D*(n?-1:1)+L}}(t,g.controlDirection,i,g.boundaries,g.keepAspectRatio,z,q,r),E=A!==w,F=B!==x,G=C!==k&&E,H=D!==m&&F;if(!G&&!H&&!E&&!F)return;let I={prevValues:{...s},startX:t.x,startY:t.y,childNodes:v.map(a=>({...a,position:{...a.position}}))};if((G||H||1===z[0]||1===z[1])&&(y.x=G?C:s.x,y.y=H?D:s.y,s.x=y.x,s.y=y.y,v.length>0)){let a=C-k,b=D-m;for(let c of v)c.position={x:c.position.x-a+z[0]*(A-w),y:c.position.y-b+z[1]*(B-x)},j.push(c)}if((E||F)&&(y.width=E&&(!g.resizeDirection||"horizontal"===g.resizeDirection)?A:s.width,y.height=F&&(!g.resizeDirection||"vertical"===g.resizeDirection)?B:s.height,s.width=y.width,s.height=y.height),p&&o.expandParent){let a=z[0]*(y.width??0);y.x&&y.x<a&&(s.x=a,t.x=t.x-(y.x-a));let b=z[1]*(y.height??0);y.y&&y.y<b&&(s.y=b,t.y=t.y-(y.y-b))}let J=function({width:a,prevWidth:b,height:c,prevHeight:d,affectsX:e,affectsY:f}){let g=a-b,h=c-d,i=[g>0?1:g<0?-1:0,h>0?1:h<0?-1:0];return g&&e&&(i[0]=-1*i[0]),h&&f&&(i[1]=-1*i[1]),i}({width:s.width,prevWidth:w,height:s.height,prevHeight:x,affectsX:g.controlDirection.affectsX,affectsY:g.controlDirection.affectsY}),K={...s,direction:J};if(!1===n?.(a,K)){s=I.prevValues,t.x=I.startX,t.y=I.startY,v.forEach((a,b)=>{a.position=I.childNodes[b].position});return}l?.(a,K),d(y,j)}).on("end",a=>{m?.(a,{...s}),e?.({...s})});f.call(w)},destroy:function(){f.on(".drag",null)}}}({domNode:B.current,nodeId:z,getStoreItems:()=>{let{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,domNode:f}=A.getState();return{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,paneDomNode:f}},onChange:(a,b)=>{let{triggerNodeChanges:c,nodeLookup:d,parentLookup:e,nodeOrigin:f}=A.getState(),g=[],h={x:a.x,y:a.y},i=d.get(z);if(i&&i.expandParent&&i.parentId){let b=i.origin??f,c=a.width??i.measured.width??0,j=a.height??i.measured.height??0,k=a_([{id:i.id,parentId:i.parentId,rect:{width:c,height:j,...av({x:a.x??i.position.x,y:a.y??i.position.y},{width:c,height:j},i.parentId,d,b)}}],d,e,f);g.push(...k),h.x=a.x?Math.max(b[0]*c,a.x):void 0,h.y=a.y?Math.max(b[1]*j,a.y):void 0}if(void 0!==h.x&&void 0!==h.y){let a={id:z,type:"position",position:{...h}};g.push(a)}if(void 0!==a.width&&void 0!==a.height){let b={id:z,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:a.width,height:a.height}};g.push(b)}for(let a of b){let b={...a,type:"position"};g.push(b)}c(g)},onEnd:({width:a,height:b})=>{A.getState().triggerNodeChanges([{id:z,type:"dimensions",resizing:!1,dimensions:{width:a,height:b}}])}})),E.current.update({controlPosition:G,boundaries:{minWidth:h,minHeight:i,maxWidth:j,maxHeight:k},keepAspectRatio:l,resizeDirection:m,onResizeStart:q,onResize:u,onResizeEnd:w,shouldResize:o}),()=>{E.current?.destroy()}},[G,h,i,j,k,l,q,u,w,o]);let H=G.split("-");return(0,r.jsx)("div",{className:t(["react-flow__resize-control","nodrag",...H,c,d]),ref:B,style:{...e,scale:D,...g&&{[C?"backgroundColor":"borderColor"]:g}},children:f})});var dY=a.i(340933),dZ=a.i(795667),d$=a.i(926128),d_=a.i(200382),d0=a.i(551729),d1=a.i(913975),d2=a.i(544394),d3=a.i(21215),d4=a.i(699570);let d5=a=>"done"===a||"cancelled"===a;function d6(a,b){let c=new Map(b.map(a=>[a.id,a])),d=a.tasks.map(a=>c.get(a)).filter(a=>!!a),e=a=>[...new Set((a.dependsOn.match(/\bT\d+\b/gi)??[]).map(a=>a.toUpperCase()))].filter(a=>{let b=c.get(a);return!b||!d5(b.status)});for(let a of d)if("todo"===a.status&&!e(a).length)return{kind:"ready",taskId:a.id};if(d.every(a=>d5(a.status)))return{kind:"finished"};let f=new Set(a.tasks),g=new Map,h=a=>{if(g.has(a))return g.get(a)??!1;g.set(a,!1);let b=c.get(a),d=!!b&&"blocked"!==b.status&&("todo"!==b.status||f.has(a)&&e(b).every(h));return g.set(a,d),d},i=[];for(let b of a.tasks){let a=c.get(b);if(a){if("in-progress"===a.status)i.push({taskId:b,reason:`${b} is in progress (claimed)`});else if("blocked"===a.status)i.push({taskId:b,reason:`${b} is blocked`});else if("todo"===a.status){let d=e(a).map(a=>`${a} (${c.get(a)?.status??"missing"})`);i.push({taskId:b,reason:`${b} waits on ${d.join(", ")}`})}}else i.push({taskId:b,reason:`${b} has no task file`})}return{kind:"waiting",waiting:i,needsHuman:i.every(a=>!h(a.taskId))}}function d7(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}-${b(a.getMonth()+1)}-${b(a.getDate())}`}function d8(a,b,c){let d;return a?"done"===b?"done":a<c?"overdue":7>=Math.round(((d=a=>Date.UTC(+a.slice(0,4),a.slice(5,7)-1,+a.slice(8,10)))(a)-d(c))/864e5)?"soon":"ok":null}function d9(a){return a.every(a=>"done"===a)?"done":a.some(a=>"other"!==a)?"in-progress":"planned"}var ea=a.i(368114),eb=a.i(525395),ec=a.i(425404);function ed(a){let b=new Set(a.filter(a=>null===a.parent).map(a=>a.id));return a.filter(a=>null===a.parent||!b.has(a.parent)).sort((a,b)=>a.order-b.order)}function ee(a,b){return a.filter(a=>a.parent===b).sort((a,b)=>a.order-b.order)}function ef(a,b){let c={},d=0;for(let e of ed(a)){let f=b[e.id]??{x:0,y:d};c[e.id]=f;let g=null===e.parent?ee(a,e.id):[],h=Math.ceil(g.length/2)>6?2:1;g.forEach((a,d)=>{let e=d%2==0?1:-1,g=Math.floor(d/2),i=g%h,j=Math.floor(g/h);c[a.id]=b[a.id]??{x:f.x+20+e*(340+260*i),y:f.y+110*j+55*i}}),d+=110*Math.max(1,Math.ceil(Math.ceil(g.length/2)/h))+90}return c}let eg=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],eh=a=>({y:+a.slice(0,4),m:+a.slice(5,7),day:+a.slice(8,10)});function ei(a){let{m:b,day:c}=eh(a);return`${c} ${eg[b-1]}`}let ej=[o.Top,o.Right,o.Bottom,o.Left];function ek(){return(0,r.jsxs)(r.Fragment,{children:[ej.map(a=>(0,r.jsx)(cx,{id:a,type:"source",position:a,isConnectable:!1,className:"opacity-0"},a)),ej.map(a=>(0,r.jsx)(cx,{id:`${a}-t`,type:"target",position:a,isConnectable:!1,className:"opacity-0"},`${a}-t`))]})}let el={"in-progress":"Live",done:"Done",planned:"Planned"};function em({status:a,className:b}){return(0,r.jsxs)("span",{title:el[a],"aria-label":el[a],className:(0,ea.cn)("relative inline-flex h-2 w-2 shrink-0",b),children:["in-progress"===a&&(0,r.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-accent/60"}),(0,r.jsx)("span",{className:(0,ea.cn)("relative h-full w-full rounded-full","done"===a&&"bg-teal","in-progress"===a&&"bg-accent","planned"===a&&"border border-muted")})]})}function en({status:a}){return(0,r.jsxs)("span",{className:(0,ea.cn)("inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider","done"===a&&"border-teal/40 text-teal","in-progress"===a&&"border-accent/50 text-accent","planned"===a&&"border-dashed border-border2 text-muted"),children:[(0,r.jsx)(em,{status:a,className:"h-1.5 w-1.5"}),el[a]]})}let eo={done:"bg-teal","in-progress":"bg-amber",blocked:"bg-danger",todo:"bg-border2",cancelled:"bg-border"};function ep({statuses:a,className:b}){if(!a?.length)return null;let c=a.filter(a=>"done"===a).length;return(0,r.jsx)("div",{className:(0,ea.cn)("flex h-1.5 min-w-0 flex-1 gap-0.5",b),title:`${c}/${a.length} tasks done`,children:a.map((a,b)=>(0,r.jsx)("span",{className:(0,ea.cn)("h-full flex-1 rounded-[1px]",eo[a])},b))})}function eq({value:a,total:b,className:c}){let d=2*Math.PI*14,e=b>0?a/b:0;return(0,r.jsxs)("span",{className:(0,ea.cn)("relative inline-flex h-9 w-9 shrink-0 items-center justify-center",c),title:`${a}/${b} tasks done`,children:[(0,r.jsxs)("svg",{viewBox:"0 0 36 36",className:"absolute inset-0 -rotate-90",children:[(0,r.jsx)("circle",{cx:"18",cy:"18",r:14,fill:"none",strokeWidth:"3",className:"stroke-border"}),(0,r.jsx)("circle",{cx:"18",cy:"18",r:14,fill:"none",strokeWidth:"3",stroke:"currentColor",strokeLinecap:"round",strokeDasharray:d,strokeDashoffset:d*(1-e)})]}),(0,r.jsx)("span",{className:"font-mono text-[9px] text-txt",children:Math.round(100*e)})]})}function er({due:a,state:b}){return a?(0,r.jsxs)("span",{className:(0,ea.cn)("font-mono text-[10px]","overdue"===b?"text-danger":"soon"===b?"text-amber":"text-muted"),children:["Due ",ei(a)]}):null}function es({data:a}){let b=a.taskDue;return b&&b.overdue>0?(0,r.jsxs)("span",{className:"font-mono text-[10px] text-danger",children:[b.overdue," ",1===b.overdue?"task":"tasks"," overdue"]}):a.item.due?(0,r.jsx)(er,{due:a.item.due,state:a.dueState}):b?.next?(0,r.jsxs)("span",{className:(0,ea.cn)("font-mono text-[10px]",a.taskDueSoon?"text-amber":"text-muted"),children:["Next due ",ei(b.next)]}):null}function et({drift:a}){return a?.length?(0,r.jsx)("span",{title:a.join("\n"),className:"absolute -left-2 -top-2 rounded-full bg-bg p-0.5 text-amber",children:(0,r.jsx)(dY.AlertTriangle,{className:"h-3.5 w-3.5"})}):null}let eu={horizon:function({data:a,selected:b}){let{item:c,progress:d,epics:e,chapter:f}=a,g=c.status;return(0,r.jsxs)("div",{style:{width:260},className:(0,ea.cn)("relative flex items-center gap-3 rounded-xl border bg-surface px-3.5 py-3 transition-shadow duration-(--duration-base)","in-progress"===g&&"border-accent/60 shadow-[0_0_0_1px_rgb(var(--rgb-accent)/0.25),0_10px_30px_-12px_rgb(var(--rgb-accent)/0.6)]","done"===g&&"border-teal/40","planned"===g&&"border-dashed border-border2",b&&"ring-2 ring-accent/60 ring-offset-2 ring-offset-bg"),children:[(0,r.jsx)(ek,{}),(0,r.jsx)("span",{className:(0,ea.cn)("font-mono text-2xl font-semibold leading-none tabular-nums","in-progress"===g?"text-accent":"done"===g?"text-teal":"text-muted"),children:f?String(f).padStart(2,"0"):"··"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase leading-snug tracking-wider text-txt",children:c.title}),(0,r.jsxs)("p",{className:"mt-1 flex flex-wrap items-center gap-x-2 font-mono text-[10px] text-muted",children:[e&&e.total>0&&(0,r.jsxs)("span",{children:[e.done,"/",e.total," epics"]}),(0,r.jsx)(er,{due:c.due,state:a.dueState})]})]}),d&&(0,r.jsx)(eq,{value:d.done,total:d.total,className:"done"===g?"text-teal":"text-accent"}),(0,r.jsx)(et,{drift:a.drift})]})},feature:function({data:a,selected:b}){let{item:c,taskStatuses:d,nextTaskId:e}=a,f=!!a.drift?.length,g=b&&"ring-2 ring-accent/60 ring-offset-2 ring-offset-bg";if("done"===c.status)return(0,r.jsxs)("div",{style:{width:220},className:(0,ea.cn)("group relative flex items-center gap-2 rounded-lg border border-border bg-surface/60 px-3 py-2 hover:border-teal/40",g),children:[(0,r.jsx)(ek,{}),(0,r.jsx)(ec.Check,{className:"h-3.5 w-3.5 shrink-0 text-teal",strokeWidth:3}),(0,r.jsx)("p",{className:"min-w-0 flex-1 truncate text-[13px] text-muted group-hover:text-txt",title:c.title,children:c.title}),a.progress&&(0,r.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[a.progress.done,"/",a.progress.total]}),(0,r.jsx)(et,{drift:a.drift})]});let h="in-progress"===c.status;return(0,r.jsxs)("div",{style:{width:220},className:(0,ea.cn)("relative flex flex-col gap-1.5 rounded-lg border px-3 py-2.5 transition-shadow duration-(--duration-base)",h?"border-accent/50 bg-surface shadow-[0_8px_24px_-10px_rgb(var(--rgb-accent)/0.55)]":"border-dashed border-border2 bg-bg hover:border-muted",g),children:[(0,r.jsx)(ek,{}),h&&(0,r.jsx)("span",{className:(0,ea.cn)("absolute -inset-y-px -left-px w-[3px] rounded-l-lg",f?"bg-amber":"bg-accent")}),(0,r.jsxs)("div",{className:"flex items-center justify-between font-mono text-[10px]",children:[(0,r.jsx)("span",{className:"text-muted",children:c.id}),h?(0,r.jsxs)("span",{className:"flex items-center gap-1.5 uppercase tracking-wider text-accent",children:[(0,r.jsx)(em,{status:"in-progress",className:"h-1.5 w-1.5"}),"Live"]}):(0,r.jsx)("span",{className:"uppercase tracking-wider text-muted",children:c.tasks.length?`${c.tasks.length} tasks`:"No tasks yet"})]}),(0,r.jsx)("p",{className:(0,ea.cn)("line-clamp-2 text-[13px] leading-snug",h?"font-medium text-txt":"text-txt/80"),title:c.title,children:c.title}),d&&d.length>0&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(ep,{statuses:d}),(0,r.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:h&&e?(0,r.jsxs)(r.Fragment,{children:["next ",(0,r.jsx)("span",{className:"text-txt",children:e})]}):`${d.filter(a=>"done"===a).length}/${d.length}`})]}),(0,r.jsx)(es,{data:a}),(0,r.jsx)(et,{drift:a.drift})]})}};function ev({items:a,today:b,onSelect:c,progressById:d}){let e=new Map(a.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1])),f=(0,s.useMemo)(()=>{let c,d,e,f,g,h,i,j;return d=eh([b,...c=a.map(a=>a.due).filter(a=>!!a)].sort()[0]),e=eh([b,...c].sort().at(-1)??b),f={y:d.y,m:d.m-1},h=Array.from({length:g=Math.max(6,(e.y-d.y)*12+(e.m-d.m)+3)},(a,b)=>{let c=12*f.y+(f.m-1)+b,d=Math.floor(c/12),e=c%12+1;return{y:d,m:e,label:1===e||0===b?`${eg[e-1]} ${d}`:eg[e-1],x:160*b}}),i=a=>{let{y:b,m:c,day:d}=eh(a);return((b-h[0].y)*12+(c-h[0].m))*160+(d-.5)/new Date(b,c,0).getDate()*160},j=ed(a).map(c=>{let d=[c,...null===c.parent?ee(a,c.id):[]].filter(a=>a.due),e=[],f=d.map(a=>({item:a,x:i(a.due),horizon:a.id===c.id})).sort((a,b)=>a.x-b.x).map(a=>{let c=e.findIndex(b=>a.x>=b);return -1===c&&(c=e.push(0)-1),e[c]=a.x+180,{...a,row:c,state:d8(a.item.due,a.item.status,b)}});return{item:c,rows:Math.max(1,e.length),markers:f}}),{months:h.map(({label:a,x:b})=>({label:a,x:b})),width:160*g,todayX:i(b),lanes:j,undated:a.filter(a=>!a.due&&"done"!==a.status)}},[a,b]),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{let a=g.current;a&&(a.scrollLeft=Math.max(0,f.todayX-(a.clientWidth-200)/3))},[f.todayX]);let h=f.lanes.some(a=>a.markers.length>0);return(0,r.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",children:[(0,r.jsx)("div",{ref:g,className:"relative flex-1 min-h-0 overflow-auto",children:(0,r.jsxs)("div",{className:"relative",style:{width:200+f.width,minHeight:"100%"},children:[(0,r.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:f.width},children:[f.months.map(a=>(0,r.jsx)("div",{className:"absolute inset-y-0 border-l border-border",style:{left:a.x}},a.x)),(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 bg-surface/50",style:{width:f.todayX}}),(0,r.jsx)("div",{className:"absolute inset-y-0 w-px bg-accent shadow-[0_0_12px_rgb(var(--rgb-accent)/0.8)]",style:{left:f.todayX},children:(0,r.jsx)("span",{className:"absolute -translate-x-1/2 rounded-full bg-accent px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-white",style:{top:42},children:"Today"})})]}),(0,r.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-bg",style:{height:36},children:[(0,r.jsx)("div",{className:"sticky left-0 z-10 shrink-0 bg-bg",style:{width:200}}),(0,r.jsx)("div",{className:"relative",children:f.months.map(a=>(0,r.jsx)("span",{className:"absolute top-3 whitespace-nowrap pl-2 font-mono text-[10px] uppercase tracking-widest text-muted",style:{left:a.x},children:a.label},a.x))})]}),f.lanes.map(a=>(0,r.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,r.jsx)(ew,{item:a.item,chapter:e.get(a.item.id),progress:d[a.item.id],onSelect:c}),(0,r.jsx)("div",{className:"relative",style:{width:f.width,height:44*a.rows+12},children:a.markers.map(a=>(0,r.jsxs)("button",{type:"button",onClick:()=>c(a.item.id),title:`${a.item.id} \xb7 ${a.item.title} \xb7 due ${a.item.due}${"overdue"===a.state?" (overdue)":""}`,className:"group absolute flex items-center gap-1.5",style:{left:a.x-10,top:6+44*a.row},children:[a.horizon?(0,r.jsx)("span",{className:(0,ea.cn)("h-4 w-4 rotate-45 border-2 border-accent","done"===a.item.status?"bg-accent":"bg-bg","overdue"===a.state&&"border-danger")}):(0,r.jsx)("span",{className:(0,ea.cn)("rounded-full","overdue"===a.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,r.jsx)(em,{status:a.item.status})}),(0,r.jsxs)("span",{className:(0,ea.cn)("flex max-w-[150px] flex-col rounded-md border px-2 py-0.5 text-left transition-colors","in-progress"===a.item.status?"border-accent/50 bg-surface shadow-[0_6px_18px_-10px_rgb(var(--rgb-accent)/0.7)]":"done"===a.item.status?"border-border bg-surface/60":"border-dashed border-border2 bg-bg","group-hover:border-accent"),children:[(0,r.jsx)("span",{className:(0,ea.cn)("truncate text-xs","done"===a.item.status?"text-muted":"text-txt",a.horizon&&"font-semibold"),children:a.item.title}),(0,r.jsx)("span",{className:(0,ea.cn)("font-mono text-[10px]","overdue"===a.state?"text-danger":"soon"===a.state?"text-amber":"text-muted"),children:ei(a.item.due)})]})]},a.item.id))})]},a.item.id)),!h&&(0,r.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."})]})}),f.undated.length>0&&(0,r.jsxs)("div",{className:"max-h-28 shrink-0 overflow-y-auto border-t border-border bg-surface px-4 py-2",children:[(0,r.jsxs)("p",{className:"mb-2 font-mono text-[10px] uppercase tracking-widest text-muted",children:["No due date · ",f.undated.length]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:f.undated.map(a=>(0,r.jsxs)("button",{type:"button",onClick:()=>c(a.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,r.jsx)(em,{status:a.status}),a.title]},a.id))})]})]})}function ew({item:a,chapter:b,progress:c,onSelect:d}){return(0,r.jsxs)("button",{type:"button",onClick:()=>d(a.id),className:"sticky left-0 z-10 flex shrink-0 items-center gap-3 border-r border-border bg-surface px-3 text-left hover:bg-surface2",style:{width:200},children:[(0,r.jsx)("span",{className:(0,ea.cn)("font-mono text-lg font-semibold tabular-nums","in-progress"===a.status?"text-accent":"done"===a.status?"text-teal":"text-muted"),children:b?String(b).padStart(2,"0"):"··"}),(0,r.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,r.jsx)("span",{className:"line-clamp-2 text-[11px] font-semibold uppercase leading-snug tracking-wider text-txt",children:a.title}),c&&(0,r.jsx)("span",{className:"h-1 overflow-hidden rounded-full bg-border",children:(0,r.jsx)("span",{className:"block h-full rounded-full bg-teal",style:{width:`${c.done/c.total*100}%`}})})]})]})}var ex=a.i(156298),ey=a.i(661661),ez=a.i(757061),eA=a.i(866718),eB=a.i(149350);let eC=["planned","in-progress","done"],eD="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",eE="text-xs font-medium text-muted",eF="font-mono text-[10px] uppercase tracking-widest text-muted";function eG({item:a,onClose:b,...c}){return(0,r.jsx)(ez.Sheet,{open:!!a,onOpenChange:a=>{a||b()},children:(0,r.jsx)(ez.SheetContent,{className:"w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:a&&(0,r.jsx)(eH,{item:a,onClose:b,...c},a.id)})})}function eH(a){let[b,c]=(0,s.useState)(!1);return b?(0,r.jsx)(eJ,{...a,onCancel:()=>c(!1)}):(0,r.jsx)(eI,{...a,onEdit:()=>c(!0)})}function eI({item:a,items:b,onClose:c,onAddFeature:d,onEditRaw:e,onSelect:f,tasksById:g,progressById:h,onEdit:i}){let j=null===a.parent,k=b.find(b=>b.id===a.parent),l=b.filter(b=>b.parent===a.id).sort((a,b)=>a.order-b.order),m=h[a.id],n=d7();return(0,r.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,r.jsxs)("header",{className:(0,ea.cn)("border-b border-border px-6 pb-5 pt-6","in-progress"===a.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),children:[(0,r.jsx)(ez.SheetDescription,{asChild:!0,children:(0,r.jsxs)("div",{className:"flex items-center gap-1 pr-8 font-mono text-[11px] text-muted",children:[k&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",onClick:()=>f(k.id),className:"truncate hover:text-txt",children:k.title}),(0,r.jsx)(ex.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,r.jsxs)("span",{className:"shrink-0",children:[a.id," · ",j?"horizon":"epic"]})]})}),(0,r.jsx)(ez.SheetTitle,{className:"mt-2 text-xl font-semibold leading-tight text-txt",children:a.title}),(0,r.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[(0,r.jsx)(en,{status:a.status}),(0,r.jsx)(er,{due:a.due,state:d8(a.due,a.status,n)})]}),m&&(0,r.jsxs)("div",{className:"mt-5 flex items-end gap-4",children:[(0,r.jsxs)("p",{className:"font-mono text-3xl font-semibold leading-none tabular-nums text-txt",children:[Math.round(m.done/m.total*100),(0,r.jsx)("span",{className:"text-base text-muted",children:"%"})]}),(0,r.jsxs)("div",{className:"flex-1 pb-1",children:[(0,r.jsxs)("p",{className:"mb-1.5 font-mono text-[10px] text-muted",children:[m.done," of ",m.total,j?"":" tasks"," done"]}),j?(0,r.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:(0,r.jsx)("div",{className:"h-full rounded-full bg-teal",style:{width:`${m.done/m.total*100}%`}})}):(0,r.jsx)(ep,{statuses:a.tasks.map(a=>g[a]?.status).filter(a=>!!a&&"cancelled"!==a)})]})]})]}),(0,r.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!j&&a.tasks.length>0&&(0,r.jsx)(eK,{item:a,tasksById:g,onOpen:e}),j&&(0,r.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:eF,children:["Epics · ",l.length]}),0===l.length&&(0,r.jsx)("p",{className:"text-sm text-muted",children:"No epics yet."}),(0,r.jsx)("ul",{className:"-mx-2 flex flex-col",children:l.map(a=>{let b=h[a.id];return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>f(a.id),className:"flex w-full items-center gap-3 rounded-md px-2 py-2 text-left hover:bg-surface2",children:[(0,r.jsx)(em,{status:a.status}),(0,r.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.id}),(0,r.jsx)("span",{className:(0,ea.cn)("min-w-0 flex-1 truncate text-sm","done"===a.status?"text-muted":"text-txt"),children:a.title}),b&&(0,r.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:[b.done,"/",b.total]})]})},a.id)})})]}),(0,r.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,r.jsx)("p",{className:eF,children:"Brief"}),a.body.trim()?(0,r.jsx)(eB.MarkdownRenderer,{content:a.body,className:"text-sm"}):(0,r.jsx)("p",{className:"text-sm text-muted",children:"No description. Edit to add the outcome, scope and “done when”."})]})]}),(0,r.jsxs)("footer",{className:"sticky bottom-0 flex flex-wrap items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[j||0!==a.tasks.length?j?(0,r.jsxs)(d4.Button,{size:"sm",onClick:()=>d(a.id),className:"bg-accent text-white hover:bg-accent/90",children:[(0,r.jsx)(d_.Plus,{})," Add epic"]}):null:(0,r.jsxs)(d4.Button,{size:"sm",onClick:()=>{c(),(0,eb.askAgent)(`Break down epic ${a.id} into tasks.`)},className:"bg-accent text-white hover:bg-accent/90",children:[(0,r.jsx)(dZ.Bot,{})," Break down with agent"]}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"outline",onClick:i,children:[(0,r.jsx)(ey.Pencil,{})," Edit"]}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"ghost",onClick:()=>e(a.file),className:"ml-auto text-muted hover:text-txt",children:[(0,r.jsx)(d$.FileText,{})," Open file"]})]})]})}function eJ({item:a,items:b,onClose:c,onSave:d,onDelete:e,onCancel:f}){let[g]=(0,s.useState)(a),[h,i]=(0,s.useState)(a.title),[j,k]=(0,s.useState)(a.status),[l,m]=(0,s.useState)(a.parent??""),[n,o]=(0,s.useState)(String(a.order)),[p,q]=(0,s.useState)(a.tasks.join(", ")),[t,u]=(0,s.useState)(a.due??""),[v,w]=(0,s.useState)(a.body),[x,y]=(0,s.useState)(null),[z,A]=(0,s.useState)(!1),B=b.some(b=>b.parent===a.id),C=b.filter(b=>null===b.parent&&b.id!==a.id),D=null===a.parent,E=null!==a.parent&&!C.some(b=>b.id===a.parent);async function F(a){A(!0),y(null);let b=await a();return A(!1),b&&y(b),!b}async function G(){let b={},e=h.trim()||g.title;if(e!==g.title&&(b.title=e),j!==g.status&&(b.status=j),(l||null)!==g.parent&&(b.parent=l||null),n.trim()!==String(g.order)){let a=Number(n);if(""===n.trim()||!Number.isFinite(a))return void y("Order must be a number");b.order=a}let i=p.split(",").map(a=>a.trim()).filter(Boolean);(i.join(",")!==g.tasks.join(",")&&(b.tasks=i),(t||null)!==g.due&&(b.due=t||null),v!==g.body&&(b.body=v),0===Object.keys(b).length)?f():await F(()=>d(a.id,b))&&c()}async function H(){window.confirm(`Delete ${a.id}: ${a.title}?`)&&await F(()=>e(a.id))&&c()}return(0,r.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,r.jsxs)("div",{className:"border-b border-border px-6 pb-4 pt-6 pr-12",children:[(0,r.jsxs)(ez.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",a.id," · ",D?"horizon":"epic"]}),(0,r.jsx)(ez.SheetTitle,{className:"mt-1 text-base text-txt",children:a.title})]}),(0,r.jsxs)("div",{className:"flex flex-1 flex-col gap-4 px-6 py-5",children:[(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Title"}),(0,r.jsx)(eA.Input,{value:h,onChange:a=>i(a.target.value),className:"bg-bg border-border text-txt"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Status"}),(0,r.jsx)("select",{value:j,onChange:a=>k(a.target.value),className:eD,children:eC.map(a=>(0,r.jsx)("option",{value:a,children:a},a))})]}),(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Parent"}),(0,r.jsxs)("select",{value:l,onChange:a=>m(a.target.value),disabled:B,title:B?"Items with children must stay on the spine":void 0,className:eD,children:[(0,r.jsx)("option",{value:"",children:"— (horizon)"}),E&&(0,r.jsxs)("option",{value:a.parent??"",children:[a.parent," · missing"]}),C.map(a=>(0,r.jsxs)("option",{value:a.id,children:[a.id," · ",a.title]},a.id))]})]}),(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Order"}),(0,r.jsx)(eA.Input,{type:"number",step:10,value:n,onChange:a=>o(a.target.value),title:D?"Position on the spine":"Position within the branch",className:"bg-bg border-border text-txt"})]})]}),(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Due"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(eA.Input,{type:"date",value:t,onChange:a=>u(a.target.value),className:"bg-bg border-border text-txt scheme-light dark:scheme-dark"}),t&&(0,r.jsx)("button",{type:"button",onClick:()=>u(""),className:"text-xs text-muted hover:text-txt",children:"Clear"})]})]}),(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Tasks"}),(0,r.jsx)(eA.Input,{value:p,onChange:a=>q(a.target.value),placeholder:"T001, T012",className:"bg-bg border-border text-txt font-mono"})]}),(0,r.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:eE,children:"Body (markdown)"}),(0,r.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),rows:12,className:`${eD} font-mono resize-y`})]}),x&&(0,r.jsx)("p",{className:"text-xs text-danger",children:x})]}),(0,r.jsxs)("footer",{className:"sticky bottom-0 flex items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[(0,r.jsx)(d4.Button,{size:"sm",onClick:G,disabled:z,className:"bg-accent text-white hover:bg-accent/90",children:"Save"}),(0,r.jsx)(d4.Button,{size:"sm",variant:"ghost",onClick:f,disabled:z,className:"text-txt",children:"Cancel"}),(0,r.jsx)(d4.Button,{size:"sm",variant:"ghost",onClick:H,disabled:z,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function eK({item:a,tasksById:b,onOpen:c}){let d=d7(),e=d6(a,Object.values(b)),f="ready"===e.kind?e.taskId:null,g="waiting"===e.kind?[...e.waiting].sort((a,c)=>Number(b[c.taskId]?.status==="todo")-Number(b[a.taskId]?.status==="todo")).map(a=>a.reason):[];return(0,r.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:eF,children:["Tasks · ",a.tasks.length]}),(0,r.jsx)("ul",{className:"-mx-2 flex flex-col",children:a.tasks.map(a=>{let e=b[a];if(!e)return(0,r.jsxs)("li",{className:"px-2 py-2 font-mono text-xs text-danger",children:[a," · missing task file"]},a);let g=e.id===f;return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>c(e.file),className:(0,ea.cn)("flex w-full items-center gap-3 rounded-md px-2 py-2 text-left hover:bg-surface2",g&&"bg-accent/10 hover:bg-accent/15"),children:[(0,r.jsx)("span",{title:e.status,className:(0,ea.cn)("h-2 w-2 shrink-0 rounded-full",eo[e.status])}),(0,r.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e.id}),(0,r.jsx)("span",{className:(0,ea.cn)("min-w-0 flex-1 truncate text-sm","cancelled"===e.status?"text-muted line-through":"done"===e.status?"text-muted":"text-txt"),children:e.title}),(0,r.jsx)(er,{due:e.due,state:d8(e.due,"done"===e.status?"done":"planned",d)}),g?(0,r.jsx)("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-wider text-accent",children:"Next up"}):e.size&&"—"!==e.size&&(0,r.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:e.size.split(" ")[0]})]})},a)})}),g.length>0&&(0,r.jsxs)("p",{className:"truncate text-xs text-muted",title:g.join("\n"),children:[g[0],g.length>1&&` (+${g.length-1} more)`]})]})}var eL=a.i(814574);function eM({open:a,heading:b,onOpenChange:c,onSubmit:d}){let[e,f]=(0,s.useState)(""),[g,h]=(0,s.useState)(null),[i,j]=(0,s.useState)(!1);function k(a){a||(f(""),h(null)),c(a)}async function l(a){if(a.preventDefault(),!e.trim())return;j(!0);let b=await d(e.trim());j(!1),b?h(b):k(!1)}return(0,r.jsx)(eL.Dialog,{open:a,onOpenChange:k,children:(0,r.jsxs)(eL.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,r.jsx)(eL.DialogTitle,{className:"text-sm font-semibold text-txt",children:b}),(0,r.jsxs)("form",{onSubmit:l,className:"flex flex-col gap-3",children:[(0,r.jsx)(eA.Input,{autoFocus:!0,value:e,onChange:a=>f(a.target.value),placeholder:"Title",className:"bg-bg border-border text-txt"}),g&&(0,r.jsx)("p",{className:"text-xs text-danger",children:g}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(d4.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>k(!1),children:"Cancel"}),(0,r.jsx)(d4.Button,{type:"submit",size:"sm",disabled:i||!e.trim(),className:"bg-accent text-white hover:bg-accent/90",children:"Create"})]})]})]})})}function eN({open:a,onOpenChange:b}){let[c,d]=(0,s.useState)("");return(0,r.jsx)(eL.Dialog,{open:a,onOpenChange:b,children:(0,r.jsxs)(eL.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,r.jsx)(eL.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Plan from spec"}),(0,r.jsxs)("form",{onSubmit:function(a){a.preventDefault(),c.trim()&&(b(!1),(0,eb.askAgent)(`Break down this spec into tasks:
3
-
4
- ${c.trim()}`))},className:"flex flex-col gap-3",children:[(0,r.jsx)("textarea",{autoFocus:!0,value:c,onChange:a=>d(a.target.value),placeholder:"Paste a feature spec…",rows:12,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 text-sm text-txt placeholder:text-muted focus:outline-none focus:ring-1 focus:ring-accent"}),(0,r.jsx)("p",{className:"text-xs text-muted",children:"The agent asks where the tasks go (a new epic, an existing epic, or no epic) and shows a plan before writing anything."}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(d4.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{d(""),b(!1)},children:"Cancel"}),(0,r.jsx)(d4.Button,{type:"submit",size:"sm",disabled:!c.trim(),className:"bg-accent text-white hover:bg-accent/90",children:"Break down"})]})]})]})})}async function eO(a,b){try{let c=await fetch(a,void 0===b?void 0:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>null);if(!c.ok)return{error:d?.error??`Request failed (${c.status})`};return{data:d}}catch{return{error:"Could not reach the server"}}}function eP(a,b,c,d){var e;let f,g,h,i,j,[k,l]=(e=!d,g=(f=a=>({x:a.position.x+(a.measured?.width??("horizon"===a.type?260:220))/2,y:a.position.y+(a.measured?.height??48)/2}))(b),i=(h=f(c)).x-g.x,j=h.y-g.y,e||Math.abs(i)>Math.abs(j)?i>0?[o.Right,o.Left]:[o.Left,o.Right]:j>0?[o.Bottom,o.Top]:[o.Top,o.Bottom]);return{id:a,source:b.id,target:c.id,sourceHandle:k,targetHandle:`${l}-t`,type:d?"straight":"default",selectable:!1,...function(a,b,c){if(c)return"done"===a.data.item.status?{style:{stroke:"var(--color-accent)",strokeWidth:3}}:{style:{stroke:"var(--color-border2)",strokeWidth:3,strokeDasharray:"6 6"}};let d=b.data.item.status;return"in-progress"===d?{animated:!0,style:{stroke:"var(--color-accent)",strokeWidth:2}}:"done"===d?{style:{stroke:"var(--color-border2)",strokeWidth:1.5}}:{style:{stroke:"var(--color-border2)",strokeWidth:1.5,strokeDasharray:"2 5",strokeLinecap:"round"}}}(b,c,d)}}function eQ(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let eR={"--xy-background-color":"var(--color-bg)"};function eS(){let{rootParam:a,openDoc:b,board:c}=(0,d2.useApp)(),d=(0,d1.useRouter)(),e=(0,d1.useSearchParams)(),f="timeline"===e.get("view")?"timeline":"map",g=d7(),[h,i]=(0,s.useState)([]),[j,k]=(0,s.useState)({}),[l,m]=(0,s.useState)([]),[n,o]=(0,s.useState)(!0),[p,t]=(0,s.useState)(null),[u,v]=(0,s.useState)(null),[w,x]=(0,s.useState)(null),[y,z]=(0,s.useState)(!1),[A,B]=(0,s.useState)(null),[C,D]=(0,s.useState)(!1),E=(0,s.useRef)(!1),F=(0,s.useRef)(null),G=(0,s.useCallback)(a=>{let b=F.current?.clientWidth??0,c=a.getNodesBounds(a.getNodes());if(!b||!c.width)return;let d=Math.min(1,Math.max(.75,(b-80)/c.width));a.setViewport({x:b/2-(c.x+c.width/2)*d,y:40-c.y*d,zoom:d})},[]),H=(0,s.useRef)(!1),I=(0,s.useRef)(0),J=(0,s.useSyncExternalStore)(eQ,()=>document.documentElement.classList.contains("dark"),()=>!0),K=(0,s.useCallback)((a,b)=>{i(a),k(b),m(c=>{let d,e;return d=ef(a,b),e=new Map(c.map(a=>[a.id,a])),a.map(a=>{let b=e.get(a.id);return{id:a.id,type:null===a.parent?"horizon":"feature",position:d[a.id]??{x:0,y:0},data:{item:a},measured:b?.measured,selected:b?.selected}})})},[]),L=(0,s.useCallback)(()=>{let b=++I.current;return eO(`/api/roadmap${a}`).then(({data:a,error:c})=>{if(b===I.current){if(o(!1),c){t(c),K([],{}),v(null);return}t(null),x(a?.generateSource??null),K(a?.items??[],a?.layout??{})}})},[a,K]);(0,s.useEffect)(()=>{L()},[L]),(0,s.useEffect)(()=>{let a=new EventSource("/api/events");return a.onmessage=a=>{try{let b=JSON.parse(a.data);if("roadmap_updated"!==b.type)return;E.current?H.current=!0:L()}catch{}},()=>a.close()},[L]);let M=(0,s.useMemo)(()=>{let a=new Map(l.map(a=>[a.id,a])),b=[],c=h.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order);for(let d of(c.forEach((d,e)=>{let f=a.get(d.id),g=c[e+1]&&a.get(c[e+1].id);f&&g&&b.push(eP(`spine-${d.id}`,f,g,!0))}),h)){let c=d.parent&&a.get(d.parent),e=a.get(d.id);c&&e&&"horizon"===c.type&&b.push(eP(`branch-${d.id}`,c,e,!1))}return b},[h,l]),N=(0,s.useMemo)(()=>Object.fromEntries(Object.values(c??{}).flat().map(a=>[a.id,a])),[c]),O=(0,s.useMemo)(()=>(function(a,b,c){let d={},e=[];for(let b of a)b.due&&"overdue"===d8(b.due,b.status,c)&&e.push({id:b.id,kind:"overdue",message:`${b.id} "${b.title}" is overdue since ${b.due}`});let f=new Set(a.filter(a=>null===a.parent).map(a=>a.id));for(let f of a){if(null===f.parent)continue;let a=f.tasks.filter(a=>!(a in b));a.length&&e.push({id:f.id,kind:"missing-task",message:`${f.id} links unknown task ${a.join(", ")}`});let g=f.tasks.filter(a=>a in b&&"cancelled"!==b[a].status),h="done"===f.status?[]:function(a,b,c,d){let e=[];for(let a of b){let b=c[a];"done"!==b.status&&b.due&&b.due<d&&e.push(`${a} overdue since ${b.due}`),"blocked"===b.status&&e.push(`${a} blocked`)}let f=b.some(a=>"done"===c[a].status||"in-progress"===c[a].status);return a.due&&"soon"===d8(a.due,a.status,d)&&!f&&e.push(`due ${a.due}, nothing started`),e}(f,g,b,c);if(h.length&&e.push({id:f.id,kind:"at-risk",message:`${f.id} "${f.title}" at risk: ${h.join("; ")}`}),!g.length)continue;let i=g.map(a=>"done"===b[a].status?"done":"in-progress"===b[a].status?"in-progress":"other");d[f.id]={done:i.filter(a=>"done"===a).length,total:g.length};let j=d9(i);if(j!==f.status){let a=g.filter(a=>"done"!==b[a].status);e.push({id:f.id,kind:"status-mismatch",message:"done"===j?`${f.id} "${f.title}": all tasks done but status is ${f.status}`:`${f.id} "${f.title}" is ${f.status} but tasks ${a.join(", ")} are not done`,suggestedStatus:j})}}for(let b of a){if(!f.has(b.id))continue;let c=a.filter(a=>a.parent===b.id);if(!c.length)continue;let g=c.map(a=>"done"===a.status?"done":"in-progress"===a.status?"in-progress":"other");d[b.id]=c.reduce((a,b)=>{let c=d[b.id]??{done:+("done"===b.status),total:1};return{done:a.done+c.done,total:a.total+c.total}},{done:0,total:0});let h=d9(g);h!==b.status&&e.push({id:b.id,kind:"status-mismatch",message:`${b.id} "${b.title}" is ${b.status} but its features say ${h}`,suggestedStatus:h})}return{progress:d,drift:e}})(h,N,g),[h,N,g]),P=(0,s.useMemo)(()=>{let a=Object.values(N),b=new Map(h.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1]));return l.map(c=>{let d,{item:e}=c.data,f=h.filter(a=>a.parent===e.id),i="feature"===c.type&&"in-progress"===e.status?d6(e,a):null;return{...c,data:{...c.data,progress:O.progress[c.id],drift:O.drift.filter(a=>a.id===c.id).map(a=>a.message),dueState:d8(e.due,e.status,g),..."feature"===c.type&&{...{taskDue:d=function(a,b,c){let d=a.map(a=>b[a]).filter(a=>a&&a.due&&"done"!==a.status&&"cancelled"!==a.status).map(a=>a.due);if(!d.length)return null;let e=d.filter(a=>a>=c).sort();return{overdue:d.length-e.length,next:e[0]??null}}(e.tasks,N,g),taskDueSoon:!!d?.next&&"soon"===d8(d.next,"planned",g)},taskStatuses:e.tasks.map(a=>N[a]?.status).filter(a=>!!a&&"cancelled"!==a),nextTaskId:i?.kind==="ready"?i.taskId:null},..."horizon"===c.type&&{chapter:b.get(e.id),epics:{done:f.filter(a=>"done"===a.status).length,total:f.length}}}}})},[l,h,O,g,N]),Q=(0,s.useCallback)(a=>m(b=>b_(a,b)),[]);async function R(){z(!0),t(null);let{data:b,error:c}=await eO(`/api/roadmap/generate${a}`,{});if(c){t(c),z(!1);return}let d=Object.fromEntries(Object.entries(ef(b?.items??[],{})).map(([a,b])=>[a,{x:Math.round(b.x),y:Math.round(b.y)}])),{error:e}=await eO(`/api/roadmap/layout${a}`,{positions:d});await L(),e&&t(e),z(!1)}let S=Object.values(c??{}).flat().filter(a=>"cancelled"!==a.status).length,T="roadmap-md"===w?"from ROADMAP.md":"tasks"===w?`from ${S} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function U(b){let{error:c}=await eO(`/api/roadmap/create${a}`,{title:b,parent:A||null});return c||(await L(),null)}async function V(b,c){let{data:d,error:e}=await eO(`/api/roadmap/update${a}`,{id:b,patch:c});if(e)return e;let f=d?.item;return f?K(h.map(a=>a.id===b?f:a),j):await L(),null}async function W(b){let{error:c}=await eO(`/api/roadmap/delete${a}`,{id:b});return c||(K(h.filter(a=>a.id!==b),j),null)}let X=h.find(a=>a.id===u)??null,Y=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eM,{open:null!==A,heading:A?`New feature under ${A}`:"New horizon",onOpenChange:a=>{a||B(null)},onSubmit:U}),(0,r.jsx)(eN,{open:C,onOpenChange:D})]});return n?(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===h.length?(0,r.jsxs)("div",{className:"flex-1 p-6",children:[p&&(0,r.jsx)("p",{className:"mb-4 text-sm text-danger",children:p}),(0,r.jsx)(d3.EmptyState,{icon:"🗺️",message:"No roadmap yet",subMessage:"Items live in plans/roadmap/R*.md",bordered:!0}),(0,r.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(d4.Button,{size:"sm",onClick:R,disabled:y,className:"bg-accent text-white hover:bg-accent/90",children:[(0,r.jsx)(d0.Sparkles,{})," ",y?"Generating…":"Generate roadmap"]}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"outline",onClick:()=>(0,eb.askAgent)("Plan a roadmap for this project."),disabled:y,children:[(0,r.jsx)(dZ.Bot,{})," Plan with agent"]}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"outline",onClick:()=>D(!0),disabled:y,children:[(0,r.jsx)(d$.FileText,{})," Plan from spec"]}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"outline",onClick:()=>B(""),disabled:y,children:[(0,r.jsx)(d_.Plus,{})," Create first horizon"]})]}),(0,r.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",T,". Existing files are not modified."]})]}),Y]}):(0,r.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-4 border-b border-border px-3 py-2",children:[(0,r.jsx)("div",{className:"flex rounded-md border border-border p-0.5 text-xs",children:["map","timeline"].map(a=>(0,r.jsx)("button",{type:"button",onClick:()=>{let b,c;return b=new URLSearchParams(e.toString()),"map"===a?b.delete("view"):b.set("view",a),c=b.toString(),void d.replace(c?`/roadmap?${c}`:"/roadmap")},className:(0,ea.cn)("rounded-sm px-3 py-1 capitalize",f===a?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:a},a))}),(0,r.jsx)(eT,{items:h,tasksById:N}),(0,r.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[p&&(0,r.jsx)("p",{className:"text-xs text-danger",children:p}),O.drift.length>0&&(0,r.jsx)(eU,{drift:O.drift,onSelect:v,onApply:a=>a.suggestedStatus&&V(a.id,{status:a.suggestedStatus}).then(a=>{a&&t(a)})}),(0,r.jsxs)(d4.Button,{size:"sm",variant:"outline",onClick:()=>D(!0),children:[(0,r.jsx)(d$.FileText,{})," Plan from spec"]}),(0,r.jsxs)(d4.Button,{size:"sm",onClick:()=>B(""),className:"bg-accent text-white hover:bg-accent/90",children:[(0,r.jsx)(d_.Plus,{})," Horizon"]})]})]}),"map"===f?(0,r.jsx)("div",{ref:F,className:"relative flex-1 min-h-0",children:(0,r.jsxs)(dx,{nodes:P,edges:M,nodeTypes:eu,onNodesChange:Q,onNodeClick:(a,b)=>v(b.id),onNodeDragStart:()=>{E.current=!0},onNodeDragStop:(b,c,d)=>{let e;return E.current=!1,e=Object.fromEntries(d.map(a=>[a.id,{x:Math.round(a.position.x),y:Math.round(a.position.y)}])),void(K(h,{...j,...e}),eO(`/api/roadmap/layout${a}`,{positions:e}).then(({error:a})=>{a&&t(a),H.current&&(H.current=!1,L())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:J?"dark":"light",onInit:G,minZoom:.2,style:eR,children:[(0,r.jsx)(dD,{variant:q.Dots,gap:20,size:1}),(0,r.jsx)(dM,{showInteractive:!1})]})}):(0,r.jsx)(ev,{items:h,today:g,onSelect:v,progressById:O.progress}),(0,r.jsx)(eG,{item:X,items:h,onClose:()=>v(null),onSave:V,onDelete:W,onAddFeature:a=>{v(null),B(a)},onEditRaw:a=>{b(a)},tasksById:N,progressById:O.progress,onSelect:v}),Y]})}function eT({items:a,tasksById:b}){let c=a.filter(a=>null!==a.parent),d=a=>c.filter(b=>b.status===a).length,e=[...new Set(c.flatMap(a=>a.tasks))].map(a=>b[a]).filter(a=>a&&"cancelled"!==a.status),f=e.filter(a=>"done"===a.status).length;return(0,r.jsxs)("div",{className:"hidden items-center gap-4 font-mono text-[11px] text-muted md:flex",children:[["in-progress","done","planned"].map(a=>(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(em,{status:a}),(0,r.jsx)("span",{className:(0,ea.cn)("tabular-nums","in-progress"===a&&d(a)>0?"text-accent":"text-txt"),children:d(a)}),el[a].toLowerCase()]},a)),e.length>0&&(0,r.jsxs)("span",{className:"flex items-center gap-2 border-l border-border pl-4",children:[(0,r.jsx)("span",{className:"relative h-1 w-20 overflow-hidden rounded-full bg-border",children:(0,r.jsx)("span",{className:"absolute inset-y-0 left-0 rounded-full bg-teal",style:{width:`${f/e.length*100}%`}})}),(0,r.jsxs)("span",{children:[(0,r.jsxs)("span",{className:"tabular-nums text-txt",children:[f,"/",e.length]})," tasks"]})]})]})}function eU({drift:a,onSelect:b,onApply:c}){return(0,r.jsxs)("details",{className:"group relative",children:[(0,r.jsxs)("summary",{className:"flex h-8 cursor-pointer list-none items-center gap-1.5 rounded-md border border-amber/40 bg-amber/10 px-2.5 text-xs font-medium text-txt hover:bg-amber/15 [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(dY.AlertTriangle,{className:"h-3.5 w-3.5 text-amber"})," ",a.length," need attention"]}),(0,r.jsx)("ul",{className:"absolute right-0 top-full z-30 mt-1.5 max-h-72 w-80 overflow-y-auto rounded-lg border border-border bg-surface text-xs shadow-xl",children:a.map(a=>(0,r.jsxs)("li",{className:"flex items-start gap-2 border-b border-border px-3 py-2.5 last:border-0",children:[(0,r.jsx)("span",{className:"mt-1 h-1.5 w-1.5 shrink-0 rounded-full bg-amber"}),(0,r.jsx)("button",{type:"button",onClick:()=>b(a.id),className:"flex-1 text-left leading-relaxed text-muted hover:text-txt",children:a.message}),a.suggestedStatus&&(0,r.jsxs)("button",{type:"button",onClick:()=>c(a),className:"shrink-0 rounded-sm border border-border px-1.5 py-0.5 font-mono text-[10px] text-txt hover:border-accent hover:text-accent",title:`Set status to ${a.suggestedStatus}`,children:["→ ",a.suggestedStatus]})]},`${a.id}-${a.kind}`))})]})}a.s(["default",0,function(){return(0,r.jsx)("div",{className:"flex flex-col h-[calc(100svh-3rem)]",children:(0,r.jsx)(s.Suspense,{children:(0,r.jsx)(eS,{})})})}],690793)}];
5
-
6
- //# sourceMappingURL=_0skuoxv._.js.map