ghost 6.44.0 → 6.44.1

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 (267) hide show
  1. package/core/boot.js +9 -13
  2. package/core/bridge.js +6 -10
  3. package/core/built/admin/assets/{PolarAngleAxis-eFuSrR7S.js → PolarAngleAxis-DWP6qq-Z.js} +2 -2
  4. package/core/built/admin/assets/{_baseAssignValue-XVHfKew7.js → _baseAssignValue-N9f4o_XK.js} +1 -1
  5. package/core/built/admin/assets/{a-large-small-DOzPDzKp.js → a-large-small-BOAtcFiE.js} +1 -1
  6. package/core/built/admin/assets/{account-migration-Cx45M5qm.js → account-migration-CtZx_5ib.js} +1 -1
  7. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  8. package/core/built/admin/assets/admin-x-settings/{code-editor-view-Bi8Orhyj.mjs → code-editor-view-BMovCjer.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-1_V9g9Pt.mjs → index-BT1n-g2b.mjs} +3 -3
  10. package/core/built/admin/assets/admin-x-settings/{index-e9saYQJa.mjs → index-BnowNBGd.mjs} +5 -5
  11. package/core/built/admin/assets/admin-x-settings/{index-CnvQi01U.mjs → index-CRpK6gF8.mjs} +3 -3
  12. package/core/built/admin/assets/admin-x-settings/{index-BmU6BOfy.mjs → index-CfXS3AZ8.mjs} +3 -3
  13. package/core/built/admin/assets/admin-x-settings/{index-EuMiBt6I.mjs → index-Cs8zML6u.mjs} +3 -3
  14. package/core/built/admin/assets/admin-x-settings/{index-B43MPc5u.mjs → index-DmpwO1w3.mjs} +2 -2
  15. package/core/built/admin/assets/admin-x-settings/{index-DOgG0XZa.mjs → index-DwFIdhcR.mjs} +3 -3
  16. package/core/built/admin/assets/admin-x-settings/{index-CWdxMIcZ.mjs → index-sNyPiIJA.mjs} +2 -2
  17. package/core/built/admin/assets/admin-x-settings/{index-Ojg_pBvq.mjs → index-xTILut54.mjs} +1259 -1259
  18. package/core/built/admin/assets/admin-x-settings/{modals-Ckbx9UQF.mjs → modals-Cm5t13os.mjs} +9 -9
  19. package/core/built/admin/assets/{arrow-right-DckEQtp9.js → arrow-right-BxdHN_En.js} +1 -1
  20. package/core/built/admin/assets/{at-sign-BChf68aS.js → at-sign-Cajf-dOf.js} +1 -1
  21. package/core/built/admin/assets/{audience-BYU5Bd7D.js → audience-CHNb9mCT.js} +1 -1
  22. package/core/built/admin/assets/{automated-email-design-Z26Qit0_.js → automated-email-design-B9C9mKUS.js} +2 -2
  23. package/core/built/admin/assets/{automated-emails-aBicreLv.js → automated-emails-DhLhkq8L.js} +1 -1
  24. package/core/built/admin/assets/{automations-vpH-d72N.js → automations-6-cgZovk.js} +1 -1
  25. package/core/built/admin/assets/{automations-Ddo22yPk.js → automations-CxJ-N_YK.js} +1 -1
  26. package/core/built/admin/assets/{avatar-flipboard-CoI3LQ-o.js → avatar-flipboard-f5nSMmek.js} +1 -1
  27. package/core/built/admin/assets/{bluesky-sharing-iVDkCMKN.js → bluesky-sharing-Dm2k8qZH.js} +1 -1
  28. package/core/built/admin/assets/{chart-CjM1VQqH.js → chart-BbJnjWey.js} +23 -23
  29. package/core/built/admin/assets/{checkbox-CC5kd_Kf.js → checkbox-CT7DNFAI.js} +1 -1
  30. package/core/built/admin/assets/{chevron-up-D__wzyXT.js → chevron-up-BxijmTT9.js} +1 -1
  31. package/core/built/admin/assets/{chunk.696.79505fa556d329d6e824.js → chunk.167.37bb0d7f6ac67fefa679.js} +3184 -3523
  32. package/core/built/admin/assets/{chunk.696.79505fa556d329d6e824.js.LICENSE.txt → chunk.167.37bb0d7f6ac67fefa679.js.LICENSE.txt} +1 -1
  33. package/core/built/admin/assets/{chunk.524.1ff649a6cc62dc38f538.js → chunk.524.ed812b62217210a913d4.js} +5 -5
  34. package/core/built/admin/assets/{chunk.582.408a40e0095e479e3d11.js → chunk.582.7db5c9f17bca5a484049.js} +6 -6
  35. package/core/built/admin/assets/{chunk.945.835812fcb16029abd7f9.js → chunk.834.f9db7c62b9457db93e8c.js} +3 -3
  36. package/core/built/admin/assets/{code-editor-view-C735d5EA.js → code-editor-view-D8slE0IA.js} +1 -1
  37. package/core/built/admin/assets/{comments-DgFPax3Y.js → comments-BvfR-fA8.js} +1 -1
  38. package/core/built/admin/assets/{content-helpers-DjugSfvm.js → content-helpers-DUWGLvgL.js} +1 -1
  39. package/core/built/admin/assets/{copy-D9JONGcK.js → copy-ht18t5gu.js} +1 -1
  40. package/core/built/admin/assets/{data-list-QWLEHG4y.js → data-list-Daha2dIs.js} +1 -1
  41. package/core/built/admin/assets/{deleted-feed-item-CwSCflTW.js → deleted-feed-item-ChP5bwgi.js} +1 -1
  42. package/core/built/admin/assets/{dropzone-lK_4vpWS.js → dropzone-h_qyk514.js} +1 -1
  43. package/core/built/admin/assets/{edit-profile-BmioJZHv.js → edit-profile-BT8RQpAG.js} +1 -1
  44. package/core/built/admin/assets/editor-s1mqd9_o.js +8 -0
  45. package/core/built/admin/assets/{empty-indicator-Dg64lT_g.js → empty-indicator-BIUvv6JE.js} +1 -1
  46. package/core/built/admin/assets/{en-DCwBNJ98.js → en-BEcDl42w.js} +1 -1
  47. package/core/built/admin/assets/{eye-psLxWnjO.js → eye-TPnIdamu.js} +1 -1
  48. package/core/built/admin/assets/{feed-TUcCSZHL.js → feed-BK3qvLWi.js} +1 -1
  49. package/core/built/admin/assets/{field-Uk8NOvtc.js → field-CSFsrvVy.js} +1 -1
  50. package/core/built/admin/assets/{filter-query-core-CbH_VKcG.js → filter-query-core-R8cQCO2w.js} +1 -1
  51. package/core/built/admin/assets/{filters-DmawZ5Uu.js → filters-Cp1voB1e.js} +1 -1
  52. package/core/built/admin/assets/gh-chart-BFsyOJD_.js +1 -0
  53. package/core/built/admin/assets/{ghost-2baa7ddc3630015f41c0efd13bd586b8.js → ghost-1881362e8a92dae1e3333a0484c173a3.js} +7 -6
  54. package/core/built/admin/assets/{growth-BAl-TyMy.js → growth-DIigOxF1.js} +1 -1
  55. package/core/built/admin/assets/{hash-Q1ou0OMZ.js → hash-B3iFVeCl.js} +1 -1
  56. package/core/built/admin/assets/{inbox-BAOtR6tN.js → inbox-2bPMLikt.js} +1 -1
  57. package/core/built/admin/assets/{index-BnJp51QE.js → index-52qUC8yv.js} +5 -5
  58. package/core/built/admin/assets/{index-BDIwushG.js → index-9j01Aj_X.js} +1 -1
  59. package/core/built/admin/assets/index-B9UVpmey.js +1 -0
  60. package/core/built/admin/assets/{index-DTeOW3Se.js → index-BXc5OF6x.js} +1 -1
  61. package/core/built/admin/assets/{index-Duc21aJ7.js → index-BaGL3IFe.js} +1 -1
  62. package/core/built/admin/assets/{index-DKC8uXHk.js → index-BdozZbt2.js} +2 -2
  63. package/core/built/admin/assets/{index-z951kI4K.js → index-Bgpz7M7i.js} +1 -1
  64. package/core/built/admin/assets/{index-BfSvX9is.js → index-Bp4O7TVf.js} +1 -1
  65. package/core/built/admin/assets/{index-C5S08C6P.js → index-BuqUmpe9.js} +1 -1
  66. package/core/built/admin/assets/{index-D7OtVnbo.js → index-CEF_Ofn0.js} +1 -1
  67. package/core/built/admin/assets/{index-Bs6rUYFS.js → index-CgSVv5Up.js} +58 -58
  68. package/core/built/admin/assets/{index-Ro9qXetv.js → index-Cr6x2czK.js} +1 -1
  69. package/core/built/admin/assets/{index-DJbgQjV6.js → index-CrbZj3Ju.js} +1 -1
  70. package/core/built/admin/assets/{index-BTBcWw_z.js → index-CrlAPDdD.js} +2 -2
  71. package/core/built/admin/assets/{index-B6SD2Qs-.js → index-CtrmMGWT.js} +1 -1
  72. package/core/built/admin/assets/{index-Bw0oyOFd.js → index-D-V_DAdt.js} +1 -1
  73. package/core/built/admin/assets/{index-DAJduTBl.js → index-D0poOSjw.js} +4 -4
  74. package/core/built/admin/assets/{index-CGT3W8fi.js → index-DWVGCPEC.js} +3 -3
  75. package/core/built/admin/assets/index-Dozbr_4s.css +1 -0
  76. package/core/built/admin/assets/{index-FyplpnYQ.js → index-S3Ai3lDy.js} +1 -1
  77. package/core/built/admin/assets/{index-DLr8D_Ks.js → index-VDhA5kgU.js} +1 -1
  78. package/core/built/admin/assets/{index-DRA1fORQ.js → index-fnIFqFMt.js} +1 -1
  79. package/core/built/admin/assets/{index-BhWQZObu.js → index-kA3UcdW7.js} +1 -1
  80. package/core/built/admin/assets/{input-group-DH32syTz.js → input-group-Fdl0S6pw.js} +1 -1
  81. package/core/built/admin/assets/{koenig-lexical-CxVcbgsH.js → koenig-lexical-REiYtzGD.js} +1 -1
  82. package/core/built/admin/assets/{kpi-card-DBWHDi3l.js → kpi-card-BS8vEj4c.js} +1 -1
  83. package/core/built/admin/assets/{kpi-card-BYhzWV5F.js → kpi-card-D3HEfOCP.js} +1 -1
  84. package/core/built/admin/assets/{kpi-tabs-Kxc-utyg.js → kpi-tabs-8vaI7yWq.js} +1 -1
  85. package/core/built/admin/assets/kpis-CkD0Xteg.js +1 -0
  86. package/core/built/admin/assets/label-DT38Gd2T.js +1 -0
  87. package/core/built/admin/assets/{links-Cg8O8ZGP.js → links-BK-azjCL.js} +1 -1
  88. package/core/built/admin/assets/{list-page-D2KCBsiy.js → list-page-DVpac3lc.js} +1 -1
  89. package/core/built/admin/assets/{loader-circle-nmLqhMZL.js → loader-circle-CIq5Cv-9.js} +1 -1
  90. package/core/built/admin/assets/{mail-D7cxYMd5.js → mail-gdeIU06V.js} +1 -1
  91. package/core/built/admin/assets/{main-layout-BXdUkeCo.js → main-layout-B2t-RiNE.js} +1 -1
  92. package/core/built/admin/assets/members-7z-tESWd.js +10 -0
  93. package/core/built/admin/assets/minus-BbGfVkll.js +1 -0
  94. package/core/built/admin/assets/{modals-VRvX8mK0.js → modals-DVIfijEz.js} +3 -3
  95. package/core/built/admin/assets/{moderation-DkT8qVJs.js → moderation-DwzDOhih.js} +1 -1
  96. package/core/built/admin/assets/{newsletter-sUT4ciRJ.js → newsletter-D1N8bUfp.js} +1 -1
  97. package/core/built/admin/assets/{newsletters-BNvAF2Oi.js → newsletters-7GSeQdQe.js} +1 -1
  98. package/core/built/admin/assets/{note-B0JhJv7s.js → note-Bn1-ZWDE.js} +1 -1
  99. package/core/built/admin/assets/offers-BsuLKYy9.js +1 -0
  100. package/core/built/admin/assets/{onboarding-route-IrO_SCb3.js → onboarding-route-C73r9kyO.js} +1 -1
  101. package/core/built/admin/assets/{overview-C2nk_B6i.js → overview-6U5p38zx.js} +1 -1
  102. package/core/built/admin/assets/{pagemenu-BGhty1iq.js → pagemenu-DrueoEX9.js} +1 -1
  103. package/core/built/admin/assets/{pencil-DiA3J4m5.js → pencil-Csnv8udS.js} +1 -1
  104. package/core/built/admin/assets/{pin-off-HWos3YHh.js → pin-off-BDeHGsSQ.js} +1 -1
  105. package/core/built/admin/assets/{post-analytics-context-BJwP-XAB.js → post-analytics-context-jKeUh2Ka.js} +1 -1
  106. package/core/built/admin/assets/{post-analytics-header-CZF5QmAD.js → post-analytics-header-C5QLn6Lm.js} +1 -1
  107. package/core/built/admin/assets/{post-analytics-DBUHbt1b.js → post-analytics-ngMqqbt9.js} +1 -1
  108. package/core/built/admin/assets/{post-share-modal-Bb8R05dH.js → post-share-modal-04B7JT4R.js} +1 -1
  109. package/core/built/admin/assets/posts/{alert-dialog-mmQvJUHQ.mjs → alert-dialog-CYvHtOQ5.mjs} +4 -4
  110. package/core/built/admin/assets/posts/{app-utils-CD0bhOLs.mjs → app-utils-Cs-8qje1.mjs} +3 -3
  111. package/core/built/admin/assets/posts/{automations-BL0WaXHA.mjs → automations-DE2rwx-Z.mjs} +25 -25
  112. package/core/built/admin/assets/posts/{automations-BmGKngyG.mjs → automations-Dq0_cprS.mjs} +4 -4
  113. package/core/built/admin/assets/posts/{avatar-CeJ0Zq_A.mjs → avatar-Dt_bGEgl.mjs} +7 -7
  114. package/core/built/admin/assets/posts/{button-CQCNdxY6.mjs → button-DO7JrPsL.mjs} +2 -2
  115. package/core/built/admin/assets/posts/{chevron-up-DaikhWC2.mjs → chevron-up-B8WyJjCr.mjs} +3 -3
  116. package/core/built/admin/assets/posts/{comments-DUSJ25vf.mjs → comments-B3-RpqJU.mjs} +1933 -1905
  117. package/core/built/admin/assets/posts/{data-list-BiiYXQes.mjs → data-list-BiZFP6Co.mjs} +5 -5
  118. package/core/built/admin/assets/posts/{dialog-DRN6olky.mjs → dialog-Bvl2PD8s.mjs} +3 -3
  119. package/core/built/admin/assets/posts/{editor-DN_Zz0m2.mjs → editor-BCtdAD74.mjs} +3230 -3130
  120. package/core/built/admin/assets/posts/{ellipsis-BIs4PL5-.mjs → ellipsis-B5H7Hudx.mjs} +2 -2
  121. package/core/built/admin/assets/posts/{empty-indicator-Wiukrx4T.mjs → empty-indicator-BRoAf6Jv.mjs} +2 -2
  122. package/core/built/admin/assets/posts/{filters-CJl5ebXd.mjs → filters-CffYQY_8.mjs} +12 -12
  123. package/core/built/admin/assets/posts/{get-site-timezone-JepxGwVr.mjs → get-site-timezone-CSrPVUfX.mjs} +2 -2
  124. package/core/built/admin/assets/posts/{growth-cNlqbz-x.mjs → growth--LVGRPtS.mjs} +13 -13
  125. package/core/built/admin/assets/posts/{heading-C_V6Ckxx.mjs → heading-BRQEP7IA.mjs} +2 -2
  126. package/core/built/admin/assets/posts/{heart-BMBWsLs2.mjs → heart-CC2f1qWb.mjs} +2 -2
  127. package/core/built/admin/assets/posts/{hooks-D4pJ_p_P.mjs → hooks-J2WpDj1d.mjs} +2 -2
  128. package/core/built/admin/assets/posts/{index-DzWTmJMy.mjs → index-D-vhKzUJ.mjs} +3 -3
  129. package/core/built/admin/assets/posts/{index-CDwlVw9E.mjs → index-LnPyGojr.mjs} +2 -2
  130. package/core/built/admin/assets/posts/{index-BuIZkUhD.mjs → index-nxfIbREV.mjs} +11 -11
  131. package/core/built/admin/assets/posts/{input-DUvSHOFz.mjs → input-DTtfruk_.mjs} +3 -3
  132. package/core/built/admin/assets/posts/{input-surface-CO8-j6V2.mjs → input-surface-DXTGCuo2.mjs} +2 -2
  133. package/core/built/admin/assets/posts/{koenig-lexical-cRm7bY-6.mjs → koenig-lexical-CNcifuT7.mjs} +2 -2
  134. package/core/built/admin/assets/posts/{kpis-BXukzbg6.mjs → kpis-n8L4BlMi.mjs} +5843 -5854
  135. package/core/built/admin/assets/posts/{label-TTt0QyDb.mjs → label-yl8B8ADj.mjs} +6 -6
  136. package/core/built/admin/assets/posts/{links-BAXELE82.mjs → links-DDApMJfk.mjs} +4 -4
  137. package/core/built/admin/assets/posts/{list-page-DQIiFvFP.mjs → list-page-BJJ9amzJ.mjs} +4 -4
  138. package/core/built/admin/assets/posts/{loading-indicator-BsY7eGY6.mjs → loading-indicator-CQBDNvdo.mjs} +3 -3
  139. package/core/built/admin/assets/posts/{mail-Bi1gt3MU.mjs → mail-BHg0SvNu.mjs} +2 -2
  140. package/core/built/admin/assets/posts/{main-layout-DejRuxP8.mjs → main-layout-DXveCJ5W.mjs} +2 -2
  141. package/core/built/admin/assets/posts/{newsletter-PCUtHW6Z.mjs → newsletter-DUpVmnKN.mjs} +19 -19
  142. package/core/built/admin/assets/posts/{overview-f4eDWazr.mjs → overview-sv6i-2h9.mjs} +18 -18
  143. package/core/built/admin/assets/posts/{pencil-DDnfXQqn.mjs → pencil-DsGDLJp6.mjs} +2 -2
  144. package/core/built/admin/assets/posts/{plus-DW3bG6ui.mjs → plus-DjZ_REvJ.mjs} +2 -2
  145. package/core/built/admin/assets/posts/{popover-Du2NcggM.mjs → popover-2PA9zdiD.mjs} +4 -4
  146. package/core/built/admin/assets/posts/{post-analytics-BmnHyWJq.mjs → post-analytics-CKHoiJFY.mjs} +6 -6
  147. package/core/built/admin/assets/posts/{post-analytics-context-0fieM91Y.mjs → post-analytics-context-D17CB7nm.mjs} +6 -6
  148. package/core/built/admin/assets/posts/{post-analytics-header-Bxi56AWV.mjs → post-analytics-header-aQLnrdWi.mjs} +12 -12
  149. package/core/built/admin/assets/posts/{post-share-modal-DiuT4GFO.mjs → post-share-modal-C8-8CZw8.mjs} +6 -6
  150. package/core/built/admin/assets/posts/{posts-CYjfxmgX.mjs → posts-BA2vu_T2.mjs} +2 -2
  151. package/core/built/admin/assets/posts/posts.js +1 -1
  152. package/core/built/admin/assets/posts/{search-Dz7F6ifc.mjs → search-Bx6BvCRk.mjs} +2 -2
  153. package/core/built/admin/assets/posts/{select-FX6QYAFU.mjs → select-QOJ2OvL0.mjs} +7 -7
  154. package/core/built/admin/assets/posts/{separator-C7QPCSjM.mjs → separator-CHtBa4OX.mjs} +3 -3
  155. package/core/built/admin/assets/posts/{settings-DJqx19W1.mjs → settings-CxhTCxXg.mjs} +2 -2
  156. package/core/built/admin/assets/posts/{sheet-wg_8-w45.mjs → sheet-DO5nhiru.mjs} +4 -4
  157. package/core/built/admin/assets/posts/{site-Bxv-L5Dn.mjs → site-6g4pKVnR.mjs} +2 -2
  158. package/core/built/admin/assets/posts/{skeleton-DrFcKwP3.mjs → skeleton-DgWx-52p.mjs} +3 -3
  159. package/core/built/admin/assets/posts/{source-icon-DD_bmIqg.mjs → source-icon-_zLbYeab.mjs} +4 -4
  160. package/core/built/admin/assets/posts/{stats-DkOg80Vt.mjs → stats-BGJFxx5f.mjs} +4 -4
  161. package/core/built/admin/assets/posts/{switch-DZFGAF_Y.mjs → switch-Djipx7gc.mjs} +5 -5
  162. package/core/built/admin/assets/posts/{table-CZCVviNy.mjs → table-DpDCE80J.mjs} +2 -2
  163. package/core/built/admin/assets/posts/{tabs-1fkhM4p8.mjs → tabs-CLWGiyQ4.mjs} +4 -4
  164. package/core/built/admin/assets/posts/{tags-CkyGqwqi.mjs → tags-B4KIn7er.mjs} +2 -2
  165. package/core/built/admin/assets/posts/{tags-BAmugIR1.mjs → tags-Dn1L_Z_4.mjs} +16 -16
  166. package/core/built/admin/assets/posts/{toggle-group-B_ubMZvo.mjs → toggle-group-DMMjXGB3.mjs} +4 -4
  167. package/core/built/admin/assets/posts/{tooltip-D1X0uVas.mjs → tooltip-DlCjZwmt.mjs} +5 -5
  168. package/core/built/admin/assets/posts/{underline-CV8OJ7qc.mjs → underline-WN3ZSFyI.mjs} +2 -2
  169. package/core/built/admin/assets/posts/{value-DhEK7_uT.mjs → value-BWiEmo45.mjs} +2 -2
  170. package/core/built/admin/assets/posts/{virtual-list-window-DqbQUkIo.mjs → virtual-list-window-F3Tvi9H5.mjs} +3 -3
  171. package/core/built/admin/assets/posts/{web-5jcYGeBz.mjs → web-C8PxkHvH.mjs} +18 -18
  172. package/core/built/admin/assets/posts/{x-Cl72IwQm.mjs → x-BdlZ3sG3.mjs} +2 -2
  173. package/core/built/admin/assets/posts/{zap-BPDyHF1u.mjs → zap-BuAk2C7n.mjs} +33 -21
  174. package/core/built/admin/assets/{posts-D6K0FKB9.js → posts-bRma2Aji.js} +1 -1
  175. package/core/built/admin/assets/power-B4VCYMPn.js +1 -0
  176. package/core/built/admin/assets/{referrers-C9UK_aF_.js → referrers-BgXy4ZDF.js} +1 -1
  177. package/core/built/admin/assets/{repeat-BwgUDBQn.js → repeat-BElPLZnh.js} +1 -1
  178. package/core/built/admin/assets/{reply-DbknkQhJ.js → reply-qlUFZ_G8.js} +1 -1
  179. package/core/built/admin/assets/{rocket-1EqU2MzS.js → rocket-CXYckFbm.js} +1 -1
  180. package/core/built/admin/assets/{select-BGJXWb8i.js → select-MGAxyhXP.js} +1 -1
  181. package/core/built/admin/assets/{send-_CqvCQBY.js → send-DcU5LcPI.js} +1 -1
  182. package/core/built/admin/assets/{settings-Bnep890F.js → settings-DGSAz4oa.js} +4 -4
  183. package/core/built/admin/assets/{settings-Ct244PHl.js → settings-DI95fXs5.js} +1 -1
  184. package/core/built/admin/assets/{share-modal-B8pN_3tk.js → share-modal-CsNAIPeN.js} +1 -1
  185. package/core/built/admin/assets/{sort-button-EXsVVSdw.js → sort-button-wV9PBd2P.js} +1 -1
  186. package/core/built/admin/assets/{source-icon-XMs0toB0.js → source-icon-CYt4X1-M.js} +1 -1
  187. package/core/built/admin/assets/{sprout-uA_pVmDr.js → sprout-5QqpAoO8.js} +1 -1
  188. package/core/built/admin/assets/{square-atKnWQyw.js → square-YHeYyKG9.js} +1 -1
  189. package/core/built/admin/assets/{stats-CPNnZGD9.js → stats-PD64opSw.js} +1 -1
  190. package/core/built/admin/assets/{stats-view-BP8LU5rf.js → stats-view-C4fnD3uG.js} +1 -1
  191. package/core/built/admin/assets/{step-1-FHeGC4GW.js → step-1-BqeM_LxC.js} +1 -1
  192. package/core/built/admin/assets/{step-2-BFhgD2N8.js → step-2-C7AcokE9.js} +1 -1
  193. package/core/built/admin/assets/{step-3-BZMKjY5n.js → step-3-9Z0qkfpM.js} +2 -2
  194. package/core/built/admin/assets/{table-kGA62bBZ.js → table-C8Mxw8fs.js} +1 -1
  195. package/core/built/admin/assets/{tabs-Dl3BXr4Z.js → tabs-2KXMNRG-.js} +1 -1
  196. package/core/built/admin/assets/{tags-CLhASxwZ.js → tags-Cx-Jx8Yb.js} +1 -1
  197. package/core/built/admin/assets/{tags-D-W0kJMe.js → tags-cn7wgGit.js} +1 -1
  198. package/core/built/admin/assets/{textarea-DMub6CsU.js → textarea-dKwIcAK5.js} +1 -1
  199. package/core/built/admin/assets/{thumbs-up-DZu4SX5N.js → thumbs-up-gzGza05L.js} +1 -1
  200. package/core/built/admin/assets/{tiers-2bg8BCFj.js → tiers-D--LgD9v.js} +1 -1
  201. package/core/built/admin/assets/{toggle-group-ByS0KZ3G.js → toggle-group-C8KbiBQS.js} +1 -1
  202. package/core/built/admin/assets/{topic-filter-oRqwlePZ.js → topic-filter--VQn4A7D.js} +1 -1
  203. package/core/built/admin/assets/{trash-BHoSD8mS.js → trash-CnBwlhjN.js} +1 -1
  204. package/core/built/admin/assets/{underline-1YSgOpPm.js → underline-B2FjHOE0.js} +1 -1
  205. package/core/built/admin/assets/{undo-2-BwYMlB8G.js → undo-2-fUPuO2Zt.js} +1 -1
  206. package/core/built/admin/assets/{upload-BDz0_o9b.js → upload-BPOrFdtp.js} +1 -1
  207. package/core/built/admin/assets/{use-growth-stats-PRVcCUT7.js → use-growth-stats-By0ZDqFi.js} +1 -1
  208. package/core/built/admin/assets/{use-pintura-config-CROsgSEd.js → use-pintura-config-0ykvCF7U.js} +1 -1
  209. package/core/built/admin/assets/{use-simple-pagination-CBjKBNNI.js → use-simple-pagination-TruuCHV6.js} +1 -1
  210. package/core/built/admin/assets/{user-round-check-DKooQiV7.js → user-round-check-C1Vahz0b.js} +1 -1
  211. package/core/built/admin/assets/{user-round-x-B94nAYJb.js → user-round-x-CzKFo5GY.js} +1 -1
  212. package/core/built/admin/assets/{virtual-list-window-Cf_vCQFb.js → virtual-list-window-BWEknk_A.js} +1 -1
  213. package/core/built/admin/assets/{wallet-cards-BorRQari.js → wallet-cards-CRHrrjiy.js} +1 -1
  214. package/core/built/admin/assets/{web-BVHy-80k.js → web-C2H0oAut.js} +1 -1
  215. package/core/built/admin/index.html +7 -7
  216. package/core/frontend/services/llms/service.js +37 -10
  217. package/core/frontend/services/routing/config.js +5 -3
  218. package/core/frontend/services/routing/config.ts +59 -0
  219. package/core/frontend/services/sitemap/handler.js +2 -14
  220. package/core/frontend/services/sitemap/site-map-manager.js +9 -214
  221. package/core/server/api/endpoints/comment-replies.js +1 -2
  222. package/core/server/api/endpoints/members.js +4 -1
  223. package/core/server/api/endpoints/search-index-public.js +12 -1
  224. package/core/server/api/endpoints/search-index.js +13 -2
  225. package/core/server/lib/bootstrap-socket.js +31 -36
  226. package/core/server/lib/bootstrap-socket.ts +114 -0
  227. package/core/server/lib/common/to-plain.js +9 -21
  228. package/core/server/lib/common/to-plain.ts +25 -0
  229. package/core/server/models/role-utils.js +5 -7
  230. package/core/server/models/role-utils.ts +56 -0
  231. package/core/server/services/adapter-manager/adapter-manager.js +5 -1
  232. package/core/server/services/audience-feedback/audience-feedback-service.js +1 -1
  233. package/core/server/services/automations/automations-api.js +37 -2
  234. package/core/server/services/automations/automations-api.ts +43 -2
  235. package/core/server/services/comments/comments-controller.js +87 -55
  236. package/core/server/services/comments/comments-service-emails.js +1 -1
  237. package/core/server/services/comments/comments-service.js +249 -79
  238. package/core/server/services/mail/templates/notification.html +157 -0
  239. package/core/server/services/member-attribution/url-translator.js +1 -1
  240. package/core/server/services/members/members-api/services/token-service.js +21 -2
  241. package/core/server/services/notifications/notification-email.js +38 -0
  242. package/core/server/services/notifications/notification-email.ts +66 -0
  243. package/core/server/services/notifications/sanitize-email-html.js +37 -0
  244. package/core/server/services/notifications/sanitize-email-html.ts +35 -0
  245. package/core/server/services/route-settings/route-settings.js +2 -18
  246. package/core/server/services/route-settings/validate.js +2 -1
  247. package/core/server/services/update-check/index.js +10 -3
  248. package/core/server/services/update-check/update-check-service.js +18 -25
  249. package/core/server/services/url/index.js +1 -16
  250. package/core/shared/config/defaults.json +0 -1
  251. package/package.json +2 -1
  252. package/pnpm-lock.yaml +11 -1
  253. package/pnpm-workspace.yaml +2 -0
  254. package/core/built/admin/assets/editor-G3BxjP48.js +0 -8
  255. package/core/built/admin/assets/gh-chart-vpcpdiS9.js +0 -1
  256. package/core/built/admin/assets/index-BP5ial3p.js +0 -1
  257. package/core/built/admin/assets/index-Bd9VZ28k.css +0 -1
  258. package/core/built/admin/assets/kpis-B8pv3wne.js +0 -1
  259. package/core/built/admin/assets/label-BjHICZC1.js +0 -1
  260. package/core/built/admin/assets/members-DcuuSs_v.js +0 -10
  261. package/core/built/admin/assets/minus-Dv51QEND.js +0 -1
  262. package/core/built/admin/assets/offers-DKZ0qsmb.js +0 -1
  263. package/core/built/admin/assets/power-D5QO6MjY.js +0 -1
  264. package/core/server/services/url/lazy-find-resource.js +0 -49
  265. package/core/server/services/url/lazy-find-resource.ts +0 -62
  266. package/core/server/services/url/lazy-url-service.js +0 -262
  267. package/core/server/services/url/lazy-url-service.ts +0 -308
