ghost 6.47.0 → 6.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/MigratorConfig.js +0 -1
  2. package/bin/create-migration.js +1 -1
  3. package/bin/generate-golden-email.js +0 -1
  4. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  5. package/core/boot.js +13 -7
  6. package/core/built/admin/assets/{PolarAngleAxis-CLluELUg.js → PolarAngleAxis-DufzOBEz.js} +1 -1
  7. package/core/built/admin/assets/{_baseAssignValue-Dz1iqdwD.js → _baseAssignValue-BjUm4QeA.js} +1 -1
  8. package/core/built/admin/assets/{a-large-small-BA74vHPp.js → a-large-small-D0RF_WS9.js} +1 -1
  9. package/core/built/admin/assets/{account-migration-B-NqdKuN.js → account-migration-B7n6ezrZ.js} +1 -1
  10. package/core/built/admin/assets/activitypub/{account-migration-ClmVrAXr.js → account-migration-BJeRnMCl.js} +3 -3
  11. package/core/built/admin/assets/activitypub/activitypub.js +1 -1
  12. package/core/built/admin/assets/activitypub/{at-sign-9F3qd4Nn.js → at-sign-BygVOKdj.js} +2 -2
  13. package/core/built/admin/assets/activitypub/{avatar-flipboard-jBHA13Ej.js → avatar-flipboard-CNcjI8lK.js} +2 -2
  14. package/core/built/admin/assets/activitypub/{bluesky-sharing-1irhvVtF.js → bluesky-sharing-mgBNeRfA.js} +4 -4
  15. package/core/built/admin/assets/activitypub/{copy-DXRvsGiK.js → copy-BMChXIQc.js} +2 -2
  16. package/core/built/admin/assets/activitypub/{deleted-feed-item-67VQJde4.js → deleted-feed-item-D-spb6V1.js} +2 -2
  17. package/core/built/admin/assets/activitypub/{edit-profile-BfpbEj98.js → edit-profile-CDQ3V8-c.js} +4 -4
  18. package/core/built/admin/assets/activitypub/{feed-DUrI7SPC.js → feed-Vqr3WU-V.js} +4 -4
  19. package/core/built/admin/assets/activitypub/{hash-CMtB10PN.js → hash-D7SSXVOg.js} +2 -2
  20. package/core/built/admin/assets/activitypub/{inbox-2xq8SJ7A.js → inbox-BHk5Dw27.js} +2 -2
  21. package/core/built/admin/assets/activitypub/{index-BT97xLpd.js → index-BejkeH-m.js} +2 -2
  22. package/core/built/admin/assets/activitypub/{index-DssHQAjK.js → index-BqL23J-m.js} +32 -32
  23. package/core/built/admin/assets/activitypub/{index-Ba6FXt8y.js → index-CHhvjNuG.js} +6 -6
  24. package/core/built/admin/assets/activitypub/{index-ERtz4Bvy.js → index-CZsNO9hA.js} +5 -5
  25. package/core/built/admin/assets/activitypub/{index-sgY7lLrg.js → index-CaIhRYzz.js} +3 -3
  26. package/core/built/admin/assets/activitypub/{index-D1EWoXrK.js → index-DA2MkQVu.js} +2 -2
  27. package/core/built/admin/assets/activitypub/{index-sudOvKcY.js → index-DHhFcmfu.js} +21 -21
  28. package/core/built/admin/assets/activitypub/{index-Ccighz1t.js → index-sh2bDSls.js} +4 -4
  29. package/core/built/admin/assets/activitypub/{label-KQSsSjmN.js → label-D80yhOIm.js} +2 -2
  30. package/core/built/admin/assets/activitypub/{moderation-B78if-r0.js → moderation-LJNmKBCi.js} +3 -3
  31. package/core/built/admin/assets/activitypub/{note-Bfr7ovn7.js → note-CyjKLcQ-.js} +4 -4
  32. package/core/built/admin/assets/activitypub/{reply-CehesW8Z.js → reply-BiiCFx7G.js} +2 -2
  33. package/core/built/admin/assets/activitypub/{separator-B_Ly_Qq8.js → separator-CY3PMmtI.js} +2 -2
  34. package/core/built/admin/assets/activitypub/{settings-D6R97p7v.js → settings-BQy6Gr7R.js} +3 -3
  35. package/core/built/admin/assets/activitypub/{step-1-Cl1YxgZ1.js → step-1-DCqRwgf3.js} +3 -3
  36. package/core/built/admin/assets/activitypub/{step-2-DDyR--Qe.js → step-2-DQlhehTO.js} +5 -5
  37. package/core/built/admin/assets/activitypub/{step-3-Don8gv0n.js → step-3-DAUCAcxW.js} +7 -7
  38. package/core/built/admin/assets/activitypub/{tabs-DTpfm-wu.js → tabs-B_6UuI7r.js} +3 -3
  39. package/core/built/admin/assets/activitypub/{topic-filter-Oee10885.js → topic-filter--FT1A_dc.js} +2 -2
  40. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  41. package/core/built/admin/assets/admin-x-settings/{code-editor-view-CGZuiDGx.js → code-editor-view-Bp_sCJR0.js} +2 -2
  42. package/core/built/admin/assets/admin-x-settings/{index-CwEblQZC.js → index-BPXA3pTW.js} +5 -5
  43. package/core/built/admin/assets/admin-x-settings/{index-rr_UntGE.js → index-BS375mg1.js} +3 -3
  44. package/core/built/admin/assets/admin-x-settings/{index-BpM6W2br.js → index-B_PlQoEG.js} +3 -3
  45. package/core/built/admin/assets/admin-x-settings/{index-BGdS5xw4.js → index-BflhAbu2.js} +3 -3
  46. package/core/built/admin/assets/admin-x-settings/{index-DtWUeJhp.js → index-CftMe8fe.js} +3 -3
  47. package/core/built/admin/assets/admin-x-settings/{index-B65inCwj.js → index-DRB7FH6y.js} +2 -2
  48. package/core/built/admin/assets/admin-x-settings/{index-DSX261S9.js → index-DijZ3oAM.js} +2 -2
  49. package/core/built/admin/assets/admin-x-settings/{index-DF6YEs01.js → index-cV0Lof9H.js} +1526 -1500
  50. package/core/built/admin/assets/admin-x-settings/{index-CluZYkUC.js → index-qc4x3vZj.js} +3 -3
  51. package/core/built/admin/assets/admin-x-settings/{modals-Bf4KOU31.js → modals-CkjuEByw.js} +55 -67
  52. package/core/built/admin/assets/{arrow-right-BxP3aeA5.js → arrow-right-BF77Yx73.js} +1 -1
  53. package/core/built/admin/assets/{at-sign-Bf0y-jim.js → at-sign-DhJF3n_V.js} +1 -1
  54. package/core/built/admin/assets/{audience-DHR1WgFK.js → audience-DHPKKayV.js} +1 -1
  55. package/core/built/admin/assets/{automated-emails-DbJbDLib.js → automated-emails-DInKYTEC.js} +1 -1
  56. package/core/built/admin/assets/{automations-aLgTzSsZ.js → automations-DJpeZw9T.js} +1 -1
  57. package/core/built/admin/assets/automations-DpQKN9j0.js +1 -0
  58. package/core/built/admin/assets/{avatar-flipboard-B0F2LMW5.js → avatar-flipboard-yRdmFC6R.js} +1 -1
  59. package/core/built/admin/assets/{bluesky-sharing-DjhtIuyr.js → bluesky-sharing-qSiCERoR.js} +1 -1
  60. package/core/built/admin/assets/{chart-BGwxlD0z.js → chart-CP2N9ZC-.js} +1 -1
  61. package/core/built/admin/assets/{chevron-up-C2FeVzre.js → chevron-up-BQ6fOpFR.js} +1 -1
  62. package/core/built/admin/assets/{chunk.524.31b31f7958dfae110016.js → chunk.524.ad4560630d4d62fbceb5.js} +4 -4
  63. package/core/built/admin/assets/{chunk.582.a855020953886af6e83b.js → chunk.582.fd4878e4e0af31ef86c0.js} +6 -6
  64. package/core/built/admin/assets/{chunk.972.258e6b1dab79b2189f1c.js → chunk.98.69968e0f393d82c2949c.js} +4 -4
  65. package/core/built/admin/assets/{code-editor-view-DzPkm_nJ.js → code-editor-view-CVODiRVJ.js} +1 -1
  66. package/core/built/admin/assets/{comments-DgItXUWN.js → comments-CP-NxopD.js} +1 -1
  67. package/core/built/admin/assets/{content-helpers-BNefU_PE.js → content-helpers-Crzkusiq.js} +1 -1
  68. package/core/built/admin/assets/{copy-DoNNUZlb.js → copy-r1LFsU75.js} +1 -1
  69. package/core/built/admin/assets/{data-list-CO1cZQRU.js → data-list-CzSc7z-2.js} +1 -1
  70. package/core/built/admin/assets/{deleted-feed-item-DC2wSAhv.js → deleted-feed-item-PyEM8FiX.js} +1 -1
  71. package/core/built/admin/assets/{dropzone-BTODLafn.js → dropzone-DI8A9qO6.js} +1 -1
  72. package/core/built/admin/assets/{edit-profile-BMMpmWIZ.js → edit-profile-DlJ64lV7.js} +1 -1
  73. package/core/built/admin/assets/editor-CevNZicQ.js +8 -0
  74. package/core/built/admin/assets/{empty-indicator-Dza0FQlj.js → empty-indicator-Dxg05yWg.js} +1 -1
  75. package/core/built/admin/assets/{en-yf9qAqTu.js → en-D93GVp3o.js} +1 -1
  76. package/core/built/admin/assets/{eye-CAqnnfQF.js → eye-6POPPpTw.js} +1 -1
  77. package/core/built/admin/assets/{feed-BkNsbWiF.js → feed-P_RMYb5x.js} +1 -1
  78. package/core/built/admin/assets/{field-Ddb1ZOqM.js → field-DeNjwWrL.js} +1 -1
  79. package/core/built/admin/assets/{filter-query-core-5Mac92kh.js → filter-query-core-DFs5WSmA.js} +1 -1
  80. package/core/built/admin/assets/{filters-BCb4bgtg.js → filters-C_BSQgb7.js} +1 -1
  81. package/core/built/admin/assets/{gh-chart-C6zkIg8k.js → gh-chart-pNHAbeQn.js} +1 -1
  82. package/core/built/admin/assets/{ghost-5313258fd425ced5db6516acde01ba36.js → ghost-3f5b3569e0beec61266cb74077677fbc.js} +3 -3
  83. package/core/built/admin/assets/{growth-ezUlN8OE.js → growth-B83tVOYO.js} +1 -1
  84. package/core/built/admin/assets/{hash-DE2OmChI.js → hash-BCTATV5W.js} +1 -1
  85. package/core/built/admin/assets/{inbox-OthiHvlV.js → inbox-rE3c5suT.js} +1 -1
  86. package/core/built/admin/assets/{index-BLyzLfyx.js → index-7EiRc5Ay.js} +1 -1
  87. package/core/built/admin/assets/{index-CV5v0eFE.js → index-B5bpZGTI.js} +1 -1
  88. package/core/built/admin/assets/index-BNtzAd7H.css +1 -0
  89. package/core/built/admin/assets/{index-BC1yWeaJ.js → index-BT33w2Io.js} +1 -1
  90. package/core/built/admin/assets/{index-DjffQ3VJ.js → index-BbkXWdhb.js} +1 -1
  91. package/core/built/admin/assets/{index-DH6PA3W6.js → index-BfhSrnrJ.js} +1 -1
  92. package/core/built/admin/assets/{index-CRvK0Iac.js → index-BmR_OUpb.js} +1 -1
  93. package/core/built/admin/assets/{index-CNV7fxKZ.js → index-BuhMgn5c.js} +1 -1
  94. package/core/built/admin/assets/{index-pkixJbdq.js → index-C-075SzJ.js} +34 -34
  95. package/core/built/admin/assets/{index-DJoByVS8.js → index-CB3hJd9E.js} +1 -1
  96. package/core/built/admin/assets/{index-D3bb-MEJ.js → index-CCISLIQd.js} +1 -1
  97. package/core/built/admin/assets/{index-BIEhcKiV.js → index-Cnptpx11.js} +1 -1
  98. package/core/built/admin/assets/{index-DK1cu59e.js → index-CrBRU81r.js} +1 -1
  99. package/core/built/admin/assets/{index-B0_p1-R0.js → index-CscUHFJp.js} +1 -1
  100. package/core/built/admin/assets/{index-Bi5qzf86.js → index-D3ZzfuJt.js} +1 -1
  101. package/core/built/admin/assets/{index-CKPny_6u.js → index-D4wn-U0V.js} +1 -1
  102. package/core/built/admin/assets/{index-YzcsD17L.js → index-DNRlkUeu.js} +1 -1
  103. package/core/built/admin/assets/{index-BoMsDCxD.js → index-D_G6negZ.js} +1 -1
  104. package/core/built/admin/assets/{index-CwsmINtV.js → index-DfxHSK1s.js} +1 -1
  105. package/core/built/admin/assets/{index-X91I8PcS.js → index-Dpc3COTl.js} +1 -1
  106. package/core/built/admin/assets/{index-c1h-EQpd.js → index-UsbnU2jy.js} +1 -1
  107. package/core/built/admin/assets/{index-oKgNVmwC.js → index-VfrJzh5m.js} +1 -1
  108. package/core/built/admin/assets/{index-D5MrQBSe.js → index-fbxc8Dpt.js} +1 -1
  109. package/core/built/admin/assets/{input-group-BOLMrDfJ.js → input-group-BLygwiDK.js} +1 -1
  110. package/core/built/admin/assets/{koenig-lexical-DlzcWUPw.js → koenig-lexical-B9U3sBS5.js} +1 -1
  111. package/core/built/admin/assets/{kpi-card-BlF7JKRC.js → kpi-card-Bmnvvp4X.js} +1 -1
  112. package/core/built/admin/assets/{kpi-card-HDshm3lO.js → kpi-card-CGVtzdgJ.js} +1 -1
  113. package/core/built/admin/assets/{kpi-tabs-Dty6zMSP.js → kpi-tabs-DxbvMkIU.js} +1 -1
  114. package/core/built/admin/assets/{kpis-CFz4r5wW.js → kpis-CQBAGVjP.js} +1 -1
  115. package/core/built/admin/assets/{label-CVzNcbjb.js → label-DpTwHQi_.js} +1 -1
  116. package/core/built/admin/assets/{links-D9dHwDlP.js → links-Bdw25FJF.js} +1 -1
  117. package/core/built/admin/assets/{list-page-shoQED7N.js → list-page-BvTQwP5F.js} +1 -1
  118. package/core/built/admin/assets/{loader-circle-cad701gH.js → loader-circle-3HJkQKWf.js} +1 -1
  119. package/core/built/admin/assets/{mail-DG4PKpZy.js → mail-DvrqP73n.js} +1 -1
  120. package/core/built/admin/assets/{main-layout-BmFla3Se.js → main-layout-BAPpm0bz.js} +1 -1
  121. package/core/built/admin/assets/{members-d19Z6k1C.js → members-CF4CzJSf.js} +1 -1
  122. package/core/built/admin/assets/minus-DJIePlnU.js +1 -0
  123. package/core/built/admin/assets/modals-CVsVi0zu.js +35 -0
  124. package/core/built/admin/assets/{moderation-BWBLnh4h.js → moderation-BX1KH5QL.js} +1 -1
  125. package/core/built/admin/assets/{newsletter-DNY4MroI.js → newsletter-BlKeb58e.js} +1 -1
  126. package/core/built/admin/assets/{newsletters-B10iBPP-.js → newsletters-3In8H0Z5.js} +1 -1
  127. package/core/built/admin/assets/{note-S0b6wjRR.js → note-ybwJCAxm.js} +1 -1
  128. package/core/built/admin/assets/{offers-B-9mZqKd.js → offers-Cl0ZNEMr.js} +1 -1
  129. package/core/built/admin/assets/{onboarding-route-AMFn0X5G.js → onboarding-route-A3ECeMAi.js} +1 -1
  130. package/core/built/admin/assets/{overview-WKadyZRW.js → overview-DrMrfsk-.js} +1 -1
  131. package/core/built/admin/assets/{pagemenu-BofQcFaF.js → pagemenu-O7HbsehH.js} +1 -1
  132. package/core/built/admin/assets/{pencil-LfMcD0vS.js → pencil-CknTbJeE.js} +1 -1
  133. package/core/built/admin/assets/{pin-CayUjL8e.js → pin-BNs-JdQ3.js} +1 -1
  134. package/core/built/admin/assets/{post-analytics-DMHvt3Jl.js → post-analytics-Dk1VloZp.js} +1 -1
  135. package/core/built/admin/assets/{post-analytics-context-10cqioP1.js → post-analytics-context-kPL94Ivz.js} +1 -1
  136. package/core/built/admin/assets/{post-analytics-header-DlICE18K.js → post-analytics-header-CpMOozq-.js} +1 -1
  137. package/core/built/admin/assets/{post-share-modal-Cfwy2UwD.js → post-share-modal-F0dobdhF.js} +1 -1
  138. package/core/built/admin/assets/posts/{alert-dialog-cQK32v9G.js → alert-dialog-NoPLULhG.js} +5 -5
  139. package/core/built/admin/assets/posts/{app-utils-DQ2hixop.js → app-utils-BiM9QO4L.js} +3 -3
  140. package/core/built/admin/assets/posts/{automations-BqkU9-zY.js → automations-BgIAmq9f.js} +3 -3
  141. package/core/built/admin/assets/posts/{automations-CoilKpVH.js → automations-D_XwO405.js} +30 -30
  142. package/core/built/admin/assets/posts/{avatar-BejAO6Rj.js → avatar-BYsYOpmq.js} +5 -5
  143. package/core/built/admin/assets/posts/{badge-BYGRyd2f.js → badge-B54vLono.js} +2 -2
  144. package/core/built/admin/assets/posts/{button-CG2Dpjqy.js → button-DMLfwOQt.js} +3 -3
  145. package/core/built/admin/assets/posts/{check-fsC5BvGC.js → check-D6qDi62T.js} +2 -2
  146. package/core/built/admin/assets/posts/{comments-CsyF5C1S.js → comments-CyYCbvUG.js} +26 -26
  147. package/core/built/admin/assets/posts/{data-list-JslRF2F5.js → data-list-B0DrMm-x.js} +4 -4
  148. package/core/built/admin/assets/posts/{dialog-3KY3A8t5.js → dialog-DtEZpY1q.js} +3 -3
  149. package/core/built/admin/assets/posts/{editor-3HPW_xW4.js → editor-LJHLmUoW.js} +1943 -1943
  150. package/core/built/admin/assets/posts/{ellipsis-BhK5S70U.js → ellipsis-JeIF0Biz.js} +2 -2
  151. package/core/built/admin/assets/posts/{empty-indicator-C9DbE9wZ.js → empty-indicator-dktzN32y.js} +2 -2
  152. package/core/built/admin/assets/posts/{filters-BCBDCnQF.js → filters-D1L-LU_m.js} +10 -10
  153. package/core/built/admin/assets/posts/{get-site-timezone-83C41MGz.js → get-site-timezone-dsyl8nlB.js} +3 -3
  154. package/core/built/admin/assets/posts/{growth-COoL1kMe.js → growth-yX8UB_ce.js} +12 -12
  155. package/core/built/admin/assets/posts/{heading-D3VqNO3z.js → heading-CNte43wH.js} +2 -2
  156. package/core/built/admin/assets/posts/{hooks-5YpJYWOw.js → hooks-BIgv7QBp.js} +2 -2
  157. package/core/built/admin/assets/posts/{index-Dqn5WIFh.js → index-2FO6Vy0r.js} +11 -11
  158. package/core/built/admin/assets/posts/{input-C1qcZBGw.js → input-BycmlCp8.js} +3 -3
  159. package/core/built/admin/assets/posts/{input-surface-C4vUAdbV.js → input-surface-vY3ACaso.js} +2 -2
  160. package/core/built/admin/assets/posts/{koenig-lexical-NZjxFY0X.js → koenig-lexical-Cq8SUcZC.js} +2 -2
  161. package/core/built/admin/assets/posts/{kpis-C2FEXoUT.js → kpis-CAJcU1w0.js} +27 -27
  162. package/core/built/admin/assets/posts/{label-CmJzmJY7.js → label-BmLTflMF.js} +3 -3
  163. package/core/built/admin/assets/posts/{links-nzud7t_t.js → links-BVcmMZmF.js} +4 -4
  164. package/core/built/admin/assets/posts/{list-page-D_rv4TgN.js → list-page-DX2WRn5T.js} +4 -4
  165. package/core/built/admin/assets/posts/{loading-indicator-DAOD6O2b.js → loading-indicator-C6FD4nS6.js} +3 -3
  166. package/core/built/admin/assets/posts/{mail-CtH0gTpq.js → mail-BMyoNUVM.js} +2 -2
  167. package/core/built/admin/assets/posts/{main-layout-VqvCxOXQ.js → main-layout-ClnxdW1Y.js} +2 -2
  168. package/core/built/admin/assets/posts/{message-circle-D4bCjxKS.js → message-circle-DwfHX-p1.js} +2 -2
  169. package/core/built/admin/assets/posts/{newsletter-BfwFyv6d.js → newsletter-Bid5_Bim.js} +19 -19
  170. package/core/built/admin/assets/posts/{overview-DKGum6ro.js → overview-BXti6Wg_.js} +18 -18
  171. package/core/built/admin/assets/posts/{pencil-Cffx-vm3.js → pencil-ChTk8IpW.js} +2 -2
  172. package/core/built/admin/assets/posts/{plus-D2ekwsq0.js → plus-DIKls8C6.js} +2 -2
  173. package/core/built/admin/assets/posts/{popover-DdbdKflP.js → popover-DVZsAT5u.js} +4 -4
  174. package/core/built/admin/assets/posts/{post-analytics-BleJYoNZ.js → post-analytics-DBL_kS0g.js} +6 -6
  175. package/core/built/admin/assets/posts/{post-analytics-context-DT3Avn9Q.js → post-analytics-context-Dr5y5nxd.js} +6 -6
  176. package/core/built/admin/assets/posts/{post-analytics-header-BktlrM_v.js → post-analytics-header-LH2-Jzgp.js} +13 -13
  177. package/core/built/admin/assets/posts/{post-share-modal-G8v3ZuSg.js → post-share-modal-D4DrfNfJ.js} +6 -6
  178. package/core/built/admin/assets/posts/{posts-CdWV_nlm.js → posts-ByxhcCrn.js} +2 -2
  179. package/core/built/admin/assets/posts/posts.js +1 -1
  180. package/core/built/admin/assets/posts/{search-CXP00fG8.js → search-DZR23LP-.js} +2 -2
  181. package/core/built/admin/assets/posts/{settings-DEXxDYc2.js → settings-CWyOKKnK.js} +2 -2
  182. package/core/built/admin/assets/posts/{sheet-CXHmD_eT.js → sheet-CNe7II5c.js} +3 -3
  183. package/core/built/admin/assets/posts/{site-C6DajagV.js → site-H9RAiQVv.js} +2 -2
  184. package/core/built/admin/assets/posts/{skeleton-Bihnkn8q.js → skeleton-Cn6x1x_C.js} +3 -3
  185. package/core/built/admin/assets/posts/{source-icon-C3oQy3UI.js → source-icon-BZOYujd1.js} +4 -4
  186. package/core/built/admin/assets/posts/{stats-DFicPtCX.js → stats-ugHCg8Oe.js} +4 -4
  187. package/core/built/admin/assets/posts/{table-DSJmeU5t.js → table-dG3Q5X95.js} +2 -2
  188. package/core/built/admin/assets/posts/{tabs-oRdVpN8P.js → tabs--EW8uL5B.js} +4 -4
  189. package/core/built/admin/assets/posts/{tags-6v5Qt_05.js → tags-DVdOfiSf.js} +2 -2
  190. package/core/built/admin/assets/posts/{tags-Upnkm0CF.js → tags-i0HJqNYU.js} +16 -16
  191. package/core/built/admin/assets/posts/{tooltip-Ci7pesWi.js → tooltip-ZvsT1Fs9.js} +4 -4
  192. package/core/built/admin/assets/posts/{trash-2-NCYWjRlg.js → trash-2-BT9fEHUL.js} +2 -2
  193. package/core/built/admin/assets/posts/{value-CcwzOh2_.js → value-DoFcsWDk.js} +2 -2
  194. package/core/built/admin/assets/posts/{virtual-list-window-CNahQBXY.js → virtual-list-window-Bt47XODn.js} +3 -3
  195. package/core/built/admin/assets/posts/{web-C3KrPq0T.js → web-BMTRLT-h.js} +20 -20
  196. package/core/built/admin/assets/posts/{zap-k30mZEuO.js → zap-DcIfEzKX.js} +2 -2
  197. package/core/built/admin/assets/{posts-DAfLuxAA.js → posts-DODOCB1E.js} +1 -1
  198. package/core/built/admin/assets/{power-Drkzg1xX.js → power-BZ7BM82m.js} +1 -1
  199. package/core/built/admin/assets/{referrers-TYxTJ2On.js → referrers-xwNb6L-8.js} +1 -1
  200. package/core/built/admin/assets/{repeat-CTM1qAzl.js → repeat-DHMCQMCA.js} +1 -1
  201. package/core/built/admin/assets/{reply-DXN16g7W.js → reply-DoLURZi2.js} +1 -1
  202. package/core/built/admin/assets/{rocket-DLixlWs0.js → rocket-BDH89dZr.js} +1 -1
  203. package/core/built/admin/assets/{select-DbiLEqYb.js → select-oE39QRll.js} +1 -1
  204. package/core/built/admin/assets/{send-B71C_46D.js → send-QgRN_yRy.js} +1 -1
  205. package/core/built/admin/assets/{settings-BBMPA3MP.js → settings-CF4NLxuS.js} +4 -4
  206. package/core/built/admin/assets/{settings-lSFHFrsJ.js → settings-D7e6KLAi.js} +1 -1
  207. package/core/built/admin/assets/{share-modal-CXrYja6o.js → share-modal-BxIh7i7o.js} +1 -1
  208. package/core/built/admin/assets/{sort-button-WYo-9Kge.js → sort-button-CEe_40Pi.js} +1 -1
  209. package/core/built/admin/assets/{source-icon-D6BzjYPP.js → source-icon-CzTNLO6j.js} +1 -1
  210. package/core/built/admin/assets/{sprout-DVfG_qhy.js → sprout-B2fN41p-.js} +1 -1
  211. package/core/built/admin/assets/{square-BbUJwQJi.js → square-CJZsjE-3.js} +1 -1
  212. package/core/built/admin/assets/{stats-CnXALQ4j.js → stats-jTxCK1CB.js} +1 -1
  213. package/core/built/admin/assets/{stats-view-B-yeMUkl.js → stats-view-B4jz69N8.js} +1 -1
  214. package/core/built/admin/assets/{step-1-DUl_hlpV.js → step-1-BovjhDNc.js} +1 -1
  215. package/core/built/admin/assets/{step-2-DjX_A4Ke.js → step-2-ClG40BfX.js} +1 -1
  216. package/core/built/admin/assets/{step-3-CnDCCA8T.js → step-3-ZMSyEHZI.js} +1 -1
  217. package/core/built/admin/assets/{table-AagTvMa9.js → table-B8Pj96or.js} +1 -1
  218. package/core/built/admin/assets/{tabs-IDJWnQD-.js → tabs-BZosOk0o.js} +1 -1
  219. package/core/built/admin/assets/{tags-CXAcIDw-.js → tags-BpWoYBfB.js} +1 -1
  220. package/core/built/admin/assets/{tags-C3lykbgu.js → tags-DZukMyuU.js} +1 -1
  221. package/core/built/admin/assets/{textarea-Cc3nUXep.js → textarea-BtnzsOk7.js} +1 -1
  222. package/core/built/admin/assets/{thumbs-down-SsjC2lMD.js → thumbs-down-CZTzyz7D.js} +1 -1
  223. package/core/built/admin/assets/{tiers-J8AeZmRd.js → tiers-Do7zBqAk.js} +1 -1
  224. package/core/built/admin/assets/{toggle-group-BzD8yimX.js → toggle-group-abk9FYXi.js} +1 -1
  225. package/core/built/admin/assets/{topic-filter-CA_L6ehz.js → topic-filter-CdMvjkmc.js} +1 -1
  226. package/core/built/admin/assets/{trash-BKhRqxsX.js → trash-DNXRsBf0.js} +1 -1
  227. package/core/built/admin/assets/{underline-_HIgX6e1.js → underline-HXWuVCAi.js} +1 -1
  228. package/core/built/admin/assets/{undo-2-ClkkOS0O.js → undo-2-C2ntNJKC.js} +1 -1
  229. package/core/built/admin/assets/{upload-DEPHbyvo.js → upload-D52l7HIb.js} +1 -1
  230. package/core/built/admin/assets/{use-growth-stats-BM2qWt0C.js → use-growth-stats-Dgs0UxDT.js} +1 -1
  231. package/core/built/admin/assets/{use-simple-pagination-zyklfekn.js → use-simple-pagination-Cj2rVggA.js} +1 -1
  232. package/core/built/admin/assets/{user-round-check-DoaGU2hC.js → user-round-check-C0GdT99c.js} +1 -1
  233. package/core/built/admin/assets/{user-round-x-CwEKNuU6.js → user-round-x-CVCvxuUG.js} +1 -1
  234. package/core/built/admin/assets/{virtual-list-window-C0Cv0gUC.js → virtual-list-window-mdQS2bt_.js} +1 -1
  235. package/core/built/admin/assets/{wallet-cards-BjdG5glh.js → wallet-cards-CtLF01jQ.js} +1 -1
  236. package/core/built/admin/assets/{web-BZNnanCT.js → web-DTib8_n8.js} +1 -1
  237. package/core/built/admin/index.html +6 -6
  238. package/core/frontend/helpers/ghost_foot.js +12 -2
  239. package/core/frontend/helpers/prev_post.js +1 -1
  240. package/core/frontend/helpers/tpl/gift-toast.hbs +130 -0
  241. package/core/frontend/services/proxy.js +9 -0
  242. package/core/frontend/services/routing/controllers/entry/canonical-url.js +15 -0
  243. package/core/frontend/services/routing/controllers/entry/canonical-url.ts +14 -0
  244. package/core/frontend/services/routing/controllers/entry/gift-links.js +82 -0
  245. package/core/frontend/services/routing/controllers/entry/gift-links.ts +92 -0
  246. package/core/frontend/services/routing/controllers/entry/markdown.js +62 -0
  247. package/core/frontend/services/routing/controllers/entry/markdown.ts +66 -0
  248. package/core/frontend/services/routing/controllers/entry.js +96 -105
  249. package/core/frontend/services/routing/controllers/entry.ts +97 -0
  250. package/core/frontend/services/routing/controllers/index.js +1 -1
  251. package/core/frontend/web/middleware/frontend-caching.js +9 -0
  252. package/core/server/adapters/cache/Redis.js +0 -1
  253. package/core/server/adapters/redirects/RedirectsStoreBase.d.ts +0 -4
  254. package/core/server/adapters/scheduling/scheduling-default.js +8 -1
  255. package/core/server/api/endpoints/gift-links.js +23 -16
  256. package/core/server/api/endpoints/gift-links.ts +25 -17
  257. package/core/server/api/endpoints/index.js +0 -1
  258. package/core/server/api/endpoints/previews.js +3 -24
  259. package/core/server/api/endpoints/utils/serializers/output/gift-links.js +4 -4
  260. package/core/server/api/endpoints/utils/serializers/output/gift-links.ts +4 -4
  261. package/core/server/api/endpoints/utils/serializers/output/index.js +0 -1
  262. package/core/server/api/endpoints/utils/validators/input/automation_email_previews.js +8 -9
  263. package/core/server/api/endpoints/utils/validators/input/index.js +0 -1
  264. package/core/server/data/migrations/versions/6.48/2026-06-23-00-00-00-drop-gift-links-revoked-at.js +6 -0
  265. package/core/server/data/migrations/versions/6.48/2026-06-23-00-00-01-rename-gift-links-revoke-all-permission-to-remove-all.js +37 -0
  266. package/core/server/data/migrations/versions/6.48/2026-06-24-00-00-00-drop-gift-links-redemption-columns.js +10 -0
  267. package/core/server/data/schema/fixtures/fixtures.json +2 -2
  268. package/core/server/data/schema/schema.js +1 -4
  269. package/core/server/data/seeders/data-generator.js +4 -1
  270. package/core/server/data/seeders/importers/members-login-events-importer.js +0 -1
  271. package/core/server/data/seeders/importers/members-newsletters-importer.js +0 -1
  272. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +0 -1
  273. package/core/server/data/seeders/importers/members-status-events-importer.js +0 -1
  274. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +0 -1
  275. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +0 -1
  276. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +0 -1
  277. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +0 -1
  278. package/core/server/lib/lexical.js +62 -36
  279. package/core/server/lib/post-revisions.js +0 -2
  280. package/core/server/lib/post-revisions.ts +0 -3
  281. package/core/server/models/index.js +0 -3
  282. package/core/server/services/auth/reset-authentication.js +0 -2
  283. package/core/server/services/auth/reset-authentication.ts +0 -3
  284. package/core/server/services/auth/session/index.js +0 -1
  285. package/core/server/services/automations/automations-api.js +59 -17
  286. package/core/server/services/automations/automations-api.ts +69 -16
  287. package/core/server/services/automations/database-automations-repository.js +58 -3
  288. package/core/server/services/automations/database-automations-repository.ts +70 -3
  289. package/core/server/services/automations/stale-lock-cutoff.js +7 -0
  290. package/core/server/services/automations/stale-lock-cutoff.ts +5 -0
  291. package/core/server/services/email-address/email-address-parser.js.d.ts +0 -1
  292. package/core/server/services/email-service/batch-sending-service.js +99 -26
  293. package/core/server/services/email-service/email-service-wrapper.js +7 -2
  294. package/core/server/services/email-service/email-service.js +146 -4
  295. package/core/server/services/gift-links/database.js +0 -3
  296. package/core/server/services/gift-links/database.ts +1 -4
  297. package/core/server/services/gift-links/index.js +2 -2
  298. package/core/server/services/gift-links/index.ts +4 -2
  299. package/core/server/services/gift-links/models.js +0 -2
  300. package/core/server/services/gift-links/models.ts +0 -2
  301. package/core/server/services/gift-links/queries.js +2 -2
  302. package/core/server/services/gift-links/queries.ts +2 -2
  303. package/core/server/services/gift-links/serializers.js +0 -2
  304. package/core/server/services/gift-links/serializers.ts +0 -2
  305. package/core/server/services/gift-links/service.js +54 -35
  306. package/core/server/services/gift-links/service.ts +70 -35
  307. package/core/server/services/gifts/gift-reminder-scheduler.js +0 -2
  308. package/core/server/services/gifts/gift-reminder-scheduler.ts +0 -2
  309. package/core/server/services/indexnow.js +8 -1
  310. package/core/server/services/internal-keys/index.js +0 -1
  311. package/core/server/services/internal-keys/index.ts +0 -2
  312. package/core/server/services/lib/dynamic-redirect-manager.d.ts +0 -1
  313. package/core/server/services/lib/in-memory-repository.js +0 -1
  314. package/core/server/services/lib/in-memory-repository.ts +0 -2
  315. package/core/server/services/members/api.js +0 -3
  316. package/core/server/services/members/create-paid-member-shim.js +31 -0
  317. package/core/server/services/members/create-paid-member-shim.ts +31 -0
  318. package/core/server/services/members/emails/signin.js +0 -1
  319. package/core/server/services/members/members-api/members-api.js +0 -2
  320. package/core/server/services/members/members-api/repositories/member-repository.js +0 -3
  321. package/core/server/services/members/service.js +4 -0
  322. package/core/server/services/post-scheduling/index.js +0 -2
  323. package/core/server/services/post-scheduling/index.ts +0 -2
  324. package/core/server/services/post-scheduling/post-scheduling.js +0 -5
  325. package/core/server/services/post-scheduling/post-scheduling.ts +0 -5
  326. package/core/server/services/recommendations/service/bookshelf-repository.js +0 -1
  327. package/core/server/services/recommendations/service/bookshelf-repository.ts +0 -4
  328. package/core/server/services/recommendations/service/incoming-recommendation-service.js +0 -1
  329. package/core/server/services/recommendations/service/incoming-recommendation-service.ts +0 -1
  330. package/core/server/services/recommendations/service/recommendation-controller.js +0 -1
  331. package/core/server/services/recommendations/service/recommendation-controller.ts +0 -1
  332. package/core/server/services/recommendations/service/recommendation-metadata-service.js +0 -1
  333. package/core/server/services/recommendations/service/recommendation-metadata-service.ts +0 -1
  334. package/core/server/services/recommendations/service/recommendation.js +0 -1
  335. package/core/server/services/recommendations/service/recommendation.ts +0 -1
  336. package/core/server/services/remote-flags/index.js +0 -1
  337. package/core/server/services/remote-flags/index.ts +0 -1
  338. package/core/server/services/slack.js +5 -1
  339. package/core/server/services/update-check/index.js +0 -1
  340. package/core/server/services/url/lazy-find-resource.js +0 -1
  341. package/core/server/services/url/lazy-find-resource.ts +0 -2
  342. package/core/server/services/url/lazy-url-service.js +0 -1
  343. package/core/server/services/url/lazy-url-service.ts +0 -2
  344. package/core/server/services/url/permalink-matcher.js +0 -1
  345. package/core/server/services/url/permalink-matcher.ts +0 -2
  346. package/core/server/services/url/router-filter.js +0 -2
  347. package/core/server/services/url/router-filter.ts +0 -2
  348. package/core/server/services/url/url-service-facade.js +0 -1
  349. package/core/server/services/url/url-service-facade.ts +0 -2
  350. package/core/server/services/verification/verification-webhook-service.js +0 -1
  351. package/core/server/services/verification/verification-webhook-service.ts +0 -1
  352. package/core/server/web/api/endpoints/admin/routes.js +7 -7
  353. package/core/shared/events-ts/post-deleted-event.js +0 -2
  354. package/core/shared/events-ts/post-deleted-event.ts +0 -2
  355. package/core/shared/labs.js +0 -1
  356. package/package.json +8 -16
  357. package/pnpm-lock.yaml +162 -113
  358. package/core/built/admin/assets/automations-BthXBzzq.js +0 -1
  359. package/core/built/admin/assets/editor-91xrI2A3.js +0 -8
  360. package/core/built/admin/assets/index-BYb09f-7.css +0 -1
  361. package/core/built/admin/assets/minus-DmrVsJ-z.js +0 -1
  362. package/core/built/admin/assets/modals-dnqxCS3l.js +0 -35
  363. package/core/server/models/outbox.js +0 -24
  364. package/core/server/services/outbox/events/start-outbox-processing-event.js +0 -22
  365. package/core/server/services/outbox/handlers/member-created.js +0 -85
  366. package/core/server/services/outbox/index.js +0 -49
  367. package/core/server/services/outbox/jobs/index.js +0 -30
  368. package/core/server/services/outbox/jobs/lib/constants.js +0 -17
  369. package/core/server/services/outbox/jobs/lib/process-entries.js +0 -117
  370. package/core/server/services/outbox/jobs/lib/process-outbox.js +0 -96
  371. package/core/server/services/outbox/jobs/outbox-job.js +0 -36
  372. package/types/ghost-storage-base.d.ts +0 -22