@@ -1,8 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./koenig-lexical-CxVcbgsH.js","./index-Bs6rUYFS.js","./index-Bd9VZ28k.css"])))=>i.map(i=>d[i]);
2
- import{e8 as _,eP as _c,dY as u,bB as Ec,q as Sc,bl as Nc,cL as ot,cS as $r,bi as Cc,V as Mc,bM as kc,aM as jc,cP as Ic,ax as Pc,aP as Ac,L as Dc,bp as Tc,bq as Rc,aN as zc,u as $c,b_ as Oc,bZ as Lc,bD as Or,cJ as se,O as Hc,K as Lr,Q as Bc,ec as Vc,ed as Fc,di as Wc,d2 as me,e7 as Yc,bc as dt,c7 as Hr,c5 as Br,c8 as Vr,c6 as Fr,bd as Wr,bg as Yr,bf as Xr,eJ as Zn,eK as Xc,ds as Un,f8 as Zc,eF as Zr,aT as Te,cu as Uc,eT as Gc,aK as Gn,J as ae,aO as Ur,dS as qn,dy as Gr,eg as qc,fb as Kc,_ as Qc,a1 as Jc,a5 as el,f as Rt,i as zt,l as $t,m as Ot,j as Lt,k as Ht,h as Bt,D as tl,co as qr,a8 as Kr,af as Qr,dc as ct,aa as Jr,ac as An,ae as nl,ad as ol,bO as rl,c9 as es,aR as sl,v as il,bV as al,ag as cl,fp as ll,eE as ul}from"./index-Bs6rUYFS.js";import{M as Kn}from"./mail-D7cxYMd5.js";import{C as Qn,P as dl}from"./power-D5QO6MjY.js";import{a as Ae,c as Mo,b as ko,d as fl,i as vn}from"./value-BTdN53H7.js";import{c as hl,d as pl,a as gl,k as ml,b as xl,f as yl}from"./use-pintura-config-CROsgSEd.js";import{f as wl,v as vl,e as bl,a as _l,d as El}from"./automated-emails-aBicreLv.js";import{T as Sl,b as Nl,c as jo}from"./tabs-Dl3BXr4Z.js";import{a as Cl}from"./newsletters-BNvAF2Oi.js";import{S as Ml}from"./send-_CqvCQBY.js";import{M as Dn,r as kl,b as jl,u as Io,i as Il,a as Pl,A as Al,e as Dl,d as Tl}from"./automations-vpH-d72N.js";import{C as Po}from"./checkbox-CC5kd_Kf.js";import{b as Rl,F as zl,c as $l}from"./field-Uk8NOvtc.js";import{I as Ol,c as Ll,d as Hl,a as Bl,b as Ao}from"./input-group-DH32syTz.js";import{L as Do}from"./label-BjHICZC1.js";import{S as Vl,e as Fl}from"./select-BGJXWb8i.js";import{C as Wl,E as Yl}from"./eye-psLxWnjO.js";import{M as ts}from"./minus-Dv51QEND.js";import{P as ns}from"./pencil-DiA3J4m5.js";import"./offers-DKZ0qsmb.js";import"./posts-D6K0FKB9.js";import"./index-BP5ial3p.js";import"./chevron-up-D__wzyXT.js";function Xl(e){_.useEffect(()=>{if(!e)return;const t=n=>{n.preventDefault(),n.returnValue=""};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}},[e])}var To=180/Math.PI,Tn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function os(e,t,n,o,r,s){var i,a,c;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(c=e*n+t*o)&&(n-=e*c,o-=t*c),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,c/=a),e*o<t*n&&(e=-e,t=-t,c=-c,i=-i),{translateX:r,translateY:s,rotate:Math.atan2(t,e)*To,skewX:Math.atan(c)*To,scaleX:i,scaleY:a}}var Mt;function Zl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Tn:os(t.a,t.b,t.c,t.d,t.e,t.f)}function Ul(e){return e==null||(Mt||(Mt=document.createElementNS("http://www.w3.org/2000/svg","g")),Mt.setAttribute("transform",e),!(e=Mt.transform.baseVal.consolidate()))?Tn:(e=e.matrix,os(e.a,e.b,e.c,e.d,e.e,e.f))}function rs(e,t,n,o){function r(l){return l.length?l.pop()+" ":""}function s(l,f,d,h,g,p){if(l!==d||f!==h){var y=g.push("translate(",null,t,null,n);p.push({i:y-4,x:Ae(l,d)},{i:y-2,x:Ae(f,h)})}else(d||h)&&g.push("translate("+d+t+h+n)}function i(l,f,d,h){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),h.push({i:d.push(r(d)+"rotate(",null,o)-2,x:Ae(l,f)})):f&&d.push(r(d)+"rotate("+f+o)}function a(l,f,d,h){l!==f?h.push({i:d.push(r(d)+"skewX(",null,o)-2,x:Ae(l,f)}):f&&d.push(r(d)+"skewX("+f+o)}function c(l,f,d,h,g,p){if(l!==d||f!==h){var y=g.push(r(g)+"scale(",null,",",null,")");p.push({i:y-4,x:Ae(l,d)},{i:y-2,x:Ae(f,h)})}else(d!==1||h!==1)&&g.push(r(g)+"scale("+d+","+h+")")}return function(l,f){var d=[],h=[];return l=e(l),f=e(f),s(l.translateX,l.translateY,f.translateX,f.translateY,d,h),i(l.rotate,f.rotate,d,h),a(l.skewX,f.skewX,d,h),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,d,h),l=f=null,function(g){for(var p=-1,y=h.length,w;++p<y;)d[(w=h[p]).i]=w.x(g);return d.join("")}}}var Gl=rs(Zl,"px, ","px)","deg)"),ql=rs(Ul,", ",")",")"),Kl=1e-12;function Ro(e){return((e=Math.exp(e))+1/e)/2}function Ql(e){return((e=Math.exp(e))-1/e)/2}function Jl(e){return((e=Math.exp(2*e))-1)/(e+1)}const Vt=(function e(t,n,o){function r(s,i){var a=s[0],c=s[1],l=s[2],f=i[0],d=i[1],h=i[2],g=f-a,p=d-c,y=g*g+p*p,w,x;if(y<Kl)x=Math.log(h/l)/t,w=function(I){return[a+I*g,c+I*p,l*Math.exp(t*I*x)]};else{var S=Math.sqrt(y),m=(h*h-l*l+o*y)/(2*l*n*S),v=(h*h-l*l-o*y)/(2*h*n*S),C=Math.log(Math.sqrt(m*m+1)-m),E=Math.log(Math.sqrt(v*v+1)-v);x=(E-C)/t,w=function(I){var A=I*x,D=Ro(C),H=l/(n*S)*(D*Jl(t*A+C)-Ql(C));return[a+H*g,c+H*p,l*D/Ro(t*A+C)]}}return w.duration=x*1e3*t/Math.SQRT2,w}return r.rho=function(s){var i=Math.max(.001,+s),a=i*i,c=a*a;return e(i,a,c)},r})(Math.SQRT2,2,4);var Jn="ContextMenu",[eu]=Ic(Jn,[$r]),le=$r(),[tu,ss]=eu(Jn),is=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:o,dir:r,modal:s=!0}=e,[i,a]=_.useState(!1),c=le(t),l=_c(o),f=_.useCallback(d=>{a(d),l(d)},[l]);return u.jsx(tu,{scope:t,open:i,onOpenChange:f,modal:s,children:u.jsx(Ec,{...c,dir:r,open:i,onOpenChange:f,modal:s,children:n})})};is.displayName=Jn;var as="ContextMenuTrigger",cs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:o=!1,...r}=e,s=ss(as,n),i=le(n),a=_.useRef({x:0,y:0}),c=_.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),l=_.useRef(0),f=_.useCallback(()=>window.clearTimeout(l.current),[]),d=h=>{a.current={x:h.clientX,y:h.clientY},s.onOpenChange(!0)};return _.useEffect(()=>f,[f]),_.useEffect(()=>{o&&f()},[o,f]),u.jsxs(u.Fragment,{children:[u.jsx(Sc,{...i,virtualRef:c}),u.jsx(Nc.span,{"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,...r,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:o?e.onContextMenu:ot(e.onContextMenu,h=>{f(),d(h),h.preventDefault()}),onPointerDown:o?e.onPointerDown:ot(e.onPointerDown,kt(h=>{f(),l.current=window.setTimeout(()=>d(h),700)})),onPointerMove:o?e.onPointerMove:ot(e.onPointerMove,kt(f)),onPointerCancel:o?e.onPointerCancel:ot(e.onPointerCancel,kt(f)),onPointerUp:o?e.onPointerUp:ot(e.onPointerUp,kt(f))})]})});cs.displayName=as;var nu="ContextMenuPortal",ls=e=>{const{__scopeContextMenu:t,...n}=e,o=le(t);return u.jsx(Cc,{...o,...n})};ls.displayName=nu;var us="ContextMenuContent",ds=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ss(us,n),s=le(n),i=_.useRef(!1);return u.jsx(Mc,{...s,...o,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),!a.defaultPrevented&&i.current&&a.preventDefault(),i.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),!a.defaultPrevented&&!r.modal&&(i.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ds.displayName=us;var ou="ContextMenuGroup",ru=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Pc,{...r,...o,ref:t})});ru.displayName=ou;var su="ContextMenuLabel",fs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Ac,{...r,...o,ref:t})});fs.displayName=su;var iu="ContextMenuItem",hs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(jc,{...r,...o,ref:t})});hs.displayName=iu;var au="ContextMenuCheckboxItem",ps=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Dc,{...r,...o,ref:t})});ps.displayName=au;var cu="ContextMenuRadioGroup",lu=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Tc,{...r,...o,ref:t})});lu.displayName=cu;var uu="ContextMenuRadioItem",gs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Rc,{...r,...o,ref:t})});gs.displayName=uu;var du="ContextMenuItemIndicator",ms=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(zc,{...r,...o,ref:t})});ms.displayName=du;var fu="ContextMenuSeparator",xs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(kc,{...r,...o,ref:t})});xs.displayName=fu;var hu="ContextMenuArrow",pu=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx($c,{...r,...o,ref:t})});pu.displayName=hu;var gu="ContextMenuSubTrigger",ys=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Oc,{...r,...o,ref:t})});ys.displayName=gu;var mu="ContextMenuSubContent",ws=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return u.jsx(Lc,{...r,...o,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ws.displayName=mu;function kt(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var xu=is,yu=cs,wu=ls,vs=ds,bs=fs,_s=hs,Es=ps,Ss=gs,Ns=ms,Cs=xs,Ms=ys,ks=ws;const vu=xu,bu=yu,_u=_.forwardRef(({className:e,inset:t,children:n,...o},r)=>u.jsxs(Ms,{ref:r,className:se("flex cursor-default gap-2 select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden hover:bg-accent focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...o,children:[n,u.jsx(Hc,{className:"ml-auto"})]}));_u.displayName=Ms.displayName;const Eu=_.forwardRef(({className:e,...t},n)=>u.jsx("div",{className:Or,children:u.jsx(ks,{ref:n,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));Eu.displayName=ks.displayName;const js=_.forwardRef(({className:e,...t},n)=>u.jsx(wu,{children:u.jsx("div",{className:Or,children:u.jsx(vs,{ref:n,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})})}));js.displayName=vs.displayName;const Is=_.forwardRef(({className:e,inset:t,variant:n="default",...o},r)=>u.jsx(_s,{ref:r,className:se("relative flex cursor-default select-none cursor-pointer items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",n==="destructive"&&"text-destructive focus:bg-destructive/10 focus:text-destructive",t&&"pl-8",e),...o}));Is.displayName=_s.displayName;const Su=_.forwardRef(({className:e,children:t,checked:n,...o},r)=>u.jsxs(Es,{ref:r,checked:n,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[u.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:u.jsx(Ns,{children:u.jsx(Lr,{className:"size-4"})})}),t]}));Su.displayName=Es.displayName;const Nu=_.forwardRef(({className:e,children:t,...n},o)=>u.jsxs(Ss,{ref:o,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[u.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:u.jsx(Ns,{children:u.jsx(Bc,{className:"size-2 fill-current"})})}),t]}));Nu.displayName=Ss.displayName;const Cu=_.forwardRef(({className:e,inset:t,...n},o)=>u.jsx(bs,{ref:o,className:se("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));Cu.displayName=bs.displayName;const Ps=_.forwardRef(({className:e,...t},n)=>u.jsx(Cs,{ref:n,className:se("-mx-1 my-1 h-px bg-muted",e),...t}));Ps.displayName=Cs.displayName;const zo=({icon:e,label:t,description:n,onClick:o})=>u.jsxs("button",{className:"flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm hover:bg-grey-50 focus-visible:bg-grey-50 focus-visible:outline-none dark:hover:bg-grey-900 dark:focus-visible:bg-grey-900",type:"button",onClick:o,children:[u.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:u.jsx(e,{className:"size-4"})}),u.jsxs("div",{className:"flex min-w-0 flex-col",children:[u.jsx("span",{className:"font-medium",children:t}),u.jsx("span",{className:"text-xs text-text-secondary",children:n})]})]}),As=({onPick:e})=>u.jsxs("div",{className:"flex w-72 flex-col gap-1 p-1","data-testid":"step-picker",children:[u.jsx(zo,{description:"Send an email",icon:Kn,label:"Email",onClick:()=>e("send_email")}),u.jsx(zo,{description:"Wait a set amount of time",icon:Qn,label:"Wait",onClick:()=>e("wait")})]});function ie(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=ie(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Mu={value:()=>{}};function rn(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new Ft(n)}function Ft(e){this._=e}function ku(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}Ft.prototype=rn.prototype={constructor:Ft,on:function(e,t){var n=this._,o=ku(e+"",n),r,s=-1,i=o.length;if(arguments.length<2){for(;++s<i;)if((r=(e=o[s]).type)&&(r=ju(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<i;)if(r=(e=o[s]).type)n[r]=$o(n[r],e.name,t);else if(t==null)for(r in n)n[r]=$o(n[r],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Ft(e)},call:function(e,t){if((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,s;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(s=this._[e],o=0,r=s.length;o<r;++o)s[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)}};function ju(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function $o(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=Mu,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var Rn="http://www.w3.org/1999/xhtml";const Oo={svg:"http://www.w3.org/2000/svg",xhtml:Rn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function sn(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Oo.hasOwnProperty(t)?{space:Oo[t],local:e}:e}function Iu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Rn&&t.documentElement.namespaceURI===Rn?t.createElement(e):t.createElementNS(n,e)}}function Pu(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ds(e){var t=sn(e);return(t.local?Pu:Iu)(t)}function Au(){}function eo(e){return e==null?Au:function(){return this.querySelector(e)}}function Du(e){typeof e!="function"&&(e=eo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=new Array(i),c,l,f=0;f<i;++f)(c=s[f])&&(l=e.call(c,c.__data__,f,s))&&("__data__"in c&&(l.__data__=c.__data__),a[f]=l);return new de(o,this._parents)}function Tu(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ru(){return[]}function Ts(e){return e==null?Ru:function(){return this.querySelectorAll(e)}}function zu(e){return function(){return Tu(e.apply(this,arguments))}}function $u(e){typeof e=="function"?e=zu(e):e=Ts(e);for(var t=this._groups,n=t.length,o=[],r=[],s=0;s<n;++s)for(var i=t[s],a=i.length,c,l=0;l<a;++l)(c=i[l])&&(o.push(e.call(c,c.__data__,l,i)),r.push(c));return new de(o,r)}function Rs(e){return function(){return this.matches(e)}}function zs(e){return function(t){return t.matches(e)}}var Ou=Array.prototype.find;function Lu(e){return function(){return Ou.call(this.children,e)}}function Hu(){return this.firstElementChild}function Bu(e){return this.select(e==null?Hu:Lu(typeof e=="function"?e:zs(e)))}var Vu=Array.prototype.filter;function Fu(){return Array.from(this.children)}function Wu(e){return function(){return Vu.call(this.children,e)}}function Yu(e){return this.selectAll(e==null?Fu:Wu(typeof e=="function"?e:zs(e)))}function Xu(e){typeof e!="function"&&(e=Rs(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=[],c,l=0;l<i;++l)(c=s[l])&&e.call(c,c.__data__,l,s)&&a.push(c);return new de(o,this._parents)}function $s(e){return new Array(e.length)}function Zu(){return new de(this._enter||this._groups.map($s),this._parents)}function Gt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Gt.prototype={constructor:Gt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Uu(e){return function(){return e}}function Gu(e,t,n,o,r,s){for(var i=0,a,c=t.length,l=s.length;i<l;++i)(a=t[i])?(a.__data__=s[i],o[i]=a):n[i]=new Gt(e,s[i]);for(;i<c;++i)(a=t[i])&&(r[i]=a)}function qu(e,t,n,o,r,s,i){var a,c,l=new Map,f=t.length,d=s.length,h=new Array(f),g;for(a=0;a<f;++a)(c=t[a])&&(h[a]=g=i.call(c,c.__data__,a,t)+"",l.has(g)?r[a]=c:l.set(g,c));for(a=0;a<d;++a)g=i.call(e,s[a],a,s)+"",(c=l.get(g))?(o[a]=c,c.__data__=s[a],l.delete(g)):n[a]=new Gt(e,s[a]);for(a=0;a<f;++a)(c=t[a])&&l.get(h[a])===c&&(r[a]=c)}function Ku(e){return e.__data__}function Qu(e,t){if(!arguments.length)return Array.from(this,Ku);var n=t?qu:Gu,o=this._parents,r=this._groups;typeof e!="function"&&(e=Uu(e));for(var s=r.length,i=new Array(s),a=new Array(s),c=new Array(s),l=0;l<s;++l){var f=o[l],d=r[l],h=d.length,g=Ju(e.call(f,f&&f.__data__,l,o)),p=g.length,y=a[l]=new Array(p),w=i[l]=new Array(p),x=c[l]=new Array(h);n(f,d,y,w,x,g,t);for(var S=0,m=0,v,C;S<p;++S)if(v=y[S]){for(S>=m&&(m=S+1);!(C=w[m])&&++m<p;);v._next=C||null}}return i=new de(i,o),i._enter=a,i._exit=c,i}function Ju(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ed(){return new de(this._exit||this._groups.map($s),this._parents)}function td(e,t,n){var o=this.enter(),r=this,s=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?s.remove():n(s),o&&r?o.merge(r).order():r}function nd(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,s=o.length,i=Math.min(r,s),a=new Array(r),c=0;c<i;++c)for(var l=n[c],f=o[c],d=l.length,h=a[c]=new Array(d),g,p=0;p<d;++p)(g=l[p]||f[p])&&(h[p]=g);for(;c<r;++c)a[c]=n[c];return new de(a,this._parents)}function od(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,s=o[r],i;--r>=0;)(i=o[r])&&(s&&i.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(i,s),s=i);return this}function rd(e){e||(e=sd);function t(d,h){return d&&h?e(d.__data__,h.__data__):!d-!h}for(var n=this._groups,o=n.length,r=new Array(o),s=0;s<o;++s){for(var i=n[s],a=i.length,c=r[s]=new Array(a),l,f=0;f<a;++f)(l=i[f])&&(c[f]=l);c.sort(t)}return new de(r,this._parents).order()}function sd(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function id(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ad(){return Array.from(this)}function cd(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,s=o.length;r<s;++r){var i=o[r];if(i)return i}return null}function ld(){let e=0;for(const t of this)++e;return e}function ud(){return!this.node()}function dd(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],s=0,i=r.length,a;s<i;++s)(a=r[s])&&e.call(a,a.__data__,s,r);return this}function fd(e){return function(){this.removeAttribute(e)}}function hd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pd(e,t){return function(){this.setAttribute(e,t)}}function gd(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function md(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function xd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function yd(e,t){var n=sn(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?hd:fd:typeof t=="function"?n.local?xd:md:n.local?gd:pd)(n,t))}function Os(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function wd(e){return function(){this.style.removeProperty(e)}}function vd(e,t,n){return function(){this.style.setProperty(e,t,n)}}function bd(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function _d(e,t,n){return arguments.length>1?this.each((t==null?wd:typeof t=="function"?bd:vd)(e,t,n??"")):Ye(this.node(),e)}function Ye(e,t){return e.style.getPropertyValue(t)||Os(e).getComputedStyle(e,null).getPropertyValue(t)}function Ed(e){return function(){delete this[e]}}function Sd(e,t){return function(){this[e]=t}}function Nd(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Cd(e,t){return arguments.length>1?this.each((t==null?Ed:typeof t=="function"?Nd:Sd)(e,t)):this.node()[e]}function Ls(e){return e.trim().split(/^|\s+/)}function to(e){return e.classList||new Hs(e)}function Hs(e){this._node=e,this._names=Ls(e.getAttribute("class")||"")}Hs.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Bs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Vs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Md(e){return function(){Bs(this,e)}}function kd(e){return function(){Vs(this,e)}}function jd(e,t){return function(){(t.apply(this,arguments)?Bs:Vs)(this,e)}}function Id(e,t){var n=Ls(e+"");if(arguments.length<2){for(var o=to(this.node()),r=-1,s=n.length;++r<s;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?jd:t?Md:kd)(n,t))}function Pd(){this.textContent=""}function Ad(e){return function(){this.textContent=e}}function Dd(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Td(e){return arguments.length?this.each(e==null?Pd:(typeof e=="function"?Dd:Ad)(e)):this.node().textContent}function Rd(){this.innerHTML=""}function zd(e){return function(){this.innerHTML=e}}function $d(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Od(e){return arguments.length?this.each(e==null?Rd:(typeof e=="function"?$d:zd)(e)):this.node().innerHTML}function Ld(){this.nextSibling&&this.parentNode.appendChild(this)}function Hd(){return this.each(Ld)}function Bd(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Vd(){return this.each(Bd)}function Fd(e){var t=typeof e=="function"?e:Ds(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Wd(){return null}function Yd(e,t){var n=typeof e=="function"?e:Ds(e),o=t==null?Wd:typeof t=="function"?t:eo(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function Xd(){var e=this.parentNode;e&&e.removeChild(this)}function Zd(){return this.each(Xd)}function Ud(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Gd(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function qd(e){return this.select(e?Gd:Ud)}function Kd(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Qd(e){return function(t){e.call(this,t,this.__data__)}}function Jd(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function ef(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,s;n<r;++n)s=t[n],(!e.type||s.type===e.type)&&s.name===e.name?this.removeEventListener(s.type,s.listener,s.options):t[++o]=s;++o?t.length=o:delete this.__on}}}function tf(e,t,n){return function(){var o=this.__on,r,s=Qd(t);if(o){for(var i=0,a=o.length;i<a;++i)if((r=o[i]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=s,r.options=n),r.value=t;return}}this.addEventListener(e.type,s,n),r={type:e.type,name:e.name,value:t,listener:s,options:n},o?o.push(r):this.__on=[r]}}function nf(e,t,n){var o=Jd(e+""),r,s=o.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,f;c<l;++c)for(r=0,f=a[c];r<s;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value}return}for(a=t?tf:ef,r=0;r<s;++r)this.each(a(o[r],t,n));return this}function Fs(e,t,n){var o=Os(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function of(e,t){return function(){return Fs(this,e,t)}}function rf(e,t){return function(){return Fs(this,e,t.apply(this,arguments))}}function sf(e,t){return this.each((typeof t=="function"?rf:of)(e,t))}function*af(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,s=o.length,i;r<s;++r)(i=o[r])&&(yield i)}var Ws=[null];function de(e,t){this._groups=e,this._parents=t}function bt(){return new de([[document.documentElement]],Ws)}function cf(){return this}de.prototype=bt.prototype={constructor:de,select:Du,selectAll:$u,selectChild:Bu,selectChildren:Yu,filter:Xu,data:Qu,enter:Zu,exit:ed,join:td,merge:nd,selection:cf,order:od,sort:rd,call:id,nodes:ad,node:cd,size:ld,empty:ud,each:dd,attr:yd,style:_d,property:Cd,classed:Id,text:Td,html:Od,raise:Hd,lower:Vd,append:Fd,insert:Yd,remove:Zd,clone:qd,datum:Kd,on:nf,dispatch:sf,[Symbol.iterator]:af};function ue(e){return typeof e=="string"?new de([[document.querySelector(e)]],[document.documentElement]):new de([[e]],Ws)}function lf(e){let t;for(;t=e.sourceEvent;)e=t;return e}function fe(e,t){if(e=lf(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const uf={passive:!1},ft={capture:!0,passive:!1};function bn(e){e.stopImmediatePropagation()}function We(e){e.preventDefault(),e.stopImmediatePropagation()}function Ys(e){var t=e.document.documentElement,n=ue(e).on("dragstart.drag",We,ft);"onselectstart"in t?n.on("selectstart.drag",We,ft):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Xs(e,t){var n=e.document.documentElement,o=ue(e).on("dragstart.drag",null);t&&(o.on("click.drag",We,ft),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const jt=e=>()=>e;function zn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:s,x:i,y:a,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}zn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function df(e){return!e.ctrlKey&&!e.button}function ff(){return this.parentNode}function hf(e,t){return t??{x:e.x,y:e.y}}function pf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Zs(){var e=df,t=ff,n=hf,o=pf,r={},s=rn("start","drag","end"),i=0,a,c,l,f,d=0;function h(v){v.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",x,uf).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(v,C){if(!(f||!e.call(this,v,C))){var E=m(this,t.call(this,v,C),v,C,"mouse");E&&(ue(v.view).on("mousemove.drag",p,ft).on("mouseup.drag",y,ft),Ys(v.view),bn(v),l=!1,a=v.clientX,c=v.clientY,E("start",v))}}function p(v){if(We(v),!l){var C=v.clientX-a,E=v.clientY-c;l=C*C+E*E>d}r.mouse("drag",v)}function y(v){ue(v.view).on("mousemove.drag mouseup.drag",null),Xs(v.view,l),We(v),r.mouse("end",v)}function w(v,C){if(e.call(this,v,C)){var E=v.changedTouches,I=t.call(this,v,C),A=E.length,D,H;for(D=0;D<A;++D)(H=m(this,I,v,C,E[D].identifier,E[D]))&&(bn(v),H("start",v,E[D]))}}function x(v){var C=v.changedTouches,E=C.length,I,A;for(I=0;I<E;++I)(A=r[C[I].identifier])&&(We(v),A("drag",v,C[I]))}function S(v){var C=v.changedTouches,E=C.length,I,A;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),I=0;I<E;++I)(A=r[C[I].identifier])&&(bn(v),A("end",v,C[I]))}function m(v,C,E,I,A,D){var H=s.copy(),M=fe(D||E,C),T,z,b;if((b=n.call(v,new zn("beforestart",{sourceEvent:E,target:h,identifier:A,active:i,x:M[0],y:M[1],dx:0,dy:0,dispatch:H}),I))!=null)return T=b.x-M[0]||0,z=b.y-M[1]||0,function j(N,k,P){var R=M,$;switch(N){case"start":r[A]=j,$=i++;break;case"end":delete r[A],--i;case"drag":M=fe(P||k,C),$=i;break}H.call(N,v,new zn(N,{sourceEvent:k,subject:b,target:h,identifier:A,active:$,x:M[0]+T,y:M[1]+z,dx:M[0]-R[0],dy:M[1]-R[1],dispatch:H}),I)}}return h.filter=function(v){return arguments.length?(e=typeof v=="function"?v:jt(!!v),h):e},h.container=function(v){return arguments.length?(t=typeof v=="function"?v:jt(v),h):t},h.subject=function(v){return arguments.length?(n=typeof v=="function"?v:jt(v),h):n},h.touchable=function(v){return arguments.length?(o=typeof v=="function"?v:jt(!!v),h):o},h.on=function(){var v=s.on.apply(s,arguments);return v===s?h:v},h.clickDistance=function(v){return arguments.length?(d=(v=+v)*v,h):Math.sqrt(d)},h}var Xe=0,it=0,rt=0,Us=1e3,qt,at,Kt=0,$e=0,an=0,ht=typeof performance=="object"&&performance.now?performance:Date,Gs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function no(){return $e||(Gs(gf),$e=ht.now()+an)}function gf(){$e=0}function Qt(){this._call=this._time=this._next=null}Qt.prototype=qs.prototype={constructor:Qt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?no():+n)+(t==null?0:+t),!this._next&&at!==this&&(at?at._next=this:qt=this,at=this),this._call=e,this._time=n,$n()},stop:function(){this._call&&(this._call=null,this._time=1/0,$n())}};function qs(e,t,n){var o=new Qt;return o.restart(e,t,n),o}function mf(){no(),++Xe;for(var e=qt,t;e;)(t=$e-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xe}function Lo(){$e=(Kt=ht.now())+an,Xe=it=0;try{mf()}finally{Xe=0,yf(),$e=0}}function xf(){var e=ht.now(),t=e-Kt;t>Us&&(an-=t,Kt=e)}function yf(){for(var e,t=qt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:qt=n);at=e,$n(o)}function $n(e){if(!Xe){it&&(it=clearTimeout(it));var t=e-$e;t>24?(e<1/0&&(it=setTimeout(Lo,e-ht.now()-an)),rt&&(rt=clearInterval(rt))):(rt||(Kt=ht.now(),rt=setInterval(xf,Us)),Xe=1,Gs(Lo))}}function Ho(e,t,n){var o=new Qt;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var wf=rn("start","end","cancel","interrupt"),vf=[],Ks=0,Bo=1,On=2,Wt=3,Vo=4,Ln=5,Yt=6;function cn(e,t,n,o,r,s){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;bf(e,n,{name:t,index:o,group:r,on:wf,tween:vf,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Ks})}function oo(e,t){var n=ge(e,t);if(n.state>Ks)throw new Error("too late; already scheduled");return n}function ye(e,t){var n=ge(e,t);if(n.state>Wt)throw new Error("too late; already running");return n}function ge(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function bf(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=qs(s,0,n.time);function s(l){n.state=Bo,n.timer.restart(i,n.delay,n.time),n.delay<=l&&i(l-n.delay)}function i(l){var f,d,h,g;if(n.state!==Bo)return c();for(f in o)if(g=o[f],g.name===n.name){if(g.state===Wt)return Ho(i);g.state===Vo?(g.state=Yt,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[f]):+f<t&&(g.state=Yt,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete o[f])}if(Ho(function(){n.state===Wt&&(n.state=Vo,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=On,n.on.call("start",e,e.__data__,n.index,n.group),n.state===On){for(n.state=Wt,r=new Array(h=n.tween.length),f=0,d=-1;f<h;++f)(g=n.tween[f].value.call(e,e.__data__,n.index,n.group))&&(r[++d]=g);r.length=d+1}}function a(l){for(var f=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=Ln,1),d=-1,h=r.length;++d<h;)r[d].call(e,f);n.state===Ln&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Yt,n.timer.stop(),delete o[t];for(var l in o)return;delete e.__transition}}function Xt(e,t){var n=e.__transition,o,r,s=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((o=n[i]).name!==t){s=!1;continue}r=o.state>On&&o.state<Ln,o.state=Yt,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[i]}s&&delete e.__transition}}function _f(e){return this.each(function(){Xt(this,e)})}function Ef(e,t){var n,o;return function(){var r=ye(this,e),s=r.tween;if(s!==n){o=n=s;for(var i=0,a=o.length;i<a;++i)if(o[i].name===t){o=o.slice(),o.splice(i,1);break}}r.tween=o}}function Sf(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var s=ye(this,e),i=s.tween;if(i!==o){r=(o=i).slice();for(var a={name:t,value:n},c=0,l=r.length;c<l;++c)if(r[c].name===t){r[c]=a;break}c===l&&r.push(a)}s.tween=r}}function Nf(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=ge(this.node(),n).tween,r=0,s=o.length,i;r<s;++r)if((i=o[r]).name===e)return i.value;return null}return this.each((t==null?Ef:Sf)(n,e,t))}function ro(e,t,n){var o=e._id;return e.each(function(){var r=ye(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return ge(r,o).value[t]}}function Qs(e,t){var n;return(typeof t=="number"?Ae:t instanceof Mo?ko:(n=Mo(t))?(t=n,ko):fl)(e,t)}function Cf(e){return function(){this.removeAttribute(e)}}function Mf(e){return function(){this.removeAttributeNS(e.space,e.local)}}function kf(e,t,n){var o,r=n+"",s;return function(){var i=this.getAttribute(e);return i===r?null:i===o?s:s=t(o=i,n)}}function jf(e,t,n){var o,r=n+"",s;return function(){var i=this.getAttributeNS(e.space,e.local);return i===r?null:i===o?s:s=t(o=i,n)}}function If(e,t,n){var o,r,s;return function(){var i,a=n(this),c;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),c=a+"",i===c?null:i===o&&c===r?s:(r=c,s=t(o=i,a)))}}function Pf(e,t,n){var o,r,s;return function(){var i,a=n(this),c;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),c=a+"",i===c?null:i===o&&c===r?s:(r=c,s=t(o=i,a)))}}function Af(e,t){var n=sn(e),o=n==="transform"?ql:Qs;return this.attrTween(e,typeof t=="function"?(n.local?Pf:If)(n,o,ro(this,"attr."+e,t)):t==null?(n.local?Mf:Cf)(n):(n.local?jf:kf)(n,o,t))}function Df(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Tf(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Rf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&Tf(e,s)),n}return r._value=t,r}function zf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&Df(e,s)),n}return r._value=t,r}function $f(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var o=sn(e);return this.tween(n,(o.local?Rf:zf)(o,t))}function Of(e,t){return function(){oo(this,e).delay=+t.apply(this,arguments)}}function Lf(e,t){return t=+t,function(){oo(this,e).delay=t}}function Hf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Of:Lf)(t,e)):ge(this.node(),t).delay}function Bf(e,t){return function(){ye(this,e).duration=+t.apply(this,arguments)}}function Vf(e,t){return t=+t,function(){ye(this,e).duration=t}}function Ff(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Bf:Vf)(t,e)):ge(this.node(),t).duration}function Wf(e,t){if(typeof t!="function")throw new Error;return function(){ye(this,e).ease=t}}function Yf(e){var t=this._id;return arguments.length?this.each(Wf(t,e)):ge(this.node(),t).ease}function Xf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;ye(this,e).ease=n}}function Zf(e){if(typeof e!="function")throw new Error;return this.each(Xf(this._id,e))}function Uf(e){typeof e!="function"&&(e=Rs(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=[],c,l=0;l<i;++l)(c=s[l])&&e.call(c,c.__data__,l,s)&&a.push(c);return new Se(o,this._parents,this._name,this._id)}function Gf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,s=Math.min(o,r),i=new Array(o),a=0;a<s;++a)for(var c=t[a],l=n[a],f=c.length,d=i[a]=new Array(f),h,g=0;g<f;++g)(h=c[g]||l[g])&&(d[g]=h);for(;a<o;++a)i[a]=t[a];return new Se(i,this._parents,this._name,this._id)}function qf(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Kf(e,t,n){var o,r,s=qf(t)?oo:ye;return function(){var i=s(this,e),a=i.on;a!==o&&(r=(o=a).copy()).on(t,n),i.on=r}}function Qf(e,t){var n=this._id;return arguments.length<2?ge(this.node(),n).on.on(e):this.each(Kf(n,e,t))}function Jf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function eh(){return this.on("end.remove",Jf(this._id))}function th(e){var t=this._name,n=this._id;typeof e!="function"&&(e=eo(e));for(var o=this._groups,r=o.length,s=new Array(r),i=0;i<r;++i)for(var a=o[i],c=a.length,l=s[i]=new Array(c),f,d,h=0;h<c;++h)(f=a[h])&&(d=e.call(f,f.__data__,h,a))&&("__data__"in f&&(d.__data__=f.__data__),l[h]=d,cn(l[h],t,n,h,l,ge(f,n)));return new Se(s,this._parents,t,n)}function nh(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Ts(e));for(var o=this._groups,r=o.length,s=[],i=[],a=0;a<r;++a)for(var c=o[a],l=c.length,f,d=0;d<l;++d)if(f=c[d]){for(var h=e.call(f,f.__data__,d,c),g,p=ge(f,n),y=0,w=h.length;y<w;++y)(g=h[y])&&cn(g,t,n,y,h,p);s.push(h),i.push(f)}return new Se(s,i,t,n)}var oh=bt.prototype.constructor;function rh(){return new oh(this._groups,this._parents)}function sh(e,t){var n,o,r;return function(){var s=Ye(this,e),i=(this.style.removeProperty(e),Ye(this,e));return s===i?null:s===n&&i===o?r:r=t(n=s,o=i)}}function Js(e){return function(){this.style.removeProperty(e)}}function ih(e,t,n){var o,r=n+"",s;return function(){var i=Ye(this,e);return i===r?null:i===o?s:s=t(o=i,n)}}function ah(e,t,n){var o,r,s;return function(){var i=Ye(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),Ye(this,e))),i===c?null:i===o&&c===r?s:(r=c,s=t(o=i,a))}}function ch(e,t){var n,o,r,s="style."+t,i="end."+s,a;return function(){var c=ye(this,e),l=c.on,f=c.value[s]==null?a||(a=Js(t)):void 0;(l!==n||r!==f)&&(o=(n=l).copy()).on(i,r=f),c.on=o}}function lh(e,t,n){var o=(e+="")=="transform"?Gl:Qs;return t==null?this.styleTween(e,sh(e,o)).on("end.style."+e,Js(e)):typeof t=="function"?this.styleTween(e,ah(e,o,ro(this,"style."+e,t))).each(ch(this._id,e)):this.styleTween(e,ih(e,o,t),n).on("end.style."+e,null)}function uh(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function dh(e,t,n){var o,r;function s(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&uh(e,i,n)),o}return s._value=t,s}function fh(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,dh(e,t,n??""))}function hh(e){return function(){this.textContent=e}}function ph(e){return function(){var t=e(this);this.textContent=t??""}}function gh(e){return this.tween("text",typeof e=="function"?ph(ro(this,"text",e)):hh(e==null?"":e+""))}function mh(e){return function(t){this.textContent=e.call(this,t)}}function xh(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&mh(r)),t}return o._value=e,o}function yh(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,xh(e))}function wh(){for(var e=this._name,t=this._id,n=ei(),o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,c,l=0;l<a;++l)if(c=i[l]){var f=ge(c,t);cn(c,e,n,l,i,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Se(o,this._parents,e,n)}function vh(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(s,i){var a={value:i},c={value:function(){--r===0&&s()}};n.each(function(){var l=ye(this,o),f=l.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),l.on=t}),r===0&&s()})}var bh=0;function Se(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function ei(){return++bh}var ve=bt.prototype;Se.prototype={constructor:Se,select:th,selectAll:nh,selectChild:ve.selectChild,selectChildren:ve.selectChildren,filter:Uf,merge:Gf,selection:rh,transition:wh,call:ve.call,nodes:ve.nodes,node:ve.node,size:ve.size,empty:ve.empty,each:ve.each,on:Qf,attr:Af,attrTween:$f,style:lh,styleTween:fh,text:gh,textTween:yh,remove:eh,tween:Nf,delay:Hf,duration:Ff,ease:Yf,easeVarying:Zf,end:vh,[Symbol.iterator]:ve[Symbol.iterator]};function _h(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Eh={time:null,delay:0,duration:250,ease:_h};function Sh(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function Nh(e){var t,n;e instanceof Se?(t=e._id,e=e._name):(t=ei(),(n=Eh).time=no(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,c,l=0;l<a;++l)(c=i[l])&&cn(c,e,t,l,i,n||Sh(c,t));return new Se(o,this._parents,e,t)}bt.prototype.interrupt=_f;bt.prototype.transition=Nh;const It=e=>()=>e;function Ch(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function _e(e,t,n){this.k=e,this.x=t,this.y=n}_e.prototype={constructor:_e,scale:function(e){return e===1?this:new _e(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new _e(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var ln=new _e(1,0,0);ti.prototype=_e.prototype;function ti(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ln;return e.__zoom}function _n(e){e.stopImmediatePropagation()}function st(e){e.preventDefault(),e.stopImmediatePropagation()}function Mh(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function kh(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Fo(){return this.__zoom||ln}function jh(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ih(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ph(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),i>s?(s+i)/2:Math.min(0,s)||Math.max(0,i))}function ni(){var e=Mh,t=kh,n=Ph,o=jh,r=Ih,s=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,c=Vt,l=rn("start","zoom","end"),f,d,h,g=500,p=150,y=0,w=10;function x(b){b.property("__zoom",Fo).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",D).on("dblclick.zoom",H).filter(r).on("touchstart.zoom",M).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}x.transform=function(b,j,N,k){var P=b.selection?b.selection():b;P.property("__zoom",Fo),b!==P?C(b,j,N,k):P.interrupt().each(function(){E(this,arguments).event(k).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},x.scaleBy=function(b,j,N,k){x.scaleTo(b,function(){var P=this.__zoom.k,R=typeof j=="function"?j.apply(this,arguments):j;return P*R},N,k)},x.scaleTo=function(b,j,N,k){x.transform(b,function(){var P=t.apply(this,arguments),R=this.__zoom,$=N==null?v(P):typeof N=="function"?N.apply(this,arguments):N,O=R.invert($),L=typeof j=="function"?j.apply(this,arguments):j;return n(m(S(R,L),$,O),P,i)},N,k)},x.translateBy=function(b,j,N,k){x.transform(b,function(){return n(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),i)},null,k)},x.translateTo=function(b,j,N,k,P){x.transform(b,function(){var R=t.apply(this,arguments),$=this.__zoom,O=k==null?v(R):typeof k=="function"?k.apply(this,arguments):k;return n(ln.translate(O[0],O[1]).scale($.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof N=="function"?-N.apply(this,arguments):-N),R,i)},k,P)};function S(b,j){return j=Math.max(s[0],Math.min(s[1],j)),j===b.k?b:new _e(j,b.x,b.y)}function m(b,j,N){var k=j[0]-N[0]*b.k,P=j[1]-N[1]*b.k;return k===b.x&&P===b.y?b:new _e(b.k,k,P)}function v(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function C(b,j,N,k){b.on("start.zoom",function(){E(this,arguments).event(k).start()}).on("interrupt.zoom end.zoom",function(){E(this,arguments).event(k).end()}).tween("zoom",function(){var P=this,R=arguments,$=E(P,R).event(k),O=t.apply(P,R),L=N==null?v(O):typeof N=="function"?N.apply(P,R):N,W=Math.max(O[1][0]-O[0][0],O[1][1]-O[0][1]),F=P.__zoom,X=typeof j=="function"?j.apply(P,R):j,K=c(F.invert(L).concat(W/F.k),X.invert(L).concat(W/X.k));return function(Z){if(Z===1)Z=X;else{var V=K(Z),B=W/V[2];Z=new _e(B,L[0]-V[0]*B,L[1]-V[1]*B)}$.zoom(null,Z)}})}function E(b,j,N){return!N&&b.__zooming||new I(b,j)}function I(b,j){this.that=b,this.args=j,this.active=0,this.sourceEvent=null,this.extent=t.apply(b,j),this.taps=0}I.prototype={event:function(b){return b&&(this.sourceEvent=b),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(b,j){return this.mouse&&b!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var j=ue(this.that).datum();l.call(b,this.that,new Ch(b,{sourceEvent:this.sourceEvent,target:x,transform:this.that.__zoom,dispatch:l}),j)}};function A(b,...j){if(!e.apply(this,arguments))return;var N=E(this,j).event(b),k=this.__zoom,P=Math.max(s[0],Math.min(s[1],k.k*Math.pow(2,o.apply(this,arguments)))),R=fe(b);if(N.wheel)(N.mouse[0][0]!==R[0]||N.mouse[0][1]!==R[1])&&(N.mouse[1]=k.invert(N.mouse[0]=R)),clearTimeout(N.wheel);else{if(k.k===P)return;N.mouse=[R,k.invert(R)],Xt(this),N.start()}st(b),N.wheel=setTimeout($,p),N.zoom("mouse",n(m(S(k,P),N.mouse[0],N.mouse[1]),N.extent,i));function $(){N.wheel=null,N.end()}}function D(b,...j){if(h||!e.apply(this,arguments))return;var N=b.currentTarget,k=E(this,j,!0).event(b),P=ue(b.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",W,!0),R=fe(b,N),$=b.clientX,O=b.clientY;Ys(b.view),_n(b),k.mouse=[R,this.__zoom.invert(R)],Xt(this),k.start();function L(F){if(st(F),!k.moved){var X=F.clientX-$,K=F.clientY-O;k.moved=X*X+K*K>y}k.event(F).zoom("mouse",n(m(k.that.__zoom,k.mouse[0]=fe(F,N),k.mouse[1]),k.extent,i))}function W(F){P.on("mousemove.zoom mouseup.zoom",null),Xs(F.view,k.moved),st(F),k.event(F).end()}}function H(b,...j){if(e.apply(this,arguments)){var N=this.__zoom,k=fe(b.changedTouches?b.changedTouches[0]:b,this),P=N.invert(k),R=N.k*(b.shiftKey?.5:2),$=n(m(S(N,R),k,P),t.apply(this,j),i);st(b),a>0?ue(this).transition().duration(a).call(C,$,k,b):ue(this).call(x.transform,$,k,b)}}function M(b,...j){if(e.apply(this,arguments)){var N=b.touches,k=N.length,P=E(this,j,b.changedTouches.length===k).event(b),R,$,O,L;for(_n(b),$=0;$<k;++$)O=N[$],L=fe(O,this),L=[L,this.__zoom.invert(L),O.identifier],P.touch0?!P.touch1&&P.touch0[2]!==L[2]&&(P.touch1=L,P.taps=0):(P.touch0=L,R=!0,P.taps=1+!!f);f&&(f=clearTimeout(f)),R&&(P.taps<2&&(d=L[0],f=setTimeout(function(){f=null},g)),Xt(this),P.start())}}function T(b,...j){if(this.__zooming){var N=E(this,j).event(b),k=b.changedTouches,P=k.length,R,$,O,L;for(st(b),R=0;R<P;++R)$=k[R],O=fe($,this),N.touch0&&N.touch0[2]===$.identifier?N.touch0[0]=O:N.touch1&&N.touch1[2]===$.identifier&&(N.touch1[0]=O);if($=N.that.__zoom,N.touch1){var W=N.touch0[0],F=N.touch0[1],X=N.touch1[0],K=N.touch1[1],Z=(Z=X[0]-W[0])*Z+(Z=X[1]-W[1])*Z,V=(V=K[0]-F[0])*V+(V=K[1]-F[1])*V;$=S($,Math.sqrt(Z/V)),O=[(W[0]+X[0])/2,(W[1]+X[1])/2],L=[(F[0]+K[0])/2,(F[1]+K[1])/2]}else if(N.touch0)O=N.touch0[0],L=N.touch0[1];else return;N.zoom("touch",n(m($,O,L),N.extent,i))}}function z(b,...j){if(this.__zooming){var N=E(this,j).event(b),k=b.changedTouches,P=k.length,R,$;for(_n(b),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),R=0;R<P;++R)$=k[R],N.touch0&&N.touch0[2]===$.identifier?delete N.touch0:N.touch1&&N.touch1[2]===$.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&($=fe($,this),Math.hypot(d[0]-$[0],d[1]-$[1])<w)){var O=ue(this).on("dblclick.zoom");O&&O.apply(this,arguments)}}}return x.wheelDelta=function(b){return arguments.length?(o=typeof b=="function"?b:It(+b),x):o},x.filter=function(b){return arguments.length?(e=typeof b=="function"?b:It(!!b),x):e},x.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:It(!!b),x):r},x.extent=function(b){return arguments.length?(t=typeof b=="function"?b:It([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),x):t},x.scaleExtent=function(b){return arguments.length?(s[0]=+b[0],s[1]=+b[1],x):[s[0],s[1]]},x.translateExtent=function(b){return arguments.length?(i[0][0]=+b[0][0],i[1][0]=+b[1][0],i[0][1]=+b[0][1],i[1][1]=+b[1][1],x):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},x.constrain=function(b){return arguments.length?(n=b,x):n},x.duration=function(b){return arguments.length?(a=+b,x):a},x.interpolate=function(b){return arguments.length?(c=b,x):c},x.on=function(){var b=l.on.apply(l,arguments);return b===l?x:b},x.clickDistance=function(b){return arguments.length?(y=(b=+b)*b,x):Math.sqrt(y)},x.tapDistance=function(b){return arguments.length?(w=+b,x):w},x}const xe={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`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.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},pt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],oi=["Enter"," ","Escape"],ri={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Ze;(function(e){e.Strict="strict",e.Loose="loose"})(Ze||(Ze={}));var ze;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ze||(ze={}));var gt;(function(e){e.Partial="partial",e.Full="full"})(gt||(gt={}));const si={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Ie;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ie||(Ie={}));var Jt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Jt||(Jt={}));var Y;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Y||(Y={}));const Wo={[Y.Left]:Y.Right,[Y.Right]:Y.Left,[Y.Top]:Y.Bottom,[Y.Bottom]:Y.Top};function ii(e){return e===null?null:e?"valid":"invalid"}const ai=e=>"id"in e&&"source"in e&&"target"in e,Ah=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),so=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),_t=(e,t=[0,0])=>{const{width:n,height:o}=Ne(e),r=e.origin??t,s=n*r[0],i=o*r[1];return{x:e.position.x-s,y:e.position.y-i}},Dh=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const s=typeof r=="string";let i=!t.nodeLookup&&!s?r:void 0;t.nodeLookup&&(i=s?t.nodeLookup.get(r):so(r)?r:t.nodeLookup.get(r.id));const a=i?en(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return un(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return dn(n)},Et=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=un(n,en(r)),o=!0)}),o?dn(n):{x:0,y:0,width:0,height:0}},io=(e,t,[n,o,r]=[0,0,1],s=!1,i=!1)=>{const a={...Nt(t,[n,o,r]),width:t.width/r,height:t.height/r},c=[];for(const l of e.values()){const{measured:f,selectable:d=!0,hidden:h=!1}=l;if(i&&!d||h)continue;const g=f.width??l.width??l.initialWidth??null,p=f.height??l.height??l.initialHeight??null,y=mt(a,Ge(l)),w=(g??0)*(p??0),x=s&&y>0;(!l.internals.handleBounds||x||y>=w||l.dragging)&&c.push(l)}return c},Th=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function Rh(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function zh({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:s},i){if(e.size===0)return Promise.resolve(!0);const a=Rh(e,i),c=Et(a),l=ao(c,t,n,i?.minZoom??r,i?.maxZoom??s,i?.padding??.1);return await o.setViewport(l,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),Promise.resolve(!0)}function ci({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:s}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:c,y:l}=a?a.internals.positionAbsolute:{x:0,y:0},f=i.origin??o;let d=i.extent||r;if(i.extent==="parent"&&!i.expandParent)if(!a)s?.("005",xe.error005());else{const g=a.measured.width,p=a.measured.height;g&&p&&(d=[[c,l],[c+g,l+p]])}else a&&qe(i.extent)&&(d=[[i.extent[0][0]+c,i.extent[0][1]+l],[i.extent[1][0]+c,i.extent[1][1]+l]]);const h=qe(d)?Oe(t,d,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&s?.("015",xe.error015()),{position:{x:h.x-c+(i.measured.width??0)*f[0],y:h.y-l+(i.measured.height??0)*f[1]},positionAbsolute:h}}async function $h({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const s=new Set(e.map(h=>h.id)),i=[];for(const h of n){if(h.deletable===!1)continue;const g=s.has(h.id),p=!g&&h.parentId&&i.find(y=>y.id===h.parentId);(g||p)&&i.push(h)}const a=new Set(t.map(h=>h.id)),c=o.filter(h=>h.deletable!==!1),f=Th(i,c);for(const h of c)a.has(h.id)&&!f.find(p=>p.id===h.id)&&f.push(h);if(!r)return{edges:f,nodes:i};const d=await r({nodes:i,edges:f});return typeof d=="boolean"?d?{edges:f,nodes:i}:{edges:[],nodes:[]}:d}const Ue=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Oe=(e={x:0,y:0},t,n)=>({x:Ue(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ue(e.y,t[0][1],t[1][1]-(n?.height??0))});function li(e,t,n){const{width:o,height:r}=Ne(n),{x:s,y:i}=n.internals.positionAbsolute;return Oe(e,[[s,i],[s+o,i+r]],t)}const Yo=(e,t,n)=>e<t?Ue(Math.abs(e-t),1,t)/t:e>n?-Ue(Math.abs(e-n),1,t)/t:0,ui=(e,t,n=15,o=40)=>{const r=Yo(e.x,o,t.width-o)*n,s=Yo(e.y,o,t.height-o)*n;return[r,s]},un=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Hn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),dn=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Ge=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:_t(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},en=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:_t(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},di=(e,t)=>dn(un(Hn(e),Hn(t))),mt=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},Xo=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),Oh=(e,t)=>{},St=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Nt=({x:e,y:t},[n,o,r],s=!1,i=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return s?St(a,i):a},tn=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Be(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Lh(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Be(e,n),r=Be(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Be(e.top??e.y??0,n),r=Be(e.bottom??e.y??0,n),s=Be(e.left??e.x??0,t),i=Be(e.right??e.x??0,t);return{top:o,right:i,bottom:r,left:s,x:s+i,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Hh(e,t,n,o,r,s){const{x:i,y:a}=tn(e,[t,n,o]),{x:c,y:l}=tn({x:e.x+e.width,y:e.y+e.height},[t,n,o]),f=r-c,d=s-l;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(f),bottom:Math.floor(d)}}const ao=(e,t,n,o,r,s)=>{const i=Lh(s,t,n),a=(t-i.x)/e.width,c=(n-i.y)/e.height,l=Math.min(a,c),f=Ue(l,o,r),d=e.x+e.width/2,h=e.y+e.height/2,g=t/2-d*f,p=n/2-h*f,y=Hh(e,g,p,f,t,n),w={left:Math.min(y.left-i.left,0),top:Math.min(y.top-i.top,0),right:Math.min(y.right-i.right,0),bottom:Math.min(y.bottom-i.bottom,0)};return{x:g-w.left+w.right,y:p-w.top+w.bottom,zoom:f}},xt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function qe(e){return e!=null&&e!=="parent"}function Ne(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function fi(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function hi(e,t={width:0,height:0},n,o,r){const s={...e},i=o.get(n);if(i){const a=i.origin||r;s.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function Zo(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Bh(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Vh(e){return{...ri,...e||{}}}function lt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:s,y:i}=pe(e),a=Nt({x:s-(r?.left??0),y:i-(r?.top??0)},o),{x:c,y:l}=n?St(a,t):a;return{xSnapped:c,ySnapped:l,...a}}const co=e=>({width:e.offsetWidth,height:e.offsetHeight}),pi=e=>e?.getRootNode?.()||window?.document,Fh=["INPUT","SELECT","TEXTAREA"];function gi(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Fh.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const mi=e=>"clientX"in e,pe=(e,t)=>{const n=mi(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},Uo=(e,t,n,o,r)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:r,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...co(i)}})};function xi({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:s,targetControlX:i,targetControlY:a}){const c=e*.125+r*.375+i*.375+n*.125,l=t*.125+s*.375+a*.375+o*.125,f=Math.abs(c-e),d=Math.abs(l-t);return[c,l,f,d]}function Pt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Go({pos:e,x1:t,y1:n,x2:o,y2:r,c:s}){switch(e){case Y.Left:return[t-Pt(t-o,s),n];case Y.Right:return[t+Pt(o-t,s),n];case Y.Top:return[t,n-Pt(n-r,s)];case Y.Bottom:return[t,n+Pt(r-n,s)]}}function yi({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top,curvature:i=.25}){const[a,c]=Go({pos:n,x1:e,y1:t,x2:o,y2:r,c:i}),[l,f]=Go({pos:s,x1:o,y1:r,x2:e,y2:t,c:i}),[d,h,g,p]=xi({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:f});return[`M${e},${t} C${a},${c} ${l},${f} ${o},${r}`,d,h,g,p]}function wi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,s=n<e?n+r:n-r,i=Math.abs(o-t)/2,a=o<t?o+i:o-i;return[s,a,r,i]}function Wh({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:s="basic"}){if(s==="manual")return o;const i=r&&n?o+1e3:o,a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return i+a}function Yh({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const s=un(en(e),en(t));s.x===s.x2&&(s.x2+=1),s.y===s.y2&&(s.y2+=1);const i={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return mt(i,dn(s))>0}const Xh=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,Zh=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Uh=(e,t,n={})=>{if(!e.source||!e.target)return t;const o=n.getEdgeId||Xh;let r;return ai(e)?r={...e}:r={...e,id:o(e)},Zh(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function vi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,s,i,a]=wi({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,s,i,a]}const qo={[Y.Left]:{x:-1,y:0},[Y.Right]:{x:1,y:0},[Y.Top]:{x:0,y:-1},[Y.Bottom]:{x:0,y:1}},Gh=({source:e,sourcePosition:t=Y.Bottom,target:n})=>t===Y.Left||t===Y.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Ko=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function qh({source:e,sourcePosition:t=Y.Bottom,target:n,targetPosition:o=Y.Top,center:r,offset:s,stepPosition:i}){const a=qo[t],c=qo[o],l={x:e.x+a.x*s,y:e.y+a.y*s},f={x:n.x+c.x*s,y:n.y+c.y*s},d=Gh({source:l,sourcePosition:t,target:f}),h=d.x!==0?"x":"y",g=d[h];let p=[],y,w;const x={x:0,y:0},S={x:0,y:0},[,,m,v]=wi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*c[h]===-1){h==="x"?(y=r.x??l.x+(f.x-l.x)*i,w=r.y??(l.y+f.y)/2):(y=r.x??(l.x+f.x)/2,w=r.y??l.y+(f.y-l.y)*i);const A=[{x:y,y:l.y},{x:y,y:f.y}],D=[{x:l.x,y:w},{x:f.x,y:w}];a[h]===g?p=h==="x"?A:D:p=h==="x"?D:A}else{const A=[{x:l.x,y:f.y}],D=[{x:f.x,y:l.y}];if(h==="x"?p=a.x===g?D:A:p=a.y===g?A:D,t===o){const b=Math.abs(e[h]-n[h]);if(b<=s){const j=Math.min(s-1,s-b);a[h]===g?x[h]=(l[h]>e[h]?-1:1)*j:S[h]=(f[h]>n[h]?-1:1)*j}}if(t!==o){const b=h==="x"?"y":"x",j=a[h]===c[b],N=l[b]>f[b],k=l[b]<f[b];(a[h]===1&&(!j&&N||j&&k)||a[h]!==1&&(!j&&k||j&&N))&&(p=h==="x"?A:D)}const H={x:l.x+x.x,y:l.y+x.y},M={x:f.x+S.x,y:f.y+S.y},T=Math.max(Math.abs(H.x-p[0].x),Math.abs(M.x-p[0].x)),z=Math.max(Math.abs(H.y-p[0].y),Math.abs(M.y-p[0].y));T>=z?(y=(H.x+M.x)/2,w=p[0].y):(y=p[0].x,w=(H.y+M.y)/2)}const C={x:l.x+x.x,y:l.y+x.y},E={x:f.x+S.x,y:f.y+S.y};return[[e,...C.x!==p[0].x||C.y!==p[0].y?[C]:[],...p,...E.x!==p[p.length-1].x||E.y!==p[p.length-1].y?[E]:[],n],y,w,m,v]}function Kh(e,t,n,o){const r=Math.min(Ko(e,t)/2,Ko(t,n)/2,o),{x:s,y:i}=t;if(e.x===s&&s===n.x||e.y===i&&i===n.y)return`L${s} ${i}`;if(e.y===i){const l=e.x<n.x?-1:1,f=e.y<n.y?1:-1;return`L ${s+r*l},${i}Q ${s},${i} ${s},${i+r*f}`}const a=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${s},${i+r*c}Q ${s},${i} ${s+r*a},${i}`}function nn({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top,borderRadius:i=5,centerX:a,centerY:c,offset:l=20,stepPosition:f=.5}){const[d,h,g,p,y]=qh({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:s,center:{x:a,y:c},offset:l,stepPosition:f});let w=`M${d[0].x} ${d[0].y}`;for(let x=1;x<d.length-1;x++)w+=Kh(d[x-1],d[x],d[x+1],i);return w+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[w,h,g,p,y]}function Qo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Qh(e){const{sourceNode:t,targetNode:n}=e;if(!Qo(t)||!Qo(n))return null;const o=t.internals.handleBounds||Jo(t.handles),r=n.internals.handleBounds||Jo(n.handles),s=er(o?.source??[],e.sourceHandle),i=er(e.connectionMode===Ze.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!s||!i)return e.onError?.("008",xe.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=s?.position||Y.Bottom,c=i?.position||Y.Top,l=Le(t,s,a),f=Le(n,i,c);return{sourceX:l.x,sourceY:l.y,targetX:f.x,targetY:f.y,sourcePosition:a,targetPosition:c}}function Jo(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Le(e,t,n=Y.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,s=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Ne(e);if(o)return{x:r+i/2,y:s+a/2};switch(t?.position??n){case Y.Top:return{x:r+i/2,y:s};case Y.Right:return{x:r+i,y:s+a/2};case Y.Bottom:return{x:r+i/2,y:s+a};case Y.Left:return{x:r,y:s+a/2}}}function er(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Bn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function Jh(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const s=new Set;return e.reduce((i,a)=>([a.markerStart||o,a.markerEnd||r].forEach(c=>{if(c&&typeof c=="object"){const l=Bn(c,t);s.has(l)||(i.push({id:l,color:c.color||n,...c}),s.add(l))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const bi=1e3,ep=10,lo={nodeOrigin:[0,0],nodeExtent:pt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},tp={...lo,checkEquality:!0};function uo(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function np(e,t,n){const o=uo(lo,n);for(const r of e.values())if(r.parentId)ho(r,e,t,o);else{const s=_t(r,o.nodeOrigin),i=qe(r.extent)?r.extent:o.nodeExtent,a=Oe(s,i,Ne(r));r.internals.positionAbsolute=a}}function op(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const s={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(s):r.type==="target"&&o.push(s)}return{source:n,target:o}}function fo(e){return e==="manual"}function Vn(e,t,n,o={}){const r=uo(tp,o),s={i:0},i=new Map(t),a=r?.elevateNodesOnSelect&&!fo(r.zIndexMode)?bi:0;let c=e.length>0,l=!1;t.clear(),n.clear();for(const f of e){let d=i.get(f.id);if(r.checkEquality&&f===d?.internals.userNode)t.set(f.id,d);else{const h=_t(f,r.nodeOrigin),g=qe(f.extent)?f.extent:r.nodeExtent,p=Oe(h,g,Ne(f));d={...r.defaults,...f,measured:{width:f.measured?.width,height:f.measured?.height},internals:{positionAbsolute:p,handleBounds:op(f,d),z:_i(f,a,r.zIndexMode),userNode:f}},t.set(f.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(c=!1),f.parentId&&ho(d,t,n,o,s),l||=f.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function rp(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ho(e,t,n,o,r){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:a,zIndexMode:c}=uo(lo,o),l=e.parentId,f=t.get(l);if(!f){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}rp(e,n),r&&!f.parentId&&f.internals.rootParentIndex===void 0&&c==="auto"&&(f.internals.rootParentIndex=++r.i,f.internals.z=f.internals.z+r.i*ep),r&&f.internals.rootParentIndex!==void 0&&(r.i=f.internals.rootParentIndex);const d=s&&!fo(c)?bi:0,{x:h,y:g,z:p}=sp(e,f,i,a,d,c),{positionAbsolute:y}=e.internals,w=h!==y.x||g!==y.y;(w||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:g}:y,z:p}})}function _i(e,t,n){const o=he(e.zIndex)?e.zIndex:0;return fo(n)?o:o+(e.selected?t:0)}function sp(e,t,n,o,r,s){const{x:i,y:a}=t.internals.positionAbsolute,c=Ne(e),l=_t(e,n),f=qe(e.extent)?Oe(l,e.extent,c):l;let d=Oe({x:i+f.x,y:a+f.y},o,c);e.extent==="parent"&&(d=li(d,c,t));const h=_i(e,r,s),g=t.internals.z??0;return{x:d.x,y:d.y,z:g>=h?g+1:h}}function po(e,t,n,o=[0,0]){const r=[],s=new Map;for(const i of e){const a=t.get(i.parentId);if(!a)continue;const c=s.get(i.parentId)?.expandedRect??Ge(a),l=di(c,i.rect);s.set(i.parentId,{expandedRect:l,parent:a})}return s.size>0&&s.forEach(({expandedRect:i,parent:a},c)=>{const l=a.internals.positionAbsolute,f=Ne(a),d=a.origin??o,h=i.x<l.x?Math.round(Math.abs(l.x-i.x)):0,g=i.y<l.y?Math.round(Math.abs(l.y-i.y)):0,p=Math.max(f.width,Math.round(i.width)),y=Math.max(f.height,Math.round(i.height)),w=(p-f.width)*d[0],x=(y-f.height)*d[1];(h>0||g>0||w||x)&&(r.push({id:c,type:"position",position:{x:a.position.x-h+w,y:a.position.y-g+x}}),n.get(c)?.forEach(S=>{e.some(m=>m.id===S.id)||r.push({id:S.id,type:"position",position:{x:S.position.x+h,y:S.position.y+g}})})),(f.width<i.width||f.height<i.height||h||g)&&r.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:p+(h?d[0]*h-w:0),height:y+(g?d[1]*g-x:0)}})}),r}function ip(e,t,n,o,r,s,i){const a=o?.querySelector(".xyflow__viewport");let c=!1;if(!a)return{changes:[],updatedInternals:c};const l=[],f=window.getComputedStyle(a),{m22:d}=new window.DOMMatrixReadOnly(f.transform),h=[];for(const g of e.values()){const p=t.get(g.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),c=!0;continue}const y=co(g.nodeElement),w=p.measured.width!==y.width||p.measured.height!==y.height;if(!!(y.width&&y.height&&(w||!p.internals.handleBounds||g.force))){const S=g.nodeElement.getBoundingClientRect(),m=qe(p.extent)?p.extent:s;let{positionAbsolute:v}=p.internals;p.parentId&&p.extent==="parent"?v=li(v,y,t.get(p.parentId)):m&&(v=Oe(v,m,y));const C={...p,measured:y,internals:{...p.internals,positionAbsolute:v,handleBounds:{source:Uo("source",g.nodeElement,S,d,p.id),target:Uo("target",g.nodeElement,S,d,p.id)}}};t.set(p.id,C),p.parentId&&ho(C,t,n,{nodeOrigin:r,zIndexMode:i}),c=!0,w&&(l.push({id:p.id,type:"dimensions",dimensions:y}),p.expandParent&&p.parentId&&h.push({id:p.id,parentId:p.parentId,rect:Ge(C,r)}))}}if(h.length>0){const g=po(h,t,n,r);l.push(...g)}return{changes:l,updatedInternals:c}}async function ap({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:s}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,s]],o),a=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(a)}function tr(e,t,n,o,r,s){let i=r;const a=o.get(i)||new Map;o.set(i,a.set(n,t)),i=`${r}-${e}`;const c=o.get(i)||new Map;if(o.set(i,c.set(n,t)),s){i=`${r}-${e}-${s}`;const l=o.get(i)||new Map;o.set(i,l.set(n,t))}}function Ei(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:s,sourceHandle:i=null,targetHandle:a=null}=o,c={edgeId:o.id,source:r,target:s,sourceHandle:i,targetHandle:a},l=`${r}-${i}--${s}-${a}`,f=`${s}-${a}--${r}-${i}`;tr("source",c,f,e,r,i),tr("target",c,l,e,s,a),t.set(o.id,o)}}function Si(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Si(n,t):!1}function nr(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function cp(e,t,n,o){const r=new Map;for(const[s,i]of e)if((i.selected||i.id===o)&&(!i.parentId||!Si(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(s);a&&r.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return r}function En({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[i,a]of t){const c=n.get(i)?.internals.userNode;c&&r.push({...c,position:a.position,dragging:o})}if(!e)return[r[0],r];const s=n.get(e)?.internals.userNode;return[s?{...s,position:t.get(e)?.position||s.position,dragging:o}:r[0],r]}function lp({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const s={x:n-r.distance.x,y:o-r.distance.y},i=St(s,t);return{x:i.x-s.x,y:i.y-s.y}}function up({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let s={x:null,y:null},i=0,a=new Map,c=!1,l={x:0,y:0},f=null,d=!1,h=null,g=!1,p=!1,y=null;function w({noDragClassName:S,handleSelector:m,domNode:v,isSelectable:C,nodeId:E,nodeClickDistance:I=0}){h=ue(v);function A({x:T,y:z}){const{nodeLookup:b,nodeExtent:j,snapGrid:N,snapToGrid:k,nodeOrigin:P,onNodeDrag:R,onSelectionDrag:$,onError:O,updateNodePositions:L}=t();s={x:T,y:z};let W=!1;const F=a.size>1,X=F&&j?Hn(Et(a)):null,K=F&&k?lp({dragItems:a,snapGrid:N,x:T,y:z}):null;for(const[Z,V]of a){if(!b.has(Z))continue;let B={x:T-V.distance.x,y:z-V.distance.y};k&&(B=K?{x:Math.round(B.x+K.x),y:Math.round(B.y+K.y)}:St(B,N));let U=null;if(F&&j&&!V.extent&&X){const{positionAbsolute:q}=V.internals,ee=q.x-X.x+j[0][0],oe=q.x+V.measured.width-X.x2+j[1][0],te=q.y-X.y+j[0][1],ce=q.y+V.measured.height-X.y2+j[1][1];U=[[ee,te],[oe,ce]]}const{position:Q,positionAbsolute:G}=ci({nodeId:Z,nextPosition:B,nodeLookup:b,nodeExtent:U||j,nodeOrigin:P,onError:O});W=W||V.position.x!==Q.x||V.position.y!==Q.y,V.position=Q,V.internals.positionAbsolute=G}if(p=p||W,!!W&&(L(a,!0),y&&(o||R||!E&&$))){const[Z,V]=En({nodeId:E,dragItems:a,nodeLookup:b});o?.(y,a,Z,V),R?.(y,Z,V),E||$?.(y,V)}}async function D(){if(!f)return;const{transform:T,panBy:z,autoPanSpeed:b,autoPanOnNodeDrag:j}=t();if(!j){c=!1,cancelAnimationFrame(i);return}const[N,k]=ui(l,f,b);(N!==0||k!==0)&&(s.x=(s.x??0)-N/T[2],s.y=(s.y??0)-k/T[2],await z({x:N,y:k})&&A(s)),i=requestAnimationFrame(D)}function H(T){const{nodeLookup:z,multiSelectionActive:b,nodesDraggable:j,transform:N,snapGrid:k,snapToGrid:P,selectNodesOnDrag:R,onNodeDragStart:$,onSelectionDragStart:O,unselectNodesAndEdges:L}=t();d=!0,(!R||!C)&&!b&&E&&(z.get(E)?.selected||L()),C&&R&&E&&e?.(E);const W=lt(T.sourceEvent,{transform:N,snapGrid:k,snapToGrid:P,containerBounds:f});if(s=W,a=cp(z,j,W,E),a.size>0&&(n||$||!E&&O)){const[F,X]=En({nodeId:E,dragItems:a,nodeLookup:z});n?.(T.sourceEvent,a,F,X),$?.(T.sourceEvent,F,X),E||O?.(T.sourceEvent,X)}}const M=Zs().clickDistance(I).on("start",T=>{const{domNode:z,nodeDragThreshold:b,transform:j,snapGrid:N,snapToGrid:k}=t();f=z?.getBoundingClientRect()||null,g=!1,p=!1,y=T.sourceEvent,b===0&&H(T),s=lt(T.sourceEvent,{transform:j,snapGrid:N,snapToGrid:k,containerBounds:f}),l=pe(T.sourceEvent,f)}).on("drag",T=>{const{autoPanOnNodeDrag:z,transform:b,snapGrid:j,snapToGrid:N,nodeDragThreshold:k,nodeLookup:P}=t(),R=lt(T.sourceEvent,{transform:b,snapGrid:j,snapToGrid:N,containerBounds:f});if(y=T.sourceEvent,(T.sourceEvent.type==="touchmove"&&T.sourceEvent.touches.length>1||E&&!P.has(E))&&(g=!0),!g){if(!c&&z&&d&&(c=!0,D()),!d){const $=pe(T.sourceEvent,f),O=$.x-l.x,L=$.y-l.y;Math.sqrt(O*O+L*L)>k&&H(T)}(s.x!==R.xSnapped||s.y!==R.ySnapped)&&a&&d&&(l=pe(T.sourceEvent,f),A(R))}}).on("end",T=>{if(!(!d||g)&&(c=!1,d=!1,cancelAnimationFrame(i),a.size>0)){const{nodeLookup:z,updateNodePositions:b,onNodeDragStop:j,onSelectionDragStop:N}=t();if(p&&(b(a,!1),p=!1),r||j||!E&&N){const[k,P]=En({nodeId:E,dragItems:a,nodeLookup:z,dragging:!1});r?.(T.sourceEvent,a,k,P),j?.(T.sourceEvent,k,P),E||N?.(T.sourceEvent,P)}}}).filter(T=>{const z=T.target;return!T.button&&(!S||!nr(z,`.${S}`,v))&&(!m||nr(z,m,v))});h.call(M)}function x(){h?.on(".drag",null)}return{update:w,destroy:x}}function dp(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())mt(r,Ge(s))>0&&o.push(s);return o}const fp=250;function hp(e,t,n,o){let r=[],s=1/0;const i=dp(e,n,t+fp);for(const a of i){const c=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const l of c){if(o.nodeId===l.nodeId&&o.type===l.type&&o.id===l.id)continue;const{x:f,y:d}=Le(a,l,l.position,!0),h=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(d-e.y,2));h>t||(h<s?(r=[{...l,x:f,y:d}],s=h):h===s&&r.push({...l,x:f,y:d}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(c=>c.type===a)??r[0]}return r[0]}function Ni(e,t,n,o,r,s=!1){const i=o.get(e);if(!i)return null;const a=r==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?a?.find(l=>l.id===n):a?.[0])??null;return c&&s?{...c,...Le(i,c,c.position,!0)}:c}function Ci(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function pp(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Mi=()=>!0;function gp(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:c,lib:l,autoPanOnConnect:f,flowId:d,panBy:h,cancelConnection:g,onConnectStart:p,onConnect:y,onConnectEnd:w,isValidConnection:x=Mi,onReconnectEnd:S,updateConnection:m,getTransform:v,getFromHandle:C,autoPanSpeed:E,dragThreshold:I=1,handleDomNode:A}){const D=pi(e.target);let H=0,M;const{x:T,y:z}=pe(e),b=Ci(s,A),j=a?.getBoundingClientRect();let N=!1;if(!j||!b)return;const k=Ni(r,b,o,c,t);if(!k)return;let P=pe(e,j),R=!1,$=null,O=!1,L=null;function W(){if(!f||!j)return;const[Q,G]=ui(P,j,E);h({x:Q,y:G}),H=requestAnimationFrame(W)}const F={...k,nodeId:r,type:b,position:k.position},X=c.get(r);let Z={inProgress:!0,isValid:null,from:Le(X,F,Y.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:X,to:P,toHandle:null,toPosition:Wo[F.position],toNode:null,pointer:P};function V(){N=!0,m(Z),p?.(e,{nodeId:r,handleId:o,handleType:b})}I===0&&V();function B(Q){if(!N){const{x:ce,y:Ce}=pe(Q),we=ce-T,Pe=Ce-z;if(!(we*we+Pe*Pe>I*I))return;V()}if(!C()||!F){U(Q);return}const G=v();P=pe(Q,j),M=hp(Nt(P,G,!1,[1,1]),n,c,F),R||(W(),R=!0);const q=ki(Q,{handle:M,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:i?"target":"source",isValidConnection:x,doc:D,lib:l,flowId:d,nodeLookup:c});L=q.handleDomNode,$=q.connection,O=pp(!!M,q.isValid);const ee=c.get(r),oe=ee?Le(ee,F,Y.Left,!0):Z.from,te={...Z,from:oe,isValid:O,to:q.toHandle&&O?tn({x:q.toHandle.x,y:q.toHandle.y},G):P,toHandle:q.toHandle,toPosition:O&&q.toHandle?q.toHandle.position:Wo[F.position],toNode:q.toHandle?c.get(q.toHandle.nodeId):null,pointer:P};m(te),Z=te}function U(Q){if(!("touches"in Q&&Q.touches.length>0)){if(N){(M||L)&&$&&O&&y?.($);const{inProgress:G,...q}=Z,ee={...q,toPosition:Z.toHandle?Z.toPosition:null};w?.(Q,ee),s&&S?.(Q,ee)}g(),cancelAnimationFrame(H),R=!1,O=!1,$=null,L=null,D.removeEventListener("mousemove",B),D.removeEventListener("mouseup",U),D.removeEventListener("touchmove",B),D.removeEventListener("touchend",U)}}D.addEventListener("mousemove",B),D.addEventListener("mouseup",U),D.addEventListener("touchmove",B),D.addEventListener("touchend",U)}function ki(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:s,doc:i,lib:a,flowId:c,isValidConnection:l=Mi,nodeLookup:f}){const d=s==="target",h=t?i.querySelector(`.${a}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=pe(e),y=i.elementFromPoint(g,p),w=y?.classList.contains(`${a}-flow__handle`)?y:h,x={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const S=Ci(void 0,w),m=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),C=w.classList.contains("connectable"),E=w.classList.contains("connectableend");if(!m||!S)return x;const I={source:d?m:o,sourceHandle:d?v:r,target:d?o:m,targetHandle:d?r:v};x.connection=I;const D=C&&E&&(n===Ze.Strict?d&&S==="source"||!d&&S==="target":m!==o||v!==r);x.isValid=D&&l(I),x.toHandle=Ni(m,S,v,f,n,!0)}return x}const Fn={onPointerDown:gp,isValid:ki};function mp({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=ue(e);function s({translateExtent:a,width:c,height:l,zoomStep:f=1,pannable:d=!0,zoomable:h=!0,inversePan:g=!1}){const p=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const v=n(),C=m.sourceEvent.ctrlKey&&xt()?10:1,E=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*f,I=v[2]*Math.pow(2,E*C);t.scaleTo(I)};let y=[0,0];const w=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(y=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},x=m=>{const v=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const C=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],E=[C[0]-y[0],C[1]-y[1]];y=C;const I=o()*Math.max(v[2],Math.log(v[2]))*(g?-1:1),A={x:v[0]-E[0]*I,y:v[1]-E[1]*I},D=[[0,0],[c,l]];t.setViewportConstrained({x:A.x,y:A.y,zoom:v[2]},D,a)},S=ni().on("start",w).on("zoom",d?x:null).on("zoom.wheel",h?p:null);r.call(S,{})}function i(){r.on("zoom",null)}return{update:s,destroy:i,pointer:fe}}const fn=e=>({x:e.x,y:e.y,zoom:e.k}),Sn=({x:e,y:t,zoom:n})=>ln.translate(e,t).scale(n),Ve=(e,t)=>e.target.closest(`.${t}`),ji=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),xp=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Nn=(e,t=0,n=xp,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},Ii=e=>{const t=e.ctrlKey&&xt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function yp({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:c,onPanZoomEnd:l}){return f=>{if(Ve(f,t))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const d=n.property("__zoom").k||1;if(f.ctrlKey&&i){const w=fe(f),x=Ii(f),S=d*Math.pow(2,x);o.scaleTo(n,S,w,f);return}const h=f.deltaMode===1?20:1;let g=r===ze.Vertical?0:f.deltaX*h,p=r===ze.Horizontal?0:f.deltaY*h;!xt()&&f.shiftKey&&r!==ze.Vertical&&(g=f.deltaY*h,p=0),o.translateBy(n,-(g/d)*s,-(p/d)*s,{internal:!0});const y=fn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(f,y),e.panScrollTimeout=setTimeout(()=>{l?.(f,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(f,y))}}function wp({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const s=o.type==="wheel",i=!t&&s&&!o.ctrlKey,a=Ve(o,e);if(o.ctrlKey&&s&&a&&o.preventDefault(),i||a)return null;o.preventDefault(),n.call(this,o,r)}}function vp({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=fn(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function bp({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return s=>{e.usedRightMouseButton=!!(n&&ji(t,e.mouseButton??0)),s.sourceEvent?.sync||o([s.transform.x,s.transform.y,s.transform.k]),r&&!s.sourceEvent?.internal&&r?.(s.sourceEvent,fn(s.transform))}}function _p({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:s}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,s&&ji(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&s(i.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=fn(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(i.sourceEvent,a)},n?150:0)}}}function Ep({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:s,userSelectionActive:i,noWheelClassName:a,noPanClassName:c,lib:l,connectionInProgress:f}){return d=>{const h=e||t,g=n&&d.ctrlKey,p=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(Ve(d,`${l}-flow__node`)||Ve(d,`${l}-flow__edge`)))return!0;if(!o&&!h&&!r&&!s&&!n||i||f&&!p||Ve(d,a)&&p||Ve(d,c)&&(!p||r&&p&&!e)||!n&&d.ctrlKey&&p)return!1;if(!n&&d.type==="touchstart"&&d.touches?.length>1)return d.preventDefault(),!1;if(!h&&!r&&!g&&p||!o&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(o)&&!o.includes(d.button)&&d.type==="mousedown")return!1;const y=Array.isArray(o)&&o.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||p)&&y}}function Sp({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:s,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:c}){const l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),d=ni().scaleExtent([t,n]).translateExtent(o),h=ue(e).call(d);S({x:r.x,y:r.y,zoom:Ue(r.zoom,t,n)},[[0,0],[f.width,f.height]],o);const g=h.on("wheel.zoom"),p=h.on("dblclick.zoom");d.wheelDelta(Ii);function y(M,T){return h?new Promise(z=>{d?.interpolate(T?.interpolate==="linear"?vn:Vt).transform(Nn(h,T?.duration,T?.ease,()=>z(!0)),M)}):Promise.resolve(!1)}function w({noWheelClassName:M,noPanClassName:T,onPaneContextMenu:z,userSelectionActive:b,panOnScroll:j,panOnDrag:N,panOnScrollMode:k,panOnScrollSpeed:P,preventScrolling:R,zoomOnPinch:$,zoomOnScroll:O,zoomOnDoubleClick:L,zoomActivationKeyPressed:W,lib:F,onTransformChange:X,connectionInProgress:K,paneClickDistance:Z,selectionOnDrag:V}){b&&!l.isZoomingOrPanning&&x();const B=j&&!W&&!b;d.clickDistance(V?1/0:!he(Z)||Z<0?0:Z);const U=B?yp({zoomPanValues:l,noWheelClassName:M,d3Selection:h,d3Zoom:d,panOnScrollMode:k,panOnScrollSpeed:P,zoomOnPinch:$,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):wp({noWheelClassName:M,preventScrolling:R,d3ZoomHandler:g});if(h.on("wheel.zoom",U,{passive:!1}),!b){const G=vp({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:i});d.on("start",G);const q=bp({zoomPanValues:l,panOnDrag:N,onPaneContextMenu:!!z,onPanZoom:s,onTransformChange:X});d.on("zoom",q);const ee=_p({zoomPanValues:l,panOnDrag:N,panOnScroll:j,onPaneContextMenu:z,onPanZoomEnd:a,onDraggingChange:c});d.on("end",ee)}const Q=Ep({zoomActivationKeyPressed:W,panOnDrag:N,zoomOnScroll:O,panOnScroll:j,zoomOnDoubleClick:L,zoomOnPinch:$,userSelectionActive:b,noPanClassName:T,noWheelClassName:M,lib:F,connectionInProgress:K});d.filter(Q),L?h.on("dblclick.zoom",p):h.on("dblclick.zoom",null)}function x(){d.on("zoom",null)}async function S(M,T,z){const b=Sn(M),j=d?.constrain()(b,T,z);return j&&await y(j),new Promise(N=>N(j))}async function m(M,T){const z=Sn(M);return await y(z,T),new Promise(b=>b(z))}function v(M){if(h){const T=Sn(M),z=h.property("__zoom");(z.k!==M.zoom||z.x!==M.x||z.y!==M.y)&&d?.transform(h,T,null,{sync:!0})}}function C(){const M=h?ti(h.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}function E(M,T){return h?new Promise(z=>{d?.interpolate(T?.interpolate==="linear"?vn:Vt).scaleTo(Nn(h,T?.duration,T?.ease,()=>z(!0)),M)}):Promise.resolve(!1)}function I(M,T){return h?new Promise(z=>{d?.interpolate(T?.interpolate==="linear"?vn:Vt).scaleBy(Nn(h,T?.duration,T?.ease,()=>z(!0)),M)}):Promise.resolve(!1)}function A(M){d?.scaleExtent(M)}function D(M){d?.translateExtent(M)}function H(M){const T=!he(M)||M<0?0:M;d?.clickDistance(T)}return{update:w,destroy:x,setViewport:m,setViewportConstrained:S,getViewport:C,scaleTo:E,scaleBy:I,setScaleExtent:A,setTranslateExtent:D,syncViewport:v,setClickDistance:H}}var Ke;(function(e){e.Line="line",e.Handle="handle"})(Ke||(Ke={}));function Np({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:s}){const i=e-t,a=n-o,c=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&r&&(c[0]=c[0]*-1),a&&s&&(c[1]=c[1]*-1),c}function or(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function Me(e,t){return Math.max(0,t-e)}function ke(e,t){return Math.max(0,e-t)}function At(e,t,n){return Math.max(0,t-e,e-n)}function rr(e,t){return e?!t:t}function Cp(e,t,n,o,r,s,i,a){let{affectsX:c,affectsY:l}=t;const{isHorizontal:f,isVertical:d}=t,h=f&&d,{xSnapped:g,ySnapped:p}=n,{minWidth:y,maxWidth:w,minHeight:x,maxHeight:S}=o,{x:m,y:v,width:C,height:E,aspectRatio:I}=e;let A=Math.floor(f?g-e.pointerX:0),D=Math.floor(d?p-e.pointerY:0);const H=C+(c?-A:A),M=E+(l?-D:D),T=-s[0]*C,z=-s[1]*E;let b=At(H,y,w),j=At(M,x,S);if(i){let P=0,R=0;c&&A<0?P=Me(m+A+T,i[0][0]):!c&&A>0&&(P=ke(m+H+T,i[1][0])),l&&D<0?R=Me(v+D+z,i[0][1]):!l&&D>0&&(R=ke(v+M+z,i[1][1])),b=Math.max(b,P),j=Math.max(j,R)}if(a){let P=0,R=0;c&&A>0?P=ke(m+A,a[0][0]):!c&&A<0&&(P=Me(m+H,a[1][0])),l&&D>0?R=ke(v+D,a[0][1]):!l&&D<0&&(R=Me(v+M,a[1][1])),b=Math.max(b,P),j=Math.max(j,R)}if(r){if(f){const P=At(H/I,x,S)*I;if(b=Math.max(b,P),i){let R=0;!c&&!l||c&&!l&&h?R=ke(v+z+H/I,i[1][1])*I:R=Me(v+z+(c?A:-A)/I,i[0][1])*I,b=Math.max(b,R)}if(a){let R=0;!c&&!l||c&&!l&&h?R=Me(v+H/I,a[1][1])*I:R=ke(v+(c?A:-A)/I,a[0][1])*I,b=Math.max(b,R)}}if(d){const P=At(M*I,y,w)/I;if(j=Math.max(j,P),i){let R=0;!c&&!l||l&&!c&&h?R=ke(m+M*I+T,i[1][0])/I:R=Me(m+(l?D:-D)*I+T,i[0][0])/I,j=Math.max(j,R)}if(a){let R=0;!c&&!l||l&&!c&&h?R=Me(m+M*I,a[1][0])/I:R=ke(m+(l?D:-D)*I,a[0][0])/I,j=Math.max(j,R)}}}D=D+(D<0?j:-j),A=A+(A<0?b:-b),r&&(h?H>M*I?D=(rr(c,l)?-A:A)/I:A=(rr(c,l)?-D:D)*I:f?(D=A/I,l=c):(A=D*I,c=l));const N=c?m+A:m,k=l?v+D:v;return{width:C+(c?-A:A),height:E+(l?-D:D),x:s[0]*A*(c?-1:1)+N,y:s[1]*D*(l?-1:1)+k}}const Pi={width:0,height:0,x:0,y:0},Mp={...Pi,pointerX:0,pointerY:0,aspectRatio:1};function kp(e){return[[0,0],[e.measured.width,e.measured.height]]}function jp(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,s=e.measured.width??0,i=e.measured.height??0,a=n[0]*s,c=n[1]*i;return[[o-a,r-c],[o+s-a,r+i-c]]}function Ip({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const s=ue(e);let i={controlDirection:or("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:l,boundaries:f,keepAspectRatio:d,resizeDirection:h,onResizeStart:g,onResize:p,onResizeEnd:y,shouldResize:w}){let x={...Pi},S={...Mp};i={boundaries:f,resizeDirection:h,keepAspectRatio:d,controlDirection:or(l)};let m,v=null,C=[],E,I,A,D=!1;const H=Zs().on("start",M=>{const{nodeLookup:T,transform:z,snapGrid:b,snapToGrid:j,nodeOrigin:N,paneDomNode:k}=n();if(m=T.get(t),!m)return;v=k?.getBoundingClientRect()??null;const{xSnapped:P,ySnapped:R}=lt(M.sourceEvent,{transform:z,snapGrid:b,snapToGrid:j,containerBounds:v});x={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},S={...x,pointerX:P,pointerY:R,aspectRatio:x.width/x.height},E=void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(E=T.get(m.parentId),I=E&&m.extent==="parent"?kp(E):void 0),C=[],A=void 0;for(const[$,O]of T)if(O.parentId===t&&(C.push({id:$,position:{...O.position},extent:O.extent}),O.extent==="parent"||O.expandParent)){const L=jp(O,m,O.origin??N);A?A=[[Math.min(L[0][0],A[0][0]),Math.min(L[0][1],A[0][1])],[Math.max(L[1][0],A[1][0]),Math.max(L[1][1],A[1][1])]]:A=L}g?.(M,{...x})}).on("drag",M=>{const{transform:T,snapGrid:z,snapToGrid:b,nodeOrigin:j}=n(),N=lt(M.sourceEvent,{transform:T,snapGrid:z,snapToGrid:b,containerBounds:v}),k=[];if(!m)return;const{x:P,y:R,width:$,height:O}=x,L={},W=m.origin??j,{width:F,height:X,x:K,y:Z}=Cp(S,i.controlDirection,N,i.boundaries,i.keepAspectRatio,W,I,A),V=F!==$,B=X!==O,U=K!==P&&V,Q=Z!==R&&B;if(!U&&!Q&&!V&&!B)return;if((U||Q||W[0]===1||W[1]===1)&&(L.x=U?K:x.x,L.y=Q?Z:x.y,x.x=L.x,x.y=L.y,C.length>0)){const oe=K-P,te=Z-R;for(const ce of C)ce.position={x:ce.position.x-oe+W[0]*(F-$),y:ce.position.y-te+W[1]*(X-O)},k.push(ce)}if((V||B)&&(L.width=V&&(!i.resizeDirection||i.resizeDirection==="horizontal")?F:x.width,L.height=B&&(!i.resizeDirection||i.resizeDirection==="vertical")?X:x.height,x.width=L.width,x.height=L.height),E&&m.expandParent){const oe=W[0]*(L.width??0);L.x&&L.x<oe&&(x.x=oe,S.x=S.x-(L.x-oe));const te=W[1]*(L.height??0);L.y&&L.y<te&&(x.y=te,S.y=S.y-(L.y-te))}const G=Np({width:x.width,prevWidth:$,height:x.height,prevHeight:O,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),q={...x,direction:G};w?.(M,q)!==!1&&(D=!0,p?.(M,q),o(L,k))}).on("end",M=>{D&&(y?.(M,{...x}),r?.({...x}),D=!1)});s.call(H)}function c(){s.on(".drag",null)}return{update:a,destroy:c}}var Cn={exports:{}},Mn={};var sr;function Pp(){if(sr)return Mn;sr=1;var e=Vc(),t=Fc();function n(l,f){return l===f&&(l!==0||1/l===1/f)||l!==l&&f!==f}var o=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,s=e.useRef,i=e.useEffect,a=e.useMemo,c=e.useDebugValue;return Mn.useSyncExternalStoreWithSelector=function(l,f,d,h,g){var p=s(null);if(p.current===null){var y={hasValue:!1,value:null};p.current=y}else y=p.current;p=a(function(){function x(E){if(!S){if(S=!0,m=E,E=h(E),g!==void 0&&y.hasValue){var I=y.value;if(g(I,E))return v=I}return v=E}if(I=v,o(m,E))return I;var A=h(E);return g!==void 0&&g(I,A)?(m=E,I):(m=E,v=A)}var S=!1,m,v,C=d===void 0?null:d;return[function(){return x(f())},C===null?void 0:function(){return x(C())}]},[f,d,h,g]);var w=r(l,p[0],p[1]);return i(function(){y.hasValue=!0,y.value=w},[w]),c(w),w},Mn}var ir;function Ap(){return ir||(ir=1,Cn.exports=Pp()),Cn.exports}var Dp=Ap();const Tp=Wc(Dp),Rp={},ar=e=>{let t;const n=new Set,o=(f,d)=>{const h=typeof f=="function"?f(t):f;if(!Object.is(h,t)){const g=t;t=d??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(p=>p(t,g))}},r=()=>t,c={setState:o,getState:r,getInitialState:()=>l,subscribe:f=>(n.add(f),()=>n.delete(f)),destroy:()=>{(Rp?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=t=e(o,r,c);return c},zp=e=>e?ar(e):ar,{useDebugValue:$p}=me,{useSyncExternalStoreWithSelector:Op}=Tp,Lp=e=>e;function Ai(e,t=Lp,n){const o=Op(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return $p(o),o}const cr=(e,t)=>{const n=zp(e),o=(r,s=t)=>Ai(n,r,s);return Object.assign(o,n),o},Hp=(e,t)=>e?cr(e,t):cr;function ne(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,r]of e)if(!Object.is(r,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const hn=_.createContext(null),Bp=hn.Provider,Di=xe.error001();function J(e,t){const n=_.useContext(hn);if(n===null)throw new Error(Di);return Ai(n,e,t)}function re(){const e=_.useContext(hn);if(e===null)throw new Error(Di);return _.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const lr={display:"none"},Vp={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ti="react-flow__node-desc",Ri="react-flow__edge-desc",Fp="react-flow__aria-live",Wp=e=>e.ariaLiveMessage,Yp=e=>e.ariaLabelConfig;function Xp({rfId:e}){const t=J(Wp);return u.jsx("div",{id:`${Fp}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Vp,children:t})}function Zp({rfId:e,disableKeyboardA11y:t}){const n=J(Yp);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${Ti}-${e}`,style:lr,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${Ri}-${e}`,style:lr,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(Xp,{rfId:e})]})}const pn=_.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},s)=>{const i=`${e}`.split("-");return u.jsx("div",{className:ie(["react-flow__panel",n,...i]),style:o,ref:s,...r,children:t})});pn.displayName="Panel";function Up({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(pn,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:u.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Gp=e=>{const t=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&t.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:t,selectedEdges:n}},Dt=e=>e.id;function qp(e,t){return ne(e.selectedNodes.map(Dt),t.selectedNodes.map(Dt))&&ne(e.selectedEdges.map(Dt),t.selectedEdges.map(Dt))}function Kp({onSelectionChange:e}){const t=re(),{selectedNodes:n,selectedEdges:o}=J(Gp,qp);return _.useEffect(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(s=>s(r))},[n,o,e]),null}const Qp=e=>!!e.onSelectionChangeHandlers;function Jp({onSelectionChange:e}){const t=J(Qp);return e||t?u.jsx(Kp,{onSelectionChange:e}):null}const Wn=typeof window<"u"?_.useLayoutEffect:_.useEffect,zi=[0,0],eg={x:0,y:0,zoom:1},tg=["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"],ur=[...tg,"rfId"],ng=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),dr={translateExtent:pt,nodeOrigin:zi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function og(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:c}=J(ng,ne),l=re();Wn(()=>(c(e.defaultNodes,e.defaultEdges),()=>{f.current=dr,a()}),[]);const f=_.useRef(dr);return Wn(()=>{for(const d of ur){const h=e[d],g=f.current[d];h!==g&&(typeof e[d]>"u"||(d==="nodes"?t(h):d==="edges"?n(h):d==="minZoom"?o(h):d==="maxZoom"?r(h):d==="translateExtent"?s(h):d==="nodeExtent"?i(h):d==="ariaLabelConfig"?l.setState({ariaLabelConfig:Vh(h)}):d==="fitView"?l.setState({fitViewQueued:h}):d==="fitViewOptions"?l.setState({fitViewOptions:h}):l.setState({[d]:h})))}f.current=e},ur.map(d=>e[d])),null}function fr(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function rg(e){const[t,n]=_.useState(e==="system"?null:e);return _.useEffect(()=>{if(e!=="system"){n(e);return}const o=fr(),r=()=>n(o?.matches?"dark":"light");return r(),o?.addEventListener("change",r),()=>{o?.removeEventListener("change",r)}},[e]),t!==null?t:fr()?.matches?"dark":"light"}const hr=typeof document<"u"?document:null;function yt(e=null,t={target:hr,actInsideInputWithModifier:!0}){const[n,o]=_.useState(!1),r=_.useRef(!1),s=_.useRef(new Set([])),[i,a]=_.useMemo(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.replace("+",`
3
- `).replace(`
4
-
5
- `,`
6
- +`).split(`
7
- `)),f=l.reduce((d,h)=>d.concat(...h),[]);return[l,f]}return[[],[]]},[e]);return _.useEffect(()=>{const c=t?.target??hr,l=t?.actInsideInputWithModifier??!0;if(e!==null){const f=g=>{if(r.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!r.current||r.current&&!l)&&gi(g))return!1;const y=gr(g.code,a);if(s.current.add(g[y]),pr(i,s.current,!1)){const w=g.composedPath?.()?.[0]||g.target,x=w?.nodeName==="BUTTON"||w?.nodeName==="A";t.preventDefault!==!1&&(r.current||!x)&&g.preventDefault(),o(!0)}},d=g=>{const p=gr(g.code,a);pr(i,s.current,!0)?(o(!1),s.current.clear()):s.current.delete(g[p]),g.key==="Meta"&&s.current.clear(),r.current=!1},h=()=>{s.current.clear(),o(!1)};return c?.addEventListener("keydown",f),c?.addEventListener("keyup",d),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{c?.removeEventListener("keydown",f),c?.removeEventListener("keyup",d),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,o]),n}function pr(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function gr(e,t){return t.includes(e)?"code":"key"}const sg=()=>{const e=re();return _.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,s],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??s},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:s,maxZoom:i,panZoom:a}=e.getState(),c=ao(t,o,r,s,i,n?.padding??.1);return a?(await a.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:a,y:c}=i.getBoundingClientRect(),l={x:t.x-a,y:t.y-c},f=n.snapGrid??r,d=n.snapToGrid??s;return Nt(l,o,d,f)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:s}=o.getBoundingClientRect(),i=tn(t,n);return{x:i.x+r,y:i.y+s}}}),[])};function $i(e,t){const n=[],o=new Map,r=[];for(const s of e)if(s.type==="add"){r.push(s);continue}else if(s.type==="remove"||s.type==="replace")o.set(s.id,[s]);else{const i=o.get(s.id);i?i.push(s):o.set(s.id,[s])}for(const s of t){const i=o.get(s.id);if(!i){n.push(s);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...s};for(const c of i)ig(c,a);n.push(a)}return r.length&&r.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function ig(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function ag(e,t){return $i(e,t)}function cg(e,t){return $i(e,t)}function De(e,t){return{id:e,type:"select",selected:t}}function Fe(e,t=new Set,n=!1){const o=[];for(const[r,s]of e){const i=t.has(r);!(s.selected===void 0&&!i)&&s.selected!==i&&(n&&(s.selected=i),o.push(De(s.id,i)))}return o}function mr({items:e=[],lookup:t}){const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,s]of e.entries()){const i=t.get(s.id),a=i?.internals?.userNode??i;a!==void 0&&a!==s&&n.push({id:s.id,item:s,type:"replace"}),a===void 0&&n.push({item:s,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function xr(e){return{id:e.id,type:"remove"}}const yr=e=>Ah(e),lg=e=>ai(e);function Oi(e){return _.forwardRef(e)}function wr(e){const[t,n]=_.useState(BigInt(0)),[o]=_.useState(()=>ug(()=>n(r=>r+BigInt(1))));return Wn(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function ug(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Li=_.createContext(null);function dg({children:e}){const t=re(),n=_.useCallback(a=>{const{nodes:c=[],setNodes:l,hasDefaultNodes:f,onNodesChange:d,nodeLookup:h,fitViewQueued:g,onNodesChangeMiddlewareMap:p}=t.getState();let y=c;for(const x of a)y=typeof x=="function"?x(y):x;let w=mr({items:y,lookup:h});for(const x of p.values())w=x(w);f&&l(y),w.length>0?d?.(w):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:x,nodes:S,setNodes:m}=t.getState();x&&m(S)})},[]),o=wr(n),r=_.useCallback(a=>{const{edges:c=[],setEdges:l,hasDefaultEdges:f,onEdgesChange:d,edgeLookup:h}=t.getState();let g=c;for(const p of a)g=typeof p=="function"?p(g):p;f?l(g):d&&d(mr({items:g,lookup:h}))},[]),s=wr(r),i=_.useMemo(()=>({nodeQueue:o,edgeQueue:s}),[]);return u.jsx(Li.Provider,{value:i,children:e})}function fg(){const e=_.useContext(Li);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const hg=e=>!!e.panZoom;function gn(){const e=sg(),t=re(),n=fg(),o=J(hg),r=_.useMemo(()=>{const s=d=>t.getState().nodeLookup.get(d),i=d=>{n.nodeQueue.push(d)},a=d=>{n.edgeQueue.push(d)},c=d=>{const{nodeLookup:h,nodeOrigin:g}=t.getState(),p=yr(d)?d:h.get(d.id),y=p.parentId?hi(p.position,p.measured,p.parentId,h,g):p.position,w={...p,position:y,width:p.measured?.width??p.width,height:p.measured?.height??p.height};return Ge(w)},l=(d,h,g={replace:!1})=>{i(p=>p.map(y=>{if(y.id===d){const w=typeof h=="function"?h(y):h;return g.replace&&yr(w)?w:{...y,...w}}return y}))},f=(d,h,g={replace:!1})=>{a(p=>p.map(y=>{if(y.id===d){const w=typeof h=="function"?h(y):h;return g.replace&&lg(w)?w:{...y,...w}}return y}))};return{getNodes:()=>t.getState().nodes.map(d=>({...d})),getNode:d=>s(d)?.internals.userNode,getInternalNode:s,getEdges:()=>{const{edges:d=[]}=t.getState();return d.map(h=>({...h}))},getEdge:d=>t.getState().edgeLookup.get(d),setNodes:i,setEdges:a,addNodes:d=>{const h=Array.isArray(d)?d:[d];n.nodeQueue.push(g=>[...g,...h])},addEdges:d=>{const h=Array.isArray(d)?d:[d];n.edgeQueue.push(g=>[...g,...h])},toObject:()=>{const{nodes:d=[],edges:h=[],transform:g}=t.getState(),[p,y,w]=g;return{nodes:d.map(x=>({...x})),edges:h.map(x=>({...x})),viewport:{x:p,y,zoom:w}}},deleteElements:async({nodes:d=[],edges:h=[]})=>{const{nodes:g,edges:p,onNodesDelete:y,onEdgesDelete:w,triggerNodeChanges:x,triggerEdgeChanges:S,onDelete:m,onBeforeDelete:v}=t.getState(),{nodes:C,edges:E}=await $h({nodesToRemove:d,edgesToRemove:h,nodes:g,edges:p,onBeforeDelete:v}),I=E.length>0,A=C.length>0;if(I){const D=E.map(xr);w?.(E),S(D)}if(A){const D=C.map(xr);y?.(C),x(D)}return(A||I)&&m?.({nodes:C,edges:E}),{deletedNodes:C,deletedEdges:E}},getIntersectingNodes:(d,h=!0,g)=>{const p=Xo(d),y=p?d:c(d),w=g!==void 0;return y?(g||t.getState().nodes).filter(x=>{const S=t.getState().nodeLookup.get(x.id);if(S&&!p&&(x.id===d.id||!S.internals.positionAbsolute))return!1;const m=Ge(w?x:S),v=mt(m,y);return h&&v>0||v>=m.width*m.height||v>=y.width*y.height}):[]},isNodeIntersecting:(d,h,g=!0)=>{const y=Xo(d)?d:c(d);if(!y)return!1;const w=mt(y,h);return g&&w>0||w>=h.width*h.height||w>=y.width*y.height},updateNode:l,updateNodeData:(d,h,g={replace:!1})=>{l(d,p=>{const y=typeof h=="function"?h(p):h;return g.replace?{...p,data:y}:{...p,data:{...p.data,...y}}},g)},updateEdge:f,updateEdgeData:(d,h,g={replace:!1})=>{f(d,p=>{const y=typeof h=="function"?h(p):h;return g.replace?{...p,data:y}:{...p,data:{...p.data,...y}}},g)},getNodesBounds:d=>{const{nodeLookup:h,nodeOrigin:g}=t.getState();return Dh(d,{nodeLookup:h,nodeOrigin:g})},getHandleConnections:({type:d,id:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}-${d}${h?`-${h}`:""}`)?.values()??[]),getNodeConnections:({type:d,handleId:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}${d?h?`-${d}-${h}`:`-${d}`:""}`)?.values()??[]),fitView:async d=>{const h=t.getState().fitViewResolver??Bh();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:h}),n.nodeQueue.push(g=>[...g]),h.promise}}},[]);return _.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const vr=e=>e.selected,pg=typeof window<"u"?window:void 0;function gg({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=re(),{deleteElements:o}=gn(),r=yt(e,{actInsideInputWithModifier:!1}),s=yt(t,{target:pg});_.useEffect(()=>{if(r){const{edges:i,nodes:a}=n.getState();o({nodes:a.filter(vr),edges:i.filter(vr)}),n.setState({nodesSelectionActive:!1})}},[r]),_.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function mg(e){const t=re();_.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=co(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",xe.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const mn={position:"absolute",width:"100%",height:"100%",top:0,left:0},xg=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function yg({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:s=ze.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:c,translateExtent:l,minZoom:f,maxZoom:d,zoomActivationKeyCode:h,preventScrolling:g=!0,children:p,noWheelClassName:y,noPanClassName:w,onViewportChange:x,isControlledViewport:S,paneClickDistance:m,selectionOnDrag:v}){const C=re(),E=_.useRef(null),{userSelectionActive:I,lib:A,connectionInProgress:D}=J(xg,ne),H=yt(h),M=_.useRef();mg(E);const T=_.useCallback(z=>{x?.({x:z[0],y:z[1],zoom:z[2]}),S||C.setState({transform:z})},[x,S]);return _.useEffect(()=>{if(E.current){M.current=Sp({domNode:E.current,minZoom:f,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:N=>C.setState(k=>k.paneDragging===N?k:{paneDragging:N}),onPanZoomStart:(N,k)=>{const{onViewportChangeStart:P,onMoveStart:R}=C.getState();R?.(N,k),P?.(k)},onPanZoom:(N,k)=>{const{onViewportChange:P,onMove:R}=C.getState();R?.(N,k),P?.(k)},onPanZoomEnd:(N,k)=>{const{onViewportChangeEnd:P,onMoveEnd:R}=C.getState();R?.(N,k),P?.(k)}});const{x:z,y:b,zoom:j}=M.current.getViewport();return C.setState({panZoom:M.current,transform:[z,b,j],domNode:E.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),_.useEffect(()=>{M.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:s,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:H,preventScrolling:g,noPanClassName:w,userSelectionActive:I,noWheelClassName:y,lib:A,onTransformChange:T,connectionInProgress:D,selectionOnDrag:v,paneClickDistance:m})},[e,t,n,o,r,s,i,a,H,g,w,I,y,A,T,D,v,m]),u.jsx("div",{className:"react-flow__renderer",ref:E,style:mn,children:p})}const wg=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function vg(){const{userSelectionActive:e,userSelectionRect:t}=J(wg,ne);return e&&t?u.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const kn=(e,t)=>n=>{n.target===t.current&&e?.(n)},bg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function _g({isSelecting:e,selectionKeyPressed:t,selectionMode:n=gt.Full,panOnDrag:o,paneClickDistance:r,selectionOnDrag:s,onSelectionStart:i,onSelectionEnd:a,onPaneClick:c,onPaneContextMenu:l,onPaneScroll:f,onPaneMouseEnter:d,onPaneMouseMove:h,onPaneMouseLeave:g,children:p}){const y=re(),{userSelectionActive:w,elementsSelectable:x,dragging:S,connectionInProgress:m}=J(bg,ne),v=x&&(e||w),C=_.useRef(null),E=_.useRef(),I=_.useRef(new Set),A=_.useRef(new Set),D=_.useRef(!1),H=P=>{if(D.current||m){D.current=!1;return}c?.(P),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},M=P=>{if(Array.isArray(o)&&o?.includes(2)){P.preventDefault();return}l?.(P)},T=f?P=>f(P):void 0,z=P=>{D.current&&(P.stopPropagation(),D.current=!1)},b=P=>{const{domNode:R}=y.getState();if(E.current=R?.getBoundingClientRect(),!E.current)return;const $=P.target===C.current;if(!$&&!!P.target.closest(".nokey")||!e||!(s&&$||t)||P.button!==0||!P.isPrimary)return;P.target?.setPointerCapture?.(P.pointerId),D.current=!1;const{x:W,y:F}=pe(P.nativeEvent,E.current);y.setState({userSelectionRect:{width:0,height:0,startX:W,startY:F,x:W,y:F}}),$||(P.stopPropagation(),P.preventDefault())},j=P=>{const{userSelectionRect:R,transform:$,nodeLookup:O,edgeLookup:L,connectionLookup:W,triggerNodeChanges:F,triggerEdgeChanges:X,defaultEdgeOptions:K,resetSelectedElements:Z}=y.getState();if(!E.current||!R)return;const{x:V,y:B}=pe(P.nativeEvent,E.current),{startX:U,startY:Q}=R;if(!D.current){const te=t?0:r;if(Math.hypot(V-U,B-Q)<=te)return;Z(),i?.(P)}D.current=!0;const G={startX:U,startY:Q,x:V<U?V:U,y:B<Q?B:Q,width:Math.abs(V-U),height:Math.abs(B-Q)},q=I.current,ee=A.current;I.current=new Set(io(O,G,$,n===gt.Partial,!0).map(te=>te.id)),A.current=new Set;const oe=K?.selectable??!0;for(const te of I.current){const ce=W.get(te);if(ce)for(const{edgeId:Ce}of ce.values()){const we=L.get(Ce);we&&(we.selectable??oe)&&A.current.add(Ce)}}if(!Zo(q,I.current)){const te=Fe(O,I.current,!0);F(te)}if(!Zo(ee,A.current)){const te=Fe(L,A.current);X(te)}y.setState({userSelectionRect:G,userSelectionActive:!0,nodesSelectionActive:!1})},N=P=>{P.button===0&&(P.target?.releasePointerCapture?.(P.pointerId),!w&&P.target===C.current&&y.getState().userSelectionRect&&H?.(P),y.setState({userSelectionActive:!1,userSelectionRect:null}),D.current&&(a?.(P),y.setState({nodesSelectionActive:I.current.size>0})))},k=o===!0||Array.isArray(o)&&o.includes(0);return u.jsxs("div",{className:ie(["react-flow__pane",{draggable:k,dragging:S,selection:e}]),onClick:v?void 0:kn(H,C),onContextMenu:kn(M,C),onWheel:kn(T,C),onPointerEnter:v?void 0:d,onPointerMove:v?j:h,onPointerUp:v?N:void 0,onPointerDownCapture:v?b:void 0,onClickCapture:v?z:void 0,onPointerLeave:g,ref:C,style:mn,children:[p,u.jsx(vg,{})]})}function Yn({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:s,multiSelectionActive:i,nodeLookup:a,onError:c}=t.getState(),l=a.get(e);if(!l){c?.("012",xe.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&i)&&(s({nodes:[l],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Hi({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:s,nodeClickDistance:i}){const a=re(),[c,l]=_.useState(!1),f=_.useRef();return _.useEffect(()=>{f.current=up({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{Yn({id:d,store:a,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}})},[]),_.useEffect(()=>{if(!(t||!e.current||!f.current))return f.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:s,nodeId:r,nodeClickDistance:i}),()=>{f.current?.destroy()}},[n,o,t,s,e,r,i]),c}const Eg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Bi(){const e=re();return _.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:c,nodeLookup:l,nodeOrigin:f}=e.getState(),d=new Map,h=Eg(i),g=r?s[0]:5,p=r?s[1]:5,y=n.direction.x*g*n.factor,w=n.direction.y*p*n.factor;for(const[,x]of l){if(!h(x))continue;let S={x:x.internals.positionAbsolute.x+y,y:x.internals.positionAbsolute.y+w};r&&(S=St(S,s));const{position:m,positionAbsolute:v}=ci({nodeId:x.id,nextPosition:S,nodeLookup:l,nodeExtent:o,nodeOrigin:f,onError:a});x.position=m,x.internals.positionAbsolute=v,d.set(x.id,x)}c(d)},[])}const go=_.createContext(null),Sg=go.Provider;go.Consumer;const Vi=()=>_.useContext(go),Ng=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Cg=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:s,connection:i}=o,{fromHandle:a,toHandle:c,isValid:l}=i,f=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:f,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:s===Ze.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:f&&l}};function Mg({type:e="source",position:t=Y.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:c,className:l,onMouseDown:f,onTouchStart:d,...h},g){const p=i||null,y=e==="target",w=re(),x=Vi(),{connectOnClick:S,noPanClassName:m,rfId:v}=J(Ng,ne),{connectingFrom:C,connectingTo:E,clickConnecting:I,isPossibleEndHandle:A,connectionInProcess:D,clickConnectionInProcess:H,valid:M}=J(Cg(x,p,e),ne);x||w.getState().onError?.("010",xe.error010());const T=j=>{const{defaultEdgeOptions:N,onConnect:k,hasDefaultEdges:P}=w.getState(),R={...N,...j};if(P){const{edges:$,setEdges:O}=w.getState();O(Uh(R,$))}k?.(R),a?.(R)},z=j=>{if(!x)return;const N=mi(j.nativeEvent);if(r&&(N&&j.button===0||!N)){const k=w.getState();Fn.onPointerDown(j.nativeEvent,{handleDomNode:j.currentTarget,autoPanOnConnect:k.autoPanOnConnect,connectionMode:k.connectionMode,connectionRadius:k.connectionRadius,domNode:k.domNode,nodeLookup:k.nodeLookup,lib:k.lib,isTarget:y,handleId:p,nodeId:x,flowId:k.rfId,panBy:k.panBy,cancelConnection:k.cancelConnection,onConnectStart:k.onConnectStart,onConnectEnd:(...P)=>w.getState().onConnectEnd?.(...P),updateConnection:k.updateConnection,onConnect:T,isValidConnection:n||((...P)=>w.getState().isValidConnection?.(...P)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:k.autoPanSpeed,dragThreshold:k.connectionDragThreshold})}N?f?.(j):d?.(j)},b=j=>{const{onClickConnectStart:N,onClickConnectEnd:k,connectionClickStartHandle:P,connectionMode:R,isValidConnection:$,lib:O,rfId:L,nodeLookup:W,connection:F}=w.getState();if(!x||!P&&!r)return;if(!P){N?.(j.nativeEvent,{nodeId:x,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:x,type:e,id:p}});return}const X=pi(j.target),K=n||$,{connection:Z,isValid:V}=Fn.isValid(j.nativeEvent,{handle:{nodeId:x,id:p,type:e},connectionMode:R,fromNodeId:P.nodeId,fromHandleId:P.id||null,fromType:P.type,isValidConnection:K,flowId:L,doc:X,lib:O,nodeLookup:W});V&&Z&&T(Z);const B=structuredClone(F);delete B.inProgress,B.toPosition=B.toHandle?B.toHandle.position:null,k?.(j,B),w.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":p,"data-nodeid":x,"data-handlepos":t,"data-id":`${v}-${x}-${p}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,l,{source:!y,target:y,connectable:o,connectablestart:r,connectableend:s,clickconnecting:I,connectingfrom:C,connectingto:E,valid:M,connectionindicator:o&&(!D||A)&&(D||H?s:r)}]),onMouseDown:z,onTouchStart:z,onClick:S?b:void 0,ref:g,...h,children:c})}const wt=_.memo(Oi(Mg));function kg({data:e,isConnectable:t,sourcePosition:n=Y.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(wt,{type:"source",position:n,isConnectable:t})]})}function jg({data:e,isConnectable:t,targetPosition:n=Y.Top,sourcePosition:o=Y.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(wt,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(wt,{type:"source",position:o,isConnectable:t})]})}function Ig(){return null}function Pg({data:e,isConnectable:t,targetPosition:n=Y.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(wt,{type:"target",position:n,isConnectable:t}),e?.label]})}const on={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},br={input:kg,default:jg,output:Pg,group:Ig};function Ag(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const Dg=e=>{const{width:t,height:n,x:o,y:r}=Et(e.nodeLookup,{filter:s=>!!s.selected});return{width:he(t)?t:null,height:he(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function Tg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=re(),{width:r,height:s,transformString:i,userSelectionActive:a}=J(Dg,ne),c=Bi(),l=_.useRef(null);_.useEffect(()=>{n||l.current?.focus({preventScroll:!0})},[n]);const f=!a&&r!==null&&s!==null;if(Hi({nodeRef:l,disabled:!f}),!f)return null;const d=e?g=>{const p=o.getState().nodes.filter(y=>y.selected);e(g,p)}:void 0,h=g=>{Object.prototype.hasOwnProperty.call(on,g.key)&&(g.preventDefault(),c({direction:on[g.key],factor:g.shiftKey?4:1}))};return u.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:u.jsx("div",{ref:l,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:r,height:s}})})}const _r=typeof window<"u"?window:void 0,Rg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Fi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:f,selectionMode:d,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:y,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:S,zoomOnPinch:m,panOnScroll:v,panOnScrollSpeed:C,panOnScrollMode:E,zoomOnDoubleClick:I,panOnDrag:A,defaultViewport:D,translateExtent:H,minZoom:M,maxZoom:T,preventScrolling:z,onSelectionContextMenu:b,noWheelClassName:j,noPanClassName:N,disableKeyboardA11y:k,onViewportChange:P,isControlledViewport:R}){const{nodesSelectionActive:$,userSelectionActive:O}=J(Rg,ne),L=yt(l,{target:_r}),W=yt(y,{target:_r}),F=W||A,X=W||v,K=f&&F!==!0,Z=L||O||K;return gg({deleteKeyCode:c,multiSelectionKeyCode:p}),u.jsx(yg,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:S,zoomOnPinch:m,panOnScroll:X,panOnScrollSpeed:C,panOnScrollMode:E,zoomOnDoubleClick:I,panOnDrag:!L&&F,defaultViewport:D,translateExtent:H,minZoom:M,maxZoom:T,zoomActivationKeyCode:w,preventScrolling:z,noWheelClassName:j,noPanClassName:N,onViewportChange:P,isControlledViewport:R,paneClickDistance:a,selectionOnDrag:K,children:u.jsxs(_g,{onSelectionStart:h,onSelectionEnd:g,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:F,isSelecting:!!Z,selectionMode:d,selectionKeyPressed:L,paneClickDistance:a,selectionOnDrag:K,children:[e,$&&u.jsx(Tg,{onSelectionContextMenu:b,noPanClassName:N,disableKeyboardA11y:k})]})})}Fi.displayName="FlowRenderer";const zg=_.memo(Fi),$g=e=>t=>e?io(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function Og(e){return J(_.useCallback($g(e),[e]),ne)}const Lg=e=>e.updateNodeInternals;function Hg(){const e=J(Lg),[t]=_.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const s=r.target.getAttribute("data-id");o.set(s,{id:s,nodeElement:r.target,force:!0})}),e(o)}));return _.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Bg({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=re(),s=_.useRef(null),i=_.useRef(null),a=_.useRef(e.sourcePosition),c=_.useRef(e.targetPosition),l=_.useRef(t),f=n&&!!e.internals.handleBounds;return _.useEffect(()=>{s.current&&!e.hidden&&(!f||i.current!==s.current)&&(i.current&&o?.unobserve(i.current),o?.observe(s.current),i.current=s.current)},[f,e.hidden]),_.useEffect(()=>()=>{i.current&&(o?.unobserve(i.current),i.current=null)},[]),_.useEffect(()=>{if(s.current){const d=l.current!==t,h=a.current!==e.sourcePosition,g=c.current!==e.targetPosition;(d||h||g)&&(l.current=t,a.current=e.sourcePosition,c.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function Vg({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:c,nodesConnectable:l,nodesFocusable:f,resizeObserver:d,noDragClassName:h,noPanClassName:g,disableKeyboardA11y:p,rfId:y,nodeTypes:w,nodeClickDistance:x,onError:S}){const{node:m,internals:v,isParent:C}=J(V=>{const B=V.nodeLookup.get(e),U=V.parentLookup.has(e);return{node:B,internals:B.internals,isParent:U}},ne);let E=m.type||"default",I=w?.[E]||br[E];I===void 0&&(S?.("003",xe.error003(E)),E="default",I=w?.default||br.default);const A=!!(m.draggable||a&&typeof m.draggable>"u"),D=!!(m.selectable||c&&typeof m.selectable>"u"),H=!!(m.connectable||l&&typeof m.connectable>"u"),M=!!(m.focusable||f&&typeof m.focusable>"u"),T=re(),z=fi(m),b=Bg({node:m,nodeType:E,hasDimensions:z,resizeObserver:d}),j=Hi({nodeRef:b,disabled:m.hidden||!A,noDragClassName:h,handleSelector:m.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:x}),N=Bi();if(m.hidden)return null;const k=Ne(m),P=Ag(m),R=D||A||t||n||o||r,$=n?V=>n(V,{...v.userNode}):void 0,O=o?V=>o(V,{...v.userNode}):void 0,L=r?V=>r(V,{...v.userNode}):void 0,W=s?V=>s(V,{...v.userNode}):void 0,F=i?V=>i(V,{...v.userNode}):void 0,X=V=>{const{selectNodesOnDrag:B,nodeDragThreshold:U}=T.getState();D&&(!B||!A||U>0)&&Yn({id:e,store:T,nodeRef:b}),t&&t(V,{...v.userNode})},K=V=>{if(!(gi(V.nativeEvent)||p)){if(oi.includes(V.key)&&D){const B=V.key==="Escape";Yn({id:e,store:T,unselect:B,nodeRef:b})}else if(A&&m.selected&&Object.prototype.hasOwnProperty.call(on,V.key)){V.preventDefault();const{ariaLabelConfig:B}=T.getState();T.setState({ariaLiveMessage:B["node.a11yDescription.ariaLiveMessage"]({direction:V.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),N({direction:on[V.key],factor:V.shiftKey?4:1})}}},Z=()=>{if(p||!b.current?.matches(":focus-visible"))return;const{transform:V,width:B,height:U,autoPanOnNodeFocus:Q,setCenter:G}=T.getState();if(!Q)return;io(new Map([[e,m]]),{x:0,y:0,width:B,height:U},V,!0).length>0||G(m.position.x+k.width/2,m.position.y+k.height/2,{zoom:V[2]})};return u.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${E}`,{[g]:A},m.className,{selected:m.selected,selectable:D,parent:C,draggable:A,dragging:j}]),ref:b,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:R?"all":"none",visibility:z?"visible":"hidden",...m.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:$,onMouseMove:O,onMouseLeave:L,onContextMenu:W,onClick:X,onDoubleClick:F,onKeyDown:M?K:void 0,tabIndex:M?0:void 0,onFocus:M?Z:void 0,role:m.ariaRole??(M?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${Ti}-${y}`,"aria-label":m.ariaLabel,...m.domAttributes,children:u.jsx(Sg,{value:e,children:u.jsx(I,{id:e,data:m.data,type:E,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:m.selected??!1,selectable:D,draggable:A,deletable:m.deletable??!0,isConnectable:H,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:j,dragHandle:m.dragHandle,zIndex:v.z,parentId:m.parentId,...k})})})}var Fg=_.memo(Vg);const Wg=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Wi(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:s}=J(Wg,ne),i=Og(e.onlyRenderVisibleElements),a=Hg();return u.jsx("div",{className:"react-flow__nodes",style:mn,children:i.map(c=>u.jsx(Fg,{id:c,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:s},c))})}Wi.displayName="NodeRenderer";const Yg=_.memo(Wi);function Xg(e){return J(_.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const s=n.nodeLookup.get(r.source),i=n.nodeLookup.get(r.target);s&&i&&Yh({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),ne)}const Zg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return u.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Ug=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return u.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Er={[Jt.Arrow]:Zg,[Jt.ArrowClosed]:Ug};function Gg(e){const t=re();return _.useMemo(()=>Object.prototype.hasOwnProperty.call(Er,e)?Er[e]:(t.getState().onError?.("009",xe.error009(e)),null),[e])}const qg=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:s="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const c=Gg(t);return c?u.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:u.jsx(c,{color:n,strokeWidth:i})}):null},Yi=({defaultColor:e,rfId:t})=>{const n=J(s=>s.edges),o=J(s=>s.defaultEdgeOptions),r=_.useMemo(()=>Jh(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?u.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:u.jsx("defs",{children:r.map(s=>u.jsx(qg,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};Yi.displayName="MarkerDefinitions";var Kg=_.memo(Yi);function Xi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...f}){const[d,h]=_.useState({x:1,y:0,width:0,height:0}),g=ie(["react-flow__edge-textwrapper",l]),p=_.useRef(null);return _.useEffect(()=>{if(p.current){const y=p.current.getBBox();h({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:g,visibility:d.width?"visible":"hidden",...f,children:[r&&u.jsx("rect",{width:d.width+2*i[0],x:-i[0],y:-i[1],height:d.height+2*i[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),u.jsx("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:p,style:o,children:n}),c]}):null}Xi.displayName="EdgeText";const Qg=_.memo(Xi);function Qe({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:c,interactionWidth:l=20,...f}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...f,d:e,fill:"none",className:ie(["react-flow__edge-path",f.className])}),l?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:l,className:"react-flow__edge-interaction"}):null,o&&he(t)&&he(n)?u.jsx(Qg,{x:t,y:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:c}):null]})}function Sr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Y.Left||e===Y.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Zi({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top}){const[i,a]=Sr({pos:n,x1:e,y1:t,x2:o,y2:r}),[c,l]=Sr({pos:s,x1:o,y1:r,x2:e,y2:t}),[f,d,h,g]=xi({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${e},${t} C${i},${a} ${c},${l} ${o},${r}`,f,d,h,g]}function Ui(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i,targetPosition:a,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})=>{const[S,m,v]=Zi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a}),C=e.isInternal?void 0:t;return u.jsx(Qe,{id:C,path:S,labelX:m,labelY:v,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})})}const Jg=Ui({isInternal:!1}),Gi=Ui({isInternal:!0});Jg.displayName="SimpleBezierEdge";Gi.displayName="SimpleBezierEdgeInternal";function qi(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:h,sourcePosition:g=Y.Bottom,targetPosition:p=Y.Top,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:S})=>{const[m,v,C]=nn({sourceX:n,sourceY:o,sourcePosition:g,targetX:r,targetY:s,targetPosition:p,borderRadius:x?.borderRadius,offset:x?.offset,stepPosition:x?.stepPosition}),E=e.isInternal?void 0:t;return u.jsx(Qe,{id:E,path:m,labelX:v,labelY:C,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:h,markerEnd:y,markerStart:w,interactionWidth:S})})}const Ki=qi({isInternal:!1}),Qi=qi({isInternal:!0});Ki.displayName="SmoothStepEdge";Qi.displayName="SmoothStepEdgeInternal";function Ji(e){return _.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return u.jsx(Ki,{...n,id:o,pathOptions:_.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const em=Ji({isInternal:!1}),ea=Ji({isInternal:!0});em.displayName="StepEdge";ea.displayName="StepEdgeInternal";function ta(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:h,markerEnd:g,markerStart:p,interactionWidth:y})=>{const[w,x,S]=vi({sourceX:n,sourceY:o,targetX:r,targetY:s}),m=e.isInternal?void 0:t;return u.jsx(Qe,{id:m,path:w,labelX:x,labelY:S,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:h,markerEnd:g,markerStart:p,interactionWidth:y})})}const tm=ta({isInternal:!1}),na=ta({isInternal:!0});tm.displayName="StraightEdge";na.displayName="StraightEdgeInternal";function oa(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i=Y.Bottom,targetPosition:a=Y.Top,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:S})=>{const[m,v,C]=yi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a,curvature:x?.curvature}),E=e.isInternal?void 0:t;return u.jsx(Qe,{id:E,path:m,labelX:v,labelY:C,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:S})})}const nm=oa({isInternal:!1}),ra=oa({isInternal:!0});nm.displayName="BezierEdge";ra.displayName="BezierEdgeInternal";const Nr={default:ra,straight:na,step:ea,smoothstep:Qi,simplebezier:Gi},Cr={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},om=(e,t,n)=>n===Y.Left?e-t:n===Y.Right?e+t:e,rm=(e,t,n)=>n===Y.Top?e-t:n===Y.Bottom?e+t:e,Mr="react-flow__edgeupdater";function kr({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:s,onMouseOut:i,type:a}){return u.jsx("circle",{onMouseDown:r,onMouseEnter:s,onMouseOut:i,className:ie([Mr,`${Mr}-${a}`]),cx:om(t,o,e),cy:rm(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function sm({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:s,targetY:i,sourcePosition:a,targetPosition:c,onReconnect:l,onReconnectStart:f,onReconnectEnd:d,setReconnecting:h,setUpdateHover:g}){const p=re(),y=(v,C)=>{if(v.button!==0)return;const{autoPanOnConnect:E,domNode:I,connectionMode:A,connectionRadius:D,lib:H,onConnectStart:M,cancelConnection:T,nodeLookup:z,rfId:b,panBy:j,updateConnection:N}=p.getState(),k=C.type==="target",P=(O,L)=>{h(!1),d?.(O,n,C.type,L)},R=O=>l?.(n,O),$=(O,L)=>{h(!0),f?.(v,n,C.type),M?.(O,L)};Fn.onPointerDown(v.nativeEvent,{autoPanOnConnect:E,connectionMode:A,connectionRadius:D,domNode:I,handleId:C.id,nodeId:C.nodeId,nodeLookup:z,isTarget:k,edgeUpdaterType:C.type,lib:H,flowId:b,cancelConnection:T,panBy:j,isValidConnection:(...O)=>p.getState().isValidConnection?.(...O)??!0,onConnect:R,onConnectStart:$,onConnectEnd:(...O)=>p.getState().onConnectEnd?.(...O),onReconnectEnd:P,updateConnection:N,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>y(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),x=v=>y(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),S=()=>g(!0),m=()=>g(!1);return u.jsxs(u.Fragment,{children:[(e===!0||e==="source")&&u.jsx(kr,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:w,onMouseEnter:S,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&u.jsx(kr,{position:c,centerX:s,centerY:i,radius:t,onMouseDown:x,onMouseEnter:S,onMouseOut:m,type:"target"})]})}function im({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,reconnectRadius:f,onReconnect:d,onReconnectStart:h,onReconnectEnd:g,rfId:p,edgeTypes:y,noPanClassName:w,onError:x,disableKeyboardA11y:S}){let m=J(G=>G.edgeLookup.get(e));const v=J(G=>G.defaultEdgeOptions);m=v?{...v,...m}:m;let C=m.type||"default",E=y?.[C]||Nr[C];E===void 0&&(x?.("011",xe.error011(C)),C="default",E=y?.default||Nr.default);const I=!!(m.focusable||t&&typeof m.focusable>"u"),A=typeof d<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),D=!!(m.selectable||o&&typeof m.selectable>"u"),H=_.useRef(null),[M,T]=_.useState(!1),[z,b]=_.useState(!1),j=re(),{zIndex:N,sourceX:k,sourceY:P,targetX:R,targetY:$,sourcePosition:O,targetPosition:L}=J(_.useCallback(G=>{const q=G.nodeLookup.get(m.source),ee=G.nodeLookup.get(m.target);if(!q||!ee)return{zIndex:m.zIndex,...Cr};const oe=Qh({id:e,sourceNode:q,targetNode:ee,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:G.connectionMode,onError:x});return{zIndex:Wh({selected:m.selected,zIndex:m.zIndex,sourceNode:q,targetNode:ee,elevateOnSelect:G.elevateEdgesOnSelect,zIndexMode:G.zIndexMode}),...oe||Cr}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex]),ne),W=_.useMemo(()=>m.markerStart?`url('#${Bn(m.markerStart,p)}')`:void 0,[m.markerStart,p]),F=_.useMemo(()=>m.markerEnd?`url('#${Bn(m.markerEnd,p)}')`:void 0,[m.markerEnd,p]);if(m.hidden||k===null||P===null||R===null||$===null)return null;const X=G=>{const{addSelectedEdges:q,unselectNodesAndEdges:ee,multiSelectionActive:oe}=j.getState();D&&(j.setState({nodesSelectionActive:!1}),m.selected&&oe?(ee({nodes:[],edges:[m]}),H.current?.blur()):q([e])),r&&r(G,m)},K=s?G=>{s(G,{...m})}:void 0,Z=i?G=>{i(G,{...m})}:void 0,V=a?G=>{a(G,{...m})}:void 0,B=c?G=>{c(G,{...m})}:void 0,U=l?G=>{l(G,{...m})}:void 0,Q=G=>{if(!S&&oi.includes(G.key)&&D){const{unselectNodesAndEdges:q,addSelectedEdges:ee}=j.getState();G.key==="Escape"?(H.current?.blur(),q({edges:[m]})):ee([e])}};return u.jsx("svg",{style:{zIndex:N},children:u.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${C}`,m.className,w,{selected:m.selected,animated:m.animated,inactive:!D&&!r,updating:M,selectable:D}]),onClick:X,onDoubleClick:K,onContextMenu:Z,onMouseEnter:V,onMouseMove:B,onMouseLeave:U,onKeyDown:I?Q:void 0,tabIndex:I?0:void 0,role:m.ariaRole??(I?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":m.ariaLabel===null?void 0:m.ariaLabel||`Edge from ${m.source} to ${m.target}`,"aria-describedby":I?`${Ri}-${p}`:void 0,ref:H,...m.domAttributes,children:[!z&&u.jsx(E,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:D,deletable:m.deletable??!0,label:m.label,labelStyle:m.labelStyle,labelShowBg:m.labelShowBg,labelBgStyle:m.labelBgStyle,labelBgPadding:m.labelBgPadding,labelBgBorderRadius:m.labelBgBorderRadius,sourceX:k,sourceY:P,targetX:R,targetY:$,sourcePosition:O,targetPosition:L,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:W,markerEnd:F,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),A&&u.jsx(sm,{edge:m,isReconnectable:A,reconnectRadius:f,onReconnect:d,onReconnectStart:h,onReconnectEnd:g,sourceX:k,sourceY:P,targetX:R,targetY:$,sourcePosition:O,targetPosition:L,setUpdateHover:T,setReconnecting:b})]})})}var am=_.memo(im);const cm=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function sa({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:f,reconnectRadius:d,onEdgeDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,disableKeyboardA11y:y}){const{edgesFocusable:w,edgesReconnectable:x,elementsSelectable:S,onError:m}=J(cm,ne),v=Xg(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(Kg,{defaultColor:e,rfId:n}),v.map(C=>u.jsx(am,{id:C,edgesFocusable:w,edgesReconnectable:x,elementsSelectable:S,noPanClassName:r,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:f,reconnectRadius:d,onDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,rfId:n,onError:m,edgeTypes:o,disableKeyboardA11y:y},C))]})}sa.displayName="EdgeRenderer";const lm=_.memo(sa),um=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function dm({children:e}){const t=J(um);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function fm(e){const t=gn(),n=_.useRef(!1);_.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const hm=e=>e.panZoom?.syncViewport;function pm(e){const t=J(hm),n=re();return _.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function gm(e){return e.connection.inProgress?{...e.connection,to:Nt(e.connection.to,e.transform)}:{...e.connection}}function mm(e){return gm}function xm(e){const t=mm();return J(t,ne)}const ym=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function wm({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:s,height:i,isValid:a,inProgress:c}=J(ym,ne);return!(s&&r&&c)?null:u.jsx("svg",{style:e,width:s,height:i,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:ie(["react-flow__connection",ii(a)]),children:u.jsx(ia,{style:t,type:n,CustomComponent:o,isValid:a})})})}const ia=({style:e,type:t=Ie.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:s,fromNode:i,fromHandle:a,fromPosition:c,to:l,toNode:f,toHandle:d,toPosition:h,pointer:g}=xm();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:s.x,fromY:s.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:h,connectionStatus:ii(o),toNode:f,toHandle:d,pointer:g});let p="";const y={sourceX:s.x,sourceY:s.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:h};switch(t){case Ie.Bezier:[p]=yi(y);break;case Ie.SimpleBezier:[p]=Zi(y);break;case Ie.Step:[p]=nn({...y,borderRadius:0});break;case Ie.SmoothStep:[p]=nn(y);break;default:[p]=vi(y)}return u.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};ia.displayName="ConnectionLine";const vm={};function jr(e=vm){_.useRef(e),re(),_.useEffect(()=>{},[e])}function bm(){re(),_.useRef(!1),_.useEffect(()=>{},[])}function aa({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,onSelectionContextMenu:d,onSelectionStart:h,onSelectionEnd:g,connectionLineType:p,connectionLineStyle:y,connectionLineComponent:w,connectionLineContainerStyle:x,selectionKeyCode:S,selectionOnDrag:m,selectionMode:v,multiSelectionKeyCode:C,panActivationKeyCode:E,zoomActivationKeyCode:I,deleteKeyCode:A,onlyRenderVisibleElements:D,elementsSelectable:H,defaultViewport:M,translateExtent:T,minZoom:z,maxZoom:b,preventScrolling:j,defaultMarkerColor:N,zoomOnScroll:k,zoomOnPinch:P,panOnScroll:R,panOnScrollSpeed:$,panOnScrollMode:O,zoomOnDoubleClick:L,panOnDrag:W,onPaneClick:F,onPaneMouseEnter:X,onPaneMouseMove:K,onPaneMouseLeave:Z,onPaneScroll:V,onPaneContextMenu:B,paneClickDistance:U,nodeClickDistance:Q,onEdgeContextMenu:G,onEdgeMouseEnter:q,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:te,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:we,noDragClassName:Pe,noWheelClassName:Je,noPanClassName:et,disableKeyboardA11y:tt,nodeExtent:xn,rfId:Ct,viewport:He,onViewportChange:nt}){return jr(e),jr(t),bm(),fm(n),pm(He),u.jsx(zg,{onPaneClick:F,onPaneMouseEnter:X,onPaneMouseMove:K,onPaneMouseLeave:Z,onPaneContextMenu:B,onPaneScroll:V,paneClickDistance:U,deleteKeyCode:A,selectionKeyCode:S,selectionOnDrag:m,selectionMode:v,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:C,panActivationKeyCode:E,zoomActivationKeyCode:I,elementsSelectable:H,zoomOnScroll:k,zoomOnPinch:P,zoomOnDoubleClick:L,panOnScroll:R,panOnScrollSpeed:$,panOnScrollMode:O,panOnDrag:W,defaultViewport:M,translateExtent:T,minZoom:z,maxZoom:b,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:Pe,noWheelClassName:Je,noPanClassName:et,disableKeyboardA11y:tt,onViewportChange:nt,isControlledViewport:!!He,children:u.jsxs(dm,{children:[u.jsx(lm,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:i,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:we,onlyRenderVisibleElements:D,onEdgeContextMenu:G,onEdgeMouseEnter:q,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:te,defaultMarkerColor:N,noPanClassName:et,disableKeyboardA11y:tt,rfId:Ct}),u.jsx(wm,{style:y,type:p,component:w,containerStyle:x}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(Yg,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,nodeClickDistance:Q,onlyRenderVisibleElements:D,noPanClassName:et,noDragClassName:Pe,disableKeyboardA11y:tt,nodeExtent:xn,rfId:Ct}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}aa.displayName="GraphView";const _m=_.memo(aa),Ir=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:c=.5,maxZoom:l=2,nodeOrigin:f,nodeExtent:d,zIndexMode:h="basic"}={})=>{const g=new Map,p=new Map,y=new Map,w=new Map,x=o??t??[],S=n??e??[],m=f??[0,0],v=d??pt;Ei(y,w,x);const{nodesInitialized:C}=Vn(S,g,p,{nodeOrigin:m,nodeExtent:v,zIndexMode:h});let E=[0,0,1];if(i&&r&&s){const I=Et(g,{filter:M=>!!((M.width||M.initialWidth)&&(M.height||M.initialHeight))}),{x:A,y:D,zoom:H}=ao(I,r,s,c,l,a?.padding??.1);E=[A,D,H]}return{rfId:"1",width:r??0,height:s??0,transform:E,nodes:S,nodesInitialized:C,nodeLookup:g,parentLookup:p,edges:x,edgeLookup:w,connectionLookup:y,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:pt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ze.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:m,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...si},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Oh,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:ri,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Em=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:d,zIndexMode:h})=>Hp((g,p)=>{async function y(){const{nodeLookup:w,panZoom:x,fitViewOptions:S,fitViewResolver:m,width:v,height:C,minZoom:E,maxZoom:I}=p();x&&(await zh({nodes:w,width:v,height:C,panZoom:x,minZoom:E,maxZoom:I},S),m?.resolve(!0),g({fitViewResolver:null}))}return{...Ir({nodes:e,edges:t,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:d,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:w=>{const{nodeLookup:x,parentLookup:S,nodeOrigin:m,elevateNodesOnSelect:v,fitViewQueued:C,zIndexMode:E,nodesSelectionActive:I}=p(),{nodesInitialized:A,hasSelectedNodes:D}=Vn(w,x,S,{nodeOrigin:m,nodeExtent:d,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:E}),H=I&&D;C&&A?(y(),g({nodes:w,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:H})):g({nodes:w,nodesInitialized:A,nodesSelectionActive:H})},setEdges:w=>{const{connectionLookup:x,edgeLookup:S}=p();Ei(x,S,w),g({edges:w})},setDefaultNodesAndEdges:(w,x)=>{if(w){const{setNodes:S}=p();S(w),g({hasDefaultNodes:!0})}if(x){const{setEdges:S}=p();S(x),g({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:x,nodeLookup:S,parentLookup:m,domNode:v,nodeOrigin:C,nodeExtent:E,debug:I,fitViewQueued:A,zIndexMode:D}=p(),{changes:H,updatedInternals:M}=ip(w,S,m,v,C,E,D);M&&(np(S,m,{nodeOrigin:C,nodeExtent:E,zIndexMode:D}),A?(y(),g({fitViewQueued:!1,fitViewOptions:void 0})):g({}),H?.length>0&&(I&&console.log("React Flow: trigger node changes",H),x?.(H)))},updateNodePositions:(w,x=!1)=>{const S=[];let m=[];const{nodeLookup:v,triggerNodeChanges:C,connection:E,updateConnection:I,onNodesChangeMiddlewareMap:A}=p();for(const[D,H]of w){const M=v.get(D),T=!!(M?.expandParent&&M?.parentId&&H?.position),z={id:D,type:"position",position:T?{x:Math.max(0,H.position.x),y:Math.max(0,H.position.y)}:H.position,dragging:x};if(M&&E.inProgress&&E.fromNode.id===M.id){const b=Le(M,E.fromHandle,Y.Left,!0);I({...E,from:b})}T&&M.parentId&&S.push({id:D,parentId:M.parentId,rect:{...H.internals.positionAbsolute,width:H.measured.width??0,height:H.measured.height??0}}),m.push(z)}if(S.length>0){const{parentLookup:D,nodeOrigin:H}=p(),M=po(S,v,D,H);m.push(...M)}for(const D of A.values())m=D(m);C(m)},triggerNodeChanges:w=>{const{onNodesChange:x,setNodes:S,nodes:m,hasDefaultNodes:v,debug:C}=p();if(w?.length){if(v){const E=ag(w,m);S(E)}C&&console.log("React Flow: trigger node changes",w),x?.(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:x,setEdges:S,edges:m,hasDefaultEdges:v,debug:C}=p();if(w?.length){if(v){const E=cg(w,m);S(E)}C&&console.log("React Flow: trigger edge changes",w),x?.(w)}},addSelectedNodes:w=>{const{multiSelectionActive:x,edgeLookup:S,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:C}=p();if(x){const E=w.map(I=>De(I,!0));v(E);return}v(Fe(m,new Set([...w]),!0)),C(Fe(S))},addSelectedEdges:w=>{const{multiSelectionActive:x,edgeLookup:S,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:C}=p();if(x){const E=w.map(I=>De(I,!0));C(E);return}C(Fe(S,new Set([...w]))),v(Fe(m,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:x}={})=>{const{edges:S,nodes:m,nodeLookup:v,triggerNodeChanges:C,triggerEdgeChanges:E}=p(),I=w||m,A=x||S,D=[];for(const M of I){if(!M.selected)continue;const T=v.get(M.id);T&&(T.selected=!1),D.push(De(M.id,!1))}const H=[];for(const M of A)M.selected&&H.push(De(M.id,!1));C(D),E(H)},setMinZoom:w=>{const{panZoom:x,maxZoom:S}=p();x?.setScaleExtent([w,S]),g({minZoom:w})},setMaxZoom:w=>{const{panZoom:x,minZoom:S}=p();x?.setScaleExtent([S,w]),g({maxZoom:w})},setTranslateExtent:w=>{p().panZoom?.setTranslateExtent(w),g({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:x,triggerNodeChanges:S,triggerEdgeChanges:m,elementsSelectable:v}=p();if(!v)return;const C=x.reduce((I,A)=>A.selected?[...I,De(A.id,!1)]:I,[]),E=w.reduce((I,A)=>A.selected?[...I,De(A.id,!1)]:I,[]);S(C),m(E)},setNodeExtent:w=>{const{nodes:x,nodeLookup:S,parentLookup:m,nodeOrigin:v,elevateNodesOnSelect:C,nodeExtent:E,zIndexMode:I}=p();w[0][0]===E[0][0]&&w[0][1]===E[0][1]&&w[1][0]===E[1][0]&&w[1][1]===E[1][1]||(Vn(x,S,m,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:C,checkEquality:!1,zIndexMode:I}),g({nodeExtent:w}))},panBy:w=>{const{transform:x,width:S,height:m,panZoom:v,translateExtent:C}=p();return ap({delta:w,panZoom:v,transform:x,translateExtent:C,width:S,height:m})},setCenter:async(w,x,S)=>{const{width:m,height:v,maxZoom:C,panZoom:E}=p();if(!E)return Promise.resolve(!1);const I=typeof S?.zoom<"u"?S.zoom:C;return await E.setViewport({x:m/2-w*I,y:v/2-x*I,zoom:I},{duration:S?.duration,ease:S?.ease,interpolate:S?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{g({connection:{...si}})},updateConnection:w=>{g({connection:w})},reset:()=>g({...Ir()})}},Object.is);function Sm({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:c,fitView:l,nodeOrigin:f,nodeExtent:d,zIndexMode:h,children:g}){const[p]=_.useState(()=>Em({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:l,minZoom:i,maxZoom:a,fitViewOptions:c,nodeOrigin:f,nodeExtent:d,zIndexMode:h}));return u.jsx(Bp,{value:p,children:u.jsx(dg,{children:g})})}function Nm({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:s,height:i,fitView:a,fitViewOptions:c,minZoom:l,maxZoom:f,nodeOrigin:d,nodeExtent:h,zIndexMode:g}){return _.useContext(hn)?u.jsx(u.Fragment,{children:e}):u.jsx(Sm,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:f,nodeOrigin:d,nodeExtent:h,zIndexMode:g,children:e})}const Cm={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Mm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:f,onMoveStart:d,onMoveEnd:h,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,onNodeMouseEnter:S,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:E,onNodeDragStart:I,onNodeDrag:A,onNodeDragStop:D,onNodesDelete:H,onEdgesDelete:M,onDelete:T,onSelectionChange:z,onSelectionDragStart:b,onSelectionDrag:j,onSelectionDragStop:N,onSelectionContextMenu:k,onSelectionStart:P,onSelectionEnd:R,onBeforeDelete:$,connectionMode:O,connectionLineType:L=Ie.Bezier,connectionLineStyle:W,connectionLineComponent:F,connectionLineContainerStyle:X,deleteKeyCode:K="Backspace",selectionKeyCode:Z="Shift",selectionOnDrag:V=!1,selectionMode:B=gt.Full,panActivationKeyCode:U="Space",multiSelectionKeyCode:Q=xt()?"Meta":"Control",zoomActivationKeyCode:G=xt()?"Meta":"Control",snapToGrid:q,snapGrid:ee,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:te,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:we,nodesFocusable:Pe,nodeOrigin:Je=zi,edgesFocusable:et,edgesReconnectable:tt,elementsSelectable:xn=!0,defaultViewport:Ct=eg,minZoom:He=.5,maxZoom:nt=2,translateExtent:yo=pt,preventScrolling:wa=!0,nodeExtent:yn,defaultMarkerColor:va="#b1b1b7",zoomOnScroll:ba=!0,zoomOnPinch:_a=!0,panOnScroll:Ea=!1,panOnScrollSpeed:Sa=.5,panOnScrollMode:Na=ze.Free,zoomOnDoubleClick:Ca=!0,panOnDrag:Ma=!0,onPaneClick:ka,onPaneMouseEnter:ja,onPaneMouseMove:Ia,onPaneMouseLeave:Pa,onPaneScroll:Aa,onPaneContextMenu:Da,paneClickDistance:Ta=1,nodeClickDistance:Ra=0,children:za,onReconnect:$a,onReconnectStart:Oa,onReconnectEnd:La,onEdgeContextMenu:Ha,onEdgeDoubleClick:Ba,onEdgeMouseEnter:Va,onEdgeMouseMove:Fa,onEdgeMouseLeave:Wa,reconnectRadius:Ya=10,onNodesChange:Xa,onEdgesChange:Za,noDragClassName:Ua="nodrag",noWheelClassName:Ga="nowheel",noPanClassName:wo="nopan",fitView:vo,fitViewOptions:bo,connectOnClick:qa,attributionPosition:Ka,proOptions:Qa,defaultEdgeOptions:Ja,elevateNodesOnSelect:ec=!0,elevateEdgesOnSelect:tc=!1,disableKeyboardA11y:_o=!1,autoPanOnConnect:nc,autoPanOnNodeDrag:oc,autoPanSpeed:rc,connectionRadius:sc,isValidConnection:ic,onError:ac,style:cc,id:Eo,nodeDragThreshold:lc,connectionDragThreshold:uc,viewport:dc,onViewportChange:fc,width:hc,height:pc,colorMode:gc="light",debug:mc,onScroll:So,ariaLabelConfig:xc,zIndexMode:No="basic",...yc},wc){const wn=Eo||"1",vc=rg(gc),bc=_.useCallback(Co=>{Co.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),So?.(Co)},[So]);return u.jsx("div",{"data-testid":"rf__wrapper",...yc,onScroll:bc,style:{...cc,...Cm},ref:wc,className:ie(["react-flow",r,vc]),id:Eo,role:"application",children:u.jsxs(Nm,{nodes:e,edges:t,width:hc,height:pc,fitView:vo,fitViewOptions:bo,minZoom:He,maxZoom:nt,nodeOrigin:Je,nodeExtent:yn,zIndexMode:No,children:[u.jsx(og,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:we,nodesFocusable:Pe,edgesFocusable:et,edgesReconnectable:tt,elementsSelectable:xn,elevateNodesOnSelect:ec,elevateEdgesOnSelect:tc,minZoom:He,maxZoom:nt,nodeExtent:yn,onNodesChange:Xa,onEdgesChange:Za,snapToGrid:q,snapGrid:ee,connectionMode:O,translateExtent:yo,connectOnClick:qa,defaultEdgeOptions:Ja,fitView:vo,fitViewOptions:bo,onNodesDelete:H,onEdgesDelete:M,onDelete:T,onNodeDragStart:I,onNodeDrag:A,onNodeDragStop:D,onSelectionDrag:j,onSelectionDragStart:b,onSelectionDragStop:N,onMove:f,onMoveStart:d,onMoveEnd:h,noPanClassName:wo,nodeOrigin:Je,rfId:wn,autoPanOnConnect:nc,autoPanOnNodeDrag:oc,autoPanSpeed:rc,onError:ac,connectionRadius:sc,isValidConnection:ic,selectNodesOnDrag:te,nodeDragThreshold:lc,connectionDragThreshold:uc,onBeforeDelete:$,debug:mc,ariaLabelConfig:xc,zIndexMode:No}),u.jsx(_m,{onInit:l,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:S,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:E,nodeTypes:s,edgeTypes:i,connectionLineType:L,connectionLineStyle:W,connectionLineComponent:F,connectionLineContainerStyle:X,selectionKeyCode:Z,selectionOnDrag:V,selectionMode:B,deleteKeyCode:K,multiSelectionKeyCode:Q,panActivationKeyCode:U,zoomActivationKeyCode:G,onlyRenderVisibleElements:oe,defaultViewport:Ct,translateExtent:yo,minZoom:He,maxZoom:nt,preventScrolling:wa,zoomOnScroll:ba,zoomOnPinch:_a,zoomOnDoubleClick:Ca,panOnScroll:Ea,panOnScrollSpeed:Sa,panOnScrollMode:Na,panOnDrag:Ma,onPaneClick:ka,onPaneMouseEnter:ja,onPaneMouseMove:Ia,onPaneMouseLeave:Pa,onPaneScroll:Aa,onPaneContextMenu:Da,paneClickDistance:Ta,nodeClickDistance:Ra,onSelectionContextMenu:k,onSelectionStart:P,onSelectionEnd:R,onReconnect:$a,onReconnectStart:Oa,onReconnectEnd:La,onEdgeContextMenu:Ha,onEdgeDoubleClick:Ba,onEdgeMouseEnter:Va,onEdgeMouseMove:Fa,onEdgeMouseLeave:Wa,reconnectRadius:Ya,defaultMarkerColor:va,noDragClassName:Ua,noWheelClassName:Ga,noPanClassName:wo,rfId:wn,disableKeyboardA11y:_o,nodeExtent:yn,viewport:dc,onViewportChange:fc}),u.jsx(Jp,{onSelectionChange:z}),za,u.jsx(Up,{proOptions:Qa,position:Ka}),u.jsx(Zp,{rfId:wn,disableKeyboardA11y:_o})]})})}var km=Oi(Mm);const jm=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function Im({children:e}){const t=J(jm);return t?Yc.createPortal(e,t):null}const Pm=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function Am(){return J(Pm,ne)}function Dm({dimensions:e,lineWidth:t,variant:n,className:o}){return u.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function Tm({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var Ee;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ee||(Ee={}));const Rm={[Ee.Dots]:1,[Ee.Lines]:1,[Ee.Cross]:6},zm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ca({id:e,variant:t=Ee.Dots,gap:n=20,size:o,lineWidth:r=1,offset:s=0,color:i,bgColor:a,style:c,className:l,patternClassName:f}){const d=_.useRef(null),{transform:h,patternId:g}=J(zm,ne),p=o||Rm[t],y=t===Ee.Dots,w=t===Ee.Cross,x=Array.isArray(n)?n:[n,n],S=[x[0]*h[2]||1,x[1]*h[2]||1],m=p*h[2],v=Array.isArray(s)?s:[s,s],C=w?[m,m]:S,E=[v[0]*h[2]||1+C[0]/2,v[1]*h[2]||1+C[1]/2],I=`${g}${e||""}`;return u.jsxs("svg",{className:ie(["react-flow__background",l]),style:{...c,...mn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:d,"data-testid":"rf__background",children:[u.jsx("pattern",{id:I,x:h[0]%S[0],y:h[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${E[0]},-${E[1]})`,children:y?u.jsx(Tm,{radius:m/2,className:f}):u.jsx(Dm,{dimensions:C,lineWidth:r,variant:t,className:f})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${I})`})]})}ca.displayName="Background";const $m=_.memo(ca);function Om(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:u.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Lm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:u.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Hm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:u.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 Bm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.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 Vm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.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 Tt({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const Fm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function la({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:c,className:l,children:f,position:d="bottom-left",orientation:h="vertical","aria-label":g}){const p=re(),{isInteractive:y,minZoomReached:w,maxZoomReached:x,ariaLabelConfig:S}=J(Fm,ne),{zoomIn:m,zoomOut:v,fitView:C}=gn(),E=()=>{m(),s?.()},I=()=>{v(),i?.()},A=()=>{C(r),a?.()},D=()=>{p.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),c?.(!y)},H=h==="horizontal"?"horizontal":"vertical";return u.jsxs(pn,{className:ie(["react-flow__controls",H,l]),position:d,style:e,"data-testid":"rf__controls","aria-label":g??S["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(Tt,{onClick:E,className:"react-flow__controls-zoomin",title:S["controls.zoomIn.ariaLabel"],"aria-label":S["controls.zoomIn.ariaLabel"],disabled:x,children:u.jsx(Om,{})}),u.jsx(Tt,{onClick:I,className:"react-flow__controls-zoomout",title:S["controls.zoomOut.ariaLabel"],"aria-label":S["controls.zoomOut.ariaLabel"],disabled:w,children:u.jsx(Lm,{})})]}),n&&u.jsx(Tt,{className:"react-flow__controls-fitview",onClick:A,title:S["controls.fitView.ariaLabel"],"aria-label":S["controls.fitView.ariaLabel"],children:u.jsx(Hm,{})}),o&&u.jsx(Tt,{className:"react-flow__controls-interactive",onClick:D,title:S["controls.interactive.ariaLabel"],"aria-label":S["controls.interactive.ariaLabel"],children:y?u.jsx(Vm,{}):u.jsx(Bm,{})}),f]})}la.displayName="Controls";const Wm=_.memo(la);function Ym({id:e,x:t,y:n,width:o,height:r,style:s,color:i,strokeColor:a,strokeWidth:c,className:l,borderRadius:f,shapeRendering:d,selected:h,onClick:g}){const{background:p,backgroundColor:y}=s||{},w=i||p||y;return u.jsx("rect",{className:ie(["react-flow__minimap-node",{selected:h},l]),x:t,y:n,rx:f,ry:f,width:o,height:r,style:{fill:w,stroke:a,strokeWidth:c},shapeRendering:d,onClick:g?x=>g(x,e):void 0})}const Xm=_.memo(Ym),Zm=e=>e.nodes.map(t=>t.id),jn=e=>e instanceof Function?e:()=>e;function Um({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:s=Xm,onClick:i}){const a=J(Zm,ne),c=jn(t),l=jn(e),f=jn(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:a.map(h=>u.jsx(qm,{id:h,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:f,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:s,onClick:i,shapeRendering:d},h))})}function Gm({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:c}){const{node:l,x:f,y:d,width:h,height:g}=J(p=>{const y=p.nodeLookup.get(e);if(!y)return{node:void 0,x:0,y:0,width:0,height:0};const w=y.internals.userNode,{x,y:S}=y.internals.positionAbsolute,{width:m,height:v}=Ne(w);return{node:w,x,y:S,width:m,height:v}},ne);return!l||l.hidden||!fi(l)?null:u.jsx(a,{x:f,y:d,width:h,height:g,style:l.style,selected:!!l.selected,className:o(l),color:t(l),borderRadius:r,strokeColor:n(l),strokeWidth:s,shapeRendering:i,onClick:c,id:l.id})}const qm=_.memo(Gm);var Km=_.memo(Um);const Qm=200,Jm=150,ex=e=>!e.hidden,tx=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?di(Et(e.nodeLookup,{filter:ex}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},nx="react-flow__minimap-desc";function ua({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:c,maskColor:l,maskStrokeColor:f,maskStrokeWidth:d,position:h="bottom-right",onClick:g,onNodeClick:p,pannable:y=!1,zoomable:w=!1,ariaLabel:x,inversePan:S,zoomStep:m=1,offsetScale:v=5}){const C=re(),E=_.useRef(null),{boundingRect:I,viewBB:A,rfId:D,panZoom:H,translateExtent:M,flowWidth:T,flowHeight:z,ariaLabelConfig:b}=J(tx,ne),j=e?.width??Qm,N=e?.height??Jm,k=I.width/j,P=I.height/N,R=Math.max(k,P),$=R*j,O=R*N,L=v*R,W=I.x-($-I.width)/2-L,F=I.y-(O-I.height)/2-L,X=$+L*2,K=O+L*2,Z=`${nx}-${D}`,V=_.useRef(0),B=_.useRef();V.current=R,_.useEffect(()=>{if(E.current&&H)return B.current=mp({domNode:E.current,panZoom:H,getTransform:()=>C.getState().transform,getViewScale:()=>V.current}),()=>{B.current?.destroy()}},[H]),_.useEffect(()=>{B.current?.update({translateExtent:M,width:T,height:z,inversePan:S,pannable:y,zoomStep:m,zoomable:w})},[y,w,S,m,M,T,z]);const U=g?q=>{const[ee,oe]=B.current?.pointer(q)||[0,0];g(q,{x:ee,y:oe})}:void 0,Q=p?_.useCallback((q,ee)=>{const oe=C.getState().nodeLookup.get(ee).internals.userNode;p(q,oe)},[]):void 0,G=x??b["minimap.ariaLabel"];return u.jsx(pn,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-width-props":typeof d=="number"?d*R:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:j,height:N,viewBox:`${W} ${F} ${X} ${K}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Z,ref:E,onClick:U,children:[G&&u.jsx("title",{id:Z,children:G}),u.jsx(Km,{onClick:Q,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:r,nodeStrokeWidth:i,nodeComponent:a}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${W-L},${F-L}h${X+L*2}v${K+L*2}h${-X-L*2}z
8
- M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ua.displayName="MiniMap";_.memo(ua);const ox=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,rx={[Ke.Line]:"right",[Ke.Handle]:"bottom-right"};function sx({nodeId:e,position:t,variant:n=Ke.Handle,className:o,style:r=void 0,children:s,color:i,minWidth:a=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:h,autoScale:g=!0,shouldResize:p,onResizeStart:y,onResize:w,onResizeEnd:x}){const S=Vi(),m=typeof e=="string"?e:S,v=re(),C=_.useRef(null),E=n===Ke.Handle,I=J(_.useCallback(ox(E&&g),[E,g]),ne),A=_.useRef(null),D=t??rx[n];_.useEffect(()=>{if(!(!C.current||!m))return A.current||(A.current=Ip({domNode:C.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:M,transform:T,snapGrid:z,snapToGrid:b,nodeOrigin:j,domNode:N}=v.getState();return{nodeLookup:M,transform:T,snapGrid:z,snapToGrid:b,nodeOrigin:j,paneDomNode:N}},onChange:(M,T)=>{const{triggerNodeChanges:z,nodeLookup:b,parentLookup:j,nodeOrigin:N}=v.getState(),k=[],P={x:M.x,y:M.y},R=b.get(m);if(R&&R.expandParent&&R.parentId){const $=R.origin??N,O=M.width??R.measured.width??0,L=M.height??R.measured.height??0,W={id:R.id,parentId:R.parentId,rect:{width:O,height:L,...hi({x:M.x??R.position.x,y:M.y??R.position.y},{width:O,height:L},R.parentId,b,$)}},F=po([W],b,j,N);k.push(...F),P.x=M.x?Math.max($[0]*O,M.x):void 0,P.y=M.y?Math.max($[1]*L,M.y):void 0}if(P.x!==void 0&&P.y!==void 0){const $={id:m,type:"position",position:{...P}};k.push($)}if(M.width!==void 0&&M.height!==void 0){const O={id:m,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:M.width,height:M.height}};k.push(O)}for(const $ of T){const O={...$,type:"position"};k.push(O)}z(k)},onEnd:({width:M,height:T})=>{const z={id:m,type:"dimensions",resizing:!1,dimensions:{width:M,height:T}};v.getState().triggerNodeChanges([z])}})),A.current.update({controlPosition:D,boundaries:{minWidth:a,minHeight:c,maxWidth:l,maxHeight:f},keepAspectRatio:d,resizeDirection:h,onResizeStart:y,onResize:w,onResizeEnd:x,shouldResize:p}),()=>{A.current?.destroy()}},[D,a,c,l,f,d,y,w,x,p]);const H=D.split("-");return u.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...H,n,o]),ref:C,style:{...r,scale:I,...i&&{[E?"backgroundColor":"borderColor"]:i}},children:s})}_.memo(sx);const ix="border-dashed border-border-default bg-surface-page text-text-secondary shadow-sm hover:border-border-strong",Pr="var(--xy-edge-stroke)",ax=({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:s,targetPosition:i,data:a})=>{const[c,l]=_.useState(!1),[f,d]=_.useState(!1),[h,g]=_.useState(!1),p=a,[y,w,x]=nn({sourceX:t,sourceY:n,sourcePosition:s,targetX:o,targetY:r,targetPosition:i});if(!p)return u.jsx(Qe,{id:e,path:y,style:{stroke:Pr}});const S=E=>{l(!1),p.onPick(E,{sourceId:p.sourceId,targetId:p.targetId})},m=c||f||h,v=u.jsx("button",{"aria-label":"Insert step here",className:se("flex size-8 items-center justify-center rounded-full border transition-opacity focus-visible:opacity-100 focus-visible:outline-none",ix,m?"opacity-100":"opacity-0",p.disabled&&"cursor-not-allowed!"),"data-testid":`add-step-button-${p.sourceId}-${p.targetId}`,disabled:p.disabled,type:"button",children:u.jsx(dt,{className:"size-5",strokeWidth:1.5})});let C;return p.disabled?C=p.disabledReason?u.jsx(Hr,{delayDuration:150,children:u.jsxs(Br,{children:[u.jsx(Vr,{asChild:!0,children:u.jsx("span",{tabIndex:0,children:v})}),u.jsx(Fr,{children:p.disabledReason})]})}):v:C=u.jsxs(Wr,{open:c,onOpenChange:l,children:[u.jsx(Yr,{asChild:!0,children:v}),u.jsx(Xr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(As,{onPick:S})})]}),u.jsxs("g",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[u.jsx(Qe,{id:e,interactionWidth:30,path:y,style:{stroke:Pr}}),u.jsx(Im,{children:u.jsx("div",{className:"pointer-events-auto absolute",style:{transform:`translate(-50%, -50%) translate(${w}px, ${x}px)`},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:u.jsx("div",{className:"flex h-10 w-16 items-center justify-center",children:C})})})]})},cx=()=>{const{data:e}=Zn(),{data:t}=Xc(),n=e?.settings||[],o=t?.site?.url||"",[r="all",s=!1,i=!1]=Un(n,["members_signup_access","donations_enabled","recommendations_enabled"]);return hl({siteUrl:o,membersSignupAccess:typeof r=="string"?r:"all",donationsEnabled:!!s,recommendationsEnabled:!!i})},lx={useFileUpload:xl,fileTypes:ml},ux=me.lazy(()=>Uc(()=>import("./koenig-lexical-CxVcbgsH.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.EmailEditor})));class dx extends me.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?u.jsx("div",{className:"p-6 text-sm text-destructive",children:"Something went wrong loading the editor."}):this.props.children}}const fx=se("text-[1.6rem] leading-[1.6] tracking-[-0.01em] pb-10","dark:text-white dark:selection:bg-[rgba(88,101,116,0.99)]","[&_.koenig-lexical-editor-input-placeholder]:font-sans! [&_.koenig-lexical-editor-input-placeholder]:text-[1.6rem] [&_.koenig-lexical-editor-input-placeholder]:tracking-tight","[&_:is(h2,h3)]:dark:text-white","[&_.koenig-lexical_input]:text-[1.4rem]","[&_[data-kg-plus-button]]:top-[-4px]","[&_[data-kg-card-selected]]:isolate","[&_:is(p,blockquote,aside,ul,ol)]:tracking-tight","[&_figcaption_:is(p,blockquote,aside,ul,ol)]:text-[1.4rem] [&_figcaption_:is(p,blockquote,aside,ul,ol)]:tracking-[.025em]","[&_figcaption_p]:mb-0","[&_:is(h1)]:text-[36px] [&_:is(h2)]:text-[32px] [&_:is(h3)]:text-[26px] [&_:is(h4)]:text-[21px] [&_:is(h5)]:text-[19px] [&_:is(h6)]:text-[19px] [&_:is(h1,h2,h3,h4,h5,h6)]:mb-[0.5em]","[&_:is(hr)]:pt-0","[&_p]:mb-4 [&_strong]:font-semibold","[&_[data-kg-settings-panel]_p]:!mb-0","[&_.not-kg-prose>div]:font-sans! [&_.not-kg-prose>div]:tracking-tight! [&_.not-kg-prose>div]:text-[1.6rem]! [&_.not-kg-prose>div]:leading-[1.6]!","[&_.kg-inherit-styles_p]:mb-0!","[&_.kg-inherit-styles]:pt-[3px]!","[&_.koenig-lexical-cta-label_p]:!text-[12.5px]"),hx=({value:e,placeholder:t,className:n,onChange:o})=>{const r=_.useRef(null),s=_.useRef(e),{unsplashConfig:i}=Zc(),a=pl(),{data:c}=Zn(),{data:l}=Zr(),f=c?.settings||[],d=l?.config,{fetchAutocompleteLinks:h,searchLinks:g}=cx(),p=gl(),y=d?.tenor?.googleApiKey?d.tenor:null,[w]=Un(f,["transistor"]),x=_.useMemo(()=>({unsplash:i,pinturaConfig:a,tenor:y,fetchEmbed:p,fetchAutocompleteLinks:h,searchLinks:g,feature:{transistor:w},visibilitySettings:"none"}),[i,a,y,p,h,g,w]),S=_.useCallback(E=>{r.current=E},[]),m=_.useCallback(E=>{o&&E&&typeof E=="object"&&o(JSON.stringify(E))},[o]),v=_.useCallback(E=>{(E.metaKey||E.ctrlKey)&&E.key==="k"&&E.stopPropagation()},[]),C=E=>{r.current&&yl(r.current,E)};return u.jsx("div",{className:"h-full",onKeyDown:v,onMouseDown:C,children:u.jsx(dx,{children:u.jsx(_.Suspense,{fallback:u.jsx(Te,{size:"lg"}),children:u.jsx("div",{className:se("koenig-react-editor w-full",fx,n),children:u.jsx(ux,{cardConfig:x,className:"koenig-lexical koenig-lexical-editor-input",darkMode:!1,fileUploader:lx,initialEditorState:s.current,placeholderText:t,registerAPI:S,onChange:m})})})})})},px=me.memo(hx),gx=({previewState:e})=>{const[t,n]=_.useState(null),[o,r]=_.useState(!1),s=_.useRef(!1),i=_.useRef(null),a=_.useRef(null),c=_.useRef(null),l=_.useRef(null);function f(){a.current?.disconnect(),a.current=null,c.current!==null&&(window.cancelAnimationFrame(c.current),c.current=null),l.current!==null&&(window.cancelAnimationFrame(l.current),l.current=null)}const d=e.status==="success"?e.html:"";_.useEffect(()=>(f(),s.current=!1,r(!1),n(null),()=>{f()}),[d,e.status]);function h(){const w=i.current,x=w?.contentDocument;if(!w||!x)return;x.documentElement.style.overflowY="hidden",x.body.style.overflowY="hidden";const S=Math.max(x.documentElement?.scrollHeight||0,x.body?.scrollHeight||0,x.documentElement?.offsetHeight||0,x.body?.offsetHeight||0);S>0&&(n(m=>m===S?m:S),!s.current&&l.current===null&&(l.current=window.requestAnimationFrame(()=>{l.current=window.requestAnimationFrame(()=>{l.current=null,s.current=!0,r(!0)})})))}function g(){c.current!==null&&window.cancelAnimationFrame(c.current),c.current=window.requestAnimationFrame(()=>{c.current=null,h()})}function p(){const w=i.current,x=w?.contentDocument;if(!(!w||!x)&&(f(),g(),typeof ResizeObserver<"u")){const S=new ResizeObserver(()=>{g()});S.observe(x.documentElement),S.observe(x.body),a.current=S}}const y=e.status==="loading"||e.status==="success"&&!o;return u.jsxs("div",{className:"relative w-full","data-testid":"email-preview",children:[y&&u.jsx("div",{className:"flex min-h-full items-start justify-center pt-24","data-testid":"email-preview-loading",style:t?{height:`${t}px`}:void 0,children:u.jsx(Te,{size:"md"})}),e.status==="success"&&u.jsx("div",{"aria-hidden":!o,className:se("w-full",!o&&"pointer-events-none absolute left-0 top-0 opacity-0"),children:u.jsx("iframe",{ref:i,className:"w-full rounded bg-white","data-testid":"email-preview-iframe",sandbox:"allow-same-origin allow-popups allow-popups-to-escape-sandbox",srcDoc:e.html,style:{height:t?`${t}px`:"600px"},title:"Email preview",onLoad:p})}),(e.status==="error"||e.status==="invalid")&&u.jsx("div",{className:"flex h-full items-center justify-center px-4","data-testid":"email-preview-error",children:u.jsx("span",{className:"text-sm text-destructive",children:e.message})})]})},mx=({automatedEmailId:e,subject:t,lexical:n,validateForm:o,onClose:r})=>{const{data:s}=Gc(),{mutateAsync:i}=wl(),[a,c]=_.useState(s?.email||""),[l,f]=_.useState(""),[d,h]=_.useState("idle"),g=_.useRef(null);_.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]),_.useEffect(()=>{s?.email&&c(s.email)},[s?.email]),_.useEffect(()=>{const y=w=>{w.key==="Escape"&&(w.stopPropagation(),r())};return document.addEventListener("keydown",y,!0),()=>document.removeEventListener("keydown",y,!0)},[r]);const p=async()=>{if(f(""),!vl.isEmail(a)){f("Please enter a valid email address");return}if(!o()){f("Please complete the required fields");return}h("sending");try{await i({id:e,email:a,subject:t,lexical:n}),h("sent"),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>h("idle"),2e3)}catch(y){h("idle");let w;y instanceof Ur&&y.data&&y.data.errors[0]?w=y.data.errors[0].context||y.data.errors[0].message:y instanceof Error&&(w=y.message),f(w||"Failed to send test email")}};return u.jsxs("div",{className:"absolute top-full right-0 z-10 mt-2 w-[260px] rounded border border-grey-300 bg-white p-4 shadow-lg dark:border-grey-950 dark:bg-grey-950","data-testid":"test-email-dropdown",children:[u.jsxs("div",{className:"mb-3",children:[u.jsx("label",{className:"mb-2 block text-sm font-semibold",htmlFor:"test-email-input",children:"Send test email"}),u.jsx(Gn,{id:"test-email-input",placeholder:"you@yoursite.com",value:a,onChange:y=>{c(y.target.value)}})]}),u.jsx(ae,{className:"w-full",disabled:d==="sending",onClick:p,children:d==="sent"?"Sent":d==="sending"?"Sending...":"Send"}),l&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:l})]})},mo=(e,t,n)=>qn(t)&&!Gr(t)&&n?n:e.sender_email||n||"",xx=(e,t,n,o)=>e.sender_reply_to==="newsletter"?qn(t)?"":mo(e,t,o):e.sender_reply_to==="support"?n||o||"":e.sender_reply_to,yx=(e,t,n,o)=>{const r=xx(e,t,n,o);return r||(e.sender_reply_to==="newsletter"?mo(e,t,o)||n||o||"":n||o||"")},Xn={free:"member-welcome-email-free",paid:"member-welcome-email-paid"},je=e=>e?.trim()||"",In=(...e)=>e.map(je).find(Boolean)||"",wx=({automatedEmails:e=[],config:t,defaultEmailAddress:n,newsletter:o,siteTitle:r,supportEmailAddress:s})=>{const i=e.find(I=>I.slug===Xn.free),a=e.find(I=>I.slug===Xn.paid),c=In(i?.sender_name,a?.sender_name),l=In(i?.sender_email,a?.sender_email),f=In(i?.sender_reply_to,a?.sender_reply_to),d=je(o?.sender_name),h=o?je(mo(o,t,n||void 0)):"",g=o?je(yx(o,t,s||void 0,n||void 0)):"",p=d||je(r)||"Your site name",y=h||je(n),w=g||je(s)||je(n),x=c||p,S=l||y||"",m=f||w||"",v=m!==""&&m!==S,C=qn(t),E=Gr(t);return{hasDistinctReplyTo:v,replyToEmailInput:f,replyToEmailPlaceholder:w,resolvedReplyToEmail:m,resolvedSenderEmail:S,resolvedSenderName:x,senderEmailDomain:E?qc(t):null,senderEmailInput:l,senderEmailPlaceholder:y,senderNameInput:c,senderNamePlaceholder:p,showSenderEmailInput:!C||E}},vx=e=>{if(!e)return!0;try{const n=JSON.parse(e)?.root?.children;return!n||n.length===0||n.length===1&&n[0].type==="paragraph"&&(!n[0].children||n[0].children.length===0)}catch{return!0}},da=e=>{const t={};return e.subject?.trim()||(t.subject="A subject is required"),vx(e.lexical)&&(t.lexical="Email content is required"),t},bx=e=>{if(typeof DOMParser>"u")return e;const n=new DOMParser().parseFromString(e,"text/html");return n.querySelectorAll("a[href]").forEach(o=>{o.target="_blank",o.rel="noopener noreferrer"}),`<!doctype html>${n.documentElement.outerHTML}`},_x=e=>{const t="Failed to render preview";return e instanceof Ur&&e.data?.errors?.[0]?e.data.errors[0].context||e.data.errors[0].message||t:e instanceof Error&&e.message?e.message:t},Ex=({automatedEmailId:e,previewWelcomeEmail:t,setErrors:n})=>{const[o,r]=_.useState({status:"idle"}),s=_.useRef(0),i=()=>{s.current+=1,r({status:"idle"})},a=async l=>{const f=s.current+1;s.current=f;const d=da(l);if(n(d),!!(d.subject||d.lexical)){r({status:"invalid",message:d.subject||d.lexical});return}r({status:"loading"});try{const g=await t({id:e,subject:l.subject,lexical:l.lexical});if(s.current!==f)return;const p=g.automated_emails?.[0];if(!p?.html||!p?.plaintext||!p?.subject)throw new Error("Preview response was incomplete");r({status:"success",preview:{...p,html:bx(p.html)}})}catch(g){if(s.current!==f)return;r({status:"error",message:_x(g)})}};let c={status:"loading"};return o.status==="success"?c={status:"success",html:o.preview.html}:(o.status==="error"||o.status==="invalid")&&(c={status:o.status,message:o.message}),{previewFrameState:c,previewState:o,enterPreview:a,exitPreview:i}},Sx=(e=[])=>{const{data:t}=Zn(),{data:n}=Zr(),o=t?.settings||[],r=_.useMemo(()=>n?.config||{},[n]),[s,i,a]=Un(o,["title","default_email_address","support_email_address"]),{data:c}=Cl({searchParams:{filter:"status:active",limit:"1"}}),l=c?.newsletters?.[0];return _.useMemo(()=>wx({automatedEmails:e,config:r,defaultEmailAddress:i,newsletter:l,siteTitle:s,supportEmailAddress:a}),[e,r,i,l,s,a])},fa=me.forwardRef(({title:e,centeredHeaderContent:t,headerActions:n,children:o,className:r,isEditMode:s=!1},i)=>u.jsxs("div",{ref:i,className:se("flex h-full w-full flex-col gap-0 overflow-hidden p-0",s?"bg-white":"bg-gray-100","dark:bg-gray-975",r),children:[u.jsxs("div",{className:"sticky top-0 grid shrink-0 grid-cols-[1fr_auto_1fr] items-center border-b border-gray-200 bg-white px-5 py-3 dark:border-gray-900 dark:bg-gray-950",children:[u.jsx("h3",{className:"justify-self-start text-xl font-semibold",children:e}),u.jsx("div",{className:"justify-self-center",children:t}),u.jsx("div",{className:"flex items-center gap-2 justify-self-end",children:n})]}),u.jsx("div",{className:"flex min-h-0 grow flex-col overflow-y-auto [scrollbar-gutter:stable]",children:o})]}));fa.displayName="EmailPreviewModalContent";const Nx=({children:e,className:t})=>u.jsx("div",{className:se("relative z-20 isolate mx-auto w-full max-w-[780px] rounded-t-lg border border-b-0 border-gray-200 bg-white px-6 py-4 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:bg-grey-975",t),children:e}),Cx=({children:e,className:t})=>u.jsx("div",{className:se("flex mx-auto w-full rounded-b-lg transition-[max-width,height,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:shadow-none grow max-w-[780px]",t),children:e}),Mx=({initialMode:e="edit",initialSubject:t,initialLexical:n,onClose:o,onSave:r})=>{const{mutateAsync:s}=bl(),{data:i}=_l(),[a,c]=_.useState(!1),[l,f]=_.useState(e),[d,h]=_.useState(null),[g,p]=_.useState(!1),y=_.useRef(!1),w=_.useRef(null),x=_.useRef(n||""),S=_.useRef(!1),m=Kc(),v=i?.automated_emails||[],{resolvedSenderName:C,resolvedSenderEmail:E,resolvedReplyToEmail:I,hasDistinctReplyTo:A}=Sx(v),D=(v.find(B=>B.slug===Xn.free)||v[0])?.id||"",{formState:H,saveState:M,updateForm:T,setFormState:z,setErrors:b,handleSave:j,okProps:N,errors:k,validate:P}=El({initialState:{subject:t||"",lexical:n||""},savingDelay:500,onSave:async B=>{r({subject:B.subject,lexical:B.lexical})},onSaveError:m,onValidate:da}),R=N.label||"Save",{previewFrameState:$,enterPreview:O,exitPreview:L}=Ex({automatedEmailId:D,previewWelcomeEmail:s,setErrors:b});_.useEffect(()=>{e!=="preview"||y.current||(y.current=!0,O(H))},[O,H,e]);const W=M==="unsaved",F=_.useCallback(()=>{W?p(!0):o()},[W,o]),X=_.useCallback(async()=>{await j({fakeWhenUnchanged:!0})&&o()},[j,o]);_.useEffect(()=>{const B=U=>{w.current&&!w.current.contains(U.target)&&c(!1)};return a&&document.addEventListener("mousedown",B),()=>{document.removeEventListener("mousedown",B)}},[a]);const K=_.useRef(X);_.useEffect(()=>{K.current=X},[X]),_.useEffect(()=>{const B=U=>{(U.metaKey||U.ctrlKey)&&U.key==="s"&&(U.preventDefault(),K.current())};return window.addEventListener("keydown",B),()=>{window.removeEventListener("keydown",B)}},[]);const Z=_.useCallback(B=>{f(B),B==="preview"?(h(null),O(H)):(c(!1),h(null),L())},[O,L,H]),V=_.useCallback(B=>{if(!S.current){x.current=B,z(U=>({...U,lexical:B}));return}B!==x.current?T(U=>({...U,lexical:B})):z(U=>({...U,lexical:B}))},[z,T]);return u.jsxs(u.Fragment,{children:[u.jsx(Qc,{open:!0,onOpenChange:B=>{B||F()},children:u.jsxs(Jc,{"aria-describedby":void 0,className:"top-0 left-0 h-[100dvh] w-full max-w-full translate-x-0 translate-y-0 grid-rows-[1fr] gap-0 rounded-none border-0 p-0 shadow-none outline-hidden sm:rounded-none dark:bg-[#151719]",onEscapeKeyDown:B=>{B.preventDefault(),B.stopPropagation(),F()},children:[u.jsx(el,{className:"sr-only",children:"Edit email"}),u.jsx(fa,{centeredHeaderContent:u.jsx(Sl,{"data-testid":"email-mode-toggle",value:l,variant:"segmented-sm",onValueChange:B=>B&&Z(B),children:u.jsxs(Nl,{className:"grid w-[240px] grid-cols-2 bg-gray-100 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04)]",children:[u.jsx(jo,{className:"w-full justify-center data-[state=active]:bg-white dark:data-[state=active]:bg-white dark:data-[state=active]:text-black","data-testid":"email-mode-edit",value:"edit",children:"Email content"}),u.jsx(jo,{className:"w-full justify-center","data-testid":"email-mode-preview",value:"preview",children:"Preview"})]})}),headerActions:u.jsxs(u.Fragment,{children:[u.jsx(ae,{variant:"outline",onClick:F,children:"Close"}),u.jsx(ae,{disabled:N.disabled,onClick:X,children:R})]}),isEditMode:l==="edit",title:"Edit email",children:u.jsxs("div",{className:"flex grow flex-col items-center p-6",children:[l==="preview"&&u.jsx(Nx,{className:"border-x-0 border-t-0 border-b",children:u.jsxs("div",{className:"flex flex-col gap-2",children:[u.jsxs("div",{className:"flex items-center py-1",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"From:"}),u.jsx("div",{className:"min-w-0 grow pr-4 text-sm",children:u.jsxs("span",{className:"flex gap-1 truncate whitespace-nowrap",children:[u.jsx("span",{children:C}),u.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:`<${E}>`})]})}),u.jsxs("div",{ref:w,className:"relative",children:[u.jsxs(ae,{variant:"outline",onClick:()=>c(!a),children:[u.jsx(Ml,{className:"size-4"}),"Test"]}),a&&u.jsx(mx,{automatedEmailId:D,lexical:H.lexical,subject:H.subject,validateForm:P,onClose:()=>c(!1)})]})]}),A&&u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Reply-to:"}),u.jsx("div",{className:"grow text-sm text-gray-500 dark:text-gray-400",children:I})]}),u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Subject:"}),u.jsxs("div",{className:"grow",children:[u.jsx(Gn,{className:"w-full","data-testid":"email-preview-subject",value:d??H.subject,onChange:B=>{const U=B.target.value;h(U),T(Q=>({...Q,subject:U}))}}),k.subject&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:k.subject})]})]})]})}),u.jsxs(Cx,{className:se(l==="preview"&&"shadow-sm bg-white dark:bg-grey-975",l==="edit"&&"px-6",l==="edit"&&"rounded-lg",l==="edit"&&k.lexical&&"border border-red-500"),children:[u.jsx("div",{className:se("mx-auto w-full max-w-[600px] pt-10 pb-8 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none",l==="preview"&&"hidden"),"data-testid":"email-editor",onFocus:()=>{S.current=!0},children:u.jsx(px,{className:"automation-email-editor",placeholder:"Write your email content...",value:H.lexical,onChange:V})}),l==="preview"&&u.jsx(gx,{previewState:$})]}),l==="edit"&&k.lexical&&u.jsx("span",{className:"mt-2 block max-w-[740px] text-xs text-destructive",children:k.lexical})]})})]})}),u.jsx(Rt,{open:g,onOpenChange:p,children:u.jsxs(zt,{children:[u.jsxs($t,{children:[u.jsx(Ot,{children:"Discard changes?"}),u.jsx(Lt,{children:"Your changes to this email haven't been saved."})]}),u.jsxs(Ht,{children:[u.jsx(Bt,{children:"Keep editing"}),u.jsx(ae,{variant:"destructive",onClick:()=>{p(!1),o()},children:"Discard"})]})]})})]})},Zt=30,kx=/^\d+$/,Ut=0,jx=256,Ix=Ut+jx/2,Ar=180,Px=40,Ax=180,Dx=250,Tx=`Limit of ${ct(Dn)} steps reached`,Rx="var(--xy-edge-stroke)",zx=[1.5,1,.75,.5,.25],be="__trigger__",Re="__tail__",$x=({sourceId:e,targetId:t})=>({previousActionId:e===be?void 0:e,nextActionId:t===Re?void 0:t}),Ox={background:"transparent",border:"none",height:0,minHeight:0,minWidth:0,opacity:0,pointerEvents:"none",width:0},vt=({type:e,position:t})=>u.jsx(wt,{isConnectable:!1,position:t,style:Ox,type:e}),ha=({children:e,className:t,data:n})=>{const o=_.useRef(!1);return u.jsxs(vu,{onOpenChange:r=>{r||(o.current=!1)},children:[u.jsx(bu,{asChild:!0,children:u.jsx("button",{"aria-label":n.value?`${n.label}: ${n.value}`:n.label,"aria-pressed":n.selected,className:se("flex w-64 items-center gap-3 rounded-lg border border-transparent bg-surface-elevated p-3 text-left text-sm text-foreground shadow-sm transition-all focus-visible:border-border-strong focus-visible:outline-none",!n.selected&&"hover:border-border-strong",n.selected&&"border-gray-700 shadow-[inset_0_0_0_1px_var(--color-gray-700),0_1px_2px_0_rgb(0_0_0_/_0.05)]",n.isNew&&"animate-in fade-in-0 zoom-in-90 duration-250 ease-out motion-reduce:animate-none",t),type:"button",onClick:r=>{if(r.stopPropagation(),r.button!==0||o.current){o.current=!1;return}n.onSelect()},onContextMenu:r=>{o.current=!0,r.stopPropagation()},onPointerDown:r=>{r.button===2&&r.stopPropagation()},children:e})}),u.jsx(js,{className:"w-44",onClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:n.contextMenuItems.map(r=>{if(r.type==="separator")return u.jsx(Ps,{},r.id);const s=r.icon;return u.jsxs(Is,{variant:r.variant,onSelect:r.onSelect,children:[s&&u.jsx(s,{className:"size-4"}),r.label]},r.label)})})]})},pa=({data:e})=>{const t=e.icon;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:u.jsx(t,{className:"size-4"})}),u.jsxs("div",{className:"flex min-w-0 flex-col text-left",children:[u.jsx("span",{className:"text-xs text-text-secondary",children:e.label}),e.value&&u.jsx("span",{className:"truncate font-medium",children:e.value})]})]})},ga=me.memo(({data:e})=>u.jsxs(ha,{data:e,children:[u.jsx(pa,{data:e}),u.jsx(vt,{position:Y.Bottom,type:"source"})]}));ga.displayName="TriggerNode";const ma=me.memo(({data:e})=>u.jsxs(ha,{data:e,children:[u.jsx(vt,{position:Y.Top,type:"target"}),u.jsx(pa,{data:e}),u.jsx(vt,{position:Y.Bottom,type:"source"})]}));ma.displayName="StepNode";const Lx=({data:e})=>{const[t,n]=_.useState(!1),o=s=>{n(!1),e.onPick(s,e.anchor)},r="flex h-12 w-64 items-center justify-center rounded-lg border border-dashed border-border-default bg-surface-page transition-colors hover:border-border-strong focus-visible:border-border-strong focus-visible:outline-none";if(e.disabled){const s=u.jsxs("div",{"aria-disabled":"true",className:se(r,"cursor-not-allowed opacity-60"),"data-testid":"add-step-tail-button",children:[u.jsx(vt,{position:Y.Top,type:"target"}),u.jsx(dt,{className:"size-5 text-text-secondary",strokeWidth:1.5})]});return e.disabledReason?u.jsx(Hr,{delayDuration:150,children:u.jsxs(Br,{children:[u.jsx(Vr,{asChild:!0,children:u.jsx("span",{tabIndex:0,children:s})}),u.jsx(Fr,{children:e.disabledReason})]})}):s}return u.jsxs(Wr,{open:t,onOpenChange:n,children:[u.jsxs(Yr,{"aria-label":"Add step",className:se(r,"cursor-pointer"),"data-testid":"add-step-tail-button",children:[u.jsx(vt,{position:Y.Top,type:"target"}),u.jsx(dt,{className:"size-5 text-text-secondary",strokeWidth:1.5})]}),u.jsx(Xr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(As,{onPick:o})})]})},Hx={trigger:ga,step:ma,tail:Lx},Bx={"add-step-edge":ax},Vx=()=>{const[e,t]=_.useState(!1),{fitView:n,zoomIn:o,zoomOut:r,zoomTo:s}=gn(),{zoom:i}=Am(),a={duration:Ax},c=Math.round(i*100),l=d=>{t(!1),s(d,a)},f=()=>{t(!1),n(a)};return u.jsxs(Wm,{className:"gap-1 overflow-hidden rounded-md bg-surface-elevated p-0.5 text-foreground shadow-sm",orientation:"horizontal",showFitView:!1,showInteractive:!1,showZoom:!1,style:{bottom:24,left:24},children:[u.jsx(ae,{"aria-label":"Zoom out",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom out",type:"button",variant:"ghost",onClick:()=>{r(a)},children:u.jsx(ts,{className:"size-5",strokeWidth:1.5})}),u.jsxs(Kr,{open:e,onOpenChange:t,children:[u.jsx(Qr,{asChild:!0,children:u.jsxs(ae,{"aria-label":`Zoom level ${ct(c)}%`,className:"min-w-14 rounded-sm px-2 font-semibold",type:"button",variant:"ghost",children:[ct(c),"%"]})}),u.jsxs(Jr,{align:"center",className:"w-40",side:"top",sideOffset:12,children:[zx.map(d=>{const h=Math.round(d*100),g=Math.abs(i-d)<.01;return u.jsxs(An,{onSelect:()=>l(d),children:[ct(h),"%",g&&u.jsx(nl,{children:u.jsx(Lr,{className:"size-4 text-text-secondary",strokeWidth:1.5})})]},d)}),u.jsx(ol,{}),u.jsx(An,{onSelect:f,children:"Fit to view"})]})]}),u.jsx(ae,{"aria-label":"Zoom in",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom in",type:"button",variant:"ghost",onClick:()=>{o(a)},children:u.jsx(dt,{className:"size-5",strokeWidth:1.5})})]})},xa=e=>{if(e<=0)throw new Error("Wait time must be a positive number of hours.");if(e%24===0){const t=e/24;return t===1?"1 day":`${t} days`}return e===1?"1 hour":`${e} hours`},Fx=e=>{switch(e.type){case"wait":return{icon:Qn,label:"Wait",value:xa(e.data.wait_hours)};case"send_email":return{icon:Kn,label:"Send email",value:e.data.email_subject};default:{const t=e;throw new Error(`Unknown automation action type: ${t}`)}}},Dr=({canDelete:e=!1,canEditEmailBody:t=!1,onDelete:n,onEditEmailBody:o,onPreviewEmail:r,onSelectStep:s,stepId:i})=>{const a=[{icon:rl,label:"Edit settings",onSelect:()=>s(i)}];return t&&o&&a.push({icon:ns,label:"Edit email body",onSelect:()=>o(i)}),t&&r&&a.push({icon:Yl,label:"Preview",onSelect:()=>r(i)}),e&&n&&(t&&a.push({id:"before-delete",type:"separator"}),a.push({icon:es,label:"Delete",onSelect:()=>n(i),variant:"destructive"})),a},Wx=e=>{if(e.actions.length===0)return[];const t=new Map(e.actions.map(c=>[c.id,c])),n=new Set(e.edges.map(c=>c.target_action_id)),o=e.actions.find(c=>!n.has(c.id));if(!o)throw new Error(`Could not determine the starting step for automation ${e.id}.`);const r=new Map(e.edges.map(c=>[c.source_action_id,c.target_action_id])),s=[],i=new Set;let a=o;for(;a;){if(i.has(a.id))throw new Error(`Detected a loop in automation ${e.id}.`);s.push(a),i.add(a.id);const c=r.get(a.id);a=c?t.get(c):void 0}if(s.length!==e.actions.length)throw new Error(`Some steps in automation ${e.id} are missing or disconnected.`);return s},Yx=({automation:e,disabled:t,onDelete:n,onEditEmailBody:o,onPick:r,onPreviewEmail:s,onSelectStep:i,newStepId:a,selectedStepId:c})=>{const l=Wx(e),f={draggable:!1,selectable:!1,connectable:!1,focusable:!1},d=t?Tx:void 0,g={sourceId:l[l.length-1]?.id??be,targetId:Re},p=[{id:be,type:"trigger",position:{x:Ut,y:0},data:{contextMenuItems:Dr({onSelectStep:i,stepId:be}),icon:qr,isNew:!1,label:"Trigger",value:"Member signs up",selected:c===be,onSelect:()=>i(be)},...f}];l.forEach((x,S)=>{p.push({id:x.id,type:"step",position:{x:Ut,y:Ar*(S+1)},data:{...Fx(x),contextMenuItems:Dr({canDelete:!0,canEditEmailBody:x.type==="send_email",onDelete:n,onEditEmailBody:o,onPreviewEmail:s,onSelectStep:i,stepId:x.id}),isNew:a===x.id,selected:c===x.id,onSelect:()=>i(x.id)},...f})}),p.push({id:Re,type:"tail",position:{x:Ut,y:Ar*(l.length+1)},data:{disabled:t,disabledReason:d,onPick:r,anchor:g},draggable:!1,connectable:!1});const y=[];let w=be;return l.forEach(x=>{const S={sourceId:w,targetId:x.id,disabled:t,disabledReason:d,onPick:r};y.push({id:`e-${w}-${x.id}`,source:w,target:x.id,type:"add-step-edge",focusable:!1,data:S}),w=x.id}),y.push({id:`e-${w}-${Re}`,source:w,target:Re,type:"smoothstep",focusable:!1,style:{stroke:Rx}}),{nodes:p,edges:y}},Xx=e=>({x:Math.round(e/2-Ix),y:Px,zoom:1}),Zx={"member-welcome-email-free":["free"],"member-welcome-email-paid":["paid"]},Ux=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s})=>{if(!t)return null;if(t===be)return{icon:qr,label:"Trigger",title:"Member signs up",memberTiers:Zx[e.slug]??[],type:"trigger"};const i=e.actions.find(a=>a.id===t);if(!i)return null;switch(i.type){case"wait":{const a=xa(i.data.wait_hours);return{icon:Qn,label:"Wait",title:a,action:i,onDelete:()=>n(i.id),onUpdate:c=>o(i.id,c),type:"wait"}}case"send_email":return{icon:Kn,label:"Send email",title:i.data.email_subject||"No subject",action:i,onDelete:()=>n(i.id),onUpdateSubject:a=>r(i.id,a),onEditEmail:()=>s(i.id),type:"send_email"};default:{const a=i;throw new Error(`Unknown automation action type: ${a}`)}}},xo=({children:e,htmlFor:t,label:n})=>u.jsxs(zl,{children:[u.jsx($l,{className:"text-xs font-medium text-text-secondary",htmlFor:t,children:n}),e]}),Gx=({value:e})=>u.jsx(Vl,{value:e,children:u.jsx(Fl,{disabled:!0,children:u.jsx("span",{children:e})})}),qx=({memberTiers:e})=>u.jsxs("div",{className:"flex flex-col gap-5",children:[u.jsx(xo,{label:"Trigger",children:u.jsx(Gx,{value:"New member sign up"})}),u.jsxs("div",{className:"flex flex-col gap-2",children:[u.jsx("span",{className:"text-xs font-medium text-text-secondary",children:"Members"}),u.jsxs(Do,{className:"flex items-center gap-2 text-sm font-normal text-foreground",children:[u.jsx(Po,{checked:e.includes("free"),disabled:!0}),"Free"]}),u.jsxs(Do,{className:"flex items-center gap-2 text-sm font-normal text-foreground",children:[u.jsx(Po,{checked:e.includes("paid"),disabled:!0}),"Paid"]})]})]}),ya=({onClick:e})=>u.jsxs(ae,{className:"w-full border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground",type:"button",variant:"outline",onClick:e,children:[u.jsx(es,{className:"size-4"}),"Delete step"]}),Pn=e=>{const t=Number(e);return!kx.test(e)||!Number.isInteger(t)||t<1||t>Zt?null:t},Kx=({action:e,onUpdate:t,onDelete:n})=>{if(e.data.wait_hours%24!==0)throw new Error(`WaitSidebarBody: wait_hours must be a multiple of 24, received ${e.data.wait_hours}`);const o=e.data.wait_hours/24,[r,s]=_.useState(String(o)),i=Number(r),a=Pn(r)!==null,c=d=>{const h=d*24;h!==e.data.wait_hours&&t(h)},l=d=>{const h=Pn(r);if(h===null)return;const g=Math.min(Zt,Math.max(1,h+d));s(String(g)),c(g)},f=d=>{const h=d.target.value;s(h);const g=Pn(h);g!==null&&c(g)};return u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsxs(xo,{htmlFor:"automation-wait-days",label:"Wait for",children:[u.jsxs(Ol,{"aria-label":"Wait duration in days",className:"h-(--control-height)","data-disabled":a?void 0:"true",children:[u.jsx(Ll,{"aria-describedby":a?void 0:"automation-wait-days-error","aria-invalid":!a,className:"w-10 min-w-10 flex-none pr-1 font-mono tabular-nums",id:"automation-wait-days",inputMode:"numeric",value:r,onChange:f}),u.jsx(Hl,{className:"mr-auto",children:i===1?"day":"days"}),u.jsxs(Bl,{align:"inline-end",className:"gap-0.5 pr-2",children:[u.jsx(Ao,{"aria-label":"Decrease wait by one day",disabled:!a||i<=1,size:"icon-xs",title:"Decrease wait by one day",onClick:()=>l(-1),children:u.jsx(ts,{className:"size-4"})}),u.jsx(Ao,{"aria-label":"Increase wait by one day",disabled:!a||i>=Zt,size:"icon-xs",title:"Increase wait by one day",onClick:()=>l(1),children:u.jsx(dt,{className:"size-4"})})]})]}),!a&&u.jsxs(Rl,{className:"text-xs",id:"automation-wait-days-error",children:["Enter a whole number between 1 and ",ct(Zt)," days."]})]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ya,{onClick:n})})]})},Qx=({action:e,onUpdateSubject:t,onEditEmail:n,onDelete:o})=>u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsx(xo,{htmlFor:"automation-email-subject",label:"Subject line",children:u.jsx(Gn,{id:"automation-email-subject",placeholder:"Subject line",value:e.data.email_subject,onChange:r=>t(r.target.value)})}),u.jsxs(ae,{className:"w-full",type:"button",variant:"outline",onClick:n,children:[u.jsx(ns,{className:"size-4"}),"Edit email"]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ya,{onClick:o})})]}),Jx=({detail:e})=>{switch(e.type){case"trigger":return u.jsx(qx,{memberTiers:e.memberTiers});case"wait":return u.jsx(Kx,{action:e.action,onDelete:e.onDelete,onUpdate:e.onUpdate},e.action.id);case"send_email":return u.jsx(Qx,{action:e.action,onDelete:e.onDelete,onEditEmail:e.onEditEmail,onUpdateSubject:e.onUpdateSubject},e.action.id);default:{const t=e;throw new Error(`Unknown sidebar type: ${t}`)}}},ey=({detail:e})=>{const t=e.icon;return u.jsxs("div",{className:"flex min-h-full flex-col gap-6",children:[u.jsx("div",{className:"flex items-start gap-4",children:u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:u.jsx(t,{className:"size-4"})}),u.jsxs("div",{className:"min-w-0",children:[u.jsx("span",{className:"block text-xs text-text-secondary",children:e.label}),u.jsx("h2",{className:"truncate text-base leading-tight font-medium text-foreground",children:e.title})]})]})}),u.jsx(Jx,{detail:e})]})},ty=({detail:e,isEmailModalOpen:t,onClose:n})=>(_.useEffect(()=>{if(!e)return;const o=r=>{if(r.key==="Escape"){if(t)return;n()}};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[e,t,n]),u.jsx("aside",{"aria-hidden":!e,"aria-label":"Step details",className:se("absolute inset-y-0 right-0 z-[1] flex w-[calc(100%-6rem)] max-w-none translate-x-full flex-col gap-6 overflow-y-auto bg-background p-6 shadow-sm transition-transform duration-200 ease-out sm:w-[36rem] dark:border-l dark:border-gray-950",e?"translate-x-0":"pointer-events-none"),"data-state":e?"open":"closed","data-testid":"automation-step-sidebar",children:e&&u.jsx(ey,{detail:e})})),ny={wait:Pl,send_email:Il},oy=({automation:e,isLoading:t,isError:n,onChange:o})=>{const[r,s]=_.useState(null),[i,a]=_.useState("edit"),[c,l]=_.useState(null),[f,d]=_.useState(null),h=f?.id??null,g=_.useCallback((M,T)=>{if(!e||e.actions.length>=Dn)return;const z=$x(T),b=ny[M],j=b({detail:e,anchor:z}),N=j.actions.find(k=>!e.actions.some(P=>P.id===k.id));s(N?.id??null),N&&d({id:N.id}),o(j)},[e,o]);_.useEffect(()=>{if(!r)return;const M=window.setTimeout(()=>{s(null)},Dx);return()=>window.clearTimeout(M)},[r]);const p=_.useCallback(M=>{if(!e)return;const T=kl({detail:e,actionId:M});l(z=>z===M?null:z),d(null),o(T)},[e,o]),y=_.useCallback((M,T)=>{e&&o(jl({detail:e,actionId:M,waitHours:T}))},[e,o]),w=_.useCallback((M,T)=>{if(!e)return;const z=e.actions.find(b=>b.id===M&&b.type==="send_email");z&&o(Io({detail:e,actionId:M,emailSubject:T,emailLexical:z.data.email_lexical}))},[e,o]),x=_.useCallback((M,T="edit")=>{a(T),l(M)},[]),S=_.useCallback((M,T="edit")=>{d(null),a(T),l(M)},[]),m=_.useCallback(M=>{S(M,"preview")},[S]),v=c&&e?e.actions.find(M=>M.id===c&&M.type==="send_email"):void 0,C=_.useRef(Xx(window.innerWidth)),E=_.useMemo(()=>e?Yx({automation:e,disabled:e.actions.length>=Dn,onDelete:p,onEditEmailBody:S,onPick:g,onPreviewEmail:m,onSelectStep:M=>d({id:M}),newStepId:r,selectedStepId:h}):null,[e,S,m,p,g,r,h]),I=e?Ux({automation:e,onDelete:p,onUpdateWait:y,onUpdateSubject:w,onEditEmail:x,stepId:h}):null,A=_.useCallback(()=>{d(null)},[]),D=()=>{l(null),a("edit")},H=_.useCallback((M,T)=>{if(M.stopPropagation(),!e||T.id===Re||T.id===be)return;const z=e.actions.find(b=>b.id===T.id);z?.type==="send_email"&&x(z.id)},[e,x]);return t?u.jsx("div",{className:"flex flex-1 items-center justify-center bg-surface-page","data-testid":"automation-canvas-loading",children:u.jsx(Te,{size:"lg"})}):n||!e||!E?u.jsx("div",{className:"flex flex-1 items-start justify-center bg-surface-page px-4 py-8",children:u.jsx(tl,{className:"max-w-md",role:"alert",variant:"destructive",children:u.jsxs("div",{className:"flex items-start gap-3",children:[u.jsx(Wl,{className:"mt-0.5 size-5 text-red"}),u.jsxs("div",{children:[u.jsx("strong",{className:"block",children:"Couldn't load automation"}),u.jsx("p",{className:"text-sm text-muted-foreground",children:"Try refreshing the page."})]})]})})}):u.jsxs("div",{className:"relative flex-1 overflow-hidden bg-surface-page","data-testid":"automation-canvas",children:[u.jsxs(km,{className:"[--xy-background-color:var(--color-grey-50)] [--xy-background-pattern-color:var(--color-grey-500)] [--xy-edge-stroke:var(--color-grey-300)] dark:[--xy-background-color:var(--color-black)] dark:[--xy-background-pattern-color:var(--color-grey-900)] dark:[--xy-edge-stroke:var(--color-grey-800)]",defaultViewport:C.current,edges:E.edges,edgesFocusable:!1,edgeTypes:Bx,nodes:E.nodes,nodesConnectable:!1,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:Hx,proOptions:{hideAttribution:!0},zoomOnDoubleClick:!1,zoomOnScroll:!1,panOnScroll:!0,onNodeClick:(M,T)=>{M.button===0&&T.id!==Re&&d({id:T.id})},onNodeDoubleClick:H,onPaneClick:A,children:[u.jsx($m,{variant:Ee.Dots}),u.jsx(Vx,{})]}),u.jsx(ty,{detail:I,isEmailModalOpen:!!v,onClose:A}),v&&e&&u.jsx(Mx,{initialLexical:v.data.email_lexical,initialMode:i,initialSubject:v.data.email_subject,onClose:D,onSave:({subject:M,lexical:T})=>{o(Io({detail:e,actionId:v.id,emailSubject:M,emailLexical:T})),D()}})]})},ry=({automation:e,isLoadingAutomation:t,isSaveButtonEnabled:n,isPublishButtonEnabled:o,saveButtonVariant:r,publishButtonVariant:s,isTurnOffButtonEnabled:i,saveButtonChildren:a,publishButtonChildren:c,onSave:l,onPublish:f,onTurnOff:d})=>{const h=e?.name,g=e?.status;return u.jsxs("header",{className:"relative z-10 flex h-14 shrink-0 items-center justify-between bg-background px-4 shadow-sm dark:border-b dark:border-gray-950",children:[u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx(ae,{variant:"ghost",asChild:!0,children:u.jsx(sl,{"aria-label":"Back to automations",to:"/automations",children:u.jsx(il,{strokeWidth:2})})}),t?u.jsx(al,{className:"h-5 w-40"}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"truncate text-lg font-semibold",children:h}),g&&u.jsx(Al,{status:g})]})]}),u.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[g==="active"&&u.jsxs(Kr,{children:[u.jsx(Qr,{asChild:!0,children:u.jsx(ae,{"aria-label":"Automation options",variant:"ghost",children:u.jsx(cl,{})})}),u.jsx(Jr,{align:"end",className:"min-w-40",children:u.jsxs(An,{disabled:!i,onSelect:d,children:[u.jsx(dl,{className:"size-4"}),"Turn off"]})})]}),g==="inactive"&&u.jsx(ae,{disabled:!n,variant:r,onClick:l,children:a}),u.jsx(ae,{disabled:!o,variant:s,onClick:f,children:c})]})]})};var Tr=Object.prototype.hasOwnProperty;function Rr(e,t,n){for(n of e.keys())if(ut(n,t))return n}function ut(e,t){var n,o,r;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((o=e.length)===t.length)for(;o--&&ut(e[o],t[o]););return o===-1}if(n===Set){if(e.size!==t.size)return!1;for(o of e)if(r=o,r&&typeof r=="object"&&(r=Rr(t,r),!r)||!t.has(r))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(o of e)if(r=o[0],r&&typeof r=="object"&&(r=Rr(t,r),!r)||!ut(o[1],t.get(r)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((o=e.byteLength)===t.byteLength)for(;o--&&e.getInt8(o)===t.getInt8(o););return o===-1}if(ArrayBuffer.isView(e)){if((o=e.byteLength)===t.byteLength)for(;o--&&e[o]===t[o];);return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(Tr.call(e,n)&&++o&&!Tr.call(t,n)||!(n in t)||!ut(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const zr=e=>({status:e.status,actions:e.actions,edges:e.edges}),sy=e=>{switch(e){case"failed to publish":case"failed to re-publish":case"failed to save":case"failed to unpublish":return!0;case"confirming re-publish":case"confirming unpublish":case"idle":case"publishing":case"re-publishing":case"saving":case"unpublishing":return!1;default:{const t=e;throw new Error(`Unhandled edit state: ${t}`)}}},ky=()=>{const{id:e=""}=ll(),{data:t,isLoading:n,isError:o}=Dl(e,{defaultErrorHandler:!1}),r=t?.automations[0],s=Tl(),[i,a]=me.useState("idle"),[c,l]=me.useState(void 0);me.useEffect(()=>{r&&l(N=>N?.id===r.id?N:r)},[r]);const f=!!c&&!!r&&!ut(zr(c),zr(r)),d=N=>{l(N),a(k=>sy(k)?"idle":k)},h=N=>{if(!c)throw new Error("Cannot edit an automation that has not loaded.");let k,P;const R=c.status,$=N??R,O=`${R} -> ${$}`;switch(O){case"active -> active":k="re-publishing",P="failed to re-publish";break;case"inactive -> inactive":k="saving",P="failed to save";break;case"inactive -> active":k="publishing",P="failed to publish";break;case"active -> inactive":k="unpublishing",P="failed to unpublish";break;default:{const L=O;throw new Error(`Unhandled status transition: ${L}`)}}a(k),s.mutate({id:c.id,status:$,actions:c.actions,edges:c.edges},{onSuccess:L=>{l(L.automations[0]),a("idle")},onError:()=>a(P)})};let g=!1,p=!1,y=!1,w=!!c&&c.actions.length>0&&c.status==="inactive"&&f,x="secondary",S="Save",m=!!c&&c.actions.length>0&&(c.status==="inactive"||f),v="default",C=c?.status==="active"?f?"Publish changes":"Published":"Publish",E=!0,I="Turn off",A=!0,D="default",H="Publish changes";switch(i){case"idle":break;case"saving":y=!0,w=!1,m=!1,E=!1,S=u.jsxs(u.Fragment,{children:[u.jsx(Te,{size:"sm"}),u.jsx("span",{className:"sr-only",children:"Saving..."})]});break;case"publishing":y=!0,w=!1,m=!1,E=!1,C=u.jsxs(u.Fragment,{children:[u.jsx(Te,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"re-publishing":y=!0,p=!0,m=!1,E=!1,A=!1,H=u.jsxs(u.Fragment,{children:[u.jsx(Te,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"unpublishing":y=!0,g=!0,w=!1,m=!1,E=!1,I=u.jsxs(u.Fragment,{children:[u.jsx(Te,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Turning off..."})]});break;case"confirming unpublish":g=!0,w=!1,m=!1,E=!1;break;case"confirming re-publish":p=!0,m=!1,E=!1;break;case"failed to save":x="destructive",S="Retry";break;case"failed to publish":v="destructive",C="Retry";break;case"failed to re-publish":p=!0,m=!1,E=!1,D="destructive",H="Retry";break;case"failed to unpublish":g=!0,E=!0,I="Retry";break;default:{const N=i;throw new Error(`Unhandled edit state: ${N}`)}}const M=N=>{a(k=>{switch(k){case"confirming unpublish":case"failed to unpublish":return N?k:"idle";case"idle":return N?"confirming unpublish":k;default:return k}})},T=N=>{a(k=>{switch(k){case"confirming re-publish":case"failed to re-publish":return N?k:"idle";case"idle":return N?"confirming re-publish":k;default:return k}})},z=()=>{const N=c?.status;switch(N){case void 0:throw new Error("Cannot publish an automation that has not loaded.");case"active":a("confirming re-publish");break;case"inactive":h("active");break;default:{const k=N;throw new Error(`Unhandled status: ${k}`)}}};Xl(y||f);const b=ul(({currentLocation:N,nextLocation:k})=>f&&N.pathname!==k.pathname),j=N=>{!N&&b.state==="blocked"&&b.reset()};return u.jsxs("div",{className:"fixed inset-0 z-50 flex flex-col bg-background","data-testid":"automation-editor",children:[u.jsx(ry,{automation:c,isLoadingAutomation:n,isPublishButtonEnabled:m,isSaveButtonEnabled:w,isTurnOffButtonEnabled:E,publishButtonChildren:C,publishButtonVariant:v,saveButtonChildren:S,saveButtonVariant:x,onPublish:z,onSave:()=>h(),onTurnOff:()=>a("confirming unpublish")}),u.jsx(oy,{automation:c,isError:o,isLoading:n,onChange:d}),u.jsx(Rt,{open:b.state==="blocked",onOpenChange:j,children:u.jsxs(zt,{children:[u.jsxs($t,{children:[u.jsx(Ot,{children:"Discard unsaved changes?"}),u.jsx(Lt,{children:"Your changes will be lost if you leave this automation."})]}),u.jsxs(Ht,{children:[u.jsx(Bt,{children:"Keep working"}),u.jsx(ae,{variant:"destructive",onClick:()=>b.proceed?.(),children:"Discard changes"})]})]})}),u.jsx(Rt,{open:g,onOpenChange:M,children:u.jsxs(zt,{children:[u.jsxs($t,{children:[u.jsx(Ot,{children:"Turn off this automation?"}),u.jsx(Lt,{children:"It will stop running until you turn it back on."})]}),u.jsxs(Ht,{children:[u.jsx(Bt,{disabled:y,children:"Cancel"}),u.jsx(ae,{disabled:y,variant:i==="failed to unpublish"?"destructive":"default",onClick:()=>h("inactive"),children:I})]})]})}),u.jsx(Rt,{open:p,onOpenChange:T,children:u.jsxs(zt,{children:[u.jsxs($t,{children:[u.jsx(Ot,{children:"Update automation?"}),u.jsx(Lt,{children:"This will update the automation for new runs of the automation, as well as any actively-running ones."})]}),u.jsxs(Ht,{children:[u.jsx(Bt,{disabled:y,children:"Cancel"}),u.jsx(ae,{disabled:!A,variant:D,onClick:()=>h(),children:H})]})]})})]})};export{ky as default};