@@ -0,0 +1,8 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./koenig-lexical-B9U3sBS5.js","./index-C-075SzJ.js","./index-BNtzAd7H.css"])))=>i.map(i=>d[i]);
2
+ import{ed as E,eX as yc,d$ as u,bC as wc,q as vc,bm as bc,cL as gt,cS as $r,bj as Ec,V as _c,bN as Sc,aN as Nc,cP as Cc,ax as Mc,aQ as kc,L as jc,bp as Ic,bq as Ac,aO as Pc,u as Dc,b$ as Tc,b_ as Rc,bE as Lr,cJ as ie,O as zc,K as Br,Q as Oc,eh as $c,ei as Lc,di as Bc,d2 as le,ec as Hc,bd as an,c9 as Vc,c7 as Fc,ca as Wc,c8 as Yc,be as Hr,bh as Vr,bg as Fr,eO as Zn,eP as Xc,dv as Gn,fe as Uc,eK as Wr,aU as Ve,ct as Zc,eY as Gc,aL as qn,J as ce,aP as Yr,dV as Kn,dA as Xr,el as qc,fh as Kc,_ as Qc,a1 as Jc,a5 as el,f as qe,i as Ke,l as Qe,m as Je,j as et,k as tt,h as nt,a8 as tl,af as nl,dc as Wt,aa as ol,ac as Mo,ae as rl,ad as sl,cq as Ur,cb as Zr,fn as il,fq as al,fF as cl,D as ll,bP as ul,aS as dl,v as fl,bW as hl,fx as pl,eJ as gl,es as _n}from"./index-C-075SzJ.js";import{M as Qn}from"./mail-DvrqP73n.js";import{C as Jn,M as ml,P as xl}from"./power-BZ7BM82m.js";import{a as Be,c as ko,b as jo,d as yl,i as Sn}from"./value-BTdN53H7.js";import{i as wl,j as vl,g as bl,k as El,h as _l,f as Sl,v as Nl,a as Cl,e as Ml}from"./automated-emails-DInKYTEC.js";import{g as kl,e as jl,M as Io,r as Il,b as Al,u as Ao,i as Pl,a as Dl,A as Tl,f as Rl,d as zl}from"./automations-DJpeZw9T.js";import{T as Ol,b as $l,c as Po}from"./tabs-BZosOk0o.js";import{a as Ll}from"./newsletters-3In8H0Z5.js";import{S as Bl}from"./send-QgRN_yRy.js";import{M as Gr}from"./minus-DJIePlnU.js";import{b as Hl,F as Vl,c as Fl}from"./field-DeNjwWrL.js";import{I as Wl,c as Yl,d as Xl,a as Ul,b as Do}from"./input-group-BLygwiDK.js";import{P as qr}from"./pencil-CknTbJeE.js";import{C as Zl,E as Gl}from"./eye-6POPPpTw.js";import"./offers-Cl0ZNEMr.js";import"./posts-DODOCB1E.js";import"./nql-X2E2VBtR.js";import"./label-DpTwHQi_.js";function ql(e){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,On={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Kr(e,t,n,o,r,s){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,l/=a),e*o<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:r,translateY:s,rotate:Math.atan2(t,e)*To,skewX:Math.atan(l)*To,scaleX:i,scaleY:a}}var zt;function Kl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?On:Kr(t.a,t.b,t.c,t.d,t.e,t.f)}function Ql(e){return e==null||(zt||(zt=document.createElementNS("http://www.w3.org/2000/svg","g")),zt.setAttribute("transform",e),!(e=zt.transform.baseVal.consolidate()))?On:(e=e.matrix,Kr(e.a,e.b,e.c,e.d,e.e,e.f))}function Qr(e,t,n,o){function r(c){return c.length?c.pop()+" ":""}function s(c,d,f,h,g,p){if(c!==f||d!==h){var x=g.push("translate(",null,t,null,n);p.push({i:x-4,x:Be(c,f)},{i:x-2,x:Be(d,h)})}else(f||h)&&g.push("translate("+f+t+h+n)}function i(c,d,f,h){c!==d?(c-d>180?d+=360:d-c>180&&(c+=360),h.push({i:f.push(r(f)+"rotate(",null,o)-2,x:Be(c,d)})):d&&f.push(r(f)+"rotate("+d+o)}function a(c,d,f,h){c!==d?h.push({i:f.push(r(f)+"skewX(",null,o)-2,x:Be(c,d)}):d&&f.push(r(f)+"skewX("+d+o)}function l(c,d,f,h,g,p){if(c!==f||d!==h){var x=g.push(r(g)+"scale(",null,",",null,")");p.push({i:x-4,x:Be(c,f)},{i:x-2,x:Be(d,h)})}else(f!==1||h!==1)&&g.push(r(g)+"scale("+f+","+h+")")}return function(c,d){var f=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,f,h),i(c.rotate,d.rotate,f,h),a(c.skewX,d.skewX,f,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,f,h),c=d=null,function(g){for(var p=-1,x=h.length,w;++p<x;)f[(w=h[p]).i]=w.x(g);return f.join("")}}}var Jl=Qr(Kl,"px, ","px)","deg)"),eu=Qr(Ql,", ",")",")"),tu=1e-12;function Ro(e){return((e=Math.exp(e))+1/e)/2}function nu(e){return((e=Math.exp(e))-1/e)/2}function ou(e){return((e=Math.exp(2*e))-1)/(e+1)}const Yt=(function e(t,n,o){function r(s,i){var a=s[0],l=s[1],c=s[2],d=i[0],f=i[1],h=i[2],g=d-a,p=f-l,x=g*g+p*p,w,y;if(x<tu)y=Math.log(h/c)/t,w=function(I){return[a+I*g,l+I*p,c*Math.exp(t*I*y)]};else{var _=Math.sqrt(x),m=(h*h-c*c+o*x)/(2*c*n*_),v=(h*h-c*c-o*x)/(2*h*n*_),N=Math.log(Math.sqrt(m*m+1)-m),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-N)/t,w=function(I){var A=I*y,P=Ro(N),H=c/(n*_)*(P*ou(t*A+N)-nu(N));return[a+H*g,l+H*p,c*P/Ro(t*A+N)]}}return w.duration=y*1e3*t/Math.SQRT2,w}return r.rho=function(s){var i=Math.max(.001,+s),a=i*i,l=a*a;return e(i,a,l)},r})(Math.SQRT2,2,4);var cn="ContextMenu",[ru]=Cc(cn,[$r]),de=$r(),[su,Jr]=ru(cn),es=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:o,open:r,dir:s,modal:i=!0}=e,a=E.useRef(!1);{const f=E.useRef(!1);E.useEffect(()=>{r===!0&&!a.current&&!f.current&&(f.current=!0,console.warn("ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport."))},[r])}const[l,c]=yc({prop:r,defaultProp:!1,onChange:o,caller:cn}),d=de(t);return u.jsx(su,{scope:t,open:l,onOpenChange:c,modal:i,hasInteractedRef:a,children:u.jsx(wc,{...d,dir:s,open:l,onOpenChange:c,modal:i,children:n})})};es.displayName=cn;var ts="ContextMenuTrigger",ns=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:o=!1,...r}=e,s=Jr(ts,n),i=de(n),a=E.useRef({x:0,y:0}),l=E.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),c=E.useRef(0),d=E.useCallback(()=>window.clearTimeout(c.current),[]),f=h=>{s.hasInteractedRef.current=!0,a.current={x:h.clientX,y:h.clientY},s.onOpenChange(!0)};return E.useEffect(()=>d,[d]),E.useEffect(()=>{o&&d()},[o,d]),u.jsxs(u.Fragment,{children:[u.jsx(vc,{...i,virtualRef:l}),u.jsx(bc.span,{"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,...r,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:o?e.onContextMenu:gt(e.onContextMenu,h=>{d(),f(h),h.preventDefault()}),onPointerDown:o?e.onPointerDown:gt(e.onPointerDown,Ot(h=>{d(),s.open&&s.onOpenChange(!1),c.current=window.setTimeout(()=>f(h),700)})),onPointerMove:o?e.onPointerMove:gt(e.onPointerMove,Ot(d)),onPointerCancel:o?e.onPointerCancel:gt(e.onPointerCancel,Ot(d)),onPointerUp:o?e.onPointerUp:gt(e.onPointerUp,Ot(d))})]})});ns.displayName=ts;var iu="ContextMenuPortal",os=e=>{const{__scopeContextMenu:t,...n}=e,o=de(t);return u.jsx(Ec,{...o,...n})};os.displayName=iu;var rs="ContextMenuContent",ss=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=Jr(rs,n),s=de(n),i=E.useRef(!1);return u.jsx(_c,{...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)"}})});ss.displayName=rs;var au="ContextMenuGroup",cu=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Mc,{...r,...o,ref:t})});cu.displayName=au;var lu="ContextMenuLabel",is=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(kc,{...r,...o,ref:t})});is.displayName=lu;var uu="ContextMenuItem",as=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Nc,{...r,...o,ref:t})});as.displayName=uu;var du="ContextMenuCheckboxItem",cs=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(jc,{...r,...o,ref:t})});cs.displayName=du;var fu="ContextMenuRadioGroup",hu=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Ic,{...r,...o,ref:t})});hu.displayName=fu;var pu="ContextMenuRadioItem",ls=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Ac,{...r,...o,ref:t})});ls.displayName=pu;var gu="ContextMenuItemIndicator",us=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Pc,{...r,...o,ref:t})});us.displayName=gu;var mu="ContextMenuSeparator",ds=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Sc,{...r,...o,ref:t})});ds.displayName=mu;var xu="ContextMenuArrow",yu=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Dc,{...r,...o,ref:t})});yu.displayName=xu;var wu="ContextMenuSubTrigger",fs=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Tc,{...r,...o,ref:t})});fs.displayName=wu;var vu="ContextMenuSubContent",hs=E.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=de(n);return u.jsx(Rc,{...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)"}})});hs.displayName=vu;function Ot(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var bu=es,Eu=ns,_u=os,ps=ss,gs=is,ms=as,xs=cs,ys=ls,ws=us,vs=ds,bs=fs,Es=hs;const Su=bu,Nu=Eu,Cu=E.forwardRef(({className:e,inset:t,children:n,...o},r)=>u.jsxs(bs,{ref:r,className:ie("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(zc,{className:"ml-auto"})]}));Cu.displayName=bs.displayName;const Mu=E.forwardRef(({className:e,...t},n)=>u.jsx("div",{className:Lr,children:u.jsx(Es,{ref:n,className:ie("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})}));Mu.displayName=Es.displayName;const _s=E.forwardRef(({className:e,...t},n)=>u.jsx(_u,{children:u.jsx("div",{className:Lr,children:u.jsx(ps,{ref:n,className:ie("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})})}));_s.displayName=ps.displayName;const Ss=E.forwardRef(({className:e,inset:t,variant:n="default",...o},r)=>u.jsx(ms,{ref:r,className:ie("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}));Ss.displayName=ms.displayName;const ku=E.forwardRef(({className:e,children:t,checked:n,...o},r)=>u.jsxs(xs,{ref:r,checked:n,className:ie("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(ws,{children:u.jsx(Br,{className:"size-4"})})}),t]}));ku.displayName=xs.displayName;const ju=E.forwardRef(({className:e,children:t,...n},o)=>u.jsxs(ys,{ref:o,className:ie("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(ws,{children:u.jsx(Oc,{className:"size-2 fill-current"})})}),t]}));ju.displayName=ys.displayName;const Iu=E.forwardRef(({className:e,inset:t,...n},o)=>u.jsx(gs,{ref:o,className:ie("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));Iu.displayName=gs.displayName;const Ns=E.forwardRef(({className:e,...t},n)=>u.jsx(vs,{ref:n,className:ie("-mx-1 my-1 h-px bg-muted",e),...t}));Ns.displayName=vs.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})]})]}),Cs=({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:Qn,label:"Email",onClick:()=>e("send_email")}),u.jsx(zo,{description:"Add a delay before the next step",icon:Jn,label:"Wait",onClick:()=>e("wait")})]});function ae(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=ae(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Au={value:()=>{}};function ln(){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 Xt(n)}function Xt(e){this._=e}function Pu(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}})}Xt.prototype=ln.prototype={constructor:Xt,on:function(e,t){var n=this._,o=Pu(e+"",n),r,s=-1,i=o.length;if(arguments.length<2){for(;++s<i;)if((r=(e=o[s]).type)&&(r=Du(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]=Oo(n[r],e.name,t);else if(t==null)for(r in n)n[r]=Oo(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 Xt(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 Du(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function Oo(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=Au,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var $n="http://www.w3.org/1999/xhtml";const $o={svg:"http://www.w3.org/2000/svg",xhtml:$n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function un(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),$o.hasOwnProperty(t)?{space:$o[t],local:e}:e}function Tu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===$n&&t.documentElement.namespaceURI===$n?t.createElement(e):t.createElementNS(n,e)}}function Ru(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ms(e){var t=un(e);return(t.local?Ru:Tu)(t)}function zu(){}function eo(e){return e==null?zu:function(){return this.querySelector(e)}}function Ou(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),l,c,d=0;d<i;++d)(l=s[d])&&(c=e.call(l,l.__data__,d,s))&&("__data__"in l&&(c.__data__=l.__data__),a[d]=c);return new ge(o,this._parents)}function $u(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Lu(){return[]}function ks(e){return e==null?Lu:function(){return this.querySelectorAll(e)}}function Bu(e){return function(){return $u(e.apply(this,arguments))}}function Hu(e){typeof e=="function"?e=Bu(e):e=ks(e);for(var t=this._groups,n=t.length,o=[],r=[],s=0;s<n;++s)for(var i=t[s],a=i.length,l,c=0;c<a;++c)(l=i[c])&&(o.push(e.call(l,l.__data__,c,i)),r.push(l));return new ge(o,r)}function js(e){return function(){return this.matches(e)}}function Is(e){return function(t){return t.matches(e)}}var Vu=Array.prototype.find;function Fu(e){return function(){return Vu.call(this.children,e)}}function Wu(){return this.firstElementChild}function Yu(e){return this.select(e==null?Wu:Fu(typeof e=="function"?e:Is(e)))}var Xu=Array.prototype.filter;function Uu(){return Array.from(this.children)}function Zu(e){return function(){return Xu.call(this.children,e)}}function Gu(e){return this.selectAll(e==null?Uu:Zu(typeof e=="function"?e:Is(e)))}function qu(e){typeof e!="function"&&(e=js(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]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new ge(o,this._parents)}function As(e){return new Array(e.length)}function Ku(){return new ge(this._enter||this._groups.map(As),this._parents)}function Qt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Qt.prototype={constructor:Qt,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 Qu(e){return function(){return e}}function Ju(e,t,n,o,r,s){for(var i=0,a,l=t.length,c=s.length;i<c;++i)(a=t[i])?(a.__data__=s[i],o[i]=a):n[i]=new Qt(e,s[i]);for(;i<l;++i)(a=t[i])&&(r[i]=a)}function ed(e,t,n,o,r,s,i){var a,l,c=new Map,d=t.length,f=s.length,h=new Array(d),g;for(a=0;a<d;++a)(l=t[a])&&(h[a]=g=i.call(l,l.__data__,a,t)+"",c.has(g)?r[a]=l:c.set(g,l));for(a=0;a<f;++a)g=i.call(e,s[a],a,s)+"",(l=c.get(g))?(o[a]=l,l.__data__=s[a],c.delete(g)):n[a]=new Qt(e,s[a]);for(a=0;a<d;++a)(l=t[a])&&c.get(h[a])===l&&(r[a]=l)}function td(e){return e.__data__}function nd(e,t){if(!arguments.length)return Array.from(this,td);var n=t?ed:Ju,o=this._parents,r=this._groups;typeof e!="function"&&(e=Qu(e));for(var s=r.length,i=new Array(s),a=new Array(s),l=new Array(s),c=0;c<s;++c){var d=o[c],f=r[c],h=f.length,g=od(e.call(d,d&&d.__data__,c,o)),p=g.length,x=a[c]=new Array(p),w=i[c]=new Array(p),y=l[c]=new Array(h);n(d,f,x,w,y,g,t);for(var _=0,m=0,v,N;_<p;++_)if(v=x[_]){for(_>=m&&(m=_+1);!(N=w[m])&&++m<p;);v._next=N||null}}return i=new ge(i,o),i._enter=a,i._exit=l,i}function od(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function rd(){return new ge(this._exit||this._groups.map(As),this._parents)}function sd(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 id(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),l=0;l<i;++l)for(var c=n[l],d=o[l],f=c.length,h=a[l]=new Array(f),g,p=0;p<f;++p)(g=c[p]||d[p])&&(h[p]=g);for(;l<r;++l)a[l]=n[l];return new ge(a,this._parents)}function ad(){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 cd(e){e||(e=ld);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!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,l=r[s]=new Array(a),c,d=0;d<a;++d)(c=i[d])&&(l[d]=c);l.sort(t)}return new ge(r,this._parents).order()}function ld(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ud(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function dd(){return Array.from(this)}function fd(){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 hd(){let e=0;for(const t of this)++e;return e}function pd(){return!this.node()}function gd(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 md(e){return function(){this.removeAttribute(e)}}function xd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function yd(e,t){return function(){this.setAttribute(e,t)}}function wd(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function bd(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 Ed(e,t){var n=un(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?xd:md:typeof t=="function"?n.local?bd:vd:n.local?wd:yd)(n,t))}function Ps(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function _d(e){return function(){this.style.removeProperty(e)}}function Sd(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Nd(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function Cd(e,t,n){return arguments.length>1?this.each((t==null?_d:typeof t=="function"?Nd:Sd)(e,t,n??"")):it(this.node(),e)}function it(e,t){return e.style.getPropertyValue(t)||Ps(e).getComputedStyle(e,null).getPropertyValue(t)}function Md(e){return function(){delete this[e]}}function kd(e,t){return function(){this[e]=t}}function jd(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Id(e,t){return arguments.length>1?this.each((t==null?Md:typeof t=="function"?jd:kd)(e,t)):this.node()[e]}function Ds(e){return e.trim().split(/^|\s+/)}function to(e){return e.classList||new Ts(e)}function Ts(e){this._node=e,this._names=Ds(e.getAttribute("class")||"")}Ts.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 Rs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function zs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Ad(e){return function(){Rs(this,e)}}function Pd(e){return function(){zs(this,e)}}function Dd(e,t){return function(){(t.apply(this,arguments)?Rs:zs)(this,e)}}function Td(e,t){var n=Ds(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"?Dd:t?Ad:Pd)(n,t))}function Rd(){this.textContent=""}function zd(e){return function(){this.textContent=e}}function Od(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function $d(e){return arguments.length?this.each(e==null?Rd:(typeof e=="function"?Od:zd)(e)):this.node().textContent}function Ld(){this.innerHTML=""}function Bd(e){return function(){this.innerHTML=e}}function Hd(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Vd(e){return arguments.length?this.each(e==null?Ld:(typeof e=="function"?Hd:Bd)(e)):this.node().innerHTML}function Fd(){this.nextSibling&&this.parentNode.appendChild(this)}function Wd(){return this.each(Fd)}function Yd(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xd(){return this.each(Yd)}function Ud(e){var t=typeof e=="function"?e:Ms(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Zd(){return null}function Gd(e,t){var n=typeof e=="function"?e:Ms(e),o=t==null?Zd:typeof t=="function"?t:eo(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function qd(){var e=this.parentNode;e&&e.removeChild(this)}function Kd(){return this.each(qd)}function Qd(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Jd(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ef(e){return this.select(e?Jd:Qd)}function tf(e){return arguments.length?this.property("__data__",e):this.node().__data__}function nf(e){return function(t){e.call(this,t,this.__data__)}}function of(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 rf(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 sf(e,t,n){return function(){var o=this.__on,r,s=nf(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 af(e,t,n){var o=of(e+""),r,s=o.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,d;l<c;++l)for(r=0,d=a[l];r<s;++r)if((i=o[r]).type===d.type&&i.name===d.name)return d.value}return}for(a=t?sf:rf,r=0;r<s;++r)this.each(a(o[r],t,n));return this}function Os(e,t,n){var o=Ps(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 cf(e,t){return function(){return Os(this,e,t)}}function lf(e,t){return function(){return Os(this,e,t.apply(this,arguments))}}function uf(e,t){return this.each((typeof t=="function"?lf:cf)(e,t))}function*df(){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 $s=[null];function ge(e,t){this._groups=e,this._parents=t}function Pt(){return new ge([[document.documentElement]],$s)}function ff(){return this}ge.prototype=Pt.prototype={constructor:ge,select:Ou,selectAll:Hu,selectChild:Yu,selectChildren:Gu,filter:qu,data:nd,enter:Ku,exit:rd,join:sd,merge:id,selection:ff,order:ad,sort:cd,call:ud,nodes:dd,node:fd,size:hd,empty:pd,each:gd,attr:Ed,style:Cd,property:Id,classed:Td,text:$d,html:Vd,raise:Wd,lower:Xd,append:Ud,insert:Gd,remove:Kd,clone:ef,datum:tf,on:af,dispatch:uf,[Symbol.iterator]:df};function pe(e){return typeof e=="string"?new ge([[document.querySelector(e)]],[document.documentElement]):new ge([[e]],$s)}function hf(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ye(e,t){if(e=hf(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 pf={passive:!1},_t={capture:!0,passive:!1};function Nn(e){e.stopImmediatePropagation()}function st(e){e.preventDefault(),e.stopImmediatePropagation()}function Ls(e){var t=e.document.documentElement,n=pe(e).on("dragstart.drag",st,_t);"onselectstart"in t?n.on("selectstart.drag",st,_t):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Bs(e,t){var n=e.document.documentElement,o=pe(e).on("dragstart.drag",null);t&&(o.on("click.drag",st,_t),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 $t=e=>()=>e;function Ln(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:s,x:i,y:a,dx:l,dy:c,dispatch:d}){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:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}Ln.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function gf(e){return!e.ctrlKey&&!e.button}function mf(){return this.parentNode}function xf(e,t){return t??{x:e.x,y:e.y}}function yf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Hs(){var e=gf,t=mf,n=xf,o=yf,r={},s=ln("start","drag","end"),i=0,a,l,c,d,f=0;function h(v){v.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",y,pf).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(v,N){if(!(d||!e.call(this,v,N))){var S=m(this,t.call(this,v,N),v,N,"mouse");S&&(pe(v.view).on("mousemove.drag",p,_t).on("mouseup.drag",x,_t),Ls(v.view),Nn(v),c=!1,a=v.clientX,l=v.clientY,S("start",v))}}function p(v){if(st(v),!c){var N=v.clientX-a,S=v.clientY-l;c=N*N+S*S>f}r.mouse("drag",v)}function x(v){pe(v.view).on("mousemove.drag mouseup.drag",null),Bs(v.view,c),st(v),r.mouse("end",v)}function w(v,N){if(e.call(this,v,N)){var S=v.changedTouches,I=t.call(this,v,N),A=S.length,P,H;for(P=0;P<A;++P)(H=m(this,I,v,N,S[P].identifier,S[P]))&&(Nn(v),H("start",v,S[P]))}}function y(v){var N=v.changedTouches,S=N.length,I,A;for(I=0;I<S;++I)(A=r[N[I].identifier])&&(st(v),A("drag",v,N[I]))}function _(v){var N=v.changedTouches,S=N.length,I,A;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),I=0;I<S;++I)(A=r[N[I].identifier])&&(Nn(v),A("end",v,N[I]))}function m(v,N,S,I,A,P){var H=s.copy(),j=ye(P||S,N),R,$,b;if((b=n.call(v,new Ln("beforestart",{sourceEvent:S,target:h,identifier:A,active:i,x:j[0],y:j[1],dx:0,dy:0,dispatch:H}),I))!=null)return R=b.x-j[0]||0,$=b.y-j[1]||0,function C(M,k,T){var D=j,L;switch(M){case"start":r[A]=C,L=i++;break;case"end":delete r[A],--i;case"drag":j=ye(T||k,N),L=i;break}H.call(M,v,new Ln(M,{sourceEvent:k,subject:b,target:h,identifier:A,active:L,x:j[0]+R,y:j[1]+$,dx:j[0]-D[0],dy:j[1]-D[1],dispatch:H}),I)}}return h.filter=function(v){return arguments.length?(e=typeof v=="function"?v:$t(!!v),h):e},h.container=function(v){return arguments.length?(t=typeof v=="function"?v:$t(v),h):t},h.subject=function(v){return arguments.length?(n=typeof v=="function"?v:$t(v),h):n},h.touchable=function(v){return arguments.length?(o=typeof v=="function"?v:$t(!!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?(f=(v=+v)*v,h):Math.sqrt(f)},h}var at=0,yt=0,mt=0,Vs=1e3,Jt,wt,en=0,Ye=0,dn=0,St=typeof performance=="object"&&performance.now?performance:Date,Fs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function no(){return Ye||(Fs(wf),Ye=St.now()+dn)}function wf(){Ye=0}function tn(){this._call=this._time=this._next=null}tn.prototype=Ws.prototype={constructor:tn,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&&wt!==this&&(wt?wt._next=this:Jt=this,wt=this),this._call=e,this._time=n,Bn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Bn())}};function Ws(e,t,n){var o=new tn;return o.restart(e,t,n),o}function vf(){no(),++at;for(var e=Jt,t;e;)(t=Ye-e._time)>=0&&e._call.call(void 0,t),e=e._next;--at}function Lo(){Ye=(en=St.now())+dn,at=yt=0;try{vf()}finally{at=0,Ef(),Ye=0}}function bf(){var e=St.now(),t=e-en;t>Vs&&(dn-=t,en=e)}function Ef(){for(var e,t=Jt,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:Jt=n);wt=e,Bn(o)}function Bn(e){if(!at){yt&&(yt=clearTimeout(yt));var t=e-Ye;t>24?(e<1/0&&(yt=setTimeout(Lo,e-St.now()-dn)),mt&&(mt=clearInterval(mt))):(mt||(en=St.now(),mt=setInterval(bf,Vs)),at=1,Fs(Lo))}}function Bo(e,t,n){var o=new tn;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var _f=ln("start","end","cancel","interrupt"),Sf=[],Ys=0,Ho=1,Hn=2,Ut=3,Vo=4,Vn=5,Zt=6;function fn(e,t,n,o,r,s){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;Nf(e,n,{name:t,index:o,group:r,on:_f,tween:Sf,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Ys})}function oo(e,t){var n=Ee(e,t);if(n.state>Ys)throw new Error("too late; already scheduled");return n}function _e(e,t){var n=Ee(e,t);if(n.state>Ut)throw new Error("too late; already running");return n}function Ee(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Nf(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=Ws(s,0,n.time);function s(c){n.state=Ho,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var d,f,h,g;if(n.state!==Ho)return l();for(d in o)if(g=o[d],g.name===n.name){if(g.state===Ut)return Bo(i);g.state===Vo?(g.state=Zt,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[d]):+d<t&&(g.state=Zt,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete o[d])}if(Bo(function(){n.state===Ut&&(n.state=Vo,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=Hn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Hn){for(n.state=Ut,r=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(g=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(r[++f]=g);r.length=f+1}}function a(c){for(var d=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=Vn,1),f=-1,h=r.length;++f<h;)r[f].call(e,d);n.state===Vn&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Zt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function Gt(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>Hn&&o.state<Vn,o.state=Zt,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[i]}s&&delete e.__transition}}function Cf(e){return this.each(function(){Gt(this,e)})}function Mf(e,t){var n,o;return function(){var r=_e(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 kf(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var s=_e(this,e),i=s.tween;if(i!==o){r=(o=i).slice();for(var a={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=a;break}l===c&&r.push(a)}s.tween=r}}function jf(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=Ee(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?Mf:kf)(n,e,t))}function ro(e,t,n){var o=e._id;return e.each(function(){var r=_e(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return Ee(r,o).value[t]}}function Xs(e,t){var n;return(typeof t=="number"?Be:t instanceof ko?jo:(n=ko(t))?(t=n,jo):yl)(e,t)}function If(e){return function(){this.removeAttribute(e)}}function Af(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Pf(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 Df(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 Tf(e,t,n){var o,r,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a)))}}function Rf(e,t,n){var o,r,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a)))}}function zf(e,t){var n=un(e),o=n==="transform"?eu:Xs;return this.attrTween(e,typeof t=="function"?(n.local?Rf:Tf)(n,o,ro(this,"attr."+e,t)):t==null?(n.local?Af:If)(n):(n.local?Df:Pf)(n,o,t))}function Of(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function $f(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Lf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&$f(e,s)),n}return r._value=t,r}function Bf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&Of(e,s)),n}return r._value=t,r}function Hf(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=un(e);return this.tween(n,(o.local?Lf:Bf)(o,t))}function Vf(e,t){return function(){oo(this,e).delay=+t.apply(this,arguments)}}function Ff(e,t){return t=+t,function(){oo(this,e).delay=t}}function Wf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Vf:Ff)(t,e)):Ee(this.node(),t).delay}function Yf(e,t){return function(){_e(this,e).duration=+t.apply(this,arguments)}}function Xf(e,t){return t=+t,function(){_e(this,e).duration=t}}function Uf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Yf:Xf)(t,e)):Ee(this.node(),t).duration}function Zf(e,t){if(typeof t!="function")throw new Error;return function(){_e(this,e).ease=t}}function Gf(e){var t=this._id;return arguments.length?this.each(Zf(t,e)):Ee(this.node(),t).ease}function qf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;_e(this,e).ease=n}}function Kf(e){if(typeof e!="function")throw new Error;return this.each(qf(this._id,e))}function Qf(e){typeof e!="function"&&(e=js(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]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new Ie(o,this._parents,this._name,this._id)}function Jf(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 l=t[a],c=n[a],d=l.length,f=i[a]=new Array(d),h,g=0;g<d;++g)(h=l[g]||c[g])&&(f[g]=h);for(;a<o;++a)i[a]=t[a];return new Ie(i,this._parents,this._name,this._id)}function eh(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 th(e,t,n){var o,r,s=eh(t)?oo:_e;return function(){var i=s(this,e),a=i.on;a!==o&&(r=(o=a).copy()).on(t,n),i.on=r}}function nh(e,t){var n=this._id;return arguments.length<2?Ee(this.node(),n).on.on(e):this.each(th(n,e,t))}function oh(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function rh(){return this.on("end.remove",oh(this._id))}function sh(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],l=a.length,c=s[i]=new Array(l),d,f,h=0;h<l;++h)(d=a[h])&&(f=e.call(d,d.__data__,h,a))&&("__data__"in d&&(f.__data__=d.__data__),c[h]=f,fn(c[h],t,n,h,c,Ee(d,n)));return new Ie(s,this._parents,t,n)}function ih(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ks(e));for(var o=this._groups,r=o.length,s=[],i=[],a=0;a<r;++a)for(var l=o[a],c=l.length,d,f=0;f<c;++f)if(d=l[f]){for(var h=e.call(d,d.__data__,f,l),g,p=Ee(d,n),x=0,w=h.length;x<w;++x)(g=h[x])&&fn(g,t,n,x,h,p);s.push(h),i.push(d)}return new Ie(s,i,t,n)}var ah=Pt.prototype.constructor;function ch(){return new ah(this._groups,this._parents)}function lh(e,t){var n,o,r;return function(){var s=it(this,e),i=(this.style.removeProperty(e),it(this,e));return s===i?null:s===n&&i===o?r:r=t(n=s,o=i)}}function Us(e){return function(){this.style.removeProperty(e)}}function uh(e,t,n){var o,r=n+"",s;return function(){var i=it(this,e);return i===r?null:i===o?s:s=t(o=i,n)}}function dh(e,t,n){var o,r,s;return function(){var i=it(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),it(this,e))),i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a))}}function fh(e,t){var n,o,r,s="style."+t,i="end."+s,a;return function(){var l=_e(this,e),c=l.on,d=l.value[s]==null?a||(a=Us(t)):void 0;(c!==n||r!==d)&&(o=(n=c).copy()).on(i,r=d),l.on=o}}function hh(e,t,n){var o=(e+="")=="transform"?Jl:Xs;return t==null?this.styleTween(e,lh(e,o)).on("end.style."+e,Us(e)):typeof t=="function"?this.styleTween(e,dh(e,o,ro(this,"style."+e,t))).each(fh(this._id,e)):this.styleTween(e,uh(e,o,t),n).on("end.style."+e,null)}function ph(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function gh(e,t,n){var o,r;function s(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&ph(e,i,n)),o}return s._value=t,s}function mh(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,gh(e,t,n??""))}function xh(e){return function(){this.textContent=e}}function yh(e){return function(){var t=e(this);this.textContent=t??""}}function wh(e){return this.tween("text",typeof e=="function"?yh(ro(this,"text",e)):xh(e==null?"":e+""))}function vh(e){return function(t){this.textContent=e.call(this,t)}}function bh(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&vh(r)),t}return o._value=e,o}function Eh(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,bh(e))}function _h(){for(var e=this._name,t=this._id,n=Zs(),o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,l,c=0;c<a;++c)if(l=i[c]){var d=Ee(l,t);fn(l,e,n,c,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ie(o,this._parents,e,n)}function Sh(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(s,i){var a={value:i},l={value:function(){--r===0&&s()}};n.each(function(){var c=_e(this,o),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),r===0&&s()})}var Nh=0;function Ie(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Zs(){return++Nh}var Ce=Pt.prototype;Ie.prototype={constructor:Ie,select:sh,selectAll:ih,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:Qf,merge:Jf,selection:ch,transition:_h,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:nh,attr:zf,attrTween:Hf,style:hh,styleTween:mh,text:wh,textTween:Eh,remove:rh,tween:jf,delay:Wf,duration:Uf,ease:Gf,easeVarying:Kf,end:Sh,[Symbol.iterator]:Ce[Symbol.iterator]};function Ch(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Mh={time:null,delay:0,duration:250,ease:Ch};function kh(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 jh(e){var t,n;e instanceof Ie?(t=e._id,e=e._name):(t=Zs(),(n=Mh).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,l,c=0;c<a;++c)(l=i[c])&&fn(l,e,t,c,i,n||kh(l,t));return new Ie(o,this._parents,e,t)}Pt.prototype.interrupt=Cf;Pt.prototype.transition=jh;const Lt=e=>()=>e;function Ih(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 ke(e,t,n){this.k=e,this.x=t,this.y=n}ke.prototype={constructor:ke,scale:function(e){return e===1?this:new ke(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ke(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 hn=new ke(1,0,0);Gs.prototype=ke.prototype;function Gs(e){for(;!e.__zoom;)if(!(e=e.parentNode))return hn;return e.__zoom}function Cn(e){e.stopImmediatePropagation()}function xt(e){e.preventDefault(),e.stopImmediatePropagation()}function Ah(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Ph(){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||hn}function Dh(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Th(){return navigator.maxTouchPoints||"ontouchstart"in this}function Rh(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 qs(){var e=Ah,t=Ph,n=Rh,o=Dh,r=Th,s=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Yt,c=ln("start","zoom","end"),d,f,h,g=500,p=150,x=0,w=10;function y(b){b.property("__zoom",Fo).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",H).filter(r).on("touchstart.zoom",j).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(b,C,M,k){var T=b.selection?b.selection():b;T.property("__zoom",Fo),b!==T?N(b,C,M,k):T.interrupt().each(function(){S(this,arguments).event(k).start().zoom(null,typeof C=="function"?C.apply(this,arguments):C).end()})},y.scaleBy=function(b,C,M,k){y.scaleTo(b,function(){var T=this.__zoom.k,D=typeof C=="function"?C.apply(this,arguments):C;return T*D},M,k)},y.scaleTo=function(b,C,M,k){y.transform(b,function(){var T=t.apply(this,arguments),D=this.__zoom,L=M==null?v(T):typeof M=="function"?M.apply(this,arguments):M,B=D.invert(L),O=typeof C=="function"?C.apply(this,arguments):C;return n(m(_(D,O),L,B),T,i)},M,k)},y.translateBy=function(b,C,M,k){y.transform(b,function(){return n(this.__zoom.translate(typeof C=="function"?C.apply(this,arguments):C,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),i)},null,k)},y.translateTo=function(b,C,M,k,T){y.transform(b,function(){var D=t.apply(this,arguments),L=this.__zoom,B=k==null?v(D):typeof k=="function"?k.apply(this,arguments):k;return n(hn.translate(B[0],B[1]).scale(L.k).translate(typeof C=="function"?-C.apply(this,arguments):-C,typeof M=="function"?-M.apply(this,arguments):-M),D,i)},k,T)};function _(b,C){return C=Math.max(s[0],Math.min(s[1],C)),C===b.k?b:new ke(C,b.x,b.y)}function m(b,C,M){var k=C[0]-M[0]*b.k,T=C[1]-M[1]*b.k;return k===b.x&&T===b.y?b:new ke(b.k,k,T)}function v(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function N(b,C,M,k){b.on("start.zoom",function(){S(this,arguments).event(k).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(k).end()}).tween("zoom",function(){var T=this,D=arguments,L=S(T,D).event(k),B=t.apply(T,D),O=M==null?v(B):typeof M=="function"?M.apply(T,D):M,G=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),Z=T.__zoom,F=typeof C=="function"?C.apply(T,D):C,X=l(Z.invert(O).concat(G/Z.k),F.invert(O).concat(G/F.k));return function(Y){if(Y===1)Y=F;else{var z=X(Y),W=G/z[2];Y=new ke(W,O[0]-z[0]*W,O[1]-z[1]*W)}L.zoom(null,Y)}})}function S(b,C,M){return!M&&b.__zooming||new I(b,C)}function I(b,C){this.that=b,this.args=C,this.active=0,this.sourceEvent=null,this.extent=t.apply(b,C),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,C){return this.mouse&&b!=="mouse"&&(this.mouse[1]=C.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=C.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=C.invert(this.touch1[0])),this.that.__zoom=C,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var C=pe(this.that).datum();c.call(b,this.that,new Ih(b,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:c}),C)}};function A(b,...C){if(!e.apply(this,arguments))return;var M=S(this,C).event(b),k=this.__zoom,T=Math.max(s[0],Math.min(s[1],k.k*Math.pow(2,o.apply(this,arguments)))),D=ye(b);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=k.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(k.k===T)return;M.mouse=[D,k.invert(D)],Gt(this),M.start()}xt(b),M.wheel=setTimeout(L,p),M.zoom("mouse",n(m(_(k,T),M.mouse[0],M.mouse[1]),M.extent,i));function L(){M.wheel=null,M.end()}}function P(b,...C){if(h||!e.apply(this,arguments))return;var M=b.currentTarget,k=S(this,C,!0).event(b),T=pe(b.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",G,!0),D=ye(b,M),L=b.clientX,B=b.clientY;Ls(b.view),Cn(b),k.mouse=[D,this.__zoom.invert(D)],Gt(this),k.start();function O(Z){if(xt(Z),!k.moved){var F=Z.clientX-L,X=Z.clientY-B;k.moved=F*F+X*X>x}k.event(Z).zoom("mouse",n(m(k.that.__zoom,k.mouse[0]=ye(Z,M),k.mouse[1]),k.extent,i))}function G(Z){T.on("mousemove.zoom mouseup.zoom",null),Bs(Z.view,k.moved),xt(Z),k.event(Z).end()}}function H(b,...C){if(e.apply(this,arguments)){var M=this.__zoom,k=ye(b.changedTouches?b.changedTouches[0]:b,this),T=M.invert(k),D=M.k*(b.shiftKey?.5:2),L=n(m(_(M,D),k,T),t.apply(this,C),i);xt(b),a>0?pe(this).transition().duration(a).call(N,L,k,b):pe(this).call(y.transform,L,k,b)}}function j(b,...C){if(e.apply(this,arguments)){var M=b.touches,k=M.length,T=S(this,C,b.changedTouches.length===k).event(b),D,L,B,O;for(Cn(b),L=0;L<k;++L)B=M[L],O=ye(B,this),O=[O,this.__zoom.invert(O),B.identifier],T.touch0?!T.touch1&&T.touch0[2]!==O[2]&&(T.touch1=O,T.taps=0):(T.touch0=O,D=!0,T.taps=1+!!d);d&&(d=clearTimeout(d)),D&&(T.taps<2&&(f=O[0],d=setTimeout(function(){d=null},g)),Gt(this),T.start())}}function R(b,...C){if(this.__zooming){var M=S(this,C).event(b),k=b.changedTouches,T=k.length,D,L,B,O;for(xt(b),D=0;D<T;++D)L=k[D],B=ye(L,this),M.touch0&&M.touch0[2]===L.identifier?M.touch0[0]=B:M.touch1&&M.touch1[2]===L.identifier&&(M.touch1[0]=B);if(L=M.that.__zoom,M.touch1){var G=M.touch0[0],Z=M.touch0[1],F=M.touch1[0],X=M.touch1[1],Y=(Y=F[0]-G[0])*Y+(Y=F[1]-G[1])*Y,z=(z=X[0]-Z[0])*z+(z=X[1]-Z[1])*z;L=_(L,Math.sqrt(Y/z)),B=[(G[0]+F[0])/2,(G[1]+F[1])/2],O=[(Z[0]+X[0])/2,(Z[1]+X[1])/2]}else if(M.touch0)B=M.touch0[0],O=M.touch0[1];else return;M.zoom("touch",n(m(L,B,O),M.extent,i))}}function $(b,...C){if(this.__zooming){var M=S(this,C).event(b),k=b.changedTouches,T=k.length,D,L;for(Cn(b),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),D=0;D<T;++D)L=k[D],M.touch0&&M.touch0[2]===L.identifier?delete M.touch0:M.touch1&&M.touch1[2]===L.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(L=ye(L,this),Math.hypot(f[0]-L[0],f[1]-L[1])<w)){var B=pe(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return y.wheelDelta=function(b){return arguments.length?(o=typeof b=="function"?b:Lt(+b),y):o},y.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Lt(!!b),y):e},y.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:Lt(!!b),y):r},y.extent=function(b){return arguments.length?(t=typeof b=="function"?b:Lt([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),y):t},y.scaleExtent=function(b){return arguments.length?(s[0]=+b[0],s[1]=+b[1],y):[s[0],s[1]]},y.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],y):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},y.constrain=function(b){return arguments.length?(n=b,y):n},y.duration=function(b){return arguments.length?(a=+b,y):a},y.interpolate=function(b){return arguments.length?(l=b,y):l},y.on=function(){var b=c.on.apply(c,arguments);return b===c?y:b},y.clickDistance=function(b){return arguments.length?(x=(b=+b)*b,y):Math.sqrt(x)},y.tapDistance=function(b){return arguments.length?(w=+b,y):w},y}const be={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.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 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.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Nt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Ks=["Enter"," ","Escape"],Qs={"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 ct;(function(e){e.Strict="strict",e.Loose="loose"})(ct||(ct={}));var We;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(We||(We={}));var Ct;(function(e){e.Partial="partial",e.Full="full"})(Ct||(Ct={}));const Js={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ze;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ze||(ze={}));var nn;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(nn||(nn={}));var K;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(K||(K={}));const Wo={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function ei(e){return e===null?null:e?"valid":"invalid"}const ti=e=>"id"in e&&"source"in e&&"target"in e,zh=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),Dt=(e,t=[0,0])=>{const{width:n,height:o}=Ae(e),r=e.origin??t,s=n*r[0],i=o*r[1];return{x:e.position.x-s,y:e.position.y-i}},Oh=(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?on(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return pn(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return gn(n)},Tt=(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=pn(n,on(r)),o=!0)}),o?gn(n):{x:0,y:0,width:0,height:0}},io=(e,t,[n,o,r]=[0,0,1],s=!1,i=!1)=>{const a={...pt(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(const c of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=c;if(i&&!f||h)continue;const g=d.width??c.width??c.initialWidth??null,p=d.height??c.height??c.initialHeight??null,x=Mt(a,ut(c)),w=(g??0)*(p??0),y=s&&x>0;(!c.internals.handleBounds||y||x>=w||c.dragging)&&l.push(c)}return l},$h=(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 Lh(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 Bh({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:s},i){if(e.size===0)return!0;const a=Lh(e,i),l=Tt(a),c=co(l,t,n,i?.minZoom??r,i?.maxZoom??s,i?.padding??.1);return await o.setViewport(c,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),!0}function ni({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:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=i.origin??o;let f=i.extent||r;if(i.extent==="parent"&&!i.expandParent)if(!a)s?.("005",be.error005());else{const g=a.measured.width,p=a.measured.height;g&&p&&(f=[[l,c],[l+g,c+p]])}else a&&Ue(i.extent)&&(f=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const h=Ue(f)?Xe(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&s?.("015",be.error015()),{position:{x:h.x-l+(i.measured.width??0)*d[0],y:h.y-c+(i.measured.height??0)*d[1]},positionAbsolute:h}}async function Hh({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(x=>x.id===h.parentId);(g||p)&&i.push(h)}const a=new Set(t.map(h=>h.id)),l=o.filter(h=>h.deletable!==!1),d=$h(i,l);for(const h of l)a.has(h.id)&&!d.find(p=>p.id===h.id)&&d.push(h);if(!r)return{edges:d,nodes:i};const f=await r({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const lt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xe=(e={x:0,y:0},t,n)=>({x:lt(e.x,t[0][0],t[1][0]-(n?.width??0)),y:lt(e.y,t[0][1],t[1][1]-(n?.height??0))});function oi(e,t,n){const{width:o,height:r}=Ae(n),{x:s,y:i}=n.internals.positionAbsolute;return Xe(e,[[s,i],[s+o,i+r]],t)}const Yo=(e,t,n)=>e<t?lt(Math.abs(e-t),1,t)/t:e>n?-lt(Math.abs(e-n),1,t)/t:0,ao=(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]},pn=(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)}),Fn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),gn=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),ut=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:Dt(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}},on=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:Dt(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)}},ri=(e,t)=>gn(pn(Fn(e),Fn(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=>we(e.width)&&we(e.height)&&we(e.x)&&we(e.y),we=e=>!isNaN(e)&&isFinite(e),si=(e,t)=>(n,o)=>{},Rt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),pt=({x:e,y:t},[n,o,r],s=!1,i=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return s?Rt(a,i):a},dt=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Ge(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(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Vh(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ge(e,n),r=Ge(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Ge(e.top??e.y??0,n),r=Ge(e.bottom??e.y??0,n),s=Ge(e.left??e.x??0,t),i=Ge(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 Fh(e,t,n,o,r,s){const{x:i,y:a}=dt(e,[t,n,o]),{x:l,y:c}=dt({x:e.x+e.width,y:e.y+e.height},[t,n,o]),d=r-l,f=s-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(f)}}const co=(e,t,n,o,r,s)=>{const i=Vh(s,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Math.min(a,l),d=lt(c,o,r),f=e.x+e.width/2,h=e.y+e.height/2,g=t/2-f*d,p=n/2-h*d,x=Fh(e,g,p,d,t,n),w={left:Math.min(x.left-i.left,0),top:Math.min(x.top-i.top,0),right:Math.min(x.right-i.right,0),bottom:Math.min(x.bottom-i.bottom,0)};return{x:g-w.left+w.right,y:p-w.top+w.bottom,zoom:d}},kt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function Ue(e){return e!=null&&e!=="parent"}function Ae(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ii(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ai(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 Uo(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Wh(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Yh(e){return{...Qs,...e||{}}}function vt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:s,y:i}=ve(e),a=pt({x:s-(r?.left??0),y:i-(r?.top??0)},o),{x:l,y:c}=n?Rt(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const lo=e=>({width:e.offsetWidth,height:e.offsetHeight}),ci=e=>e?.getRootNode?.()||window?.document,Xh=["INPUT","SELECT","TEXTAREA"];function li(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Xh.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ui=e=>"clientX"in e,ve=(e,t)=>{const n=ui(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)}},Zo=(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,...lo(i)}})};function di({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:s,targetControlX:i,targetControlY:a}){const l=e*.125+r*.375+i*.375+n*.125,c=t*.125+s*.375+a*.375+o*.125,d=Math.abs(l-e),f=Math.abs(c-t);return[l,c,d,f]}function Bt(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 K.Left:return[t-Bt(t-o,s),n];case K.Right:return[t+Bt(o-t,s),n];case K.Top:return[t,n-Bt(n-r,s)];case K.Bottom:return[t,n+Bt(r-n,s)]}}function fi({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top,curvature:i=.25}){const[a,l]=Go({pos:n,x1:e,y1:t,x2:o,y2:r,c:i}),[c,d]=Go({pos:s,x1:o,y1:r,x2:e,y2:t,c:i}),[f,h,g,p]=di({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${o},${r}`,f,h,g,p]}function hi({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 Uh({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 Zh({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const s=pn(on(e),on(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,gn(s))>0}const Gh=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,qh=(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)),Kh=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",be.error006()),t;const o=n.getEdgeId||Gh;let r;return ti(e)?r={...e}:r={...e,id:o(e)},qh(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function pi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,s,i,a]=hi({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,s,i,a]}const qo={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},Qh=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.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 Jh({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:o=K.Top,center:r,offset:s,stepPosition:i}){const a=qo[t],l=qo[o],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},f=Qh({source:c,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",g=f[h];let p=[],x,w;const y={x:0,y:0},_={x:0,y:0},[,,m,v]=hi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(x=r.x??c.x+(d.x-c.x)*i,w=r.y??(c.y+d.y)/2):(x=r.x??(c.x+d.x)/2,w=r.y??c.y+(d.y-c.y)*i);const A=[{x,y:c.y},{x,y:d.y}],P=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===g?p=h==="x"?A:P:p=h==="x"?P:A}else{const A=[{x:c.x,y:d.y}],P=[{x:d.x,y:c.y}];if(h==="x"?p=a.x===g?P:A:p=a.y===g?A:P,t===o){const b=Math.abs(e[h]-n[h]);if(b<=s){const C=Math.min(s-1,s-b);a[h]===g?y[h]=(c[h]>e[h]?-1:1)*C:_[h]=(d[h]>n[h]?-1:1)*C}}if(t!==o){const b=h==="x"?"y":"x",C=a[h]===l[b],M=c[b]>d[b],k=c[b]<d[b];(a[h]===1&&(!C&&M||C&&k)||a[h]!==1&&(!C&&k||C&&M))&&(p=h==="x"?A:P)}const H={x:c.x+y.x,y:c.y+y.y},j={x:d.x+_.x,y:d.y+_.y},R=Math.max(Math.abs(H.x-p[0].x),Math.abs(j.x-p[0].x)),$=Math.max(Math.abs(H.y-p[0].y),Math.abs(j.y-p[0].y));R>=$?(x=(H.x+j.x)/2,w=p[0].y):(x=p[0].x,w=(H.y+j.y)/2)}const N={x:c.x+y.x,y:c.y+y.y},S={x:d.x+_.x,y:d.y+_.y};return[[e,...N.x!==p[0].x||N.y!==p[0].y?[N]:[],...p,...S.x!==p[p.length-1].x||S.y!==p[p.length-1].y?[S]:[],n],x,w,m,v]}function ep(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 c=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${s+r*c},${i}Q ${s},${i} ${s},${i+r*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${s},${i+r*l}Q ${s},${i} ${s+r*a},${i}`}function rn({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:d=.5}){const[f,h,g,p,x]=Jh({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:s,center:{x:a,y:l},offset:c,stepPosition:d});let w=`M${f[0].x} ${f[0].y}`;for(let y=1;y<f.length-1;y++)w+=ep(f[y-1],f[y],f[y+1],i);return w+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[w,h,g,p,x]}function Qo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function tp(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===ct.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!s||!i)return e.onError?.("008",be.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=s?.position||K.Bottom,l=i?.position||K.Top,c=Ze(t,s,a),d=Ze(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}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 Ze(e,t,n=K.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??Ae(e);if(o)return{x:r+i/2,y:s+a/2};switch(t?.position??n){case K.Top:return{x:r+i/2,y:s};case K.Right:return{x:r+i,y:s+a/2};case K.Bottom:return{x:r+i/2,y:s+a};case K.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 Wn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function np(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(l=>{if(l&&typeof l=="object"){const c=Wn(l,t);s.has(c)||(i.push({id:c,color:l.color||n,...l}),s.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const gi=1e3,op=10,uo={nodeOrigin:[0,0],nodeExtent:Nt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},rp={...uo,checkEquality:!0};function fo(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function sp(e,t,n){const o=fo(uo,n);for(const r of e.values())if(r.parentId)po(r,e,t,o);else{const s=Dt(r,o.nodeOrigin),i=Ue(r.extent)?r.extent:o.nodeExtent,a=Xe(s,i,Ae(r));r.internals.positionAbsolute=a}}function ip(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 ho(e){return e==="manual"}function Yn(e,t,n,o={}){const r=fo(rp,o),s={i:0},i=new Map(t),a=r?.elevateNodesOnSelect&&!ho(r.zIndexMode)?gi:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(r.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const h=Dt(d,r.nodeOrigin),g=Ue(d.extent)?d.extent:r.nodeExtent,p=Xe(h,g,Ae(d));f={...r.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:p,handleBounds:ip(d,f),z:mi(d,a,r.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),d.parentId&&po(f,t,n,o,s),c||=d.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function ap(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 po(e,t,n,o,r){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=fo(uo,o),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ap(e,n),r&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++r.i,d.internals.z=d.internals.z+r.i*op),r&&d.internals.rootParentIndex!==void 0&&(r.i=d.internals.rootParentIndex);const f=s&&!ho(l)?gi:0,{x:h,y:g,z:p}=cp(e,d,i,a,f,l),{positionAbsolute:x}=e.internals,w=h!==x.x||g!==x.y;(w||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:g}:x,z:p}})}function mi(e,t,n){const o=we(e.zIndex)?e.zIndex:0;return ho(n)?o:o+(e.selected?t:0)}function cp(e,t,n,o,r,s){const{x:i,y:a}=t.internals.positionAbsolute,l=Ae(e),c=Dt(e,n),d=Ue(e.extent)?Xe(c,e.extent,l):c;let f=Xe({x:i+d.x,y:a+d.y},o,l);e.extent==="parent"&&(f=oi(f,l,t));const h=mi(e,r,s),g=t.internals.z??0;return{x:f.x,y:f.y,z:g>=h?g+1:h}}function go(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 l=s.get(i.parentId)?.expandedRect??ut(a),c=ri(l,i.rect);s.set(i.parentId,{expandedRect:c,parent:a})}return s.size>0&&s.forEach(({expandedRect:i,parent:a},l)=>{const c=a.internals.positionAbsolute,d=Ae(a),f=a.origin??o,h=i.x<c.x?Math.round(Math.abs(c.x-i.x)):0,g=i.y<c.y?Math.round(Math.abs(c.y-i.y)):0,p=Math.max(d.width,Math.round(i.width)),x=Math.max(d.height,Math.round(i.height)),w=(p-d.width)*f[0],y=(x-d.height)*f[1];(h>0||g>0||w||y)&&(r.push({id:l,type:"position",position:{x:a.position.x-h+w,y:a.position.y-g+y}}),n.get(l)?.forEach(_=>{e.some(m=>m.id===_.id)||r.push({id:_.id,type:"position",position:{x:_.position.x+h,y:_.position.y+g}})})),(d.width<i.width||d.height<i.height||h||g)&&r.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:p+(h?f[0]*h-w:0),height:x+(g?f[1]*g-y:0)}})}),r}function lp(e,t,n,o,r,s,i){const a=o?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],d=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(d.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}}),l=!0;continue}const x=lo(g.nodeElement),w=p.measured.width!==x.width||p.measured.height!==x.height;if(!!(x.width&&x.height&&(w||!p.internals.handleBounds||g.force))){const _=g.nodeElement.getBoundingClientRect(),m=Ue(p.extent)?p.extent:s;let{positionAbsolute:v}=p.internals;p.parentId&&p.extent==="parent"?v=oi(v,x,t.get(p.parentId)):m&&(v=Xe(v,m,x));const N={...p,measured:x,internals:{...p.internals,positionAbsolute:v,handleBounds:{source:Zo("source",g.nodeElement,_,f,p.id),target:Zo("target",g.nodeElement,_,f,p.id)}}};t.set(p.id,N),p.parentId&&po(N,t,n,{nodeOrigin:r,zIndexMode:i}),l=!0,w&&(c.push({id:p.id,type:"dimensions",dimensions:x}),p.expandParent&&p.parentId&&h.push({id:p.id,parentId:p.parentId,rect:ut(N,r)}))}}if(h.length>0){const g=go(h,t,n,r);c.push(...g)}return{changes:c,updatedInternals:l}}async function up({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:s}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,s]],o);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}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 l=o.get(i)||new Map;if(o.set(i,l.set(n,t)),s){i=`${r}-${e}-${s}`;const c=o.get(i)||new Map;o.set(i,c.set(n,t))}}function xi(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:s,sourceHandle:i=null,targetHandle:a=null}=o,l={edgeId:o.id,source:r,target:s,sourceHandle:i,targetHandle:a},c=`${r}-${i}--${s}-${a}`,d=`${s}-${a}--${r}-${i}`;tr("source",l,d,e,r,i),tr("target",l,c,e,s,a),t.set(o.id,o)}}function yi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:yi(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 dp(e,t,n,o){const r=new Map;for(const[s,i]of e)if((i.selected||i.id===o)&&(!i.parentId||!yi(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 Mn({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[i,a]of t){const l=n.get(i)?.internals.userNode;l&&r.push({...l,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 fp({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=Rt(s,t);return{x:i.x-s.x,y:i.y-s.y}}function hp({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let s={x:null,y:null},i=0,a=new Map,l=!1,c={x:0,y:0},d=null,f=!1,h=null,g=!1,p=!1,x=null;function w({noDragClassName:_,handleSelector:m,domNode:v,isSelectable:N,nodeId:S,nodeClickDistance:I=0}){h=pe(v);function A({x:R,y:$}){const{nodeLookup:b,nodeExtent:C,snapGrid:M,snapToGrid:k,nodeOrigin:T,onNodeDrag:D,onSelectionDrag:L,onError:B,updateNodePositions:O}=t();s={x:R,y:$};let G=!1;const Z=a.size>1,F=Z&&C?Fn(Tt(a)):null,X=Z&&k?fp({dragItems:a,snapGrid:M,x:R,y:$}):null;for(const[Y,z]of a){if(!b.has(Y))continue;let W={x:R-z.distance.x,y:$-z.distance.y};k&&(W=X?{x:Math.round(W.x+X.x),y:Math.round(W.y+X.y)}:Rt(W,M));let te=null;if(Z&&C&&!z.extent&&F){const{positionAbsolute:Q}=z.internals,U=Q.x-F.x+C[0][0],V=Q.x+z.measured.width-F.x2+C[1][0],J=Q.y-F.y+C[0][1],se=Q.y+z.measured.height-F.y2+C[1][1];te=[[U,J],[V,se]]}const{position:ee,positionAbsolute:q}=ni({nodeId:Y,nextPosition:W,nodeLookup:b,nodeExtent:te||C,nodeOrigin:T,onError:B});G=G||z.position.x!==ee.x||z.position.y!==ee.y,z.position=ee,z.internals.positionAbsolute=q}if(p=p||G,!!G&&(O(a,!0),x&&(o||D||!S&&L))){const[Y,z]=Mn({nodeId:S,dragItems:a,nodeLookup:b});o?.(x,a,Y,z),D?.(x,Y,z),S||L?.(x,z)}}async function P(){if(!d)return;const{transform:R,panBy:$,autoPanSpeed:b,autoPanOnNodeDrag:C}=t();if(!C){l=!1,cancelAnimationFrame(i);return}const[M,k]=ao(c,d,b);(M!==0||k!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-k/R[2],await $({x:M,y:k})&&A(s)),i=requestAnimationFrame(P)}function H(R){const{nodeLookup:$,multiSelectionActive:b,nodesDraggable:C,transform:M,snapGrid:k,snapToGrid:T,selectNodesOnDrag:D,onNodeDragStart:L,onSelectionDragStart:B,unselectNodesAndEdges:O}=t();f=!0,(!D||!N)&&!b&&S&&($.get(S)?.selected||O()),N&&D&&S&&e?.(S);const G=vt(R.sourceEvent,{transform:M,snapGrid:k,snapToGrid:T,containerBounds:d});if(s=G,a=dp($,C,G,S),a.size>0&&(n||L||!S&&B)){const[Z,F]=Mn({nodeId:S,dragItems:a,nodeLookup:$});n?.(R.sourceEvent,a,Z,F),L?.(R.sourceEvent,Z,F),S||B?.(R.sourceEvent,F)}}const j=Hs().clickDistance(I).on("start",R=>{const{domNode:$,nodeDragThreshold:b,transform:C,snapGrid:M,snapToGrid:k}=t();d=$?.getBoundingClientRect()||null,g=!1,p=!1,x=R.sourceEvent,b===0&&H(R),s=vt(R.sourceEvent,{transform:C,snapGrid:M,snapToGrid:k,containerBounds:d}),c=ve(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:$,transform:b,snapGrid:C,snapToGrid:M,nodeDragThreshold:k,nodeLookup:T}=t(),D=vt(R.sourceEvent,{transform:b,snapGrid:C,snapToGrid:M,containerBounds:d});if(x=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||S&&!T.has(S))&&(g=!0),!g){if(!l&&$&&f&&(l=!0,P()),!f){const L=ve(R.sourceEvent,d),B=L.x-c.x,O=L.y-c.y;Math.sqrt(B*B+O*O)>k&&H(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&f&&(c=ve(R.sourceEvent,d),A(D))}}).on("end",R=>{if(!f||g){g&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,f=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:$,updateNodePositions:b,onNodeDragStop:C,onSelectionDragStop:M}=t();if(p&&(b(a,!1),p=!1),r||C||!S&&M){const[k,T]=Mn({nodeId:S,dragItems:a,nodeLookup:$,dragging:!1});r?.(R.sourceEvent,a,k,T),C?.(R.sourceEvent,k,T),S||M?.(R.sourceEvent,T)}}}).filter(R=>{const $=R.target;return!R.button&&(!_||!nr($,`.${_}`,v))&&(!m||nr($,m,v))});h.call(j)}function y(){h?.on(".drag",null)}return{update:w,destroy:y}}function pp(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,ut(s))>0&&o.push(s);return o}const gp=250;function mp(e,t,n,o){let r=[],s=1/0;const i=pp(e,n,t+gp);for(const a of i){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:d,y:f}=Ze(a,c,c.position,!0),h=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));h>t||(h<s?(r=[{...c,x:d,y:f}],s=h):h===s&&r.push({...c,x:d,y:f}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(l=>l.type===a)??r[0]}return r[0]}function wi(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??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&s?{...l,...Ze(i,l,l.position,!0)}:l}function vi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function xp(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const bi=()=>!0;function yp(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:g,onConnectStart:p,onConnect:x,onConnectEnd:w,isValidConnection:y=bi,onReconnectEnd:_,updateConnection:m,getTransform:v,getFromHandle:N,autoPanSpeed:S,dragThreshold:I=1,handleDomNode:A}){const P=ci(e.target);let H=0,j;const{x:R,y:$}=ve(e),b=vi(s,A),C=a?.getBoundingClientRect();let M=!1;if(!C||!b)return;const k=wi(r,b,o,l,t);if(!k)return;let T=ve(e,C),D=!1,L=null,B=!1,O=null;function G(){if(!d||!C)return;const[ee,q]=ao(T,C,S);h({x:ee,y:q}),H=requestAnimationFrame(G)}const Z={...k,nodeId:r,type:b,position:k.position},F=l.get(r);let Y={inProgress:!0,isValid:null,from:Ze(F,Z,K.Left,!0),fromHandle:Z,fromPosition:Z.position,fromNode:F,to:T,toHandle:null,toPosition:Wo[Z.position],toNode:null,pointer:T};function z(){M=!0,m(Y),p?.(e,{nodeId:r,handleId:o,handleType:b})}I===0&&z();function W(ee){if(!M){const{x:se,y:fe}=ve(ee),he=se-R,ue=fe-$;if(!(he*he+ue*ue>I*I))return;z()}if(!N()||!Z){te(ee);return}const q=v();T=ve(ee,C),j=mp(pt(T,q,!1,[1,1]),n,l,Z),D||(G(),D=!0);const Q=Ei(ee,{handle:j,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:i?"target":"source",isValidConnection:y,doc:P,lib:c,flowId:f,nodeLookup:l});O=Q.handleDomNode,L=Q.connection,B=xp(!!j,Q.isValid);const U=l.get(r),V=U?Ze(U,Z,K.Left,!0):Y.from,J={...Y,from:V,isValid:B,to:Q.toHandle&&B?dt({x:Q.toHandle.x,y:Q.toHandle.y},q):T,toHandle:Q.toHandle,toPosition:B&&Q.toHandle?Q.toHandle.position:Wo[Z.position],toNode:Q.toHandle?l.get(Q.toHandle.nodeId):null,pointer:T};m(J),Y=J}function te(ee){if(!("touches"in ee&&ee.touches.length>0)){if(M){(j||O)&&L&&B&&x?.(L);const{inProgress:q,...Q}=Y,U={...Q,toPosition:Y.toHandle?Y.toPosition:null};w?.(ee,U),s&&_?.(ee,U)}g(),cancelAnimationFrame(H),D=!1,B=!1,L=null,O=null,P.removeEventListener("mousemove",W),P.removeEventListener("mouseup",te),P.removeEventListener("touchmove",W),P.removeEventListener("touchend",te)}}P.addEventListener("mousemove",W),P.addEventListener("mouseup",te),P.addEventListener("touchmove",W),P.addEventListener("touchend",te)}function Ei(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:s,doc:i,lib:a,flowId:l,isValidConnection:c=bi,nodeLookup:d}){const f=s==="target",h=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=ve(e),x=i.elementFromPoint(g,p),w=x?.classList.contains(`${a}-flow__handle`)?x:h,y={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const _=vi(void 0,w),m=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),N=w.classList.contains("connectable"),S=w.classList.contains("connectableend");if(!m||!_)return y;const I={source:f?m:o,sourceHandle:f?v:r,target:f?o:m,targetHandle:f?r:v};y.connection=I;const P=N&&S&&(n===ct.Strict?f&&_==="source"||!f&&_==="target":m!==o||v!==r);y.isValid=P&&c(I),y.toHandle=wi(m,_,v,d,n,!0)}return y}const Xn={onPointerDown:yp,isValid:Ei};function wp({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=pe(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:f=!0,zoomable:h=!0,inversePan:g=!1}){const p=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const v=n(),N=m.sourceEvent.ctrlKey&&kt()?10:1,S=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*d,I=v[2]*Math.pow(2,S*N);t.scaleTo(I)};let x=[0,0];const w=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(x=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},y=m=>{const v=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const N=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],S=[N[0]-x[0],N[1]-x[1]];x=N;const I=o()*Math.max(v[2],Math.log(v[2]))*(g?-1:1),A={x:v[0]-S[0]*I,y:v[1]-S[1]*I},P=[[0,0],[l,c]];t.setViewportConstrained({x:A.x,y:A.y,zoom:v[2]},P,a)},_=qs().on("start",w).on("zoom",f?y:null).on("zoom.wheel",h?p:null);r.call(_,{})}function i(){r.on("zoom",null)}return{update:s,destroy:i,pointer:ye}}const mn=e=>({x:e.x,y:e.y,zoom:e.k}),kn=({x:e,y:t,zoom:n})=>hn.translate(e,t).scale(n),ot=(e,t)=>e.target.closest(`.${t}`),_i=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),vp=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,jn=(e,t=0,n=vp,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},Si=e=>{const t=e.ctrlKey&&kt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function bp({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(ot(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const w=ye(d),y=Si(d),_=f*Math.pow(2,y);o.scaleTo(n,_,w,d);return}const h=d.deltaMode===1?20:1;let g=r===We.Vertical?0:d.deltaX*h,p=r===We.Horizontal?0:d.deltaY*h;!kt()&&d.shiftKey&&r!==We.Vertical&&(g=d.deltaY*h,p=0),o.translateBy(n,-(g/f)*s,-(p/f)*s,{internal:!0});const x=mn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(d,x),e.panScrollTimeout=setTimeout(()=>{c?.(d,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(d,x))}}function Ep({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const s=o.type==="wheel",i=!t&&s&&!o.ctrlKey,a=ot(o,e);if(o.ctrlKey&&s&&a&&o.preventDefault(),i||a)return null;o.preventDefault(),n.call(this,o,r)}}function _p({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=mn(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 Sp({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return s=>{e.usedRightMouseButton=!!(n&&_i(t,e.mouseButton??0)),s.sourceEvent?.sync||o([s.transform.x,s.transform.y,s.transform.k]),r&&!s.sourceEvent?.internal&&r?.(s.sourceEvent,mn(s.transform))}}function Np({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:s}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,s&&_i(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&s(i.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=mn(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(i.sourceEvent,a)},n?150:0)}}}function Cp({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:s,userSelectionActive:i,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return f=>{const h=e||t,g=n&&f.ctrlKey,p=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(ot(f,`${c}-flow__node`)||ot(f,`${c}-flow__edge`)))return!0;if(!o&&!h&&!r&&!s&&!n||i||d&&!p||ot(f,a)&&p||ot(f,l)&&(!p||r&&p&&!e)||!n&&f.ctrlKey&&p)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!h&&!r&&!g&&p||!o&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(o)&&!o.includes(f.button)&&f.type==="mousedown")return!1;const x=Array.isArray(o)&&o.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||p)&&x}}function Mp({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:s,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=qs().scaleExtent([t,n]).translateExtent(o),h=pe(e).call(f);_({x:r.x,y:r.y,zoom:lt(r.zoom,t,n)},[[0,0],[d.width,d.height]],o);const g=h.on("wheel.zoom"),p=h.on("dblclick.zoom");f.wheelDelta(Si);async function x(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).transform(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}function w({noWheelClassName:j,noPanClassName:R,onPaneContextMenu:$,userSelectionActive:b,panOnScroll:C,panOnDrag:M,panOnScrollMode:k,panOnScrollSpeed:T,preventScrolling:D,zoomOnPinch:L,zoomOnScroll:B,zoomOnDoubleClick:O,zoomActivationKeyPressed:G,lib:Z,onTransformChange:F,connectionInProgress:X,paneClickDistance:Y,selectionOnDrag:z}){b&&!c.isZoomingOrPanning&&y();const W=C&&!G&&!b;f.clickDistance(z?1/0:!we(Y)||Y<0?0:Y);const te=W?bp({zoomPanValues:c,noWheelClassName:j,d3Selection:h,d3Zoom:f,panOnScrollMode:k,panOnScrollSpeed:T,zoomOnPinch:L,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):Ep({noWheelClassName:j,preventScrolling:D,d3ZoomHandler:g});h.on("wheel.zoom",te,{passive:!1});const ee=_p({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});f.on("start",ee);const q=Sp({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!$,onPanZoom:s,onTransformChange:F});f.on("zoom",q);const Q=Np({zoomPanValues:c,panOnDrag:M,panOnScroll:C,onPaneContextMenu:$,onPanZoomEnd:a,onDraggingChange:l});f.on("end",Q);const U=Cp({zoomActivationKeyPressed:G,panOnDrag:M,zoomOnScroll:B,panOnScroll:C,zoomOnDoubleClick:O,zoomOnPinch:L,userSelectionActive:b,noPanClassName:R,noWheelClassName:j,lib:Z,connectionInProgress:X});f.filter(U),O?h.on("dblclick.zoom",p):h.on("dblclick.zoom",null)}function y(){f.on("zoom",null)}async function _(j,R,$){const b=kn(j),C=f?.constrain()(b,R,$);return C&&await x(C),C}async function m(j,R){const $=kn(j);return await x($,R),$}function v(j){if(h){const R=kn(j),$=h.property("__zoom");($.k!==j.zoom||$.x!==j.x||$.y!==j.y)&&f?.transform(h,R,null,{sync:!0})}}function N(){const j=h?Gs(h.node()):{x:0,y:0,k:1};return{x:j.x,y:j.y,zoom:j.k}}async function S(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).scaleTo(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}async function I(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).scaleBy(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}function A(j){f?.scaleExtent(j)}function P(j){f?.translateExtent(j)}function H(j){const R=!we(j)||j<0?0:j;f?.clickDistance(R)}return{update:w,destroy:y,setViewport:m,setViewportConstrained:_,getViewport:N,scaleTo:S,scaleBy:I,setScaleExtent:A,setTranslateExtent:P,syncViewport:v,setClickDistance:H}}var ft;(function(e){e.Line="line",e.Handle="handle"})(ft||(ft={}));function kp({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:s}){const i=e-t,a=n-o,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&r&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}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 De(e,t){return Math.max(0,t-e)}function Te(e,t){return Math.max(0,e-t)}function Ht(e,t,n){return Math.max(0,t-e,e-n)}function rr(e,t){return e?!t:t}function jp(e,t,n,o,r,s,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:g,ySnapped:p}=n,{minWidth:x,maxWidth:w,minHeight:y,maxHeight:_}=o,{x:m,y:v,width:N,height:S,aspectRatio:I}=e;let A=Math.floor(d?g-e.pointerX:0),P=Math.floor(f?p-e.pointerY:0);const H=N+(l?-A:A),j=S+(c?-P:P),R=-s[0]*N,$=-s[1]*S;let b=Ht(H,x,w),C=Ht(j,y,_);if(i){let T=0,D=0;l&&A<0?T=De(m+A+R,i[0][0]):!l&&A>0&&(T=Te(m+H+R,i[1][0])),c&&P<0?D=De(v+P+$,i[0][1]):!c&&P>0&&(D=Te(v+j+$,i[1][1])),b=Math.max(b,T),C=Math.max(C,D)}if(a){let T=0,D=0;l&&A>0?T=Te(m+A,a[0][0]):!l&&A<0&&(T=De(m+H,a[1][0])),c&&P>0?D=Te(v+P,a[0][1]):!c&&P<0&&(D=De(v+j,a[1][1])),b=Math.max(b,T),C=Math.max(C,D)}if(r){if(d){const T=Ht(H/I,y,_)*I;if(b=Math.max(b,T),i){let D=0;!l&&!c||l&&!c&&h?D=Te(v+$+H/I,i[1][1])*I:D=De(v+$+(l?A:-A)/I,i[0][1])*I,b=Math.max(b,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=De(v+H/I,a[1][1])*I:D=Te(v+(l?A:-A)/I,a[0][1])*I,b=Math.max(b,D)}}if(f){const T=Ht(j*I,x,w)/I;if(C=Math.max(C,T),i){let D=0;!l&&!c||c&&!l&&h?D=Te(m+j*I+R,i[1][0])/I:D=De(m+(c?P:-P)*I+R,i[0][0])/I,C=Math.max(C,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=De(m+j*I,a[1][0])/I:D=Te(m+(c?P:-P)*I,a[0][0])/I,C=Math.max(C,D)}}}P=P+(P<0?C:-C),A=A+(A<0?b:-b),r&&(h?H>j*I?P=(rr(l,c)?-A:A)/I:A=(rr(l,c)?-P:P)*I:d?(P=A/I,c=l):(A=P*I,l=c));const M=l?m+A:m,k=c?v+P:v;return{width:N+(l?-A:A),height:S+(c?-P:P),x:s[0]*A*(l?-1:1)+M,y:s[1]*P*(c?-1:1)+k}}const Ni={width:0,height:0,x:0,y:0},Ip={...Ni,pointerX:0,pointerY:0,aspectRatio:1};function Ap(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,l=n[1]*i;return[[o-a,r-l],[o+s-a,r+i-l]]}function Pp({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const s=pe(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:c,boundaries:d,keepAspectRatio:f,resizeDirection:h,onResizeStart:g,onResize:p,onResizeEnd:x,shouldResize:w}){let y={...Ni},_={...Ip};i={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:or(c)};let m,v=null,N=[],S,I,A,P=!1;const H=Hs().on("start",j=>{const{nodeLookup:R,transform:$,snapGrid:b,snapToGrid:C,nodeOrigin:M,paneDomNode:k}=n();if(m=R.get(t),!m)return;v=k?.getBoundingClientRect()??null;const{xSnapped:T,ySnapped:D}=vt(j.sourceEvent,{transform:$,snapGrid:b,snapToGrid:C,containerBounds:v});y={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},_={...y,pointerX:T,pointerY:D,aspectRatio:y.width/y.height},S=void 0,I=Ue(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(S=R.get(m.parentId)),S&&m.extent==="parent"&&(I=[[0,0],[S.measured.width,S.measured.height]]),N=[],A=void 0;for(const[L,B]of R)if(B.parentId===t&&(N.push({id:L,position:{...B.position},extent:B.extent}),B.extent==="parent"||B.expandParent)){const O=Ap(B,m,B.origin??M);A?A=[[Math.min(O[0][0],A[0][0]),Math.min(O[0][1],A[0][1])],[Math.max(O[1][0],A[1][0]),Math.max(O[1][1],A[1][1])]]:A=O}g?.(j,{...y})}).on("drag",j=>{const{transform:R,snapGrid:$,snapToGrid:b,nodeOrigin:C}=n(),M=vt(j.sourceEvent,{transform:R,snapGrid:$,snapToGrid:b,containerBounds:v}),k=[];if(!m)return;const{x:T,y:D,width:L,height:B}=y,O={},G=m.origin??C,{width:Z,height:F,x:X,y:Y}=jp(_,i.controlDirection,M,i.boundaries,i.keepAspectRatio,G,I,A),z=Z!==L,W=F!==B,te=X!==T&&z,ee=Y!==D&&W;if(!te&&!ee&&!z&&!W)return;if((te||ee||G[0]===1||G[1]===1)&&(O.x=te?X:y.x,O.y=ee?Y:y.y,y.x=O.x,y.y=O.y,N.length>0)){const V=X-T,J=Y-D;for(const se of N)se.position={x:se.position.x-V+G[0]*(Z-L),y:se.position.y-J+G[1]*(F-B)},k.push(se)}if((z||W)&&(O.width=z&&(!i.resizeDirection||i.resizeDirection==="horizontal")?Z:y.width,O.height=W&&(!i.resizeDirection||i.resizeDirection==="vertical")?F:y.height,y.width=O.width,y.height=O.height),S&&m.expandParent){const V=G[0]*(O.width??0);O.x&&O.x<V&&(y.x=V,_.x=_.x-(O.x-V));const J=G[1]*(O.height??0);O.y&&O.y<J&&(y.y=J,_.y=_.y-(O.y-J))}const q=kp({width:y.width,prevWidth:L,height:y.height,prevHeight:B,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),Q={...y,direction:q};w?.(j,Q)!==!1&&(P=!0,p?.(j,Q),o(O,k))}).on("end",j=>{P&&(x?.(j,{...y}),r?.({...y}),P=!1)});s.call(H)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var In={exports:{}},An={};var sr;function Dp(){if(sr)return An;sr=1;var e=$c(),t=Lc();function n(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var o=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,s=e.useRef,i=e.useEffect,a=e.useMemo,l=e.useDebugValue;return An.useSyncExternalStoreWithSelector=function(c,d,f,h,g){var p=s(null);if(p.current===null){var x={hasValue:!1,value:null};p.current=x}else x=p.current;p=a(function(){function y(S){if(!_){if(_=!0,m=S,S=h(S),g!==void 0&&x.hasValue){var I=x.value;if(g(I,S))return v=I}return v=S}if(I=v,o(m,S))return I;var A=h(S);return g!==void 0&&g(I,A)?(m=S,I):(m=S,v=A)}var _=!1,m,v,N=f===void 0?null:f;return[function(){return y(d())},N===null?void 0:function(){return y(N())}]},[d,f,h,g]);var w=r(c,p[0],p[1]);return i(function(){x.hasValue=!0,x.value=w},[w]),l(w),w},An}var ir;function Tp(){return ir||(ir=1,In.exports=Dp()),In.exports}var Rp=Tp();const zp=Bc(Rp),Op={},ar=e=>{let t;const n=new Set,o=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const g=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(p=>p(t,g))}},r=()=>t,l={setState:o,getState:r,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Op?"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()}},c=t=e(o,r,l);return l},$p=e=>e?ar(e):ar,{useDebugValue:Lp}=le,{useSyncExternalStoreWithSelector:Bp}=zp,Hp=e=>e;function Ci(e,t=Hp,n){const o=Bp(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Lp(o),o}const cr=(e,t)=>{const n=$p(e),o=(r,s=t)=>Ci(n,r,s);return Object.assign(o,n),o},Vp=(e,t)=>e?cr(e,t):cr;function oe(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 xn=E.createContext(null),Fp=xn.Provider,Mi=be.error001("react");function ne(e,t){const n=E.useContext(xn);if(n===null)throw new Error(Mi);return Ci(n,e,t)}function re(){const e=E.useContext(xn);if(e===null)throw new Error(Mi);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const lr={display:"none"},Wp={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ki="react-flow__node-desc",ji="react-flow__edge-desc",Yp="react-flow__aria-live",Xp=e=>e.ariaLiveMessage,Up=e=>e.ariaLabelConfig;function Zp({rfId:e}){const t=ne(Xp);return u.jsx("div",{id:`${Yp}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Wp,children:t})}function Gp({rfId:e,disableKeyboardA11y:t}){const n=ne(Up);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${ki}-${e}`,style:lr,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${ji}-${e}`,style:lr,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(Zp,{rfId:e})]})}const yn=E.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},s)=>{const i=`${e}`.split("-");return u.jsx("div",{className:ae(["react-flow__panel",n,...i]),style:o,ref:s,...r,children:t})});yn.displayName="Panel";function qp({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(yn,{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 Kp=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}},Vt=e=>e.id;function Qp(e,t){return oe(e.selectedNodes.map(Vt),t.selectedNodes.map(Vt))&&oe(e.selectedEdges.map(Vt),t.selectedEdges.map(Vt))}function Jp({onSelectionChange:e}){const t=re(),{selectedNodes:n,selectedEdges:o}=ne(Kp,Qp);return E.useEffect(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(s=>s(r))},[n,o,e]),null}const eg=e=>!!e.onSelectionChangeHandlers;function tg({onSelectionChange:e}){const t=ne(eg);return e||t?u.jsx(Jp,{onSelectionChange:e}):null}const Ii=[0,0],ng={x:0,y:0,zoom:1},og=["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=[...og,"rfId"],rg=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:Nt,nodeOrigin:Ii,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function sg(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=ne(rg,oe),c=re();E.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=dr,a()}),[]);const d=E.useRef(dr);return E.useEffect(()=>{for(const f of ur){const h=e[f],g=d.current[f];h!==g&&(typeof e[f]>"u"||(f==="nodes"?t(h):f==="edges"?n(h):f==="minZoom"?o(h):f==="maxZoom"?r(h):f==="translateExtent"?s(h):f==="nodeExtent"?i(h):f==="ariaLabelConfig"?c.setState({ariaLabelConfig:Yh(h)}):f==="fitView"?c.setState({fitViewQueued:h}):f==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[f]:h})))}d.current=e},ur.map(f=>e[f])),null}function fr(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function ig(e){const[t,n]=E.useState(e==="system"?null:e);return E.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 jt(e=null,t={target:hr,actInsideInputWithModifier:!0}){const[n,o]=E.useState(!1),r=E.useRef(!1),s=E.useRef(new Set([])),[i,a]=E.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
3
+ `).replace(`
4
+
5
+ `,`
6
+ +`).split(`
7
+ `)),d=c.reduce((f,h)=>f.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return E.useEffect(()=>{const l=t?.target??hr,c=t?.actInsideInputWithModifier??!0;if(e!==null){const d=g=>{if(r.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!r.current||r.current&&!c)&&li(g))return!1;const x=gr(g.code,a);if(s.current.add(g[x]),pr(i,s.current,!1)){const w=g.composedPath?.()?.[0]||g.target,y=w?.nodeName==="BUTTON"||w?.nodeName==="A";t.preventDefault!==!1&&(r.current||!y)&&g.preventDefault(),o(!0)}},f=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 l?.addEventListener("keydown",d),l?.addEventListener("keyup",f),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l?.removeEventListener("keydown",d),l?.removeEventListener("keyup",f),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 ag=()=>{const e=re();return E.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):!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),!0):!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(),l=co(t,o,r,s,i,n?.padding??.1);return a?(await a.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??r,f=n.snapToGrid??s;return pt(c,o,f,d)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:s}=o.getBoundingClientRect(),i=dt(t,n);return{x:i.x+r,y:i.y+s}}}),[])};function Ai(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 l of i)cg(l,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 cg(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 lg(e,t){return Ai(e,t)}function ug(e,t){return Ai(e,t)}function He(e,t){return{id:e,type:"select",selected:t}}function rt(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(He(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 dg=si();function fg(e,t,n={}){return Kh(e,t,{...n,onError:n.onError??dg})}const yr=e=>zh(e),hg=e=>ti(e);function Pi(e){return E.forwardRef(e)}const pg=typeof window<"u"?E.useLayoutEffect:E.useEffect;function wr(e){const[t,n]=E.useState(BigInt(0)),[o]=E.useState(()=>gg(()=>n(r=>r+BigInt(1))));return pg(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function gg(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Di=E.createContext(null);function mg({children:e}){const t=re(),n=E.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h,fitViewQueued:g,onNodesChangeMiddlewareMap:p}=t.getState();let x=l;for(const y of a)x=typeof y=="function"?y(x):y;let w=mr({items:x,lookup:h});for(const y of p.values())w=y(w);d&&c(x),w.length>0?f?.(w):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:y,nodes:_,setNodes:m}=t.getState();y&&m(_)})},[]),o=wr(n),r=E.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let g=l;for(const p of a)g=typeof p=="function"?p(g):p;d?c(g):f&&f(mr({items:g,lookup:h}))},[]),s=wr(r),i=E.useMemo(()=>({nodeQueue:o,edgeQueue:s}),[]);return u.jsx(Di.Provider,{value:i,children:e})}function xg(){const e=E.useContext(Di);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const yg=e=>!!e.panZoom;function wn(){const e=ag(),t=re(),n=xg(),o=ne(yg),r=E.useMemo(()=>{const s=f=>t.getState().nodeLookup.get(f),i=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{const{nodeLookup:h,nodeOrigin:g}=t.getState(),p=yr(f)?f:h.get(f.id),x=p.parentId?ai(p.position,p.measured,p.parentId,h,g):p.position,w={...p,position:x,width:p.measured?.width??p.width,height:p.measured?.height??p.height};return ut(w)},c=(f,h,g={replace:!1})=>{i(p=>p.map(x=>{if(x.id===f){const w=typeof h=="function"?h(x):h;return g.replace&&yr(w)?w:{...x,...w}}return x}))},d=(f,h,g={replace:!1})=>{a(p=>p.map(x=>{if(x.id===f){const w=typeof h=="function"?h(x):h;return g.replace&&hg(w)?w:{...x,...w}}return x}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>s(f)?.internals.userNode,getInternalNode:s,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(h=>({...h}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:i,setEdges:a,addNodes:f=>{const h=Array.isArray(f)?f:[f];n.nodeQueue.push(g=>[...g,...h])},addEdges:f=>{const h=Array.isArray(f)?f:[f];n.edgeQueue.push(g=>[...g,...h])},toObject:()=>{const{nodes:f=[],edges:h=[],transform:g}=t.getState(),[p,x,w]=g;return{nodes:f.map(y=>({...y})),edges:h.map(y=>({...y})),viewport:{x:p,y:x,zoom:w}}},deleteElements:async({nodes:f=[],edges:h=[]})=>{const{nodes:g,edges:p,onNodesDelete:x,onEdgesDelete:w,triggerNodeChanges:y,triggerEdgeChanges:_,onDelete:m,onBeforeDelete:v}=t.getState(),{nodes:N,edges:S}=await Hh({nodesToRemove:f,edgesToRemove:h,nodes:g,edges:p,onBeforeDelete:v}),I=S.length>0,A=N.length>0;if(I){const P=S.map(xr);w?.(S),_(P)}if(A){const P=N.map(xr);x?.(N),y(P)}return(A||I)&&m?.({nodes:N,edges:S}),{deletedNodes:N,deletedEdges:S}},getIntersectingNodes:(f,h=!0,g)=>{const p=Xo(f),x=p?f:l(f),w=g!==void 0;return x?(g||t.getState().nodes).filter(y=>{const _=t.getState().nodeLookup.get(y.id);if(_&&!p&&(y.id===f.id||!_.internals.positionAbsolute))return!1;const m=ut(w?y:_),v=Mt(m,x);return h&&v>0||v>=m.width*m.height||v>=x.width*x.height}):[]},isNodeIntersecting:(f,h,g=!0)=>{const x=Xo(f)?f:l(f);if(!x)return!1;const w=Mt(x,h);return g&&w>0||w>=h.width*h.height||w>=x.width*x.height},updateNode:c,updateNodeData:(f,h,g={replace:!1})=>{c(f,p=>{const x=typeof h=="function"?h(p):h;return g.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},g)},updateEdge:d,updateEdgeData:(f,h,g={replace:!1})=>{d(f,p=>{const x=typeof h=="function"?h(p):h;return g.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},g)},getNodesBounds:f=>{const{nodeLookup:h,nodeOrigin:g}=t.getState();return Oh(f,{nodeLookup:h,nodeOrigin:g})},getHandleConnections:({type:f,id:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}-${f}${h?`-${h}`:""}`)?.values()??[]),getNodeConnections:({type:f,handleId:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}${f?h?`-${f}-${h}`:`-${f}`:""}`)?.values()??[]),fitView:async f=>{const h=t.getState().fitViewResolver??Wh();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:h}),n.nodeQueue.push(g=>[...g]),h.promise}}},[]);return E.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const vr=e=>e.selected,wg=typeof window<"u"?window:void 0;function vg({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=re(),{deleteElements:o}=wn(),r=jt(e,{actInsideInputWithModifier:!1}),s=jt(t,{target:wg});E.useEffect(()=>{if(r){const{edges:i,nodes:a}=n.getState();o({nodes:a.filter(vr),edges:i.filter(vr)}),n.setState({nodesSelectionActive:!1})}},[r]),E.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function bg(e){const t=re();E.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=lo(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",be.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 vn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Eg=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function _g({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:s=We.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:g=!0,children:p,noWheelClassName:x,noPanClassName:w,onViewportChange:y,isControlledViewport:_,paneClickDistance:m,selectionOnDrag:v}){const N=re(),S=E.useRef(null),{userSelectionActive:I,lib:A,connectionInProgress:P}=ne(Eg,oe),H=jt(h),j=E.useRef();bg(S);const R=E.useCallback($=>{y?.({x:$[0],y:$[1],zoom:$[2]}),_||N.setState({transform:$})},[y,_]);return E.useEffect(()=>{if(S.current){j.current=Mp({domNode:S.current,minZoom:d,maxZoom:f,translateExtent:c,viewport:l,onDraggingChange:M=>N.setState(k=>k.paneDragging===M?k:{paneDragging:M}),onPanZoomStart:(M,k)=>{const{onViewportChangeStart:T,onMoveStart:D}=N.getState();D?.(M,k),T?.(k)},onPanZoom:(M,k)=>{const{onViewportChange:T,onMove:D}=N.getState();D?.(M,k),T?.(k)},onPanZoomEnd:(M,k)=>{const{onViewportChangeEnd:T,onMoveEnd:D}=N.getState();D?.(M,k),T?.(k)}});const{x:$,y:b,zoom:C}=j.current.getViewport();return N.setState({panZoom:j.current,transform:[$,b,C],domNode:S.current.closest(".react-flow")}),()=>{j.current?.destroy()}}},[]),E.useEffect(()=>{j.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:x,lib:A,onTransformChange:R,connectionInProgress:P,selectionOnDrag:v,paneClickDistance:m})},[e,t,n,o,r,s,i,a,H,g,w,I,x,A,R,P,v,m]),u.jsx("div",{className:"react-flow__renderer",ref:S,style:vn,children:p})}const Sg=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ng(){const{userSelectionActive:e,userSelectionRect:t}=ne(Sg,oe);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 Pn=(e,t)=>n=>{n.target===t.current&&e?.(n)},Cg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Mg({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ct.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:s,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:f,onPaneMouseEnter:h,onPaneMouseMove:g,onPaneMouseLeave:p,children:x}){const w=E.useRef(0),y=re(),{userSelectionActive:_,elementsSelectable:m,dragging:v,connectionInProgress:N,panBy:S,autoPanSpeed:I}=ne(Cg,oe),A=m&&(e||_),P=E.useRef(null),H=E.useRef(),j=E.useRef(new Set),R=E.useRef(new Set),$=E.useRef(!1),b=E.useRef({x:0,y:0}),C=E.useRef(!1),M=z=>{if($.current||N){$.current=!1;return}c?.(z),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},k=z=>{if(Array.isArray(o)&&o?.includes(2)){z.preventDefault();return}d?.(z)},T=f?z=>f(z):void 0,D=z=>{$.current&&(z.stopPropagation(),$.current=!1)},L=z=>{const{domNode:W,transform:te}=y.getState();if(H.current=W?.getBoundingClientRect(),!H.current)return;const ee=z.target===P.current;if(!ee&&!!z.target.closest(".nokey")||!e||!(i&&ee||t)||z.button!==0||!z.isPrimary)return;z.target?.setPointerCapture?.(z.pointerId),$.current=!1;const{x:U,y:V}=ve(z.nativeEvent,H.current),J=pt({x:U,y:V},te);y.setState({userSelectionRect:{width:0,height:0,startX:J.x,startY:J.y,x:U,y:V}}),ee||(z.stopPropagation(),z.preventDefault())};function B(z,W){const{userSelectionRect:te}=y.getState();if(!te)return;const{transform:ee,nodeLookup:q,edgeLookup:Q,connectionLookup:U,triggerNodeChanges:V,triggerEdgeChanges:J,defaultEdgeOptions:se}=y.getState(),fe={x:te.startX,y:te.startY},{x:he,y:ue}=dt(fe,ee),me={startX:fe.x,startY:fe.y,x:z<he?z:he,y:W<ue?W:ue,width:Math.abs(z-he),height:Math.abs(W-ue)},Pe=j.current,Oe=R.current;j.current=new Set(io(q,me,ee,n===Ct.Partial,!0).map(xe=>xe.id)),R.current=new Set;const $e=se?.selectable??!0;for(const xe of j.current){const Se=U.get(xe);if(Se)for(const{edgeId:Ne}of Se.values()){const Le=Q.get(Ne);Le&&(Le.selectable??$e)&&R.current.add(Ne)}}if(!Uo(Pe,j.current)){const xe=rt(q,j.current,!0);V(xe)}if(!Uo(Oe,R.current)){const xe=rt(Q,R.current);J(xe)}y.setState({userSelectionRect:me,userSelectionActive:!0,nodesSelectionActive:!1})}function O(){if(!r||!H.current)return;const[z,W]=ao(b.current,H.current,I);S({x:z,y:W}).then(te=>{if(!$.current||!te){w.current=requestAnimationFrame(O);return}const{x:ee,y:q}=b.current;B(ee,q),w.current=requestAnimationFrame(O)})}const G=()=>{cancelAnimationFrame(w.current),w.current=0,C.current=!1};E.useEffect(()=>()=>G(),[]);const Z=z=>{const{userSelectionRect:W,transform:te,resetSelectedElements:ee}=y.getState();if(!H.current||!W)return;const{x:q,y:Q}=ve(z.nativeEvent,H.current);b.current={x:q,y:Q};const U=dt({x:W.startX,y:W.startY},te);if(!$.current){const V=t?0:s;if(Math.hypot(q-U.x,Q-U.y)<=V)return;ee(),a?.(z)}$.current=!0,C.current||(O(),C.current=!0),B(q,Q)},F=z=>{z.button===0&&(z.target?.releasePointerCapture?.(z.pointerId),!_&&z.target===P.current&&y.getState().userSelectionRect&&M?.(z),y.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(l?.(z),y.setState({nodesSelectionActive:j.current.size>0})),G())},X=z=>{z.target?.releasePointerCapture?.(z.pointerId),G()},Y=o===!0||Array.isArray(o)&&o.includes(0);return u.jsxs("div",{className:ae(["react-flow__pane",{draggable:Y,dragging:v,selection:e}]),onClick:A?void 0:Pn(M,P),onContextMenu:Pn(k,P),onWheel:Pn(T,P),onPointerEnter:A?void 0:h,onPointerMove:A?Z:g,onPointerUp:A?F:void 0,onPointerCancel:A?X:void 0,onPointerDownCapture:A?L:void 0,onClickCapture:A?D:void 0,onPointerLeave:p,ref:P,style:vn,children:[x,u.jsx(Ng,{})]})}function Un({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:s,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l?.("012",be.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Ti({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:s,nodeClickDistance:i}){const a=re(),[l,c]=E.useState(!1),d=E.useRef();return E.useEffect(()=>{d.current=hp({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{Un({id:f,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),E.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:s,nodeId:r,nodeClickDistance:i}),()=>{d.current?.destroy()}},[n,o,t,s,e,r,i]),l}const kg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Ri(){const e=re();return E.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),f=new Map,h=kg(i),g=r?s[0]:5,p=r?s[1]:5,x=n.direction.x*g*n.factor,w=n.direction.y*p*n.factor;for(const[,y]of c){if(!h(y))continue;let _={x:y.internals.positionAbsolute.x+x,y:y.internals.positionAbsolute.y+w};r&&(_=Rt(_,s));const{position:m,positionAbsolute:v}=ni({nodeId:y.id,nextPosition:_,nodeLookup:c,nodeExtent:o,nodeOrigin:d,onError:a});y.position=m,y.internals.positionAbsolute=v,f.set(y.id,y)}l(f)},[])}const mo=E.createContext(null),jg=mo.Provider;mo.Consumer;const zi=()=>E.useContext(mo),Ig=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Ag=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:s,connection:i}=o,{fromHandle:a,toHandle:l,isValid:c}=i,d=l?.nodeId===e&&l?.id===t&&l?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:d,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:s===ct.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:d&&c}};function Pg({type:e="source",position:t=K.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:f,...h},g){const p=i||null,x=e==="target",w=re(),y=zi(),{connectOnClick:_,noPanClassName:m,rfId:v}=ne(Ig,oe),{connectingFrom:N,connectingTo:S,clickConnecting:I,isPossibleEndHandle:A,connectionInProcess:P,clickConnectionInProcess:H,valid:j}=ne(Ag(y,p,e),oe);y||w.getState().onError?.("010",be.error010());const R=C=>{const{defaultEdgeOptions:M,onConnect:k,hasDefaultEdges:T}=w.getState(),D={...M,...C};if(T){const{edges:L,setEdges:B,onError:O}=w.getState();B(fg(D,L,{onError:O}))}k?.(D),a?.(D)},$=C=>{if(!y)return;const M=ui(C.nativeEvent);if(r&&(M&&C.button===0||!M)){const k=w.getState();Xn.onPointerDown(C.nativeEvent,{handleDomNode:C.currentTarget,autoPanOnConnect:k.autoPanOnConnect,connectionMode:k.connectionMode,connectionRadius:k.connectionRadius,domNode:k.domNode,nodeLookup:k.nodeLookup,lib:k.lib,isTarget:x,handleId:p,nodeId:y,flowId:k.rfId,panBy:k.panBy,cancelConnection:k.cancelConnection,onConnectStart:k.onConnectStart,onConnectEnd:(...T)=>w.getState().onConnectEnd?.(...T),updateConnection:k.updateConnection,onConnect:R,isValidConnection:n||((...T)=>w.getState().isValidConnection?.(...T)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:k.autoPanSpeed,dragThreshold:k.connectionDragThreshold})}M?d?.(C):f?.(C)},b=C=>{const{onClickConnectStart:M,onClickConnectEnd:k,connectionClickStartHandle:T,connectionMode:D,isValidConnection:L,lib:B,rfId:O,nodeLookup:G,connection:Z}=w.getState();if(!y||!T&&!r)return;if(!T){M?.(C.nativeEvent,{nodeId:y,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:y,type:e,id:p}});return}const F=ci(C.target),X=n||L,{connection:Y,isValid:z}=Xn.isValid(C.nativeEvent,{handle:{nodeId:y,id:p,type:e},connectionMode:D,fromNodeId:T.nodeId,fromHandleId:T.id||null,fromType:T.type,isValidConnection:X,flowId:O,doc:F,lib:B,nodeLookup:G});z&&Y&&R(Y);const W=structuredClone(Z);delete W.inProgress,W.toPosition=W.toHandle?W.toHandle.position:null,k?.(C,W),w.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":p,"data-nodeid":y,"data-handlepos":t,"data-id":`${v}-${y}-${p}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!x,target:x,connectable:o,connectablestart:r,connectableend:s,clickconnecting:I,connectingfrom:N,connectingto:S,valid:j,connectionindicator:o&&(!P||A)&&(P||H?s:r)}]),onMouseDown:$,onTouchStart:$,onClick:_?b:void 0,ref:g,...h,children:l})}const It=E.memo(Pi(Pg));function Dg({data:e,isConnectable:t,sourcePosition:n=K.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(It,{type:"source",position:n,isConnectable:t})]})}function Tg({data:e,isConnectable:t,targetPosition:n=K.Top,sourcePosition:o=K.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(It,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(It,{type:"source",position:o,isConnectable:t})]})}function Rg(){return null}function zg({data:e,isConnectable:t,targetPosition:n=K.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(It,{type:"target",position:n,isConnectable:t}),e?.label]})}const sn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},br={input:Dg,default:Tg,output:zg,group:Rg};function Og(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 $g=e=>{const{width:t,height:n,x:o,y:r}=Tt(e.nodeLookup,{filter:s=>!!s.selected});return{width:we(t)?t:null,height:we(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 Lg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=re(),{width:r,height:s,transformString:i,userSelectionActive:a}=ne($g,oe),l=Ri(),c=E.useRef(null);E.useEffect(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const d=!a&&r!==null&&s!==null;if(Ti({nodeRef:c,disabled:!d}),!d)return null;const f=e?g=>{const p=o.getState().nodes.filter(x=>x.selected);e(g,p)}:void 0,h=g=>{Object.prototype.hasOwnProperty.call(sn,g.key)&&(g.preventDefault(),l({direction:sn[g.key],factor:g.shiftKey?4:1}))};return u.jsx("div",{className:ae(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:u.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:r,height:s}})})}const Er=typeof window<"u"?window:void 0,Bg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Oi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:x,zoomActivationKeyCode:w,elementsSelectable:y,zoomOnScroll:_,zoomOnPinch:m,panOnScroll:v,panOnScrollSpeed:N,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:A,autoPanOnSelection:P,defaultViewport:H,translateExtent:j,minZoom:R,maxZoom:$,preventScrolling:b,onSelectionContextMenu:C,noWheelClassName:M,noPanClassName:k,disableKeyboardA11y:T,onViewportChange:D,isControlledViewport:L}){const{nodesSelectionActive:B,userSelectionActive:O}=ne(Bg,oe),G=jt(c,{target:Er}),Z=jt(x,{target:Er}),F=Z||A,X=Z||v,Y=d&&F!==!0,z=G||O||Y;return vg({deleteKeyCode:l,multiSelectionKeyCode:p}),u.jsx(_g,{onPaneContextMenu:s,elementsSelectable:y,zoomOnScroll:_,zoomOnPinch:m,panOnScroll:X,panOnScrollSpeed:N,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:!G&&F,defaultViewport:H,translateExtent:j,minZoom:R,maxZoom:$,zoomActivationKeyCode:w,preventScrolling:b,noWheelClassName:M,noPanClassName:k,onViewportChange:D,isControlledViewport:L,paneClickDistance:a,selectionOnDrag:Y,children:u.jsxs(Mg,{onSelectionStart:h,onSelectionEnd:g,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:F,autoPanOnSelection:P,isSelecting:!!z,selectionMode:f,selectionKeyPressed:G,paneClickDistance:a,selectionOnDrag:Y,children:[e,B&&u.jsx(Lg,{onSelectionContextMenu:C,noPanClassName:k,disableKeyboardA11y:T})]})})}Oi.displayName="FlowRenderer";const Hg=E.memo(Oi),Vg=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 Fg(e){return ne(E.useCallback(Vg(e),[e]),oe)}const Wg=e=>e.updateNodeInternals;function Yg(){const e=ne(Wg),[t]=E.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 E.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Xg({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=re(),s=E.useRef(null),i=E.useRef(null),a=E.useRef(e.sourcePosition),l=E.useRef(e.targetPosition),c=E.useRef(t),d=n&&!!e.internals.handleBounds;return E.useEffect(()=>{s.current&&!e.hidden&&(!d||i.current!==s.current)&&(i.current&&o?.unobserve(i.current),o?.observe(s.current),i.current=s.current)},[d,e.hidden]),E.useEffect(()=>()=>{i.current&&(o?.unobserve(i.current),i.current=null)},[]),E.useEffect(()=>{if(s.current){const f=c.current!==t,h=a.current!==e.sourcePosition,g=l.current!==e.targetPosition;(f||h||g)&&(c.current=t,a.current=e.sourcePosition,l.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 Ug({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:g,disableKeyboardA11y:p,rfId:x,nodeTypes:w,nodeClickDistance:y,onError:_}){const{node:m,internals:v,isParent:N}=ne(z=>{const W=z.nodeLookup.get(e),te=z.parentLookup.has(e);return{node:W,internals:W.internals,isParent:te}},oe);let S=m.type||"default",I=w?.[S]||br[S];I===void 0&&(_?.("003",be.error003(S)),S="default",I=w?.default||br.default);const A=!!(m.draggable||a&&typeof m.draggable>"u"),P=!!(m.selectable||l&&typeof m.selectable>"u"),H=!!(m.connectable||c&&typeof m.connectable>"u"),j=!!(m.focusable||d&&typeof m.focusable>"u"),R=re(),$=ii(m),b=Xg({node:m,nodeType:S,hasDimensions:$,resizeObserver:f}),C=Ti({nodeRef:b,disabled:m.hidden||!A,noDragClassName:h,handleSelector:m.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:y}),M=Ri();if(m.hidden)return null;const k=Ae(m),T=Og(m),D=P||A||t||n||o||r,L=n?z=>n(z,{...v.userNode}):void 0,B=o?z=>o(z,{...v.userNode}):void 0,O=r?z=>r(z,{...v.userNode}):void 0,G=s?z=>s(z,{...v.userNode}):void 0,Z=i?z=>i(z,{...v.userNode}):void 0,F=z=>{const{selectNodesOnDrag:W,nodeDragThreshold:te}=R.getState();P&&(!W||!A||te>0)&&Un({id:e,store:R,nodeRef:b}),t&&t(z,{...v.userNode})},X=z=>{if(!(li(z.nativeEvent)||p)){if(Ks.includes(z.key)&&P){const W=z.key==="Escape";Un({id:e,store:R,unselect:W,nodeRef:b})}else if(A&&m.selected&&Object.prototype.hasOwnProperty.call(sn,z.key)){z.preventDefault();const{ariaLabelConfig:W}=R.getState();R.setState({ariaLiveMessage:W["node.a11yDescription.ariaLiveMessage"]({direction:z.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:sn[z.key],factor:z.shiftKey?4:1})}}},Y=()=>{if(p||!b.current?.matches(":focus-visible"))return;const{transform:z,width:W,height:te,autoPanOnNodeFocus:ee,setCenter:q}=R.getState();if(!ee)return;io(new Map([[e,m]]),{x:0,y:0,width:W,height:te},z,!0).length>0||q(m.position.x+k.width/2,m.position.y+k.height/2,{zoom:z[2]})};return u.jsx("div",{className:ae(["react-flow__node",`react-flow__node-${S}`,{[g]:A},m.className,{selected:m.selected,selectable:P,parent:N,draggable:A,dragging:C}]),ref:b,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:$?"visible":"hidden",...m.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:O,onContextMenu:G,onClick:F,onDoubleClick:Z,onKeyDown:j?X:void 0,tabIndex:j?0:void 0,onFocus:j?Y:void 0,role:m.ariaRole??(j?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${ki}-${x}`,"aria-label":m.ariaLabel,...m.domAttributes,children:u.jsx(jg,{value:e,children:u.jsx(I,{id:e,data:m.data,type:S,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:m.selected??!1,selectable:P,draggable:A,deletable:m.deletable??!0,isConnectable:H,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:C,dragHandle:m.dragHandle,zIndex:v.z,parentId:m.parentId,...k})})})}var Zg=E.memo(Ug);const Gg=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function $i(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:s}=ne(Gg,oe),i=Fg(e.onlyRenderVisibleElements),a=Yg();return u.jsx("div",{className:"react-flow__nodes",style:vn,children:i.map(l=>u.jsx(Zg,{id:l,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},l))})}$i.displayName="NodeRenderer";const qg=E.memo($i);function Kg(e){return ne(E.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&&Zh({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),oe)}const Qg=({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"})},Jg=({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"})},_r={[nn.Arrow]:Qg,[nn.ArrowClosed]:Jg};function em(e){const t=re();return E.useMemo(()=>Object.prototype.hasOwnProperty.call(_r,e)?_r[e]:(t.getState().onError?.("009",be.error009(e)),null),[e])}const tm=({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 l=em(t);return l?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(l,{color:n,strokeWidth:i})}):null},Li=({defaultColor:e,rfId:t})=>{const n=ne(s=>s.edges),o=ne(s=>s.defaultEdgeOptions),r=E.useMemo(()=>np(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(tm,{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};Li.displayName="MarkerDefinitions";var nm=E.memo(Li);function Bi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[f,h]=E.useState({x:1,y:0,width:0,height:0}),g=ae(["react-flow__edge-textwrapper",c]),p=E.useRef(null);return E.useEffect(()=>{if(p.current){const x=p.current.getBBox();h({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:g,visibility:f.width?"visible":"hidden",...d,children:[r&&u.jsx("rect",{width:f.width+2*i[0],x:-i[0],y:-i[1],height:f.height+2*i[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),u.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:p,style:o,children:n}),l]}):null}Bi.displayName="EdgeText";const om=E.memo(Bi);function ht({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...d,d:e,fill:"none",className:ae(["react-flow__edge-path",d.className])}),c?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,o&&we(t)&&we(n)?u.jsx(om,{x:t,y:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Sr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===K.Left||e===K.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Hi({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top}){const[i,a]=Sr({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=Sr({pos:s,x1:o,y1:r,x2:e,y2:t}),[d,f,h,g]=di({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${i},${a} ${l},${c} ${o},${r}`,d,f,h,g]}function Vi(e){return E.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:x,markerStart:w,interactionWidth:y})=>{const[_,m,v]=Hi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a}),N=e.isInternal?void 0:t;return u.jsx(ht,{id:N,path:_,labelX:m,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:x,markerStart:w,interactionWidth:y})})}const rm=Vi({isInternal:!1}),Fi=Vi({isInternal:!0});rm.displayName="SimpleBezierEdge";Fi.displayName="SimpleBezierEdgeInternal";function Wi(e){return E.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:g=K.Bottom,targetPosition:p=K.Top,markerEnd:x,markerStart:w,pathOptions:y,interactionWidth:_})=>{const[m,v,N]=rn({sourceX:n,sourceY:o,sourcePosition:g,targetX:r,targetY:s,targetPosition:p,borderRadius:y?.borderRadius,offset:y?.offset,stepPosition:y?.stepPosition}),S=e.isInternal?void 0:t;return u.jsx(ht,{id:S,path:m,labelX:v,labelY:N,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:x,markerStart:w,interactionWidth:_})})}const Yi=Wi({isInternal:!1}),Xi=Wi({isInternal:!0});Yi.displayName="SmoothStepEdge";Xi.displayName="SmoothStepEdgeInternal";function Ui(e){return E.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return u.jsx(Yi,{...n,id:o,pathOptions:E.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const sm=Ui({isInternal:!1}),Zi=Ui({isInternal:!0});sm.displayName="StepEdge";Zi.displayName="StepEdgeInternal";function Gi(e){return E.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:x})=>{const[w,y,_]=pi({sourceX:n,sourceY:o,targetX:r,targetY:s}),m=e.isInternal?void 0:t;return u.jsx(ht,{id:m,path:w,labelX:y,labelY:_,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:x})})}const im=Gi({isInternal:!1}),qi=Gi({isInternal:!0});im.displayName="StraightEdge";qi.displayName="StraightEdgeInternal";function Ki(e){return E.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i=K.Bottom,targetPosition:a=K.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:x,markerStart:w,pathOptions:y,interactionWidth:_})=>{const[m,v,N]=fi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a,curvature:y?.curvature}),S=e.isInternal?void 0:t;return u.jsx(ht,{id:S,path:m,labelX:v,labelY:N,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:x,markerStart:w,interactionWidth:_})})}const am=Ki({isInternal:!1}),Qi=Ki({isInternal:!0});am.displayName="BezierEdge";Qi.displayName="BezierEdgeInternal";const Nr={default:Qi,straight:qi,step:Zi,smoothstep:Xi,simplebezier:Fi},Cr={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},cm=(e,t,n)=>n===K.Left?e-t:n===K.Right?e+t:e,lm=(e,t,n)=>n===K.Top?e-t:n===K.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:ae([Mr,`${Mr}-${a}`]),cx:cm(t,o,e),cy:lm(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function um({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:s,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:g}){const p=re(),x=(v,N)=>{if(v.button!==0)return;const{autoPanOnConnect:S,domNode:I,connectionMode:A,connectionRadius:P,lib:H,onConnectStart:j,cancelConnection:R,nodeLookup:$,rfId:b,panBy:C,updateConnection:M}=p.getState(),k=N.type==="target",T=(B,O)=>{h(!1),f?.(B,n,N.type,O)},D=B=>c?.(n,B),L=(B,O)=>{h(!0),d?.(v,n,N.type),j?.(B,O)};Xn.onPointerDown(v.nativeEvent,{autoPanOnConnect:S,connectionMode:A,connectionRadius:P,domNode:I,handleId:N.id,nodeId:N.nodeId,nodeLookup:$,isTarget:k,edgeUpdaterType:N.type,lib:H,flowId:b,cancelConnection:R,panBy:C,isValidConnection:(...B)=>p.getState().isValidConnection?.(...B)??!0,onConnect:D,onConnectStart:L,onConnectEnd:(...B)=>p.getState().onConnectEnd?.(...B),onReconnectEnd:T,updateConnection:M,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>x(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=v=>x(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),_=()=>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:_,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&u.jsx(kr,{position:l,centerX:s,centerY:i,radius:t,onMouseDown:y,onMouseEnter:_,onMouseOut:m,type:"target"})]})}function dm({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,rfId:p,edgeTypes:x,noPanClassName:w,onError:y,disableKeyboardA11y:_}){let m=ne(q=>q.edgeLookup.get(e));const v=ne(q=>q.defaultEdgeOptions);m=v?{...v,...m}:m;let N=m.type||"default",S=x?.[N]||Nr[N];S===void 0&&(y?.("011",be.error011(N)),N="default",S=x?.default||Nr.default);const I=!!(m.focusable||t&&typeof m.focusable>"u"),A=typeof f<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),P=!!(m.selectable||o&&typeof m.selectable>"u"),H=E.useRef(null),[j,R]=E.useState(!1),[$,b]=E.useState(!1),C=re(),{zIndex:M,sourceX:k,sourceY:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O}=ne(E.useCallback(q=>{const Q=q.nodeLookup.get(m.source),U=q.nodeLookup.get(m.target);if(!Q||!U)return{zIndex:m.zIndex,...Cr};const V=tp({id:e,sourceNode:Q,targetNode:U,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:q.connectionMode,onError:y});return{zIndex:Uh({selected:m.selected,zIndex:m.zIndex,sourceNode:Q,targetNode:U,elevateOnSelect:q.elevateEdgesOnSelect,zIndexMode:q.zIndexMode}),...V||Cr}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex]),oe),G=E.useMemo(()=>m.markerStart?`url('#${Wn(m.markerStart,p)}')`:void 0,[m.markerStart,p]),Z=E.useMemo(()=>m.markerEnd?`url('#${Wn(m.markerEnd,p)}')`:void 0,[m.markerEnd,p]);if(m.hidden||k===null||T===null||D===null||L===null)return null;const F=q=>{const{addSelectedEdges:Q,unselectNodesAndEdges:U,multiSelectionActive:V}=C.getState();P&&(C.setState({nodesSelectionActive:!1}),m.selected&&V?(U({nodes:[],edges:[m]}),H.current?.blur()):Q([e])),r&&r(q,m)},X=s?q=>{s(q,{...m})}:void 0,Y=i?q=>{i(q,{...m})}:void 0,z=a?q=>{a(q,{...m})}:void 0,W=l?q=>{l(q,{...m})}:void 0,te=c?q=>{c(q,{...m})}:void 0,ee=q=>{if(!_&&Ks.includes(q.key)&&P){const{unselectNodesAndEdges:Q,addSelectedEdges:U}=C.getState();q.key==="Escape"?(H.current?.blur(),Q({edges:[m]})):U([e])}};return u.jsx("svg",{style:{zIndex:M},children:u.jsxs("g",{className:ae(["react-flow__edge",`react-flow__edge-${N}`,m.className,w,{selected:m.selected,animated:m.animated,inactive:!P&&!r,updating:j,selectable:P}]),onClick:F,onDoubleClick:X,onContextMenu:Y,onMouseEnter:z,onMouseMove:W,onMouseLeave:te,onKeyDown:I?ee: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?`${ji}-${p}`:void 0,ref:H,...m.domAttributes,children:[!$&&u.jsx(S,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:P,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:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:G,markerEnd:Z,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),A&&u.jsx(um,{edge:m,isReconnectable:A,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,sourceX:k,sourceY:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O,setUpdateHover:R,setReconnecting:b})]})})}var fm=E.memo(dm);const hm=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Ji({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,disableKeyboardA11y:x}){const{edgesFocusable:w,edgesReconnectable:y,elementsSelectable:_,onError:m}=ne(hm,oe),v=Kg(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(nm,{defaultColor:e,rfId:n}),v.map(N=>u.jsx(fm,{id:N,edgesFocusable:w,edgesReconnectable:y,elementsSelectable:_,noPanClassName:r,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,rfId:n,onError:m,edgeTypes:o,disableKeyboardA11y:x},N))]})}Ji.displayName="EdgeRenderer";const pm=E.memo(Ji),gm=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function mm({children:e}){const t=ne(gm);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function xm(e){const t=wn(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const ym=e=>e.panZoom?.syncViewport;function wm(e){const t=ne(ym),n=re();return E.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function vm(e){return e.connection.inProgress?{...e.connection,to:pt(e.connection.to,e.transform)}:{...e.connection}}function bm(e){return vm}function Em(e){const t=bm();return ne(t,oe)}const _m=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Sm({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:s,height:i,isValid:a,inProgress:l}=ne(_m,oe);return!(s&&r&&l)?null:u.jsx("svg",{style:e,width:s,height:i,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:ae(["react-flow__connection",ei(a)]),children:u.jsx(ea,{style:t,type:n,CustomComponent:o,isValid:a})})})}const ea=({style:e,type:t=ze.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:s,fromNode:i,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:f,toPosition:h,pointer:g}=Em();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:ei(o),toNode:d,toHandle:f,pointer:g});let p="";const x={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case ze.Bezier:[p]=fi(x);break;case ze.SimpleBezier:[p]=Hi(x);break;case ze.Step:[p]=rn({...x,borderRadius:0});break;case ze.SmoothStep:[p]=rn(x);break;default:[p]=pi(x)}return u.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};ea.displayName="ConnectionLine";const Nm={};function jr(e=Nm){E.useRef(e),re(),E.useEffect(()=>{},[e])}function Cm(){re(),E.useRef(!1),E.useEffect(()=>{},[])}function ta({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:g,connectionLineType:p,connectionLineStyle:x,connectionLineComponent:w,connectionLineContainerStyle:y,selectionKeyCode:_,selectionOnDrag:m,selectionMode:v,multiSelectionKeyCode:N,panActivationKeyCode:S,zoomActivationKeyCode:I,deleteKeyCode:A,onlyRenderVisibleElements:P,elementsSelectable:H,defaultViewport:j,translateExtent:R,minZoom:$,maxZoom:b,preventScrolling:C,defaultMarkerColor:M,zoomOnScroll:k,zoomOnPinch:T,panOnScroll:D,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:O,panOnDrag:G,autoPanOnSelection:Z,onPaneClick:F,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:z,onPaneScroll:W,onPaneContextMenu:te,paneClickDistance:ee,nodeClickDistance:q,onEdgeContextMenu:Q,onEdgeMouseEnter:U,onEdgeMouseMove:V,onEdgeMouseLeave:J,reconnectRadius:se,onReconnect:fe,onReconnectStart:he,onReconnectEnd:ue,noDragClassName:me,noWheelClassName:Pe,noPanClassName:Oe,disableKeyboardA11y:$e,nodeExtent:xe,rfId:Se,viewport:Ne,onViewportChange:Le}){return jr(e),jr(t),Cm(),xm(n),wm(Ne),u.jsx(Hg,{onPaneClick:F,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:z,onPaneContextMenu:te,onPaneScroll:W,paneClickDistance:ee,deleteKeyCode:A,selectionKeyCode:_,selectionOnDrag:m,selectionMode:v,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:N,panActivationKeyCode:S,zoomActivationKeyCode:I,elementsSelectable:H,zoomOnScroll:k,zoomOnPinch:T,zoomOnDoubleClick:O,panOnScroll:D,panOnScrollSpeed:L,panOnScrollMode:B,panOnDrag:G,autoPanOnSelection:Z,defaultViewport:j,translateExtent:R,minZoom:$,maxZoom:b,onSelectionContextMenu:f,preventScrolling:C,noDragClassName:me,noWheelClassName:Pe,noPanClassName:Oe,disableKeyboardA11y:$e,onViewportChange:Le,isControlledViewport:!!Ne,children:u.jsxs(mm,{children:[u.jsx(pm,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:i,onReconnect:fe,onReconnectStart:he,onReconnectEnd:ue,onlyRenderVisibleElements:P,onEdgeContextMenu:Q,onEdgeMouseEnter:U,onEdgeMouseMove:V,onEdgeMouseLeave:J,reconnectRadius:se,defaultMarkerColor:M,noPanClassName:Oe,disableKeyboardA11y:$e,rfId:Se}),u.jsx(Sm,{style:x,type:p,component:w,containerStyle:y}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(qg,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:q,onlyRenderVisibleElements:P,noPanClassName:Oe,noDragClassName:me,disableKeyboardA11y:$e,nodeExtent:xe,rfId:Se}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}ta.displayName="GraphView";const Mm=E.memo(ta),km=si(),Ir=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:f,zIndexMode:h="basic"}={})=>{const g=new Map,p=new Map,x=new Map,w=new Map,y=o??t??[],_=n??e??[],m=d??[0,0],v=f??Nt;xi(x,w,y);const{nodesInitialized:N}=Yn(_,g,p,{nodeOrigin:m,nodeExtent:v,zIndexMode:h});let S=[0,0,1];if(i&&r&&s){const I=Tt(g,{filter:j=>!!((j.width||j.initialWidth)&&(j.height||j.initialHeight))}),{x:A,y:P,zoom:H}=co(I,r,s,l,c,a?.padding??.1);S=[A,P,H]}return{rfId:"1",width:r??0,height:s??0,transform:S,nodes:_,nodesInitialized:N,nodeLookup:g,parentLookup:p,edges:y,edgeLookup:w,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:Nt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ct.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:{...Js},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:km,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Qs,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},jm=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h})=>Vp((g,p)=>{async function x(){const{nodeLookup:w,panZoom:y,fitViewOptions:_,fitViewResolver:m,width:v,height:N,minZoom:S,maxZoom:I}=p();y&&(await Bh({nodes:w,width:v,height:N,panZoom:y,minZoom:S,maxZoom:I},_),m?.resolve(!0),g({fitViewResolver:null}))}return{...Ir({nodes:e,edges:t,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:f,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:w=>{const{nodeLookup:y,parentLookup:_,nodeOrigin:m,elevateNodesOnSelect:v,fitViewQueued:N,zIndexMode:S,nodesSelectionActive:I}=p(),{nodesInitialized:A,hasSelectedNodes:P}=Yn(w,y,_,{nodeOrigin:m,nodeExtent:f,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:S}),H=I&&P;N&&A?(x(),g({nodes:w,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:H})):g({nodes:w,nodesInitialized:A,nodesSelectionActive:H})},setEdges:w=>{const{connectionLookup:y,edgeLookup:_}=p();xi(y,_,w),g({edges:w})},setDefaultNodesAndEdges:(w,y)=>{if(w){const{setNodes:_}=p();_(w),g({hasDefaultNodes:!0})}if(y){const{setEdges:_}=p();_(y),g({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:y,nodeLookup:_,parentLookup:m,domNode:v,nodeOrigin:N,nodeExtent:S,debug:I,fitViewQueued:A,zIndexMode:P}=p(),{changes:H,updatedInternals:j}=lp(w,_,m,v,N,S,P);j&&(sp(_,m,{nodeOrigin:N,nodeExtent:S,zIndexMode:P}),A?(x(),g({fitViewQueued:!1,fitViewOptions:void 0})):g({}),H?.length>0&&(I&&console.log("React Flow: trigger node changes",H),y?.(H)))},updateNodePositions:(w,y=!1)=>{const _=[];let m=[];const{nodeLookup:v,triggerNodeChanges:N,connection:S,updateConnection:I,onNodesChangeMiddlewareMap:A}=p();for(const[P,H]of w){const j=v.get(P),R=!!(j?.expandParent&&j?.parentId&&H?.position),$={id:P,type:"position",position:R?{x:Math.max(0,H.position.x),y:Math.max(0,H.position.y)}:H.position,dragging:y};if(j&&S.inProgress&&S.fromNode.id===j.id){const b=Ze(j,S.fromHandle,K.Left,!0);I({...S,from:b})}R&&j.parentId&&_.push({id:P,parentId:j.parentId,rect:{...H.internals.positionAbsolute,width:H.measured.width??0,height:H.measured.height??0}}),m.push($)}if(_.length>0){const{parentLookup:P,nodeOrigin:H}=p(),j=go(_,v,P,H);m.push(...j)}for(const P of A.values())m=P(m);N(m)},triggerNodeChanges:w=>{const{onNodesChange:y,setNodes:_,nodes:m,hasDefaultNodes:v,debug:N}=p();if(w?.length){if(v){const S=lg(w,m);_(S)}N&&console.log("React Flow: trigger node changes",w),y?.(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:y,setEdges:_,edges:m,hasDefaultEdges:v,debug:N}=p();if(w?.length){if(v){const S=ug(w,m);_(S)}N&&console.log("React Flow: trigger edge changes",w),y?.(w)}},addSelectedNodes:w=>{const{multiSelectionActive:y,edgeLookup:_,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:N}=p();if(y){const S=w.map(I=>He(I,!0));v(S);return}v(rt(m,new Set([...w]),!0)),N(rt(_))},addSelectedEdges:w=>{const{multiSelectionActive:y,edgeLookup:_,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:N}=p();if(y){const S=w.map(I=>He(I,!0));N(S);return}N(rt(_,new Set([...w]))),v(rt(m,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:y}={})=>{const{edges:_,nodes:m,nodeLookup:v,triggerNodeChanges:N,triggerEdgeChanges:S}=p(),I=w||m,A=y||_,P=[];for(const j of I){if(!j.selected)continue;const R=v.get(j.id);R&&(R.selected=!1),P.push(He(j.id,!1))}const H=[];for(const j of A)j.selected&&H.push(He(j.id,!1));N(P),S(H)},setMinZoom:w=>{const{panZoom:y,maxZoom:_}=p();y?.setScaleExtent([w,_]),g({minZoom:w})},setMaxZoom:w=>{const{panZoom:y,minZoom:_}=p();y?.setScaleExtent([_,w]),g({maxZoom:w})},setTranslateExtent:w=>{p().panZoom?.setTranslateExtent(w),g({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:y,triggerNodeChanges:_,triggerEdgeChanges:m,elementsSelectable:v}=p();if(!v)return;const N=y.reduce((I,A)=>A.selected?[...I,He(A.id,!1)]:I,[]),S=w.reduce((I,A)=>A.selected?[...I,He(A.id,!1)]:I,[]);_(N),m(S)},setNodeExtent:w=>{const{nodes:y,nodeLookup:_,parentLookup:m,nodeOrigin:v,elevateNodesOnSelect:N,nodeExtent:S,zIndexMode:I}=p();w[0][0]===S[0][0]&&w[0][1]===S[0][1]&&w[1][0]===S[1][0]&&w[1][1]===S[1][1]||(Yn(y,_,m,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:N,checkEquality:!1,zIndexMode:I}),g({nodeExtent:w}))},panBy:w=>{const{transform:y,width:_,height:m,panZoom:v,translateExtent:N}=p();return up({delta:w,panZoom:v,transform:y,translateExtent:N,width:_,height:m})},setCenter:async(w,y,_)=>{const{width:m,height:v,maxZoom:N,panZoom:S}=p();if(!S)return!1;const I=typeof _?.zoom<"u"?_.zoom:N;return await S.setViewport({x:m/2-w*I,y:v/2-y*I,zoom:I},{duration:_?.duration,ease:_?.ease,interpolate:_?.interpolate}),!0},cancelConnection:()=>{g({connection:{...Js}})},updateConnection:w=>{g({connection:w})},reset:()=>g({...Ir()})}},Object.is);function Im({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h,children:g}){const[p]=E.useState(()=>jm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:f,zIndexMode:h}));return u.jsx(Fp,{value:p,children:u.jsx(mg,{children:g})})}function Am({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:s,height:i,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g}){return E.useContext(xn)?u.jsx(u.Fragment,{children:e}):u.jsx(Im,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g,children:e})}const Pm={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Dm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:g,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:y,onNodeMouseEnter:_,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:N,onNodeDoubleClick:S,onNodeDragStart:I,onNodeDrag:A,onNodeDragStop:P,onNodesDelete:H,onEdgesDelete:j,onDelete:R,onSelectionChange:$,onSelectionDragStart:b,onSelectionDrag:C,onSelectionDragStop:M,onSelectionContextMenu:k,onSelectionStart:T,onSelectionEnd:D,onBeforeDelete:L,connectionMode:B,connectionLineType:O=ze.Bezier,connectionLineStyle:G,connectionLineComponent:Z,connectionLineContainerStyle:F,deleteKeyCode:X="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:z=!1,selectionMode:W=Ct.Full,panActivationKeyCode:te="Space",multiSelectionKeyCode:ee=kt()?"Meta":"Control",zoomActivationKeyCode:q=kt()?"Meta":"Control",snapToGrid:Q,snapGrid:U,onlyRenderVisibleElements:V=!1,selectNodesOnDrag:J,nodesDraggable:se,autoPanOnNodeFocus:fe,nodesConnectable:he,nodesFocusable:ue,nodeOrigin:me=Ii,edgesFocusable:Pe,edgesReconnectable:Oe,elementsSelectable:$e=!0,defaultViewport:xe=ng,minZoom:Se=.5,maxZoom:Ne=2,translateExtent:Le=Nt,preventScrolling:pa=!0,nodeExtent:bn,defaultMarkerColor:ga="#b1b1b7",zoomOnScroll:ma=!0,zoomOnPinch:xa=!0,panOnScroll:ya=!1,panOnScrollSpeed:wa=.5,panOnScrollMode:va=We.Free,zoomOnDoubleClick:ba=!0,panOnDrag:Ea=!0,onPaneClick:_a,onPaneMouseEnter:Sa,onPaneMouseMove:Na,onPaneMouseLeave:Ca,onPaneScroll:Ma,onPaneContextMenu:ka,paneClickDistance:ja=1,nodeClickDistance:Ia=0,children:Aa,onReconnect:Pa,onReconnectStart:Da,onReconnectEnd:Ta,onEdgeContextMenu:Ra,onEdgeDoubleClick:za,onEdgeMouseEnter:Oa,onEdgeMouseMove:$a,onEdgeMouseLeave:La,reconnectRadius:Ba=10,onNodesChange:Ha,onEdgesChange:Va,noDragClassName:Fa="nodrag",noWheelClassName:Wa="nowheel",noPanClassName:wo="nopan",fitView:vo,fitViewOptions:bo,connectOnClick:Ya,attributionPosition:Xa,proOptions:Ua,defaultEdgeOptions:Za,elevateNodesOnSelect:Ga=!0,elevateEdgesOnSelect:qa=!1,disableKeyboardA11y:Eo=!1,autoPanOnConnect:Ka,autoPanOnNodeDrag:Qa,autoPanOnSelection:Ja=!0,autoPanSpeed:ec,connectionRadius:tc,isValidConnection:nc,onError:oc,style:rc,id:_o,nodeDragThreshold:sc,connectionDragThreshold:ic,viewport:ac,onViewportChange:cc,width:lc,height:uc,colorMode:dc="light",debug:fc,onScroll:So,ariaLabelConfig:hc,zIndexMode:No="basic",...pc},gc){const En=_o||"1",mc=ig(dc),xc=E.useCallback(Co=>{Co.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),So?.(Co)},[So]);return u.jsx("div",{"data-testid":"rf__wrapper",...pc,onScroll:xc,style:{...rc,...Pm},ref:gc,className:ae(["react-flow",r,mc]),id:_o,role:"application",children:u.jsxs(Am,{nodes:e,edges:t,width:lc,height:uc,fitView:vo,fitViewOptions:bo,minZoom:Se,maxZoom:Ne,nodeOrigin:me,nodeExtent:bn,zIndexMode:No,children:[u.jsx(sg,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:y,nodesDraggable:se,autoPanOnNodeFocus:fe,nodesConnectable:he,nodesFocusable:ue,edgesFocusable:Pe,edgesReconnectable:Oe,elementsSelectable:$e,elevateNodesOnSelect:Ga,elevateEdgesOnSelect:qa,minZoom:Se,maxZoom:Ne,nodeExtent:bn,onNodesChange:Ha,onEdgesChange:Va,snapToGrid:Q,snapGrid:U,connectionMode:B,translateExtent:Le,connectOnClick:Ya,defaultEdgeOptions:Za,fitView:vo,fitViewOptions:bo,onNodesDelete:H,onEdgesDelete:j,onDelete:R,onNodeDragStart:I,onNodeDrag:A,onNodeDragStop:P,onSelectionDrag:C,onSelectionDragStart:b,onSelectionDragStop:M,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:wo,nodeOrigin:me,rfId:En,autoPanOnConnect:Ka,autoPanOnNodeDrag:Qa,autoPanSpeed:ec,onError:oc,connectionRadius:tc,isValidConnection:nc,selectNodesOnDrag:J,nodeDragThreshold:sc,connectionDragThreshold:ic,onBeforeDelete:L,debug:fc,ariaLabelConfig:hc,zIndexMode:No}),u.jsx(Mm,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:_,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:N,onNodeDoubleClick:S,nodeTypes:s,edgeTypes:i,connectionLineType:O,connectionLineStyle:G,connectionLineComponent:Z,connectionLineContainerStyle:F,selectionKeyCode:Y,selectionOnDrag:z,selectionMode:W,deleteKeyCode:X,multiSelectionKeyCode:ee,panActivationKeyCode:te,zoomActivationKeyCode:q,onlyRenderVisibleElements:V,defaultViewport:xe,translateExtent:Le,minZoom:Se,maxZoom:Ne,preventScrolling:pa,zoomOnScroll:ma,zoomOnPinch:xa,zoomOnDoubleClick:ba,panOnScroll:ya,panOnScrollSpeed:wa,panOnScrollMode:va,panOnDrag:Ea,autoPanOnSelection:Ja,onPaneClick:_a,onPaneMouseEnter:Sa,onPaneMouseMove:Na,onPaneMouseLeave:Ca,onPaneScroll:Ma,onPaneContextMenu:ka,paneClickDistance:ja,nodeClickDistance:Ia,onSelectionContextMenu:k,onSelectionStart:T,onSelectionEnd:D,onReconnect:Pa,onReconnectStart:Da,onReconnectEnd:Ta,onEdgeContextMenu:Ra,onEdgeDoubleClick:za,onEdgeMouseEnter:Oa,onEdgeMouseMove:$a,onEdgeMouseLeave:La,reconnectRadius:Ba,defaultMarkerColor:ga,noDragClassName:Fa,noWheelClassName:Wa,noPanClassName:wo,rfId:En,disableKeyboardA11y:Eo,nodeExtent:bn,viewport:ac,onViewportChange:cc}),u.jsx(tg,{onSelectionChange:$}),Aa,u.jsx(qp,{proOptions:Ua,position:Xa}),u.jsx(Gp,{rfId:En,disableKeyboardA11y:Eo})]})})}var Tm=Pi(Dm);const Rm=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function zm({children:e}){const t=ne(Rm);return t?Hc.createPortal(e,t):null}const Om=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function $m(){return ne(Om,oe)}function Lm({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:ae(["react-flow__background-pattern",n,o])})}function Bm({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:ae(["react-flow__background-pattern","dots",t])})}var je;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(je||(je={}));const Hm={[je.Dots]:1,[je.Lines]:1,[je.Cross]:6},Vm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function na({id:e,variant:t=je.Dots,gap:n=20,size:o,lineWidth:r=1,offset:s=0,color:i,bgColor:a,style:l,className:c,patternClassName:d}){const f=E.useRef(null),{transform:h,patternId:g}=ne(Vm,oe),p=o||Hm[t],x=t===je.Dots,w=t===je.Cross,y=Array.isArray(n)?n:[n,n],_=[y[0]*h[2]||1,y[1]*h[2]||1],m=p*h[2],v=Array.isArray(s)?s:[s,s],N=w?[m,m]:_,S=[v[0]*h[2]||1+N[0]/2,v[1]*h[2]||1+N[1]/2],I=`${g}${e||""}`;return u.jsxs("svg",{className:ae(["react-flow__background",c]),style:{...l,...vn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:f,"data-testid":"rf__background",children:[u.jsx("pattern",{id:I,x:h[0]%_[0],y:h[1]%_[1],width:_[0],height:_[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:x?u.jsx(Bm,{radius:m/2,className:d}):u.jsx(Lm,{dimensions:N,lineWidth:r,variant:t,className:d})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${I})`})]})}na.displayName="Background";const Fm=E.memo(na);function Wm(){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 Ym(){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 Xm(){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 Um(){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 Zm(){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 Ft({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:ae(["react-flow__controls-button",t]),...n,children:e})}const Gm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function oa({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:c,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":g}){const p=re(),{isInteractive:x,minZoomReached:w,maxZoomReached:y,ariaLabelConfig:_}=ne(Gm,oe),{zoomIn:m,zoomOut:v,fitView:N}=wn(),S=()=>{m(),s?.()},I=()=>{v(),i?.()},A=()=>{N(r),a?.()},P=()=>{p.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),l?.(!x)},H=h==="horizontal"?"horizontal":"vertical";return u.jsxs(yn,{className:ae(["react-flow__controls",H,c]),position:f,style:e,"data-testid":"rf__controls","aria-label":g??_["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(Ft,{onClick:S,className:"react-flow__controls-zoomin",title:_["controls.zoomIn.ariaLabel"],"aria-label":_["controls.zoomIn.ariaLabel"],disabled:y,children:u.jsx(Wm,{})}),u.jsx(Ft,{onClick:I,className:"react-flow__controls-zoomout",title:_["controls.zoomOut.ariaLabel"],"aria-label":_["controls.zoomOut.ariaLabel"],disabled:w,children:u.jsx(Ym,{})})]}),n&&u.jsx(Ft,{className:"react-flow__controls-fitview",onClick:A,title:_["controls.fitView.ariaLabel"],"aria-label":_["controls.fitView.ariaLabel"],children:u.jsx(Xm,{})}),o&&u.jsx(Ft,{className:"react-flow__controls-interactive",onClick:P,title:_["controls.interactive.ariaLabel"],"aria-label":_["controls.interactive.ariaLabel"],children:x?u.jsx(Zm,{}):u.jsx(Um,{})}),d]})}oa.displayName="Controls";const qm=E.memo(oa);function Km({id:e,x:t,y:n,width:o,height:r,style:s,color:i,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:f,selected:h,onClick:g}){const{background:p,backgroundColor:x}=s||{},w=i||p||x;return u.jsx("rect",{className:ae(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:o,height:r,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:f,onClick:g?y=>g(y,e):void 0})}const Qm=E.memo(Km),Jm=e=>e.nodes.map(t=>t.id),Dn=e=>e instanceof Function?e:()=>e;function ex({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:s=Qm,onClick:i}){const a=ne(Jm,oe),l=Dn(t),c=Dn(e),d=Dn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:a.map(h=>u.jsx(nx,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:s,onClick:i,shapeRendering:f},h))})}function tx({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:c,x:d,y:f,width:h,height:g}=ne(p=>{const x=p.nodeLookup.get(e);if(!x)return{node:void 0,x:0,y:0,width:0,height:0};const w=x.internals.userNode,{x:y,y:_}=x.internals.positionAbsolute,{width:m,height:v}=Ae(w);return{node:w,x:y,y:_,width:m,height:v}},oe);return!c||c.hidden||!ii(c)?null:u.jsx(a,{x:d,y:f,width:h,height:g,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:r,strokeColor:n(c),strokeWidth:s,shapeRendering:i,onClick:l,id:c.id})}const nx=E.memo(tx);var ox=E.memo(ex);const rx=200,sx=150,ix=e=>!e.hidden,ax=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?ri(Tt(e.nodeLookup,{filter:ix}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},cx="react-flow__minimap-desc";function ra({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:g,onNodeClick:p,pannable:x=!1,zoomable:w=!1,ariaLabel:y,inversePan:_,zoomStep:m=1,offsetScale:v=5}){const N=re(),S=E.useRef(null),{boundingRect:I,viewBB:A,rfId:P,panZoom:H,translateExtent:j,flowWidth:R,flowHeight:$,ariaLabelConfig:b}=ne(ax,oe),C=e?.width??rx,M=e?.height??sx,k=I.width/C,T=I.height/M,D=Math.max(k,T),L=D*C,B=D*M,O=v*D,G=I.x-(L-I.width)/2-O,Z=I.y-(B-I.height)/2-O,F=L+O*2,X=B+O*2,Y=`${cx}-${P}`,z=E.useRef(0),W=E.useRef();z.current=D,E.useEffect(()=>{if(S.current&&H)return W.current=wp({domNode:S.current,panZoom:H,getTransform:()=>N.getState().transform,getViewScale:()=>z.current}),()=>{W.current?.destroy()}},[H]),E.useEffect(()=>{W.current?.update({translateExtent:j,width:R,height:$,inversePan:_,pannable:x,zoomStep:m,zoomable:w})},[x,w,_,m,j,R,$]);const te=g?Q=>{const[U,V]=W.current?.pointer(Q)||[0,0];g(Q,{x:U,y:V})}:void 0,ee=p?E.useCallback((Q,U)=>{const V=N.getState().nodeLookup.get(U).internals.userNode;p(Q,V)},[]):void 0,q=y??b["minimap.ariaLabel"];return u.jsx(yn,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*D: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:ae(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:C,height:M,viewBox:`${G} ${Z} ${F} ${X}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:S,onClick:te,children:[q&&u.jsx("title",{id:Y,children:q}),u.jsx(ox,{onClick:ee,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:r,nodeStrokeWidth:i,nodeComponent:a}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${G-O},${Z-O}h${F+O*2}v${X+O*2}h${-F-O*2}z
8
+ M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ra.displayName="MiniMap";E.memo(ra);const lx=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,ux={[ft.Line]:"right",[ft.Handle]:"bottom-right"};function dx({nodeId:e,position:t,variant:n=ft.Handle,className:o,style:r=void 0,children:s,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:h,autoScale:g=!0,shouldResize:p,onResizeStart:x,onResize:w,onResizeEnd:y}){const _=zi(),m=typeof e=="string"?e:_,v=re(),N=E.useRef(null),S=n===ft.Handle,I=ne(E.useCallback(lx(S&&g),[S,g]),oe),A=E.useRef(null),P=t??ux[n];E.useEffect(()=>{if(!(!N.current||!m))return A.current||(A.current=Pp({domNode:N.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:j,transform:R,snapGrid:$,snapToGrid:b,nodeOrigin:C,domNode:M}=v.getState();return{nodeLookup:j,transform:R,snapGrid:$,snapToGrid:b,nodeOrigin:C,paneDomNode:M}},onChange:(j,R)=>{const{triggerNodeChanges:$,nodeLookup:b,parentLookup:C,nodeOrigin:M}=v.getState(),k=[],T={x:j.x,y:j.y},D=b.get(m);if(D&&D.expandParent&&D.parentId){const L=D.origin??M,B=j.width??D.measured.width??0,O=j.height??D.measured.height??0,G={id:D.id,parentId:D.parentId,rect:{width:B,height:O,...ai({x:j.x??D.position.x,y:j.y??D.position.y},{width:B,height:O},D.parentId,b,L)}},Z=go([G],b,C,M);k.push(...Z),T.x=j.x?Math.max(L[0]*B,j.x):void 0,T.y=j.y?Math.max(L[1]*O,j.y):void 0}if(T.x!==void 0&&T.y!==void 0){const L={id:m,type:"position",position:{...T}};k.push(L)}if(j.width!==void 0&&j.height!==void 0){const B={id:m,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:j.width,height:j.height}};k.push(B)}for(const L of R){const B={...L,type:"position"};k.push(B)}$(k)},onEnd:({width:j,height:R})=>{const $={id:m,type:"dimensions",resizing:!1,dimensions:{width:j,height:R}};v.getState().triggerNodeChanges([$])}})),A.current.update({controlPosition:P,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:f,resizeDirection:h,onResizeStart:x,onResize:w,onResizeEnd:y,shouldResize:p}),()=>{A.current?.destroy()}},[P,a,l,c,d,f,x,w,y,p]);const H=P.split("-");return u.jsx("div",{className:ae(["react-flow__resize-control","nodrag",...H,n,o]),ref:N,style:{...r,scale:I,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:s})}E.memo(dx);const fx="border-dashed border-border-default bg-surface-page text-text-secondary shadow-sm hover:border-border-strong",Ar="var(--xy-edge-stroke)",hx=({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:s,targetPosition:i,data:a})=>{const[l,c]=E.useState(!1),[d,f]=E.useState(!1),[h,g]=E.useState(!1),p=a,[x,w,y]=rn({sourceX:t,sourceY:n,sourcePosition:s,targetX:o,targetY:r,targetPosition:i});if(!p)return u.jsx(ht,{id:e,path:x,style:{stroke:Ar}});const _=S=>{c(!1),p.onPick(S,{sourceId:p.sourceId,targetId:p.targetId})},m=l||d||h,v=u.jsx("button",{"aria-label":"Insert step here",className:ie("flex size-8 items-center justify-center rounded-full border transition-opacity focus-visible:opacity-100 focus-visible:outline-none",fx,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(an,{className:"size-5",strokeWidth:1.5})});let N;return p.disabled?N=p.disabledReason?u.jsx(Vc,{delayDuration:150,children:u.jsxs(Fc,{children:[u.jsx(Wc,{asChild:!0,children:u.jsx("span",{tabIndex:0,children:v})}),u.jsx(Yc,{children:p.disabledReason})]})}):v:N=u.jsxs(Hr,{open:l,onOpenChange:c,children:[u.jsx(Vr,{asChild:!0,children:v}),u.jsx(Fr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(Cs,{onPick:_})})]}),u.jsxs("g",{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[u.jsx(ht,{id:e,interactionWidth:30,path:x,style:{stroke:Ar}}),u.jsx(zm,{children:u.jsx("div",{className:"pointer-events-auto absolute",style:{transform:`translate(-50%, -50%) translate(${w}px, ${y}px)`},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:u.jsx("div",{className:"flex h-10 w-16 items-center justify-center",children:N})})})]})},px=()=>{const{data:e}=Zn(),{data:t}=Xc(),n=e?.settings||[],o=t?.site?.url||"",[r="all",s=!1,i=!1]=Gn(n,["members_signup_access","donations_enabled","recommendations_enabled"]);return wl({siteUrl:o,membersSignupAccess:typeof r=="string"?r:"all",donationsEnabled:!!s,recommendationsEnabled:!!i})},gx={useFileUpload:_l,fileTypes:El},mx=le.lazy(()=>Zc(()=>import("./koenig-lexical-B9U3sBS5.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.EmailEditor})));class xx extends le.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 yx=ie("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]"),wx=({value:e,placeholder:t,className:n,onChange:o})=>{const r=E.useRef(null),s=E.useRef(e),{unsplashConfig:i}=Uc(),a=vl(),{data:l}=Zn(),{data:c}=Wr(),d=l?.settings||[],f=c?.config,{fetchAutocompleteLinks:h,searchLinks:g}=px(),p=bl(),x=f?.tenor?.googleApiKey?f.tenor:null,[w]=Gn(d,["transistor"]),y=E.useMemo(()=>({unsplash:i,pinturaConfig:a,tenor:x,fetchEmbed:p,fetchAutocompleteLinks:h,searchLinks:g,feature:{transistor:w},visibilitySettings:"none"}),[i,a,x,p,h,g,w]),_=E.useCallback(S=>{r.current=S},[]),m=E.useCallback(S=>{o&&S&&typeof S=="object"&&o(JSON.stringify(S))},[o]),v=E.useCallback(S=>{(S.metaKey||S.ctrlKey)&&S.key==="k"&&S.stopPropagation()},[]),N=S=>{r.current&&Sl(r.current,S)};return u.jsx("div",{className:"h-full",onKeyDown:v,onMouseDown:N,children:u.jsx(xx,{children:u.jsx(E.Suspense,{fallback:u.jsx(Ve,{size:"lg"}),children:u.jsx("div",{className:ie("koenig-react-editor w-full",yx,n),children:u.jsx(mx,{cardConfig:y,className:"koenig-lexical koenig-lexical-editor-input",darkMode:!1,fileUploader:gx,initialEditorState:s.current,placeholderText:t,registerAPI:_,onChange:m})})})})})},vx=le.memo(wx),bx=({previewState:e})=>{const[t,n]=E.useState(null),[o,r]=E.useState(!1),s=E.useRef(!1),i=E.useRef(null),a=E.useRef(null),l=E.useRef(null),c=E.useRef(null);function d(){a.current?.disconnect(),a.current=null,l.current!==null&&(window.cancelAnimationFrame(l.current),l.current=null),c.current!==null&&(window.cancelAnimationFrame(c.current),c.current=null)}const f=e.status==="success"?e.html:"";E.useEffect(()=>(d(),s.current=!1,r(!1),n(null),()=>{d()}),[f,e.status]);function h(){const w=i.current,y=w?.contentDocument;if(!w||!y)return;y.documentElement.style.overflowY="hidden",y.body.style.overflowY="hidden";const _=Math.max(y.documentElement?.scrollHeight||0,y.body?.scrollHeight||0,y.documentElement?.offsetHeight||0,y.body?.offsetHeight||0);_>0&&(n(m=>m===_?m:_),!s.current&&c.current===null&&(c.current=window.requestAnimationFrame(()=>{c.current=window.requestAnimationFrame(()=>{c.current=null,s.current=!0,r(!0)})})))}function g(){l.current!==null&&window.cancelAnimationFrame(l.current),l.current=window.requestAnimationFrame(()=>{l.current=null,h()})}function p(){const w=i.current,y=w?.contentDocument;if(!(!w||!y)&&(d(),g(),typeof ResizeObserver<"u")){const _=new ResizeObserver(()=>{g()});_.observe(y.documentElement),_.observe(y.body),a.current=_}}const x=e.status==="loading"||e.status==="success"&&!o;return u.jsxs("div",{className:"relative w-full","data-testid":"email-preview",children:[x&&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(Ve,{size:"md"})}),e.status==="success"&&u.jsx("div",{"aria-hidden":!o,className:ie("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})})]})},Ex=({automationId:e,subject:t,lexical:n,validateForm:o,onClose:r})=>{const{data:s}=Gc(),{mutateAsync:i}=kl(),[a,l]=E.useState(s?.email||""),[c,d]=E.useState(""),[f,h]=E.useState("idle"),g=E.useRef(null);E.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]),E.useEffect(()=>{s?.email&&l(s.email)},[s?.email]),E.useEffect(()=>{const x=w=>{w.key==="Escape"&&(w.stopPropagation(),r())};return document.addEventListener("keydown",x,!0),()=>document.removeEventListener("keydown",x,!0)},[r]);const p=async()=>{if(d(""),!Nl.isEmail(a)){d("Please enter a valid email address");return}if(!o()){d("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(x){h("idle");let w;x instanceof Yr&&x.data&&x.data.errors[0]?w=x.data.errors[0].context||x.data.errors[0].message:x instanceof Error&&(w=x.message),d(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(qn,{id:"test-email-input",placeholder:"you@yoursite.com",value:a,onChange:x=>{l(x.target.value)}})]}),u.jsx(ce,{className:"w-full",disabled:f==="sending",onClick:p,children:f==="sent"?"Sent":f==="sending"?"Sending...":"Send"}),c&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:c})]})},_x=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}},sa=e=>{const t={};return e.subject?.trim()||(t.subject="A subject is required"),_x(e.lexical)&&(t.lexical="Email content is required"),t},Sx=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}`},Nx=e=>{const t="Failed to render preview";return e instanceof Yr&&e.data?.errors?.[0]?e.data.errors[0].context||e.data.errors[0].message||t:e instanceof Error&&e.message?e.message:t},Cx=({automationId:e,previewAutomationEmail:t,setErrors:n})=>{const[o,r]=E.useState({status:"idle"}),s=E.useRef(0),i=()=>{s.current+=1,r({status:"idle"}),n({})},a=async c=>{const d=s.current+1;s.current=d;const f=sa(c);if(f.lexical){n({lexical:f.lexical}),r({status:"invalid",message:f.lexical});return}n({}),r({status:"loading"});try{const h=await t({id:e,subject:c.subject,lexical:c.lexical});if(s.current!==d)return;const g=h.automation_email_previews?.[0];if(!g?.html||!g?.plaintext||!g?.subject)throw new Error("Preview response was incomplete");r({status:"success",preview:{...g,html:Sx(g.html)}})}catch(h){if(s.current!==d)return;r({status:"error",message:Nx(h)})}};let l={status:"loading"};return o.status==="success"?l={status:"success",html:o.preview.html}:(o.status==="error"||o.status==="invalid")&&(l={status:o.status,message:o.message}),{previewFrameState:l,previewState:o,enterPreview:a,exitPreview:i}},xo=(e,t,n)=>Kn(t)&&!Xr(t)&&n?n:e.sender_email||n||"",Mx=(e,t,n,o)=>e.sender_reply_to==="newsletter"?Kn(t)?"":xo(e,t,o):e.sender_reply_to==="support"?n||o||"":e.sender_reply_to,kx=(e,t,n,o)=>{const r=Mx(e,t,n,o);return r||(e.sender_reply_to==="newsletter"?xo(e,t,o)||n||o||"":n||o||"")},Pr={free:"member-welcome-email-free",paid:"member-welcome-email-paid"},Re=e=>e?.trim()||"",Tn=(...e)=>e.map(Re).find(Boolean)||"",jx=({automatedEmails:e=[],config:t,defaultEmailAddress:n,newsletter:o,siteTitle:r,supportEmailAddress:s})=>{const i=e.find(I=>I.slug===Pr.free),a=e.find(I=>I.slug===Pr.paid),l=Tn(i?.sender_name,a?.sender_name),c=Tn(i?.sender_email,a?.sender_email),d=Tn(i?.sender_reply_to,a?.sender_reply_to),f=Re(o?.sender_name),h=o?Re(xo(o,t,n||void 0)):"",g=o?Re(kx(o,t,s||void 0,n||void 0)):"",p=f||Re(r)||"Your site name",x=h||Re(n),w=g||Re(s)||Re(n),y=l||p,_=c||x||"",m=d||w||"",v=m!==""&&m!==_,N=Kn(t),S=Xr(t);return{hasDistinctReplyTo:v,replyToEmailInput:d,replyToEmailPlaceholder:w,resolvedReplyToEmail:m,resolvedSenderEmail:_,resolvedSenderName:y,senderEmailDomain:S?qc(t):null,senderEmailInput:c,senderEmailPlaceholder:x,senderNameInput:l,senderNamePlaceholder:p,showSenderEmailInput:!N||S}},Ix=(e=[])=>{const{data:t}=Zn(),{data:n}=Wr(),o=t?.settings||[],r=E.useMemo(()=>n?.config||{},[n]),[s,i,a]=Gn(o,["title","default_email_address","support_email_address"]),{data:l}=Ll({searchParams:{filter:"status:active",limit:"1"}}),c=l?.newsletters?.[0];return E.useMemo(()=>jx({automatedEmails:e,config:r,defaultEmailAddress:i,newsletter:c,siteTitle:s,supportEmailAddress:a}),[e,r,i,c,s,a])},ia=le.forwardRef(({title:e,centeredHeaderContent:t,headerActions:n,children:o,className:r,isEditMode:s=!1},i)=>u.jsxs("div",{ref:i,className:ie("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})]}));ia.displayName="EmailPreviewModalContent";const Ax=({children:e,className:t})=>u.jsx("div",{className:ie("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}),Px=({children:e,className:t})=>u.jsx("div",{className:ie("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}),Dx=({automationId:e,initialMode:t="edit",initialSubject:n,initialLexical:o,isDiscardNavigationBlocked:r=!1,onClose:s,onDirtyChange:i,onDiscardBlockedNavigation:a,onKeepEditingAfterBlockedNavigation:l,onSave:c})=>{const{mutateAsync:d}=jl(),{data:f}=Cl(),[h,g]=E.useState(!1),[p,x]=E.useState(t),[w,y]=E.useState(null),[_,m]=E.useState(!1),v=E.useRef(!1),N=E.useRef(null),S=E.useRef(o||""),I=E.useRef(!1),A=E.useRef(!1),P=Kc(),H=f?.automated_emails||[],{resolvedSenderName:j,resolvedSenderEmail:R,resolvedReplyToEmail:$,hasDistinctReplyTo:b}=Ix(H),{formState:C,saveState:M,updateForm:k,setFormState:T,setErrors:D,handleSave:L,okProps:B,errors:O,clearError:G}=Ml({initialState:{subject:n||"",lexical:o||""},savingDelay:500,onSave:async V=>{c({subject:V.subject,lexical:V.lexical})},onSaveError:P}),Z=E.useCallback(()=>{const V=sa(C);return D(V),Object.values(V).every(J=>!J)},[C,D]),F=B.label||"Save",{previewFrameState:X,enterPreview:Y,exitPreview:z}=Cx({automationId:e,previewAutomationEmail:d,setErrors:D});E.useEffect(()=>{t!=="preview"||v.current||(v.current=!0,Y(C))},[Y,C,t]);const W=M==="unsaved";E.useEffect(()=>(i?.(W&&!A.current),()=>{i?.(!1)}),[W,i]);const te=E.useCallback(()=>{W?m(!0):s()},[W,s]),ee=E.useCallback(async()=>{await L({fakeWhenUnchanged:!0})},[L]);E.useEffect(()=>{const V=J=>{N.current&&!N.current.contains(J.target)&&g(!1)};return h&&document.addEventListener("mousedown",V),()=>{document.removeEventListener("mousedown",V)}},[h]);const q=E.useRef(ee);E.useEffect(()=>{q.current=ee},[ee]),E.useEffect(()=>{const V=J=>{(J.metaKey||J.ctrlKey)&&J.key==="s"&&(J.preventDefault(),q.current())};return window.addEventListener("keydown",V),()=>{window.removeEventListener("keydown",V)}},[]);const Q=E.useCallback(V=>{x(V),V==="preview"?(y(null),Y(C)):(g(!1),y(null),z())},[Y,z,C]),U=E.useCallback(V=>{if(!I.current){S.current=V,T(J=>({...J,lexical:V}));return}V!==S.current?k(J=>({...J,lexical:V})):T(J=>({...J,lexical:V}))},[T,k]);return u.jsxs(u.Fragment,{children:[u.jsx(Qc,{open:!0,onOpenChange:V=>{V||te()},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:V=>{V.preventDefault(),V.stopPropagation(),te()},children:[u.jsx(el,{className:"sr-only",children:"Edit email"}),u.jsx(ia,{centeredHeaderContent:u.jsx(Ol,{"data-testid":"email-mode-toggle",value:p,variant:"segmented-sm",onValueChange:V=>V&&Q(V),children:u.jsxs($l,{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(Po,{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(Po,{className:"w-full justify-center","data-testid":"email-mode-preview",value:"preview",children:"Preview"})]})}),headerActions:u.jsxs(u.Fragment,{children:[u.jsx(ce,{variant:"outline",onClick:te,children:"Close"}),u.jsx(ce,{disabled:B.disabled,onClick:ee,children:F})]}),isEditMode:p==="edit",title:"Edit email",children:u.jsxs("div",{className:"flex grow flex-col items-center p-6",children:[p==="preview"&&u.jsx(Ax,{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:j}),u.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:`<${R}>`})]})}),u.jsxs("div",{ref:N,className:"relative",children:[u.jsxs(ce,{variant:"outline",onClick:()=>g(!h),children:[u.jsx(Bl,{className:"size-4"}),"Test"]}),h&&u.jsx(Ex,{automationId:e,lexical:C.lexical,subject:C.subject,validateForm:Z,onClose:()=>g(!1)})]})]}),b&&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:$})]}),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(qn,{className:"w-full","data-testid":"email-preview-subject",value:w??C.subject,onChange:V=>{const J=V.target.value;y(J),k(se=>({...se,subject:J})),G("subject")}}),O.subject&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:O.subject})]})]})]})}),u.jsxs(Px,{className:ie(p==="preview"&&"shadow-sm bg-white dark:bg-grey-975",p==="edit"&&"px-6",p==="edit"&&"rounded-lg",p==="edit"&&O.lexical&&"border border-red-500"),children:[u.jsx("div",{className:ie("mx-auto w-full max-w-[600px] pt-10 pb-8 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none",p==="preview"&&"hidden"),"data-testid":"email-editor",onFocus:()=>{I.current=!0},children:u.jsx(vx,{className:"automation-email-editor",placeholder:"Begin writing your email...",value:C.lexical,onChange:U})}),p==="preview"&&u.jsx(bx,{previewState:X})]}),p==="edit"&&O.lexical&&u.jsx("span",{className:"mt-2 block max-w-[740px] text-xs text-destructive",children:O.lexical})]})})]})}),u.jsx(qe,{open:_||r,onOpenChange:V=>{if(V){m(!0);return}m(!1),r&&l?.()},children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Discard changes?"}),u.jsx(et,{children:"Your changes to this email haven't been saved."})]}),u.jsxs(tt,{children:[u.jsx(nt,{children:"Keep editing"}),u.jsx(ce,{variant:"destructive",onClick:()=>{if(m(!1),r){a?.();return}A.current=!0,i?.(!1),s()},children:"Discard"})]})]})})]})},Tx=180,Rx=[1.5,1,.75,.5,.25],zx=()=>{const[e,t]=E.useState(!1),{fitView:n,zoomIn:o,zoomOut:r,zoomTo:s}=wn(),{zoom:i}=$m(),a={duration:Tx},l=Math.round(i*100),c=f=>{t(!1),s(f,a)},d=()=>{t(!1),n(a)};return u.jsxs(qm,{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(ce,{"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(Gr,{className:"size-5",strokeWidth:1.5})}),u.jsxs(tl,{open:e,onOpenChange:t,children:[u.jsx(nl,{asChild:!0,children:u.jsxs(ce,{"aria-label":`Zoom level ${Wt(l)}%`,className:"h-9 min-w-14 rounded-sm px-2 font-semibold",type:"button",variant:"ghost",children:[Wt(l),"%"]})}),u.jsxs(ol,{align:"center",className:"w-40",side:"top",sideOffset:12,children:[Rx.map(f=>{const h=Math.round(f*100),g=Math.abs(i-f)<.01;return u.jsxs(Mo,{onSelect:()=>c(f),children:[Wt(h),"%",g&&u.jsx(rl,{children:u.jsx(Br,{className:"size-4 text-text-secondary",strokeWidth:1.5})})]},f)}),u.jsx(sl,{}),u.jsx(Mo,{onSelect:d,children:"Fit to view"})]})]}),u.jsx(ce,{"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(an,{className:"size-5",strokeWidth:1.5})})]})},Me="__trigger__",Fe="__tail__",Ox=({sourceId:e,targetId:t})=>({previousActionId:e===Me?void 0:e,nextActionId:t===Fe?void 0:t}),$x={background:"transparent",border:"none",height:0,minHeight:0,minWidth:0,opacity:0,pointerEvents:"none",width:0},At=({type:e,position:t})=>u.jsx(It,{isConnectable:!1,position:t,style:$x,type:e}),aa=({children:e,className:t,data:n})=>{const o=E.useRef(!1);return u.jsxs(Su,{onOpenChange:r=>{r||(o.current=!1)},children:[u.jsx(Nu,{asChild:!0,children:u.jsx("button",{"aria-invalid":!!n.errorMessage,"aria-label":n.value?`${n.label}: ${n.value}`:n.label,"aria-pressed":n.selected,className:ie("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.errorMessage||n.warningMessage)&&"items-start",!n.selected&&"hover:border-border-strong",n.selected&&!n.errorMessage&&"border-gray-700 shadow-[inset_0_0_0_1px_var(--color-gray-700),0_1px_2px_0_rgb(0_0_0_/_0.05)]",n.errorMessage&&"border-destructive",!n.errorMessage&&n.warningMessage&&"border-yellow-600",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(_s,{className:"w-44",onClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:n.contextMenuItems.map(r=>{if(r.type==="separator")return u.jsx(Ns,{},r.id);const s=r.icon;return u.jsxs(Ss,{variant:r.variant,onSelect:r.onSelect,children:[s&&u.jsx(s,{className:"size-4"}),r.label]},r.label)})})]})},ca=({data:e})=>{const t=e.icon,n=e.errorMessage||e.warningMessage;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:ie("flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",n&&"mt-[3px]"),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-sm text-text-secondary",children:e.label}),e.value&&u.jsx("span",{className:ie("truncate text-base font-medium",e.isPlaceholderValue&&"opacity-50"),children:e.value}),e.errorMessage&&u.jsx("span",{className:"mt-1 text-xs text-destructive",children:e.errorMessage}),!e.errorMessage&&e.warningMessage&&u.jsx("span",{className:"mt-1 text-xs text-yellow-600",children:e.warningMessage})]})]})},la=le.memo(({data:e})=>u.jsxs(aa,{data:e,children:[u.jsx(ca,{data:e}),u.jsx(At,{position:K.Bottom,type:"source"})]}));la.displayName="TriggerNode";const ua=le.memo(({data:e})=>u.jsxs(aa,{data:e,children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(ca,{data:e}),u.jsx(At,{position:K.Bottom,type:"source"})]}));ua.displayName="StepNode";const Lx=({data:e})=>{const[t,n]=E.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";return e.disabled?u.jsxs("div",{className:"flex h-12 w-64 items-center justify-center rounded-lg border border-border-default bg-[repeating-linear-gradient(135deg,var(--color-white)_0,var(--color-white)_12px,var(--color-gray-100)_12px,var(--color-gray-100)_24px)] text-sm font-medium text-text-secondary","data-testid":"step-limit-tail-node",children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(ml,{className:"mr-2 size-4",strokeWidth:1.5}),e.disabledReason]}):u.jsxs(Hr,{open:t,onOpenChange:n,children:[u.jsxs(Vr,{"aria-label":"Add step",className:ie(r,"cursor-pointer"),"data-testid":"add-step-tail-button",children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(an,{className:"size-5 text-text-secondary",strokeWidth:1.5})]}),u.jsx(Fr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(Cs,{onPick:o})})]})},Bx={trigger:la,step:ua,tail:Lx},da=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`},qt=30,Hx=/^\d+$/,Rn=e=>{const t=Number(e);return!Hx.test(e)||!Number.isInteger(t)||t<1||t>qt?null:t},fa=({children:e,htmlFor:t,label:n})=>u.jsxs(Vl,{children:[u.jsx(Fl,{className:"text-sm font-medium text-text-secondary",htmlFor:t,children:n}),e]}),ha=({onClick:e})=>u.jsxs(ce,{className:"w-full border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground",type:"button",variant:"outline",onClick:e,children:[u.jsx(Zr,{className:"size-4"}),"Delete step"]}),Vx={free:"Free",paid:"Paid"},Fx=({memberTiers:e})=>{const t=e.map(n=>Vx[n]).join(", ");return u.jsx("div",{className:"flex flex-col gap-5",children:t&&u.jsxs("div",{className:"flex flex-col",children:[u.jsx("span",{className:"text-sm font-medium text-text-secondary",children:"Members"}),u.jsx("span",{className:"text-base text-foreground",children:t})]})})},Wx=({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]=E.useState(String(o)),[i,a]=E.useState(!1),l=Number(r),c=Rn(r)!==null,d=i&&!c,f=p=>{const x=p*24;x!==e.data.wait_hours&&t(x)},h=p=>{const x=Rn(r);if(x===null)return;const w=Math.min(qt,Math.max(1,x+p));s(String(w)),f(w)},g=p=>{const x=p.target.value;s(x);const w=Rn(x);w!==null&&f(w)};return u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsxs(fa,{htmlFor:"automation-wait-days",label:"Wait for",children:[u.jsxs(Wl,{"aria-label":"Wait duration in days",className:"h-(--control-height)","data-disabled":d?"true":void 0,children:[u.jsx(Yl,{"aria-describedby":d?"automation-wait-days-error":void 0,"aria-invalid":d,className:"w-10 min-w-10 flex-none pr-1 font-mono tabular-nums",id:"automation-wait-days",inputMode:"numeric",value:r,onBlur:()=>a(!0),onChange:g,onFocus:()=>a(!1)}),u.jsx(Xl,{className:"mr-auto",children:l===1?"day":"days"}),u.jsxs(Ul,{align:"inline-end",className:"gap-0.5 pr-2",children:[u.jsx(Do,{"aria-label":"Decrease wait by one day",disabled:!c||l<=1,size:"icon-xs",title:"Decrease wait by one day",onClick:()=>h(-1),children:u.jsx(Gr,{className:"size-4"})}),u.jsx(Do,{"aria-label":"Increase wait by one day",disabled:!c||l>=qt,size:"icon-xs",title:"Increase wait by one day",onClick:()=>h(1),children:u.jsx(an,{className:"size-4"})})]})]}),d&&u.jsxs(Hl,{className:"text-xs",id:"automation-wait-days-error",children:["Enter a delay between 1 and ",Wt(qt)," days"]})]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ha,{onClick:n})})]})},Yx=({action:e,onUpdateSubject:t,onEditEmail:n,onDelete:o})=>{const r=E.useRef(null);return E.useEffect(()=>{r.current?.focus({preventScroll:!0})},[e.id]),u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsx(fa,{label:"Subject line",children:u.jsx(qn,{ref:r,placeholder:"Subject line",value:e.data.email_subject,onChange:s=>t(s.target.value)})}),u.jsxs(ce,{className:"w-full",type:"button",variant:"outline",onClick:n,children:[u.jsx(qr,{className:"size-4"}),"Edit email"]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ha,{onClick:o})})]})},Xx=({detail:e})=>{switch(e.type){case"trigger":return u.jsx(Fx,{memberTiers:e.memberTiers});case"wait":return u.jsx(Wx,{action:e.action,onDelete:e.onDelete,onUpdate:e.onUpdate},e.action.id);case"send_email":return u.jsx(Yx,{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}`)}}},Ux=({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-sm text-text-secondary",children:e.label}),u.jsx("h2",{className:ie("truncate text-base leading-tight font-medium text-foreground",e.isPlaceholderTitle&&"opacity-50"),children:e.title})]})]})}),u.jsx(Xx,{detail:e})]})},Zx={"member-welcome-email-free":["free"],"member-welcome-email-paid":["paid"]},Gx=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s})=>{if(!t)return null;if(t===Me)return{icon:Ur,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=da(i.data.wait_hours);return{icon:Jn,label:"Wait",title:a,action:i,onDelete:()=>n(i.id),onUpdate:l=>o(i.id,l),type:"wait"}}case"send_email":return{icon:Qn,label:"Send email",isPlaceholderTitle:!i.data.email_subject,title:i.data.email_subject||"Untitled",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}`)}}},qx=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s,isEmailModalOpen:i,onClose:a})=>{const l=Gx({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s});return E.useEffect(()=>{if(!l)return;const c=d=>{if(d.key==="Escape"){if(i)return;a()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)}},[l,i,a]),u.jsx("aside",{"aria-hidden":!l,"aria-label":"Step details",className:ie("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",l?"translate-x-0":"pointer-events-none"),"data-state":l?"open":"closed","data-testid":"automation-step-sidebar",children:l&&u.jsx(Ux,{detail:l})})},yo=e=>{if(!e)return!0;try{const n=JSON.parse(e)?.root?.children;return!n||n.length===0?!0:n.length===1&&n[0].type==="paragraph"&&(!n[0].children||n[0].children.length===0)}catch{return!0}},Kt=0,Kx=256,Qx=Kt+Kx/2,Dr=180,Jx=40,ey=250,ty="Maximum steps added",ny="var(--xy-edge-stroke)",bt="emailStep",oy={"add-step-edge":hx},ry=e=>{switch(e.type){case"wait":return{icon:Jn,label:"Wait",value:da(e.data.wait_hours)};case"send_email":return{icon:Qn,isPlaceholderValue:!e.data.email_subject,label:"Send email",value:e.data.email_subject||"Untitled",warningMessage:yo(e.data.email_lexical)?"Empty email body":void 0};default:{const t=e;throw new Error(`Unknown automation action type: ${t}`)}}},Tr=({canDelete:e=!1,canEditEmailBody:t=!1,onDelete:n,onEditEmailBody:o,onPreviewEmail:r,onSelectStep:s,stepId:i})=>{const a=[{icon:ul,label:"Edit settings",onSelect:()=>s(i)}];return t&&o&&a.push({icon:qr,label:"Edit email body",onSelect:()=>o(i)}),t&&r&&a.push({icon:Gl,label:"Preview",onSelect:()=>r(i)}),e&&n&&(t&&a.push({id:"before-delete",type:"separator"}),a.push({icon:Zr,label:"Delete",onSelect:()=>n(i),variant:"destructive"})),a},sy=e=>{if(e.actions.length===0)return[];const t=new Map(e.actions.map(l=>[l.id,l])),n=new Set(e.edges.map(l=>l.target_action_id)),o=e.actions.find(l=>!n.has(l.id));if(!o)throw new Error(`Could not determine the starting step for automation ${e.id}.`);const r=new Map(e.edges.map(l=>[l.source_action_id,l.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 l=r.get(a.id);a=l?t.get(l):void 0}if(s.length!==e.actions.length)throw new Error(`Some steps in automation ${e.id} are missing or disconnected.`);return s},iy=({actionErrors:e,automation:t,disabled:n,onDelete:o,onEditEmailBody:r,onPick:s,onPreviewEmail:i,onSelectStep:a,newStepId:l,selectedStepId:c})=>{const d=sy(t),f={draggable:!1,selectable:!1,connectable:!1,focusable:!1},h=n?ty:void 0,p={sourceId:d[d.length-1]?.id??Me,targetId:Fe},x=[{id:Me,type:"trigger",position:{x:Kt,y:0},data:{contextMenuItems:Tr({onSelectStep:a,stepId:Me}),icon:Ur,isNew:!1,label:"Trigger",value:"Member signs up",selected:c===Me,onSelect:()=>a(Me)},...f}];d.forEach((_,m)=>{x.push({id:_.id,type:"step",position:{x:Kt,y:Dr*(m+1)},data:{...ry(_),contextMenuItems:Tr({canDelete:!0,canEditEmailBody:_.type==="send_email",onDelete:o,onEditEmailBody:r,onPreviewEmail:i,onSelectStep:a,stepId:_.id}),errorMessage:e[_.id],isNew:l===_.id,selected:c===_.id,onSelect:()=>a(_.id)},...f})}),x.push({id:Fe,type:"tail",position:{x:Kt,y:Dr*(d.length+1)},data:{disabled:n,disabledReason:h,onPick:s,anchor:p},draggable:!1,connectable:!1});const w=[];let y=Me;return d.forEach(_=>{const m={sourceId:y,targetId:_.id,disabled:n,disabledReason:h,onPick:s};w.push({id:`e-${y}-${_.id}`,source:y,target:_.id,type:"add-step-edge",focusable:!1,data:m}),y=_.id}),w.push({id:`e-${y}-${Fe}`,source:y,target:Fe,type:"smoothstep",focusable:!1,style:{stroke:ny}}),{nodes:x,edges:w}},ay=e=>({x:Math.round(e/2-Qx),y:Jx,zoom:1}),cy={wait:Dl,send_email:Pl},ly=e=>!!e&&typeof e=="object"&&"automationEmailModal"in e&&typeof e.automationEmailModal=="boolean",uy=({actionErrors:e={},automation:t,isEmailNavigationBlocked:n=!1,isLoading:o,isError:r,onChange:s,onDiscardBlockedEmailNavigation:i,onEmailDirtyChange:a,onKeepEditingAfterBlockedEmailNavigation:l})=>{const c=il(),d=al(),[f,h]=cl(),[g,p]=E.useState(null),[x,w]=E.useState("edit"),[y,_]=E.useState(null),[m,v]=E.useState(null),N=y?.id??null,S=f.get(bt),I=ly(c.state)&&c.state.automationEmailModal,A=E.useCallback(F=>{const X=new URLSearchParams(f);X.delete(bt),h(X,{replace:F?.replace??!0})},[f,h]),P=E.useCallback((F,X)=>{if(!t||t.actions.length>=Io)return;const Y=Ox(X),z=cy[F],W=z({detail:t,anchor:Y}),te=W.actions.find(ee=>!t.actions.some(q=>q.id===ee.id));p(te?.id??null),te&&_({id:te.id}),s(W)},[t,s]);E.useEffect(()=>{if(!g)return;const F=window.setTimeout(()=>{p(null)},ey);return()=>window.clearTimeout(F)},[g]);const H=E.useCallback(F=>{if(!t)return;const X=Il({detail:t,actionId:F});S===F&&A(),_(null),v(null),s(X)},[t,S,s,A]),j=E.useCallback(F=>{if(!t)return;const X=t.actions.find(Y=>Y.id===F);if(X?.type==="send_email"&&!yo(X.data.email_lexical)){v(X.id);return}H(F)},[t,H]),R=E.useCallback((F,X)=>{t&&s(Al({detail:t,actionId:F,waitHours:X}))},[t,s]),$=E.useCallback((F,X)=>{if(!t)return;const Y=t.actions.find(z=>z.id===F&&z.type==="send_email");Y&&s(Ao({detail:t,actionId:F,emailSubject:X,emailLexical:Y.data.email_lexical}))},[t,s]),b=E.useCallback((F,X="edit")=>{w(X);const Y=new URLSearchParams(f);Y.set(bt,F),h(Y,{state:{...c.state&&typeof c.state=="object"?c.state:{},automationEmailModal:!0}})},[c.state,f,h]),C=E.useCallback((F,X="edit")=>{_(null),b(F,X)},[b]),M=E.useCallback(F=>{C(F,"preview")},[C]),k=S&&t?t.actions.find(F=>F.id===S&&F.type==="send_email"):void 0,T=t&&m?t.actions.find(F=>F.id===m&&F.type==="send_email"):void 0,D=E.useRef(ay(window.innerWidth)),L=E.useMemo(()=>t?iy({actionErrors:e,automation:t,disabled:t.actions.length>=Io,onDelete:j,onEditEmailBody:C,onPick:P,onPreviewEmail:M,onSelectStep:F=>_({id:F}),newStepId:g,selectedStepId:N}):null,[e,t,C,M,P,j,g,N]),B=E.useCallback(()=>{_(null)},[]),O=()=>{if(w("edit"),I){d(-1);return}A()},G=E.useCallback(()=>{w("edit"),A()},[A]);E.useEffect(()=>{if(!t||!S)return;t.actions.some(X=>X.id===S&&X.type==="send_email")||A()},[t,S,A]);const Z=E.useCallback((F,X)=>{if(F.stopPropagation(),!t||X.id===Fe||X.id===Me)return;const Y=t.actions.find(z=>z.id===X.id);Y?.type==="send_email"&&b(Y.id)},[t,b]);return o?u.jsx("div",{className:"flex flex-1 items-center justify-center bg-surface-page","data-testid":"automation-canvas-loading",children:u.jsx(Ve,{size:"lg"})}):r||!t||!L?u.jsx("div",{className:"flex flex-1 items-start justify-center bg-surface-page px-4 py-8",children:u.jsx(ll,{className:"max-w-md",role:"alert",variant:"destructive",children:u.jsxs("div",{className:"flex items-start gap-3",children:[u.jsx(Zl,{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(Tm,{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:D.current,edges:L.edges,edgesFocusable:!1,edgeTypes:oy,nodes:L.nodes,nodesConnectable:!1,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:Bx,proOptions:{hideAttribution:!0},zoomOnDoubleClick:!1,zoomOnScroll:!1,panOnScroll:!0,onNodeClick:(F,X)=>{F.button===0&&X.id!==Fe&&_({id:X.id})},onNodeDoubleClick:Z,onPaneClick:B,children:[u.jsx(Fm,{variant:je.Dots}),u.jsx(zx,{})]}),u.jsx(qx,{automation:t,isEmailModalOpen:!!k||!!T,stepId:N,onClose:B,onDelete:j,onEditEmail:b,onUpdateSubject:$,onUpdateWait:R}),k&&t&&u.jsx(Dx,{automationId:t.id,initialLexical:k.data.email_lexical,initialMode:x,initialSubject:k.data.email_subject,isDiscardNavigationBlocked:n,onClose:O,onDirtyChange:a,onDiscardBlockedNavigation:()=>i?.(G),onKeepEditingAfterBlockedNavigation:l,onSave:({subject:F,lexical:X})=>{s(Ao({detail:t,actionId:k.id,emailSubject:F,emailLexical:X}))}}),u.jsx(qe,{open:!!T,onOpenChange:F=>{F||v(null)},children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Delete this email?"}),u.jsx(et,{children:"This email will be removed from the automation. Save or publish the automation to apply this change."})]}),u.jsxs(tt,{children:[u.jsx(nt,{children:"Cancel"}),u.jsx(ce,{variant:"destructive",onClick:()=>{T&&H(T.id)},children:"Delete email"})]})]})})]})},dy=({automation:e,isLoadingAutomation:t,isSaveButtonEnabled:n,isPublishButtonEnabled:o,saveButtonVariant:r,publishButtonVariant:s,isTurnOffButtonEnabled:i,saveButtonChildren:a,publishButtonChildren:l,onSave:c,onPublish:d,onTurnOff:f})=>{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(ce,{variant:"ghost",asChild:!0,children:u.jsx(dl,{"aria-label":"Back to automations",to:"/automations",children:u.jsx(fl,{strokeWidth:2})})}),t?u.jsx(hl,{className:"h-5 w-40"}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"truncate text-lg font-semibold",children:h}),g&&u.jsx(Tl,{status:g})]})]}),u.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[g==="active"&&u.jsxs(ce,{disabled:!i,variant:"outline",onClick:f,children:[u.jsx(xl,{}),"Turn off"]}),g==="inactive"&&u.jsx(ce,{disabled:!n,variant:r,onClick:c,children:a}),u.jsx(ce,{disabled:!o,variant:s,onClick:d,children:l})]})]})};var Rr=Object.prototype.hasOwnProperty;function zr(e,t,n){for(n of e.keys())if(Et(n,t))return n}function Et(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--&&Et(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=zr(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=zr(t,r),!r)||!Et(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(Rr.call(e,n)&&++o&&!Rr.call(t,n)||!(n in t)||!Et(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const fy="Add a subject line.",hy="Add an email body.",py="Add a subject line and email body.",Or=e=>({status:e.status,actions:e.actions,edges:e.edges}),gy=e=>e.phase==="failed",zn=e=>{const t={};for(const n of e.actions){if(n.type!=="send_email")continue;const o=!n.data.email_subject.trim(),r=yo(n.data.email_lexical);o&&r?t[n.id]=py:o?t[n.id]=fy:r&&(t[n.id]=hy)}return t},Ty=()=>{const{id:e=""}=pl(),{data:t,isLoading:n,isError:o}=Rl(e,{defaultErrorHandler:!1}),r=t?.automations[0],s=zl(),[i,a]=le.useState({phase:"idle"}),[l,c]=le.useState({}),[d,f]=le.useState(!1),h=le.useRef(!1),g=le.useRef(null),p=le.useRef(!1),[x,w]=le.useState(void 0);le.useEffect(()=>{r&&w(U=>U?.id===r.id?U:r)},[r]);const _=n||!!r&&!x,m=!!x&&!!r&&!Et(Or(x),Or(r)),v=U=>{w(U),c(V=>{if(Object.keys(V).length===0)return V;const J=zn(U);return Object.fromEntries(Object.entries(V).filter(([se])=>J[se]))}),a(V=>gy(V)?{phase:"idle"}:V)},N=(U,V)=>{const J=zn(U);return Object.keys(J).length>0?(c(J),a(V),_n.error("Automation needs a few details",{description:"Fix the highlighted steps and try again."}),!1):!0},S=U=>{if(!x)throw new Error("Cannot edit an automation that has not loaded.");let V,J;const se=x.status,fe=U??se,he=`${se} -> ${fe}`;switch(he){case"active -> active":V={phase:"submitting",action:"republish"},J={phase:"failed",action:"republish"};break;case"inactive -> inactive":V={phase:"submitting",action:"save"},J={phase:"failed",action:"save"};break;case"inactive -> active":V={phase:"submitting",action:"publish"},J={phase:"failed",action:"publish"};break;case"active -> inactive":V={phase:"submitting",action:"unpublish"},J={phase:"failed",action:"unpublish"};break;default:{const ue=he;throw new Error(`Unhandled status transition: ${ue}`)}}fe==="active"&&!N(x,J)||(a(V),s.mutate({id:x.id,status:fe,actions:x.actions,edges:x.edges},{onSuccess:ue=>{w(ue.automations[0]),c({}),a({phase:"idle"})},onError:ue=>{const me=fe==="active"?zn(x):{},Pe=Object.keys(me).length>0;Pe&&c(me),a(J),Pe?_n.error("Automation needs a few details",{description:"Fix the highlighted steps and try again."}):_n.error("Automation couldn’t be saved")}}))},I=i.action==="publish",A=i.action==="unpublish",P=i.action==="republish",H=i.phase==="submitting";let j=!!x&&x.actions.length>0&&x.status==="inactive"&&m,R="outline",$="Save",b=!!x&&x.actions.length>0&&(x.status==="inactive"||m);const C="default",M=x?.status==="active"?m?"Publish changes":"Published":"Publish";let k=!0,T="Turn off",D=!0,L="default",B="Publish",O=!0,G="default",Z="Publish changes";switch(i.phase){case"idle":break;case"submitting":switch(j=!1,b=!1,k=!1,i.action){case"save":$=u.jsxs(u.Fragment,{children:[u.jsx(Ve,{size:"sm"}),u.jsx("span",{className:"sr-only",children:"Saving..."})]});break;case"publish":D=!1,B=u.jsxs(u.Fragment,{children:[u.jsx(Ve,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"republish":O=!1,Z=u.jsxs(u.Fragment,{children:[u.jsx(Ve,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"unpublish":T=u.jsxs(u.Fragment,{children:[u.jsx(Ve,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Turning off..."})]});break}break;case"confirming":switch(i.action){case"publish":j=!1,b=!1;break;case"republish":b=!1,k=!1;break;case"unpublish":j=!1,b=!1,k=!1;break}break;case"failed":switch(i.action){case"save":R="destructive",$="Retry";break;case"publish":j=!1,b=!1,L="destructive",B="Retry";break;case"republish":b=!1,k=!1,G="destructive",Z="Retry";break;case"unpublish":k=!0,T="Retry";break}break;default:{const U=i;throw new Error(`Unhandled edit state: ${U}`)}}const F=U=>{a(V=>{switch(V.phase){case"confirming":case"failed":return V.action==="unpublish"&&!U?{phase:"idle"}:V;case"idle":return U?{phase:"confirming",action:"unpublish"}:V;default:return V}})},X=U=>{a(V=>{switch(V.phase){case"confirming":case"failed":return V.action==="publish"&&!U?{phase:"idle"}:V;case"idle":return U?{phase:"confirming",action:"publish"}:V;default:return V}})},Y=U=>{a(V=>{switch(V.phase){case"confirming":case"failed":return V.action==="republish"&&!U?{phase:"idle"}:V;case"idle":return U?{phase:"confirming",action:"republish"}:V;default:return V}})},z=()=>{if(!x)throw new Error("Cannot publish an automation that has not loaded.");switch(x.status){case"active":if(!N(x,{phase:"idle"}))return;a({phase:"confirming",action:"republish"});break;case"inactive":if(!N(x,{phase:"idle"}))return;a({phase:"confirming",action:"publish"});break;default:{const U=x.status;throw new Error(`Unhandled status: ${U}`)}}};ql(H||m||d);const W=gl(({currentLocation:U,nextLocation:V})=>{const J=new URLSearchParams(U.search).get(bt),se=new URLSearchParams(V.search).get(bt);return h.current&&J&&J!==se?(g.current="email",p.current=U.pathname!==V.pathname,!0):m&&U.pathname!==V.pathname?(g.current="automation",p.current=!1,!0):(g.current=null,p.current=!1,!1)}),te=W.state==="blocked"&&g.current==="email",ee=W.state==="blocked"&&g.current==="automation",q=U=>{!U&&ee&&W.reset()},Q=le.useCallback(U=>{h.current=U,f(U)},[]);return u.jsxs("div",{className:"fixed inset-0 z-50 flex flex-col bg-background","data-testid":"automation-editor",children:[u.jsx(dy,{automation:x,isLoadingAutomation:_,isPublishButtonEnabled:b,isSaveButtonEnabled:j,isTurnOffButtonEnabled:k,publishButtonChildren:M,publishButtonVariant:C,saveButtonChildren:$,saveButtonVariant:R,onPublish:z,onSave:()=>S(),onTurnOff:()=>a({phase:"confirming",action:"unpublish"})}),u.jsx(uy,{actionErrors:l,automation:x,isEmailNavigationBlocked:te,isError:o,isLoading:_,onChange:v,onDiscardBlockedEmailNavigation:U=>{if(Q(!1),p.current){p.current=!1,W.reset?.(),U();return}p.current=!1,W.proceed?.()},onEmailDirtyChange:Q,onKeepEditingAfterBlockedEmailNavigation:()=>{p.current=!1,W.reset?.()}}),u.jsx(qe,{open:ee,onOpenChange:q,children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Discard unsaved changes?"}),u.jsx(et,{children:"Your changes will be lost if you leave this automation."})]}),u.jsxs(tt,{children:[u.jsx(nt,{children:"Keep working"}),u.jsx(ce,{variant:"destructive",onClick:()=>W.proceed?.(),children:"Discard changes"})]})]})}),u.jsx(qe,{open:I,onOpenChange:X,children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Start your automation?"}),u.jsx(et,{children:"Once published, your automation goes live. Any member who meets the trigger will be enrolled automatically."})]}),u.jsxs(tt,{children:[u.jsx(nt,{disabled:H,children:"Cancel"}),u.jsx(ce,{disabled:!D,variant:L,onClick:()=>S("active"),children:B})]})]})}),u.jsx(qe,{open:A,onOpenChange:F,children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Turn off automation?"}),u.jsx(et,{children:"Your automation will no longer run, and any members currently in progress will be removed."})]}),u.jsxs(tt,{children:[u.jsx(nt,{disabled:H,children:"Cancel"}),u.jsx(ce,{disabled:H,variant:i.phase==="failed"&&i.action==="unpublish"?"destructive":"default",onClick:()=>S("inactive"),children:T})]})]})}),u.jsx(qe,{open:P,onOpenChange:Y,children:u.jsxs(Ke,{children:[u.jsxs(Qe,{children:[u.jsx(Je,{children:"Update your automation?"}),u.jsx(et,{children:"Once published, your changes apply immediately to members already in progress and to any new members who enter the automation."})]}),u.jsxs(tt,{children:[u.jsx(nt,{disabled:H,children:"Cancel"}),u.jsx(ce,{disabled:!O,variant:G,onClick:()=>S(),children:Z})]})]})})]})};export{Ty as default};