ghost 6.44.0 → 6.44.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/boot.js +9 -13
- package/core/bridge.js +6 -10
- package/core/built/admin/assets/{PolarAngleAxis-eFuSrR7S.js → PolarAngleAxis-DWP6qq-Z.js} +2 -2
- package/core/built/admin/assets/{_baseAssignValue-XVHfKew7.js → _baseAssignValue-N9f4o_XK.js} +1 -1
- package/core/built/admin/assets/{a-large-small-DOzPDzKp.js → a-large-small-BOAtcFiE.js} +1 -1
- package/core/built/admin/assets/{account-migration-Cx45M5qm.js → account-migration-CtZx_5ib.js} +1 -1
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{code-editor-view-Bi8Orhyj.mjs → code-editor-view-BMovCjer.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-1_V9g9Pt.mjs → index-BT1n-g2b.mjs} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-e9saYQJa.mjs → index-BnowNBGd.mjs} +5 -5
- package/core/built/admin/assets/admin-x-settings/{index-CnvQi01U.mjs → index-CRpK6gF8.mjs} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-BmU6BOfy.mjs → index-CfXS3AZ8.mjs} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-EuMiBt6I.mjs → index-Cs8zML6u.mjs} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-B43MPc5u.mjs → index-DmpwO1w3.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-DOgG0XZa.mjs → index-DwFIdhcR.mjs} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-CWdxMIcZ.mjs → index-sNyPiIJA.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-Ojg_pBvq.mjs → index-xTILut54.mjs} +1259 -1259
- package/core/built/admin/assets/admin-x-settings/{modals-Ckbx9UQF.mjs → modals-Cm5t13os.mjs} +9 -9
- package/core/built/admin/assets/{arrow-right-DckEQtp9.js → arrow-right-BxdHN_En.js} +1 -1
- package/core/built/admin/assets/{at-sign-BChf68aS.js → at-sign-Cajf-dOf.js} +1 -1
- package/core/built/admin/assets/{audience-BYU5Bd7D.js → audience-CHNb9mCT.js} +1 -1
- package/core/built/admin/assets/{automated-email-design-Z26Qit0_.js → automated-email-design-B9C9mKUS.js} +2 -2
- package/core/built/admin/assets/{automated-emails-aBicreLv.js → automated-emails-DhLhkq8L.js} +1 -1
- package/core/built/admin/assets/{automations-vpH-d72N.js → automations-6-cgZovk.js} +1 -1
- package/core/built/admin/assets/{automations-Ddo22yPk.js → automations-CxJ-N_YK.js} +1 -1
- package/core/built/admin/assets/{avatar-flipboard-CoI3LQ-o.js → avatar-flipboard-f5nSMmek.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-iVDkCMKN.js → bluesky-sharing-Dm2k8qZH.js} +1 -1
- package/core/built/admin/assets/{chart-CjM1VQqH.js → chart-BbJnjWey.js} +23 -23
- package/core/built/admin/assets/{checkbox-CC5kd_Kf.js → checkbox-CT7DNFAI.js} +1 -1
- package/core/built/admin/assets/{chevron-up-D__wzyXT.js → chevron-up-BxijmTT9.js} +1 -1
- package/core/built/admin/assets/{chunk.696.79505fa556d329d6e824.js → chunk.167.37bb0d7f6ac67fefa679.js} +3184 -3523
- package/core/built/admin/assets/{chunk.696.79505fa556d329d6e824.js.LICENSE.txt → chunk.167.37bb0d7f6ac67fefa679.js.LICENSE.txt} +1 -1
- package/core/built/admin/assets/{chunk.524.1ff649a6cc62dc38f538.js → chunk.524.ed812b62217210a913d4.js} +5 -5
- package/core/built/admin/assets/{chunk.582.408a40e0095e479e3d11.js → chunk.582.7db5c9f17bca5a484049.js} +6 -6
- package/core/built/admin/assets/{chunk.945.835812fcb16029abd7f9.js → chunk.834.f9db7c62b9457db93e8c.js} +3 -3
- package/core/built/admin/assets/{code-editor-view-C735d5EA.js → code-editor-view-D8slE0IA.js} +1 -1
- package/core/built/admin/assets/{comments-DgFPax3Y.js → comments-BvfR-fA8.js} +1 -1
- package/core/built/admin/assets/{content-helpers-DjugSfvm.js → content-helpers-DUWGLvgL.js} +1 -1
- package/core/built/admin/assets/{copy-D9JONGcK.js → copy-ht18t5gu.js} +1 -1
- package/core/built/admin/assets/{data-list-QWLEHG4y.js → data-list-Daha2dIs.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-CwSCflTW.js → deleted-feed-item-ChP5bwgi.js} +1 -1
- package/core/built/admin/assets/{dropzone-lK_4vpWS.js → dropzone-h_qyk514.js} +1 -1
- package/core/built/admin/assets/{edit-profile-BmioJZHv.js → edit-profile-BT8RQpAG.js} +1 -1
- package/core/built/admin/assets/editor-s1mqd9_o.js +8 -0
- package/core/built/admin/assets/{empty-indicator-Dg64lT_g.js → empty-indicator-BIUvv6JE.js} +1 -1
- package/core/built/admin/assets/{en-DCwBNJ98.js → en-BEcDl42w.js} +1 -1
- package/core/built/admin/assets/{eye-psLxWnjO.js → eye-TPnIdamu.js} +1 -1
- package/core/built/admin/assets/{feed-TUcCSZHL.js → feed-BK3qvLWi.js} +1 -1
- package/core/built/admin/assets/{field-Uk8NOvtc.js → field-CSFsrvVy.js} +1 -1
- package/core/built/admin/assets/{filter-query-core-CbH_VKcG.js → filter-query-core-R8cQCO2w.js} +1 -1
- package/core/built/admin/assets/{filters-DmawZ5Uu.js → filters-Cp1voB1e.js} +1 -1
- package/core/built/admin/assets/gh-chart-BFsyOJD_.js +1 -0
- package/core/built/admin/assets/{ghost-2baa7ddc3630015f41c0efd13bd586b8.js → ghost-1881362e8a92dae1e3333a0484c173a3.js} +7 -6
- package/core/built/admin/assets/{growth-BAl-TyMy.js → growth-DIigOxF1.js} +1 -1
- package/core/built/admin/assets/{hash-Q1ou0OMZ.js → hash-B3iFVeCl.js} +1 -1
- package/core/built/admin/assets/{inbox-BAOtR6tN.js → inbox-2bPMLikt.js} +1 -1
- package/core/built/admin/assets/{index-BnJp51QE.js → index-52qUC8yv.js} +5 -5
- package/core/built/admin/assets/{index-BDIwushG.js → index-9j01Aj_X.js} +1 -1
- package/core/built/admin/assets/index-B9UVpmey.js +1 -0
- package/core/built/admin/assets/{index-DTeOW3Se.js → index-BXc5OF6x.js} +1 -1
- package/core/built/admin/assets/{index-Duc21aJ7.js → index-BaGL3IFe.js} +1 -1
- package/core/built/admin/assets/{index-DKC8uXHk.js → index-BdozZbt2.js} +2 -2
- package/core/built/admin/assets/{index-z951kI4K.js → index-Bgpz7M7i.js} +1 -1
- package/core/built/admin/assets/{index-BfSvX9is.js → index-Bp4O7TVf.js} +1 -1
- package/core/built/admin/assets/{index-C5S08C6P.js → index-BuqUmpe9.js} +1 -1
- package/core/built/admin/assets/{index-D7OtVnbo.js → index-CEF_Ofn0.js} +1 -1
- package/core/built/admin/assets/{index-Bs6rUYFS.js → index-CgSVv5Up.js} +58 -58
- package/core/built/admin/assets/{index-Ro9qXetv.js → index-Cr6x2czK.js} +1 -1
- package/core/built/admin/assets/{index-DJbgQjV6.js → index-CrbZj3Ju.js} +1 -1
- package/core/built/admin/assets/{index-BTBcWw_z.js → index-CrlAPDdD.js} +2 -2
- package/core/built/admin/assets/{index-B6SD2Qs-.js → index-CtrmMGWT.js} +1 -1
- package/core/built/admin/assets/{index-Bw0oyOFd.js → index-D-V_DAdt.js} +1 -1
- package/core/built/admin/assets/{index-DAJduTBl.js → index-D0poOSjw.js} +4 -4
- package/core/built/admin/assets/{index-CGT3W8fi.js → index-DWVGCPEC.js} +3 -3
- package/core/built/admin/assets/index-Dozbr_4s.css +1 -0
- package/core/built/admin/assets/{index-FyplpnYQ.js → index-S3Ai3lDy.js} +1 -1
- package/core/built/admin/assets/{index-DLr8D_Ks.js → index-VDhA5kgU.js} +1 -1
- package/core/built/admin/assets/{index-DRA1fORQ.js → index-fnIFqFMt.js} +1 -1
- package/core/built/admin/assets/{index-BhWQZObu.js → index-kA3UcdW7.js} +1 -1
- package/core/built/admin/assets/{input-group-DH32syTz.js → input-group-Fdl0S6pw.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-CxVcbgsH.js → koenig-lexical-REiYtzGD.js} +1 -1
- package/core/built/admin/assets/{kpi-card-DBWHDi3l.js → kpi-card-BS8vEj4c.js} +1 -1
- package/core/built/admin/assets/{kpi-card-BYhzWV5F.js → kpi-card-D3HEfOCP.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-Kxc-utyg.js → kpi-tabs-8vaI7yWq.js} +1 -1
- package/core/built/admin/assets/kpis-CkD0Xteg.js +1 -0
- package/core/built/admin/assets/label-DT38Gd2T.js +1 -0
- package/core/built/admin/assets/{links-Cg8O8ZGP.js → links-BK-azjCL.js} +1 -1
- package/core/built/admin/assets/{list-page-D2KCBsiy.js → list-page-DVpac3lc.js} +1 -1
- package/core/built/admin/assets/{loader-circle-nmLqhMZL.js → loader-circle-CIq5Cv-9.js} +1 -1
- package/core/built/admin/assets/{mail-D7cxYMd5.js → mail-gdeIU06V.js} +1 -1
- package/core/built/admin/assets/{main-layout-BXdUkeCo.js → main-layout-B2t-RiNE.js} +1 -1
- package/core/built/admin/assets/members-7z-tESWd.js +10 -0
- package/core/built/admin/assets/minus-BbGfVkll.js +1 -0
- package/core/built/admin/assets/{modals-VRvX8mK0.js → modals-DVIfijEz.js} +3 -3
- package/core/built/admin/assets/{moderation-DkT8qVJs.js → moderation-DwzDOhih.js} +1 -1
- package/core/built/admin/assets/{newsletter-sUT4ciRJ.js → newsletter-D1N8bUfp.js} +1 -1
- package/core/built/admin/assets/{newsletters-BNvAF2Oi.js → newsletters-7GSeQdQe.js} +1 -1
- package/core/built/admin/assets/{note-B0JhJv7s.js → note-Bn1-ZWDE.js} +1 -1
- package/core/built/admin/assets/offers-BsuLKYy9.js +1 -0
- package/core/built/admin/assets/{onboarding-route-IrO_SCb3.js → onboarding-route-C73r9kyO.js} +1 -1
- package/core/built/admin/assets/{overview-C2nk_B6i.js → overview-6U5p38zx.js} +1 -1
- package/core/built/admin/assets/{pagemenu-BGhty1iq.js → pagemenu-DrueoEX9.js} +1 -1
- package/core/built/admin/assets/{pencil-DiA3J4m5.js → pencil-Csnv8udS.js} +1 -1
- package/core/built/admin/assets/{pin-off-HWos3YHh.js → pin-off-BDeHGsSQ.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-BJwP-XAB.js → post-analytics-context-jKeUh2Ka.js} +1 -1
- package/core/built/admin/assets/{post-analytics-header-CZF5QmAD.js → post-analytics-header-C5QLn6Lm.js} +1 -1
- package/core/built/admin/assets/{post-analytics-DBUHbt1b.js → post-analytics-ngMqqbt9.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-Bb8R05dH.js → post-share-modal-04B7JT4R.js} +1 -1
- package/core/built/admin/assets/posts/{alert-dialog-mmQvJUHQ.mjs → alert-dialog-CYvHtOQ5.mjs} +4 -4
- package/core/built/admin/assets/posts/{app-utils-CD0bhOLs.mjs → app-utils-Cs-8qje1.mjs} +3 -3
- package/core/built/admin/assets/posts/{automations-BL0WaXHA.mjs → automations-DE2rwx-Z.mjs} +25 -25
- package/core/built/admin/assets/posts/{automations-BmGKngyG.mjs → automations-Dq0_cprS.mjs} +4 -4
- package/core/built/admin/assets/posts/{avatar-CeJ0Zq_A.mjs → avatar-Dt_bGEgl.mjs} +7 -7
- package/core/built/admin/assets/posts/{button-CQCNdxY6.mjs → button-DO7JrPsL.mjs} +2 -2
- package/core/built/admin/assets/posts/{chevron-up-DaikhWC2.mjs → chevron-up-B8WyJjCr.mjs} +3 -3
- package/core/built/admin/assets/posts/{comments-DUSJ25vf.mjs → comments-B3-RpqJU.mjs} +1933 -1905
- package/core/built/admin/assets/posts/{data-list-BiiYXQes.mjs → data-list-BiZFP6Co.mjs} +5 -5
- package/core/built/admin/assets/posts/{dialog-DRN6olky.mjs → dialog-Bvl2PD8s.mjs} +3 -3
- package/core/built/admin/assets/posts/{editor-DN_Zz0m2.mjs → editor-BCtdAD74.mjs} +3230 -3130
- package/core/built/admin/assets/posts/{ellipsis-BIs4PL5-.mjs → ellipsis-B5H7Hudx.mjs} +2 -2
- package/core/built/admin/assets/posts/{empty-indicator-Wiukrx4T.mjs → empty-indicator-BRoAf6Jv.mjs} +2 -2
- package/core/built/admin/assets/posts/{filters-CJl5ebXd.mjs → filters-CffYQY_8.mjs} +12 -12
- package/core/built/admin/assets/posts/{get-site-timezone-JepxGwVr.mjs → get-site-timezone-CSrPVUfX.mjs} +2 -2
- package/core/built/admin/assets/posts/{growth-cNlqbz-x.mjs → growth--LVGRPtS.mjs} +13 -13
- package/core/built/admin/assets/posts/{heading-C_V6Ckxx.mjs → heading-BRQEP7IA.mjs} +2 -2
- package/core/built/admin/assets/posts/{heart-BMBWsLs2.mjs → heart-CC2f1qWb.mjs} +2 -2
- package/core/built/admin/assets/posts/{hooks-D4pJ_p_P.mjs → hooks-J2WpDj1d.mjs} +2 -2
- package/core/built/admin/assets/posts/{index-DzWTmJMy.mjs → index-D-vhKzUJ.mjs} +3 -3
- package/core/built/admin/assets/posts/{index-CDwlVw9E.mjs → index-LnPyGojr.mjs} +2 -2
- package/core/built/admin/assets/posts/{index-BuIZkUhD.mjs → index-nxfIbREV.mjs} +11 -11
- package/core/built/admin/assets/posts/{input-DUvSHOFz.mjs → input-DTtfruk_.mjs} +3 -3
- package/core/built/admin/assets/posts/{input-surface-CO8-j6V2.mjs → input-surface-DXTGCuo2.mjs} +2 -2
- package/core/built/admin/assets/posts/{koenig-lexical-cRm7bY-6.mjs → koenig-lexical-CNcifuT7.mjs} +2 -2
- package/core/built/admin/assets/posts/{kpis-BXukzbg6.mjs → kpis-n8L4BlMi.mjs} +5843 -5854
- package/core/built/admin/assets/posts/{label-TTt0QyDb.mjs → label-yl8B8ADj.mjs} +6 -6
- package/core/built/admin/assets/posts/{links-BAXELE82.mjs → links-DDApMJfk.mjs} +4 -4
- package/core/built/admin/assets/posts/{list-page-DQIiFvFP.mjs → list-page-BJJ9amzJ.mjs} +4 -4
- package/core/built/admin/assets/posts/{loading-indicator-BsY7eGY6.mjs → loading-indicator-CQBDNvdo.mjs} +3 -3
- package/core/built/admin/assets/posts/{mail-Bi1gt3MU.mjs → mail-BHg0SvNu.mjs} +2 -2
- package/core/built/admin/assets/posts/{main-layout-DejRuxP8.mjs → main-layout-DXveCJ5W.mjs} +2 -2
- package/core/built/admin/assets/posts/{newsletter-PCUtHW6Z.mjs → newsletter-DUpVmnKN.mjs} +19 -19
- package/core/built/admin/assets/posts/{overview-f4eDWazr.mjs → overview-sv6i-2h9.mjs} +18 -18
- package/core/built/admin/assets/posts/{pencil-DDnfXQqn.mjs → pencil-DsGDLJp6.mjs} +2 -2
- package/core/built/admin/assets/posts/{plus-DW3bG6ui.mjs → plus-DjZ_REvJ.mjs} +2 -2
- package/core/built/admin/assets/posts/{popover-Du2NcggM.mjs → popover-2PA9zdiD.mjs} +4 -4
- package/core/built/admin/assets/posts/{post-analytics-BmnHyWJq.mjs → post-analytics-CKHoiJFY.mjs} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-context-0fieM91Y.mjs → post-analytics-context-D17CB7nm.mjs} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-header-Bxi56AWV.mjs → post-analytics-header-aQLnrdWi.mjs} +12 -12
- package/core/built/admin/assets/posts/{post-share-modal-DiuT4GFO.mjs → post-share-modal-C8-8CZw8.mjs} +6 -6
- package/core/built/admin/assets/posts/{posts-CYjfxmgX.mjs → posts-BA2vu_T2.mjs} +2 -2
- package/core/built/admin/assets/posts/posts.js +1 -1
- package/core/built/admin/assets/posts/{search-Dz7F6ifc.mjs → search-Bx6BvCRk.mjs} +2 -2
- package/core/built/admin/assets/posts/{select-FX6QYAFU.mjs → select-QOJ2OvL0.mjs} +7 -7
- package/core/built/admin/assets/posts/{separator-C7QPCSjM.mjs → separator-CHtBa4OX.mjs} +3 -3
- package/core/built/admin/assets/posts/{settings-DJqx19W1.mjs → settings-CxhTCxXg.mjs} +2 -2
- package/core/built/admin/assets/posts/{sheet-wg_8-w45.mjs → sheet-DO5nhiru.mjs} +4 -4
- package/core/built/admin/assets/posts/{site-Bxv-L5Dn.mjs → site-6g4pKVnR.mjs} +2 -2
- package/core/built/admin/assets/posts/{skeleton-DrFcKwP3.mjs → skeleton-DgWx-52p.mjs} +3 -3
- package/core/built/admin/assets/posts/{source-icon-DD_bmIqg.mjs → source-icon-_zLbYeab.mjs} +4 -4
- package/core/built/admin/assets/posts/{stats-DkOg80Vt.mjs → stats-BGJFxx5f.mjs} +4 -4
- package/core/built/admin/assets/posts/{switch-DZFGAF_Y.mjs → switch-Djipx7gc.mjs} +5 -5
- package/core/built/admin/assets/posts/{table-CZCVviNy.mjs → table-DpDCE80J.mjs} +2 -2
- package/core/built/admin/assets/posts/{tabs-1fkhM4p8.mjs → tabs-CLWGiyQ4.mjs} +4 -4
- package/core/built/admin/assets/posts/{tags-CkyGqwqi.mjs → tags-B4KIn7er.mjs} +2 -2
- package/core/built/admin/assets/posts/{tags-BAmugIR1.mjs → tags-Dn1L_Z_4.mjs} +16 -16
- package/core/built/admin/assets/posts/{toggle-group-B_ubMZvo.mjs → toggle-group-DMMjXGB3.mjs} +4 -4
- package/core/built/admin/assets/posts/{tooltip-D1X0uVas.mjs → tooltip-DlCjZwmt.mjs} +5 -5
- package/core/built/admin/assets/posts/{underline-CV8OJ7qc.mjs → underline-WN3ZSFyI.mjs} +2 -2
- package/core/built/admin/assets/posts/{value-DhEK7_uT.mjs → value-BWiEmo45.mjs} +2 -2
- package/core/built/admin/assets/posts/{virtual-list-window-DqbQUkIo.mjs → virtual-list-window-F3Tvi9H5.mjs} +3 -3
- package/core/built/admin/assets/posts/{web-5jcYGeBz.mjs → web-C8PxkHvH.mjs} +18 -18
- package/core/built/admin/assets/posts/{x-Cl72IwQm.mjs → x-BdlZ3sG3.mjs} +2 -2
- package/core/built/admin/assets/posts/{zap-BPDyHF1u.mjs → zap-BuAk2C7n.mjs} +33 -21
- package/core/built/admin/assets/{posts-D6K0FKB9.js → posts-bRma2Aji.js} +1 -1
- package/core/built/admin/assets/power-B4VCYMPn.js +1 -0
- package/core/built/admin/assets/{referrers-C9UK_aF_.js → referrers-BgXy4ZDF.js} +1 -1
- package/core/built/admin/assets/{repeat-BwgUDBQn.js → repeat-BElPLZnh.js} +1 -1
- package/core/built/admin/assets/{reply-DbknkQhJ.js → reply-qlUFZ_G8.js} +1 -1
- package/core/built/admin/assets/{rocket-1EqU2MzS.js → rocket-CXYckFbm.js} +1 -1
- package/core/built/admin/assets/{select-BGJXWb8i.js → select-MGAxyhXP.js} +1 -1
- package/core/built/admin/assets/{send-_CqvCQBY.js → send-DcU5LcPI.js} +1 -1
- package/core/built/admin/assets/{settings-Bnep890F.js → settings-DGSAz4oa.js} +4 -4
- package/core/built/admin/assets/{settings-Ct244PHl.js → settings-DI95fXs5.js} +1 -1
- package/core/built/admin/assets/{share-modal-B8pN_3tk.js → share-modal-CsNAIPeN.js} +1 -1
- package/core/built/admin/assets/{sort-button-EXsVVSdw.js → sort-button-wV9PBd2P.js} +1 -1
- package/core/built/admin/assets/{source-icon-XMs0toB0.js → source-icon-CYt4X1-M.js} +1 -1
- package/core/built/admin/assets/{sprout-uA_pVmDr.js → sprout-5QqpAoO8.js} +1 -1
- package/core/built/admin/assets/{square-atKnWQyw.js → square-YHeYyKG9.js} +1 -1
- package/core/built/admin/assets/{stats-CPNnZGD9.js → stats-PD64opSw.js} +1 -1
- package/core/built/admin/assets/{stats-view-BP8LU5rf.js → stats-view-C4fnD3uG.js} +1 -1
- package/core/built/admin/assets/{step-1-FHeGC4GW.js → step-1-BqeM_LxC.js} +1 -1
- package/core/built/admin/assets/{step-2-BFhgD2N8.js → step-2-C7AcokE9.js} +1 -1
- package/core/built/admin/assets/{step-3-BZMKjY5n.js → step-3-9Z0qkfpM.js} +2 -2
- package/core/built/admin/assets/{table-kGA62bBZ.js → table-C8Mxw8fs.js} +1 -1
- package/core/built/admin/assets/{tabs-Dl3BXr4Z.js → tabs-2KXMNRG-.js} +1 -1
- package/core/built/admin/assets/{tags-CLhASxwZ.js → tags-Cx-Jx8Yb.js} +1 -1
- package/core/built/admin/assets/{tags-D-W0kJMe.js → tags-cn7wgGit.js} +1 -1
- package/core/built/admin/assets/{textarea-DMub6CsU.js → textarea-dKwIcAK5.js} +1 -1
- package/core/built/admin/assets/{thumbs-up-DZu4SX5N.js → thumbs-up-gzGza05L.js} +1 -1
- package/core/built/admin/assets/{tiers-2bg8BCFj.js → tiers-D--LgD9v.js} +1 -1
- package/core/built/admin/assets/{toggle-group-ByS0KZ3G.js → toggle-group-C8KbiBQS.js} +1 -1
- package/core/built/admin/assets/{topic-filter-oRqwlePZ.js → topic-filter--VQn4A7D.js} +1 -1
- package/core/built/admin/assets/{trash-BHoSD8mS.js → trash-CnBwlhjN.js} +1 -1
- package/core/built/admin/assets/{underline-1YSgOpPm.js → underline-B2FjHOE0.js} +1 -1
- package/core/built/admin/assets/{undo-2-BwYMlB8G.js → undo-2-fUPuO2Zt.js} +1 -1
- package/core/built/admin/assets/{upload-BDz0_o9b.js → upload-BPOrFdtp.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-PRVcCUT7.js → use-growth-stats-By0ZDqFi.js} +1 -1
- package/core/built/admin/assets/{use-pintura-config-CROsgSEd.js → use-pintura-config-0ykvCF7U.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-CBjKBNNI.js → use-simple-pagination-TruuCHV6.js} +1 -1
- package/core/built/admin/assets/{user-round-check-DKooQiV7.js → user-round-check-C1Vahz0b.js} +1 -1
- package/core/built/admin/assets/{user-round-x-B94nAYJb.js → user-round-x-CzKFo5GY.js} +1 -1
- package/core/built/admin/assets/{virtual-list-window-Cf_vCQFb.js → virtual-list-window-BWEknk_A.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-BorRQari.js → wallet-cards-CRHrrjiy.js} +1 -1
- package/core/built/admin/assets/{web-BVHy-80k.js → web-C2H0oAut.js} +1 -1
- package/core/built/admin/index.html +7 -7
- package/core/frontend/services/llms/service.js +37 -10
- package/core/frontend/services/routing/config.js +5 -3
- package/core/frontend/services/routing/config.ts +59 -0
- package/core/frontend/services/sitemap/handler.js +2 -14
- package/core/frontend/services/sitemap/site-map-manager.js +9 -214
- package/core/server/api/endpoints/comment-replies.js +1 -2
- package/core/server/api/endpoints/members.js +4 -1
- package/core/server/api/endpoints/search-index-public.js +12 -1
- package/core/server/api/endpoints/search-index.js +13 -2
- package/core/server/lib/bootstrap-socket.js +31 -36
- package/core/server/lib/bootstrap-socket.ts +114 -0
- package/core/server/lib/common/to-plain.js +9 -21
- package/core/server/lib/common/to-plain.ts +25 -0
- package/core/server/models/role-utils.js +5 -7
- package/core/server/models/role-utils.ts +56 -0
- package/core/server/services/adapter-manager/adapter-manager.js +5 -1
- package/core/server/services/audience-feedback/audience-feedback-service.js +1 -1
- package/core/server/services/automations/automations-api.js +37 -2
- package/core/server/services/automations/automations-api.ts +43 -2
- package/core/server/services/comments/comments-controller.js +87 -55
- package/core/server/services/comments/comments-service-emails.js +1 -1
- package/core/server/services/comments/comments-service.js +249 -79
- package/core/server/services/mail/templates/notification.html +157 -0
- package/core/server/services/member-attribution/url-translator.js +1 -1
- package/core/server/services/members/members-api/services/token-service.js +21 -2
- package/core/server/services/notifications/notification-email.js +38 -0
- package/core/server/services/notifications/notification-email.ts +66 -0
- package/core/server/services/notifications/sanitize-email-html.js +37 -0
- package/core/server/services/notifications/sanitize-email-html.ts +35 -0
- package/core/server/services/route-settings/route-settings.js +2 -18
- package/core/server/services/route-settings/validate.js +2 -1
- package/core/server/services/update-check/index.js +10 -3
- package/core/server/services/update-check/update-check-service.js +18 -25
- package/core/server/services/url/index.js +1 -16
- package/core/shared/config/defaults.json +0 -1
- package/package.json +2 -1
- package/pnpm-lock.yaml +11 -1
- package/pnpm-workspace.yaml +2 -0
- package/core/built/admin/assets/editor-G3BxjP48.js +0 -8
- package/core/built/admin/assets/gh-chart-vpcpdiS9.js +0 -1
- package/core/built/admin/assets/index-BP5ial3p.js +0 -1
- package/core/built/admin/assets/index-Bd9VZ28k.css +0 -1
- package/core/built/admin/assets/kpis-B8pv3wne.js +0 -1
- package/core/built/admin/assets/label-BjHICZC1.js +0 -1
- package/core/built/admin/assets/members-DcuuSs_v.js +0 -10
- package/core/built/admin/assets/minus-Dv51QEND.js +0 -1
- package/core/built/admin/assets/offers-DKZ0qsmb.js +0 -1
- package/core/built/admin/assets/power-D5QO6MjY.js +0 -1
- package/core/server/services/url/lazy-find-resource.js +0 -49
- package/core/server/services/url/lazy-find-resource.ts +0 -62
- package/core/server/services/url/lazy-url-service.js +0 -262
- package/core/server/services/url/lazy-url-service.ts +0 -308
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./koenig-lexical-REiYtzGD.js","./index-CgSVv5Up.js","./index-Dozbr_4s.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{eb as _,eS as bc,d$ as l,bD as _c,q as Ec,bm as Sc,cN as ot,cU as Lr,bj as Nc,V as Cc,bO as Mc,aN as kc,cR as jc,ax as Ic,aQ as Ac,L as Pc,bq as Dc,br as Tc,aO as Rc,u as zc,c0 as $c,b$ as Oc,bF as Hr,cL as se,O as Lc,K as Br,Q as Hc,ef as Bc,eg as Vc,dk as Fc,d4 as he,ea as Wc,bd as on,c9 as Yc,c7 as Xc,ca as Zc,c8 as Uc,be as Vr,bh as Fr,bg as Wr,eM as Un,eN as Gc,du as Gn,fb as qc,eI as Yr,aU as Te,cw as Kc,eW as Qc,aL as qn,J as ae,aP as Xr,dV as Kn,dA as Zr,ej as Jc,fe as el,_ as tl,a1 as nl,a5 as ol,f as ct,i as lt,l as ut,m as dt,j as ft,k as ht,h as pt,D as rl,cq as Ur,a8 as Gr,af as qr,de as Ht,aa as Kr,ac as Tn,ae as sl,ad as il,bQ as al,cb as Qr,aS as cl,v as ll,bX as ul,ag as dl,ft as fl,eH as hl,eq as vn}from"./index-CgSVv5Up.js";import{M as Qn}from"./mail-gdeIU06V.js";import{C as Jn,M as pl,P as gl}from"./power-B4VCYMPn.js";import{a as Pe,c as ko,b as jo,d as ml,i as bn}from"./value-BTdN53H7.js";import{c as xl,d as yl,a as wl,k as vl,b as bl,f as _l}from"./use-pintura-config-0ykvCF7U.js";import{f as El,v as Sl,e as Nl,a as Cl,d as Ml}from"./automated-emails-DhLhkq8L.js";import{T as kl,b as jl,c as Io}from"./tabs-2KXMNRG-.js";import{a as Il}from"./newsletters-7GSeQdQe.js";import{S as Al}from"./send-DcU5LcPI.js";import{C as Ao}from"./checkbox-CT7DNFAI.js";import{b as Pl,F as Dl,c as Tl}from"./field-CSFsrvVy.js";import{I as Rl,c as zl,d as $l,a as Ol,b as Po}from"./input-group-Fdl0S6pw.js";import{L as Do}from"./label-DT38Gd2T.js";import{S as Ll,e as Hl}from"./select-MGAxyhXP.js";import{M as To,r as Bl,b as Vl,u as Ro,i as Fl,a as Wl,A as Yl,e as Xl,d as Zl}from"./automations-6-cgZovk.js";import{C as Ul,E as Gl}from"./eye-TPnIdamu.js";import{M as Jr}from"./minus-BbGfVkll.js";import{P as es}from"./pencil-Csnv8udS.js";import"./offers-BsuLKYy9.js";import"./posts-bRma2Aji.js";import"./index-B9UVpmey.js";import"./chevron-up-BxijmTT9.js";function ql(e){_.useEffect(()=>{if(!e)return;const t=n=>{n.preventDefault(),n.returnValue=""};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}},[e])}var zo=180/Math.PI,Rn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ts(e,t,n,o,r,s){var i,a,u;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(u=e*n+t*o)&&(n-=e*u,o-=t*u),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,u/=a),e*o<t*n&&(e=-e,t=-t,u=-u,i=-i),{translateX:r,translateY:s,rotate:Math.atan2(t,e)*zo,skewX:Math.atan(u)*zo,scaleX:i,scaleY:a}}var Pt;function Kl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Rn:ts(t.a,t.b,t.c,t.d,t.e,t.f)}function Ql(e){return e==null||(Pt||(Pt=document.createElementNS("http://www.w3.org/2000/svg","g")),Pt.setAttribute("transform",e),!(e=Pt.transform.baseVal.consolidate()))?Rn:(e=e.matrix,ts(e.a,e.b,e.c,e.d,e.e,e.f))}function ns(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 y=g.push("translate(",null,t,null,n);p.push({i:y-4,x:Pe(c,f)},{i:y-2,x:Pe(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:Pe(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:Pe(c,d)}):d&&f.push(r(f)+"skewX("+d+o)}function u(c,d,f,h,g,p){if(c!==f||d!==h){var y=g.push(r(g)+"scale(",null,",",null,")");p.push({i:y-4,x:Pe(c,f)},{i:y-2,x:Pe(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),u(c.scaleX,c.scaleY,d.scaleX,d.scaleY,f,h),c=d=null,function(g){for(var p=-1,y=h.length,w;++p<y;)f[(w=h[p]).i]=w.x(g);return f.join("")}}}var Jl=ns(Kl,"px, ","px)","deg)"),eu=ns(Ql,", ",")",")"),tu=1e-12;function $o(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 Bt=(function e(t,n,o){function r(s,i){var a=s[0],u=s[1],c=s[2],d=i[0],f=i[1],h=i[2],g=d-a,p=f-u,y=g*g+p*p,w,x;if(y<tu)x=Math.log(h/c)/t,w=function(I){return[a+I*g,u+I*p,c*Math.exp(t*I*x)]};else{var E=Math.sqrt(y),m=(h*h-c*c+o*y)/(2*c*n*E),v=(h*h-c*c-o*y)/(2*h*n*E),C=Math.log(Math.sqrt(m*m+1)-m),N=Math.log(Math.sqrt(v*v+1)-v);x=(N-C)/t,w=function(I){var T=I*x,P=$o(C),L=c/(n*E)*(P*ou(t*T+C)-nu(C));return[a+L*g,u+L*p,c*P/$o(t*T+C)]}}return w.duration=x*1e3*t/Math.SQRT2,w}return r.rho=function(s){var i=Math.max(.001,+s),a=i*i,u=a*a;return e(i,a,u)},r})(Math.SQRT2,2,4);var eo="ContextMenu",[ru]=jc(eo,[Lr]),le=Lr(),[su,os]=ru(eo),rs=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:o,dir:r,modal:s=!0}=e,[i,a]=_.useState(!1),u=le(t),c=bc(o),d=_.useCallback(f=>{a(f),c(f)},[c]);return l.jsx(su,{scope:t,open:i,onOpenChange:d,modal:s,children:l.jsx(_c,{...u,dir:r,open:i,onOpenChange:d,modal:s,children:n})})};rs.displayName=eo;var ss="ContextMenuTrigger",is=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:o=!1,...r}=e,s=os(ss,n),i=le(n),a=_.useRef({x:0,y:0}),u=_.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),c=_.useRef(0),d=_.useCallback(()=>window.clearTimeout(c.current),[]),f=h=>{a.current={x:h.clientX,y:h.clientY},s.onOpenChange(!0)};return _.useEffect(()=>d,[d]),_.useEffect(()=>{o&&d()},[o,d]),l.jsxs(l.Fragment,{children:[l.jsx(Ec,{...i,virtualRef:u}),l.jsx(Sc.span,{"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,...r,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:o?e.onContextMenu:ot(e.onContextMenu,h=>{d(),f(h),h.preventDefault()}),onPointerDown:o?e.onPointerDown:ot(e.onPointerDown,Dt(h=>{d(),c.current=window.setTimeout(()=>f(h),700)})),onPointerMove:o?e.onPointerMove:ot(e.onPointerMove,Dt(d)),onPointerCancel:o?e.onPointerCancel:ot(e.onPointerCancel,Dt(d)),onPointerUp:o?e.onPointerUp:ot(e.onPointerUp,Dt(d))})]})});is.displayName=ss;var iu="ContextMenuPortal",as=e=>{const{__scopeContextMenu:t,...n}=e,o=le(t);return l.jsx(Nc,{...o,...n})};as.displayName=iu;var cs="ContextMenuContent",ls=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=os(cs,n),s=le(n),i=_.useRef(!1);return l.jsx(Cc,{...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)"}})});ls.displayName=cs;var au="ContextMenuGroup",cu=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Ic,{...r,...o,ref:t})});cu.displayName=au;var lu="ContextMenuLabel",us=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Ac,{...r,...o,ref:t})});us.displayName=lu;var uu="ContextMenuItem",ds=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(kc,{...r,...o,ref:t})});ds.displayName=uu;var du="ContextMenuCheckboxItem",fs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Pc,{...r,...o,ref:t})});fs.displayName=du;var fu="ContextMenuRadioGroup",hu=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Dc,{...r,...o,ref:t})});hu.displayName=fu;var pu="ContextMenuRadioItem",hs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Tc,{...r,...o,ref:t})});hs.displayName=pu;var gu="ContextMenuItemIndicator",ps=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Rc,{...r,...o,ref:t})});ps.displayName=gu;var mu="ContextMenuSeparator",gs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Mc,{...r,...o,ref:t})});gs.displayName=mu;var xu="ContextMenuArrow",yu=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(zc,{...r,...o,ref:t})});yu.displayName=xu;var wu="ContextMenuSubTrigger",ms=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx($c,{...r,...o,ref:t})});ms.displayName=wu;var vu="ContextMenuSubContent",xs=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=le(n);return l.jsx(Oc,{...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)"}})});xs.displayName=vu;function Dt(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var bu=rs,_u=is,Eu=as,ys=ls,ws=us,vs=ds,bs=fs,_s=hs,Es=ps,Ss=gs,Ns=ms,Cs=xs;const Su=bu,Nu=_u,Cu=_.forwardRef(({className:e,inset:t,children:n,...o},r)=>l.jsxs(Ns,{ref:r,className:se("flex cursor-default gap-2 select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden hover:bg-accent focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...o,children:[n,l.jsx(Lc,{className:"ml-auto"})]}));Cu.displayName=Ns.displayName;const Mu=_.forwardRef(({className:e,...t},n)=>l.jsx("div",{className:Hr,children:l.jsx(Cs,{ref:n,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));Mu.displayName=Cs.displayName;const Ms=_.forwardRef(({className:e,...t},n)=>l.jsx(Eu,{children:l.jsx("div",{className:Hr,children:l.jsx(ys,{ref:n,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})})}));Ms.displayName=ys.displayName;const ks=_.forwardRef(({className:e,inset:t,variant:n="default",...o},r)=>l.jsx(vs,{ref:r,className:se("relative flex cursor-default select-none cursor-pointer items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",n==="destructive"&&"text-destructive focus:bg-destructive/10 focus:text-destructive",t&&"pl-8",e),...o}));ks.displayName=vs.displayName;const ku=_.forwardRef(({className:e,children:t,checked:n,...o},r)=>l.jsxs(bs,{ref:r,checked:n,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[l.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:l.jsx(Es,{children:l.jsx(Br,{className:"size-4"})})}),t]}));ku.displayName=bs.displayName;const ju=_.forwardRef(({className:e,children:t,...n},o)=>l.jsxs(_s,{ref:o,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[l.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:l.jsx(Es,{children:l.jsx(Hc,{className:"size-2 fill-current"})})}),t]}));ju.displayName=_s.displayName;const Iu=_.forwardRef(({className:e,inset:t,...n},o)=>l.jsx(ws,{ref:o,className:se("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));Iu.displayName=ws.displayName;const js=_.forwardRef(({className:e,...t},n)=>l.jsx(Ss,{ref:n,className:se("-mx-1 my-1 h-px bg-muted",e),...t}));js.displayName=Ss.displayName;const Oo=({icon:e,label:t,description:n,onClick:o})=>l.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:[l.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:l.jsx(e,{className:"size-4"})}),l.jsxs("div",{className:"flex min-w-0 flex-col",children:[l.jsx("span",{className:"font-medium",children:t}),l.jsx("span",{className:"text-xs text-text-secondary",children:n})]})]}),Is=({onPick:e})=>l.jsxs("div",{className:"flex w-72 flex-col gap-1 p-1","data-testid":"step-picker",children:[l.jsx(Oo,{description:"Send an email",icon:Qn,label:"Email",onClick:()=>e("send_email")}),l.jsx(Oo,{description:"Wait a set amount of time",icon:Jn,label:"Wait",onClick:()=>e("wait")})]});function ie(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=ie(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Au={value:()=>{}};function rn(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new Vt(n)}function Vt(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}})}Vt.prototype=rn.prototype={constructor:Vt,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]=Lo(n[r],e.name,t);else if(t==null)for(r in n)n[r]=Lo(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 Vt(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 Lo(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 zn="http://www.w3.org/1999/xhtml";const Ho={svg:"http://www.w3.org/2000/svg",xhtml:zn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function sn(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Ho.hasOwnProperty(t)?{space:Ho[t],local:e}:e}function Tu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===zn&&t.documentElement.namespaceURI===zn?t.createElement(e):t.createElementNS(n,e)}}function Ru(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function As(e){var t=sn(e);return(t.local?Ru:Tu)(t)}function zu(){}function to(e){return e==null?zu:function(){return this.querySelector(e)}}function $u(e){typeof e!="function"&&(e=to(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),u,c,d=0;d<i;++d)(u=s[d])&&(c=e.call(u,u.__data__,d,s))&&("__data__"in u&&(c.__data__=u.__data__),a[d]=c);return new de(o,this._parents)}function Ou(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Lu(){return[]}function Ps(e){return e==null?Lu:function(){return this.querySelectorAll(e)}}function Hu(e){return function(){return Ou(e.apply(this,arguments))}}function Bu(e){typeof e=="function"?e=Hu(e):e=Ps(e);for(var t=this._groups,n=t.length,o=[],r=[],s=0;s<n;++s)for(var i=t[s],a=i.length,u,c=0;c<a;++c)(u=i[c])&&(o.push(e.call(u,u.__data__,c,i)),r.push(u));return new de(o,r)}function Ds(e){return function(){return this.matches(e)}}function Ts(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:Ts(e)))}var Xu=Array.prototype.filter;function Zu(){return Array.from(this.children)}function Uu(e){return function(){return Xu.call(this.children,e)}}function Gu(e){return this.selectAll(e==null?Zu:Uu(typeof e=="function"?e:Ts(e)))}function qu(e){typeof e!="function"&&(e=Ds(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]=[],u,c=0;c<i;++c)(u=s[c])&&e.call(u,u.__data__,c,s)&&a.push(u);return new de(o,this._parents)}function Rs(e){return new Array(e.length)}function Ku(){return new de(this._enter||this._groups.map(Rs),this._parents)}function Ut(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ut.prototype={constructor:Ut,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,u=t.length,c=s.length;i<c;++i)(a=t[i])?(a.__data__=s[i],o[i]=a):n[i]=new Ut(e,s[i]);for(;i<u;++i)(a=t[i])&&(r[i]=a)}function ed(e,t,n,o,r,s,i){var a,u,c=new Map,d=t.length,f=s.length,h=new Array(d),g;for(a=0;a<d;++a)(u=t[a])&&(h[a]=g=i.call(u,u.__data__,a,t)+"",c.has(g)?r[a]=u:c.set(g,u));for(a=0;a<f;++a)g=i.call(e,s[a],a,s)+"",(u=c.get(g))?(o[a]=u,u.__data__=s[a],c.delete(g)):n[a]=new Ut(e,s[a]);for(a=0;a<d;++a)(u=t[a])&&c.get(h[a])===u&&(r[a]=u)}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),u=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,y=a[c]=new Array(p),w=i[c]=new Array(p),x=u[c]=new Array(h);n(d,f,y,w,x,g,t);for(var E=0,m=0,v,C;E<p;++E)if(v=y[E]){for(E>=m&&(m=E+1);!(C=w[m])&&++m<p;);v._next=C||null}}return i=new de(i,o),i._enter=a,i._exit=u,i}function od(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function rd(){return new de(this._exit||this._groups.map(Rs),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),u=0;u<i;++u)for(var c=n[u],d=o[u],f=c.length,h=a[u]=new Array(f),g,p=0;p<f;++p)(g=c[p]||d[p])&&(h[p]=g);for(;u<r;++u)a[u]=n[u];return new de(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,u=r[s]=new Array(a),c,d=0;d<a;++d)(c=i[d])&&(u[d]=c);u.sort(t)}return new de(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 _d(e,t){var n=sn(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?xd:md:typeof t=="function"?n.local?bd:vd:n.local?wd:yd)(n,t))}function zs(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ed(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?Ed:typeof t=="function"?Nd:Sd)(e,t,n??"")):Ye(this.node(),e)}function Ye(e,t){return e.style.getPropertyValue(t)||zs(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 $s(e){return e.trim().split(/^|\s+/)}function no(e){return e.classList||new Os(e)}function Os(e){this._node=e,this._names=$s(e.getAttribute("class")||"")}Os.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 Ls(e,t){for(var n=no(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Hs(e,t){for(var n=no(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Ad(e){return function(){Ls(this,e)}}function Pd(e){return function(){Hs(this,e)}}function Dd(e,t){return function(){(t.apply(this,arguments)?Ls:Hs)(this,e)}}function Td(e,t){var n=$s(e+"");if(arguments.length<2){for(var o=no(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 $d(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Od(e){return arguments.length?this.each(e==null?Rd:(typeof e=="function"?$d:zd)(e)):this.node().textContent}function Ld(){this.innerHTML=""}function Hd(e){return function(){this.innerHTML=e}}function Bd(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"?Bd:Hd)(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 Zd(e){var t=typeof e=="function"?e:As(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Ud(){return null}function Gd(e,t){var n=typeof e=="function"?e:As(e),o=t==null?Ud:typeof t=="function"?t:to(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 u=0,c=a.length,d;u<c;++u)for(r=0,d=a[u];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 Bs(e,t,n){var o=zs(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 Bs(this,e,t)}}function lf(e,t){return function(){return Bs(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 Vs=[null];function de(e,t){this._groups=e,this._parents=t}function Ct(){return new de([[document.documentElement]],Vs)}function ff(){return this}de.prototype=Ct.prototype={constructor:de,select:$u,selectAll:Bu,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:_d,style:Cd,property:Id,classed:Td,text:Od,html:Vd,raise:Wd,lower:Xd,append:Zd,insert:Gd,remove:Kd,clone:ef,datum:tf,on:af,dispatch:uf,[Symbol.iterator]:df};function ue(e){return typeof e=="string"?new de([[document.querySelector(e)]],[document.documentElement]):new de([[e]],Vs)}function hf(e){let t;for(;t=e.sourceEvent;)e=t;return e}function fe(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},xt={capture:!0,passive:!1};function _n(e){e.stopImmediatePropagation()}function We(e){e.preventDefault(),e.stopImmediatePropagation()}function Fs(e){var t=e.document.documentElement,n=ue(e).on("dragstart.drag",We,xt);"onselectstart"in t?n.on("selectstart.drag",We,xt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Ws(e,t){var n=e.document.documentElement,o=ue(e).on("dragstart.drag",null);t&&(o.on("click.drag",We,xt),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 Tt=e=>()=>e;function $n(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:s,x:i,y:a,dx:u,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:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}$n.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 Ys(){var e=gf,t=mf,n=xf,o=yf,r={},s=rn("start","drag","end"),i=0,a,u,c,d,f=0;function h(v){v.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",x,pf).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(v,C){if(!(d||!e.call(this,v,C))){var N=m(this,t.call(this,v,C),v,C,"mouse");N&&(ue(v.view).on("mousemove.drag",p,xt).on("mouseup.drag",y,xt),Fs(v.view),_n(v),c=!1,a=v.clientX,u=v.clientY,N("start",v))}}function p(v){if(We(v),!c){var C=v.clientX-a,N=v.clientY-u;c=C*C+N*N>f}r.mouse("drag",v)}function y(v){ue(v.view).on("mousemove.drag mouseup.drag",null),Ws(v.view,c),We(v),r.mouse("end",v)}function w(v,C){if(e.call(this,v,C)){var N=v.changedTouches,I=t.call(this,v,C),T=N.length,P,L;for(P=0;P<T;++P)(L=m(this,I,v,C,N[P].identifier,N[P]))&&(_n(v),L("start",v,N[P]))}}function x(v){var C=v.changedTouches,N=C.length,I,T;for(I=0;I<N;++I)(T=r[C[I].identifier])&&(We(v),T("drag",v,C[I]))}function E(v){var C=v.changedTouches,N=C.length,I,T;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),I=0;I<N;++I)(T=r[C[I].identifier])&&(_n(v),T("end",v,C[I]))}function m(v,C,N,I,T,P){var L=s.copy(),D=fe(P||N,C),z,H,b;if((b=n.call(v,new $n("beforestart",{sourceEvent:N,target:h,identifier:T,active:i,x:D[0],y:D[1],dx:0,dy:0,dispatch:L}),I))!=null)return z=b.x-D[0]||0,H=b.y-D[1]||0,function A(S,M,k){var j=D,R;switch(S){case"start":r[T]=A,R=i++;break;case"end":delete r[T],--i;case"drag":D=fe(k||M,C),R=i;break}L.call(S,v,new $n(S,{sourceEvent:M,subject:b,target:h,identifier:T,active:R,x:D[0]+z,y:D[1]+H,dx:D[0]-j[0],dy:D[1]-j[1],dispatch:L}),I)}}return h.filter=function(v){return arguments.length?(e=typeof v=="function"?v:Tt(!!v),h):e},h.container=function(v){return arguments.length?(t=typeof v=="function"?v:Tt(v),h):t},h.subject=function(v){return arguments.length?(n=typeof v=="function"?v:Tt(v),h):n},h.touchable=function(v){return arguments.length?(o=typeof v=="function"?v:Tt(!!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 Xe=0,it=0,rt=0,Xs=1e3,Gt,at,qt=0,$e=0,an=0,yt=typeof performance=="object"&&performance.now?performance:Date,Zs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function oo(){return $e||(Zs(wf),$e=yt.now()+an)}function wf(){$e=0}function Kt(){this._call=this._time=this._next=null}Kt.prototype=Us.prototype={constructor:Kt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?oo():+n)+(t==null?0:+t),!this._next&&at!==this&&(at?at._next=this:Gt=this,at=this),this._call=e,this._time=n,On()},stop:function(){this._call&&(this._call=null,this._time=1/0,On())}};function Us(e,t,n){var o=new Kt;return o.restart(e,t,n),o}function vf(){oo(),++Xe;for(var e=Gt,t;e;)(t=$e-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xe}function Bo(){$e=(qt=yt.now())+an,Xe=it=0;try{vf()}finally{Xe=0,_f(),$e=0}}function bf(){var e=yt.now(),t=e-qt;t>Xs&&(an-=t,qt=e)}function _f(){for(var e,t=Gt,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:Gt=n);at=e,On(o)}function On(e){if(!Xe){it&&(it=clearTimeout(it));var t=e-$e;t>24?(e<1/0&&(it=setTimeout(Bo,e-yt.now()-an)),rt&&(rt=clearInterval(rt))):(rt||(qt=yt.now(),rt=setInterval(bf,Xs)),Xe=1,Zs(Bo))}}function Vo(e,t,n){var o=new Kt;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var Ef=rn("start","end","cancel","interrupt"),Sf=[],Gs=0,Fo=1,Ln=2,Ft=3,Wo=4,Hn=5,Wt=6;function cn(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:Ef,tween:Sf,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Gs})}function ro(e,t){var n=me(e,t);if(n.state>Gs)throw new Error("too late; already scheduled");return n}function ye(e,t){var n=me(e,t);if(n.state>Ft)throw new Error("too late; already running");return n}function me(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=Us(s,0,n.time);function s(c){n.state=Fo,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!==Fo)return u();for(d in o)if(g=o[d],g.name===n.name){if(g.state===Ft)return Vo(i);g.state===Wo?(g.state=Wt,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[d]):+d<t&&(g.state=Wt,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete o[d])}if(Vo(function(){n.state===Ft&&(n.state=Wo,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=Ln,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Ln){for(n.state=Ft,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(u),n.state=Hn,1),f=-1,h=r.length;++f<h;)r[f].call(e,d);n.state===Hn&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){n.state=Wt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function Yt(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>Ln&&o.state<Hn,o.state=Wt,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(){Yt(this,e)})}function Mf(e,t){var n,o;return function(){var r=ye(this,e),s=r.tween;if(s!==n){o=n=s;for(var i=0,a=o.length;i<a;++i)if(o[i].name===t){o=o.slice(),o.splice(i,1);break}}r.tween=o}}function kf(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var s=ye(this,e),i=s.tween;if(i!==o){r=(o=i).slice();for(var a={name:t,value:n},u=0,c=r.length;u<c;++u)if(r[u].name===t){r[u]=a;break}u===c&&r.push(a)}s.tween=r}}function jf(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=me(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 so(e,t,n){var o=e._id;return e.each(function(){var r=ye(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return me(r,o).value[t]}}function qs(e,t){var n;return(typeof t=="number"?Pe:t instanceof ko?jo:(n=ko(t))?(t=n,jo):ml)(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),u;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),u=a+"",i===u?null:i===o&&u===r?s:(r=u,s=t(o=i,a)))}}function Rf(e,t,n){var o,r,s;return function(){var i,a=n(this),u;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),u=a+"",i===u?null:i===o&&u===r?s:(r=u,s=t(o=i,a)))}}function zf(e,t){var n=sn(e),o=n==="transform"?eu:qs;return this.attrTween(e,typeof t=="function"?(n.local?Rf:Tf)(n,o,so(this,"attr."+e,t)):t==null?(n.local?Af:If)(n):(n.local?Df:Pf)(n,o,t))}function $f(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Of(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)&&Of(e,s)),n}return r._value=t,r}function Hf(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="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var o=sn(e);return this.tween(n,(o.local?Lf:Hf)(o,t))}function Vf(e,t){return function(){ro(this,e).delay=+t.apply(this,arguments)}}function Ff(e,t){return t=+t,function(){ro(this,e).delay=t}}function Wf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Vf:Ff)(t,e)):me(this.node(),t).delay}function Yf(e,t){return function(){ye(this,e).duration=+t.apply(this,arguments)}}function Xf(e,t){return t=+t,function(){ye(this,e).duration=t}}function Zf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Yf:Xf)(t,e)):me(this.node(),t).duration}function Uf(e,t){if(typeof t!="function")throw new Error;return function(){ye(this,e).ease=t}}function Gf(e){var t=this._id;return arguments.length?this.each(Uf(t,e)):me(this.node(),t).ease}function qf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;ye(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=Ds(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]=[],u,c=0;c<i;++c)(u=s[c])&&e.call(u,u.__data__,c,s)&&a.push(u);return new Se(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 u=t[a],c=n[a],d=u.length,f=i[a]=new Array(d),h,g=0;g<d;++g)(h=u[g]||c[g])&&(f[g]=h);for(;a<o;++a)i[a]=t[a];return new Se(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)?ro:ye;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?me(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=to(e));for(var o=this._groups,r=o.length,s=new Array(r),i=0;i<r;++i)for(var a=o[i],u=a.length,c=s[i]=new Array(u),d,f,h=0;h<u;++h)(d=a[h])&&(f=e.call(d,d.__data__,h,a))&&("__data__"in d&&(f.__data__=d.__data__),c[h]=f,cn(c[h],t,n,h,c,me(d,n)));return new Se(s,this._parents,t,n)}function ih(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Ps(e));for(var o=this._groups,r=o.length,s=[],i=[],a=0;a<r;++a)for(var u=o[a],c=u.length,d,f=0;f<c;++f)if(d=u[f]){for(var h=e.call(d,d.__data__,f,u),g,p=me(d,n),y=0,w=h.length;y<w;++y)(g=h[y])&&cn(g,t,n,y,h,p);s.push(h),i.push(d)}return new Se(s,i,t,n)}var ah=Ct.prototype.constructor;function ch(){return new ah(this._groups,this._parents)}function lh(e,t){var n,o,r;return function(){var s=Ye(this,e),i=(this.style.removeProperty(e),Ye(this,e));return s===i?null:s===n&&i===o?r:r=t(n=s,o=i)}}function Ks(e){return function(){this.style.removeProperty(e)}}function uh(e,t,n){var o,r=n+"",s;return function(){var i=Ye(this,e);return i===r?null:i===o?s:s=t(o=i,n)}}function dh(e,t,n){var o,r,s;return function(){var i=Ye(this,e),a=n(this),u=a+"";return a==null&&(u=a=(this.style.removeProperty(e),Ye(this,e))),i===u?null:i===o&&u===r?s:(r=u,s=t(o=i,a))}}function fh(e,t){var n,o,r,s="style."+t,i="end."+s,a;return function(){var u=ye(this,e),c=u.on,d=u.value[s]==null?a||(a=Ks(t)):void 0;(c!==n||r!==d)&&(o=(n=c).copy()).on(i,r=d),u.on=o}}function hh(e,t,n){var o=(e+="")=="transform"?Jl:qs;return t==null?this.styleTween(e,lh(e,o)).on("end.style."+e,Ks(e)):typeof t=="function"?this.styleTween(e,dh(e,o,so(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(so(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 _h(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 Eh(){for(var e=this._name,t=this._id,n=Qs(),o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,u,c=0;c<a;++c)if(u=i[c]){var d=me(u,t);cn(u,e,n,c,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Se(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},u={value:function(){--r===0&&s()}};n.each(function(){var c=ye(this,o),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(u)),c.on=t}),r===0&&s()})}var Nh=0;function Se(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Qs(){return++Nh}var ve=Ct.prototype;Se.prototype={constructor:Se,select:sh,selectAll:ih,selectChild:ve.selectChild,selectChildren:ve.selectChildren,filter:Qf,merge:Jf,selection:ch,transition:Eh,call:ve.call,nodes:ve.nodes,node:ve.node,size:ve.size,empty:ve.empty,each:ve.each,on:nh,attr:zf,attrTween:Bf,style:hh,styleTween:mh,text:wh,textTween:_h,remove:rh,tween:jf,delay:Wf,duration:Zf,ease:Gf,easeVarying:Kf,end:Sh,[Symbol.iterator]:ve[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 Se?(t=e._id,e=e._name):(t=Qs(),(n=Mh).time=oo(),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,u,c=0;c<a;++c)(u=i[c])&&cn(u,e,t,c,i,n||kh(u,t));return new Se(o,this._parents,e,t)}Ct.prototype.interrupt=Cf;Ct.prototype.transition=jh;const Rt=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 _e(e,t,n){this.k=e,this.x=t,this.y=n}_e.prototype={constructor:_e,scale:function(e){return e===1?this:new _e(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new _e(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var ln=new _e(1,0,0);Js.prototype=_e.prototype;function Js(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ln;return e.__zoom}function En(e){e.stopImmediatePropagation()}function st(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 Yo(){return this.__zoom||ln}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 ei(){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,u=Bt,c=rn("start","zoom","end"),d,f,h,g=500,p=150,y=0,w=10;function x(b){b.property("__zoom",Yo).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",L).filter(r).on("touchstart.zoom",D).on("touchmove.zoom",z).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}x.transform=function(b,A,S,M){var k=b.selection?b.selection():b;k.property("__zoom",Yo),b!==k?C(b,A,S,M):k.interrupt().each(function(){N(this,arguments).event(M).start().zoom(null,typeof A=="function"?A.apply(this,arguments):A).end()})},x.scaleBy=function(b,A,S,M){x.scaleTo(b,function(){var k=this.__zoom.k,j=typeof A=="function"?A.apply(this,arguments):A;return k*j},S,M)},x.scaleTo=function(b,A,S,M){x.transform(b,function(){var k=t.apply(this,arguments),j=this.__zoom,R=S==null?v(k):typeof S=="function"?S.apply(this,arguments):S,$=j.invert(R),O=typeof A=="function"?A.apply(this,arguments):A;return n(m(E(j,O),R,$),k,i)},S,M)},x.translateBy=function(b,A,S,M){x.transform(b,function(){return n(this.__zoom.translate(typeof A=="function"?A.apply(this,arguments):A,typeof S=="function"?S.apply(this,arguments):S),t.apply(this,arguments),i)},null,M)},x.translateTo=function(b,A,S,M,k){x.transform(b,function(){var j=t.apply(this,arguments),R=this.__zoom,$=M==null?v(j):typeof M=="function"?M.apply(this,arguments):M;return n(ln.translate($[0],$[1]).scale(R.k).translate(typeof A=="function"?-A.apply(this,arguments):-A,typeof S=="function"?-S.apply(this,arguments):-S),j,i)},M,k)};function E(b,A){return A=Math.max(s[0],Math.min(s[1],A)),A===b.k?b:new _e(A,b.x,b.y)}function m(b,A,S){var M=A[0]-S[0]*b.k,k=A[1]-S[1]*b.k;return M===b.x&&k===b.y?b:new _e(b.k,M,k)}function v(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function C(b,A,S,M){b.on("start.zoom",function(){N(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(M).end()}).tween("zoom",function(){var k=this,j=arguments,R=N(k,j).event(M),$=t.apply(k,j),O=S==null?v($):typeof S=="function"?S.apply(k,j):S,W=Math.max($[1][0]-$[0][0],$[1][1]-$[0][1]),V=k.__zoom,X=typeof A=="function"?A.apply(k,j):A,K=u(V.invert(O).concat(W/V.k),X.invert(O).concat(W/X.k));return function(Z){if(Z===1)Z=X;else{var B=K(Z),U=W/B[2];Z=new _e(U,O[0]-B[0]*U,O[1]-B[1]*U)}R.zoom(null,Z)}})}function N(b,A,S){return!S&&b.__zooming||new I(b,A)}function I(b,A){this.that=b,this.args=A,this.active=0,this.sourceEvent=null,this.extent=t.apply(b,A),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,A){return this.mouse&&b!=="mouse"&&(this.mouse[1]=A.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=A.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=A.invert(this.touch1[0])),this.that.__zoom=A,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var A=ue(this.that).datum();c.call(b,this.that,new Ih(b,{sourceEvent:this.sourceEvent,target:x,transform:this.that.__zoom,dispatch:c}),A)}};function T(b,...A){if(!e.apply(this,arguments))return;var S=N(this,A).event(b),M=this.__zoom,k=Math.max(s[0],Math.min(s[1],M.k*Math.pow(2,o.apply(this,arguments)))),j=fe(b);if(S.wheel)(S.mouse[0][0]!==j[0]||S.mouse[0][1]!==j[1])&&(S.mouse[1]=M.invert(S.mouse[0]=j)),clearTimeout(S.wheel);else{if(M.k===k)return;S.mouse=[j,M.invert(j)],Yt(this),S.start()}st(b),S.wheel=setTimeout(R,p),S.zoom("mouse",n(m(E(M,k),S.mouse[0],S.mouse[1]),S.extent,i));function R(){S.wheel=null,S.end()}}function P(b,...A){if(h||!e.apply(this,arguments))return;var S=b.currentTarget,M=N(this,A,!0).event(b),k=ue(b.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",W,!0),j=fe(b,S),R=b.clientX,$=b.clientY;Fs(b.view),En(b),M.mouse=[j,this.__zoom.invert(j)],Yt(this),M.start();function O(V){if(st(V),!M.moved){var X=V.clientX-R,K=V.clientY-$;M.moved=X*X+K*K>y}M.event(V).zoom("mouse",n(m(M.that.__zoom,M.mouse[0]=fe(V,S),M.mouse[1]),M.extent,i))}function W(V){k.on("mousemove.zoom mouseup.zoom",null),Ws(V.view,M.moved),st(V),M.event(V).end()}}function L(b,...A){if(e.apply(this,arguments)){var S=this.__zoom,M=fe(b.changedTouches?b.changedTouches[0]:b,this),k=S.invert(M),j=S.k*(b.shiftKey?.5:2),R=n(m(E(S,j),M,k),t.apply(this,A),i);st(b),a>0?ue(this).transition().duration(a).call(C,R,M,b):ue(this).call(x.transform,R,M,b)}}function D(b,...A){if(e.apply(this,arguments)){var S=b.touches,M=S.length,k=N(this,A,b.changedTouches.length===M).event(b),j,R,$,O;for(En(b),R=0;R<M;++R)$=S[R],O=fe($,this),O=[O,this.__zoom.invert(O),$.identifier],k.touch0?!k.touch1&&k.touch0[2]!==O[2]&&(k.touch1=O,k.taps=0):(k.touch0=O,j=!0,k.taps=1+!!d);d&&(d=clearTimeout(d)),j&&(k.taps<2&&(f=O[0],d=setTimeout(function(){d=null},g)),Yt(this),k.start())}}function z(b,...A){if(this.__zooming){var S=N(this,A).event(b),M=b.changedTouches,k=M.length,j,R,$,O;for(st(b),j=0;j<k;++j)R=M[j],$=fe(R,this),S.touch0&&S.touch0[2]===R.identifier?S.touch0[0]=$:S.touch1&&S.touch1[2]===R.identifier&&(S.touch1[0]=$);if(R=S.that.__zoom,S.touch1){var W=S.touch0[0],V=S.touch0[1],X=S.touch1[0],K=S.touch1[1],Z=(Z=X[0]-W[0])*Z+(Z=X[1]-W[1])*Z,B=(B=K[0]-V[0])*B+(B=K[1]-V[1])*B;R=E(R,Math.sqrt(Z/B)),$=[(W[0]+X[0])/2,(W[1]+X[1])/2],O=[(V[0]+K[0])/2,(V[1]+K[1])/2]}else if(S.touch0)$=S.touch0[0],O=S.touch0[1];else return;S.zoom("touch",n(m(R,$,O),S.extent,i))}}function H(b,...A){if(this.__zooming){var S=N(this,A).event(b),M=b.changedTouches,k=M.length,j,R;for(En(b),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),j=0;j<k;++j)R=M[j],S.touch0&&S.touch0[2]===R.identifier?delete S.touch0:S.touch1&&S.touch1[2]===R.identifier&&delete S.touch1;if(S.touch1&&!S.touch0&&(S.touch0=S.touch1,delete S.touch1),S.touch0)S.touch0[1]=this.__zoom.invert(S.touch0[0]);else if(S.end(),S.taps===2&&(R=fe(R,this),Math.hypot(f[0]-R[0],f[1]-R[1])<w)){var $=ue(this).on("dblclick.zoom");$&&$.apply(this,arguments)}}}return x.wheelDelta=function(b){return arguments.length?(o=typeof b=="function"?b:Rt(+b),x):o},x.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Rt(!!b),x):e},x.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:Rt(!!b),x):r},x.extent=function(b){return arguments.length?(t=typeof b=="function"?b:Rt([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),x):t},x.scaleExtent=function(b){return arguments.length?(s[0]=+b[0],s[1]=+b[1],x):[s[0],s[1]]},x.translateExtent=function(b){return arguments.length?(i[0][0]=+b[0][0],i[1][0]=+b[1][0],i[0][1]=+b[0][1],i[1][1]=+b[1][1],x):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},x.constrain=function(b){return arguments.length?(n=b,x):n},x.duration=function(b){return arguments.length?(a=+b,x):a},x.interpolate=function(b){return arguments.length?(u=b,x):u},x.on=function(){var b=c.on.apply(c,arguments);return b===c?x:b},x.clickDistance=function(b){return arguments.length?(y=(b=+b)*b,x):Math.sqrt(y)},x.tapDistance=function(b){return arguments.length?(w=+b,x):w},x}const xe={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},wt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ti=["Enter"," ","Escape"],ni={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Ze;(function(e){e.Strict="strict",e.Loose="loose"})(Ze||(Ze={}));var ze;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ze||(ze={}));var vt;(function(e){e.Partial="partial",e.Full="full"})(vt||(vt={}));const oi={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Ie;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ie||(Ie={}));var Qt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Qt||(Qt={}));var Y;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Y||(Y={}));const Xo={[Y.Left]:Y.Right,[Y.Right]:Y.Left,[Y.Top]:Y.Bottom,[Y.Bottom]:Y.Top};function ri(e){return e===null?null:e?"valid":"invalid"}const si=e=>"id"in e&&"source"in e&&"target"in e,zh=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),io=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Mt=(e,t=[0,0])=>{const{width:n,height:o}=Ne(e),r=e.origin??t,s=n*r[0],i=o*r[1];return{x:e.position.x-s,y:e.position.y-i}},$h=(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):io(r)?r:t.nodeLookup.get(r.id));const a=i?Jt(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return un(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return dn(n)},kt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=un(n,Jt(r)),o=!0)}),o?dn(n):{x:0,y:0,width:0,height:0}},ao=(e,t,[n,o,r]=[0,0,1],s=!1,i=!1)=>{const a={...It(t,[n,o,r]),width:t.width/r,height:t.height/r},u=[];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,y=bt(a,Ge(c)),w=(g??0)*(p??0),x=s&&y>0;(!c.internals.handleBounds||x||y>=w||c.dragging)&&u.push(c)}return u},Oh=(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 Hh({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:s},i){if(e.size===0)return Promise.resolve(!0);const a=Lh(e,i),u=kt(a),c=co(u,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}),Promise.resolve(!0)}function ii({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:u,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",xe.error005());else{const g=a.measured.width,p=a.measured.height;g&&p&&(f=[[u,c],[u+g,c+p]])}else a&&qe(i.extent)&&(f=[[i.extent[0][0]+u,i.extent[0][1]+c],[i.extent[1][0]+u,i.extent[1][1]+c]]);const h=qe(f)?Oe(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&s?.("015",xe.error015()),{position:{x:h.x-u+(i.measured.width??0)*d[0],y:h.y-c+(i.measured.height??0)*d[1]},positionAbsolute:h}}async function Bh({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const s=new Set(e.map(h=>h.id)),i=[];for(const h of n){if(h.deletable===!1)continue;const g=s.has(h.id),p=!g&&h.parentId&&i.find(y=>y.id===h.parentId);(g||p)&&i.push(h)}const a=new Set(t.map(h=>h.id)),u=o.filter(h=>h.deletable!==!1),d=Oh(i,u);for(const h of u)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 Ue=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Oe=(e={x:0,y:0},t,n)=>({x:Ue(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ue(e.y,t[0][1],t[1][1]-(n?.height??0))});function ai(e,t,n){const{width:o,height:r}=Ne(n),{x:s,y:i}=n.internals.positionAbsolute;return Oe(e,[[s,i],[s+o,i+r]],t)}const Zo=(e,t,n)=>e<t?Ue(Math.abs(e-t),1,t)/t:e>n?-Ue(Math.abs(e-n),1,t)/t:0,ci=(e,t,n=15,o=40)=>{const r=Zo(e.x,o,t.width-o)*n,s=Zo(e.y,o,t.height-o)*n;return[r,s]},un=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Bn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),dn=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Ge=(e,t=[0,0])=>{const{x:n,y:o}=io(e)?e.internals.positionAbsolute:Mt(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}},Jt=(e,t=[0,0])=>{const{x:n,y:o}=io(e)?e.internals.positionAbsolute:Mt(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)}},li=(e,t)=>dn(un(Bn(e),Bn(t))),bt=(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)},Uo=e=>pe(e.width)&&pe(e.height)&&pe(e.x)&&pe(e.y),pe=e=>!isNaN(e)&&isFinite(e),Vh=(e,t)=>{},jt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),It=({x:e,y:t},[n,o,r],s=!1,i=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return s?jt(a,i):a},en=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Be(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Fh(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Be(e,n),r=Be(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Be(e.top??e.y??0,n),r=Be(e.bottom??e.y??0,n),s=Be(e.left??e.x??0,t),i=Be(e.right??e.x??0,t);return{top:o,right:i,bottom:r,left:s,x:s+i,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Wh(e,t,n,o,r,s){const{x:i,y:a}=en(e,[t,n,o]),{x:u,y:c}=en({x:e.x+e.width,y:e.y+e.height},[t,n,o]),d=r-u,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=Fh(s,t,n),a=(t-i.x)/e.width,u=(n-i.y)/e.height,c=Math.min(a,u),d=Ue(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,y=Wh(e,g,p,d,t,n),w={left:Math.min(y.left-i.left,0),top:Math.min(y.top-i.top,0),right:Math.min(y.right-i.right,0),bottom:Math.min(y.bottom-i.bottom,0)};return{x:g-w.left+w.right,y:p-w.top+w.bottom,zoom:d}},_t=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function qe(e){return e!=null&&e!=="parent"}function Ne(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ui(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function di(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 Go(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Yh(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Xh(e){return{...ni,...e||{}}}function gt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:s,y:i}=ge(e),a=It({x:s-(r?.left??0),y:i-(r?.top??0)},o),{x:u,y:c}=n?jt(a,t):a;return{xSnapped:u,ySnapped:c,...a}}const lo=e=>({width:e.offsetWidth,height:e.offsetHeight}),fi=e=>e?.getRootNode?.()||window?.document,Zh=["INPUT","SELECT","TEXTAREA"];function hi(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Zh.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const pi=e=>"clientX"in e,ge=(e,t)=>{const n=pi(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)}},qo=(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 gi({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:s,targetControlX:i,targetControlY:a}){const u=e*.125+r*.375+i*.375+n*.125,c=t*.125+s*.375+a*.375+o*.125,d=Math.abs(u-e),f=Math.abs(c-t);return[u,c,d,f]}function zt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ko({pos:e,x1:t,y1:n,x2:o,y2:r,c:s}){switch(e){case Y.Left:return[t-zt(t-o,s),n];case Y.Right:return[t+zt(o-t,s),n];case Y.Top:return[t,n-zt(n-r,s)];case Y.Bottom:return[t,n+zt(r-n,s)]}}function mi({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top,curvature:i=.25}){const[a,u]=Ko({pos:n,x1:e,y1:t,x2:o,y2:r,c:i}),[c,d]=Ko({pos:s,x1:o,y1:r,x2:e,y2:t,c:i}),[f,h,g,p]=gi({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${u} ${c},${d} ${o},${r}`,f,h,g,p]}function xi({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 Gh({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const s=un(Jt(e),Jt(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 bt(i,dn(s))>0}const qh=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,Kh=(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)),Qh=(e,t,n={})=>{if(!e.source||!e.target)return t;const o=n.getEdgeId||qh;let r;return si(e)?r={...e}:r={...e,id:o(e)},Kh(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function yi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,s,i,a]=xi({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,s,i,a]}const Qo={[Y.Left]:{x:-1,y:0},[Y.Right]:{x:1,y:0},[Y.Top]:{x:0,y:-1},[Y.Bottom]:{x:0,y:1}},Jh=({source:e,sourcePosition:t=Y.Bottom,target:n})=>t===Y.Left||t===Y.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Jo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function ep({source:e,sourcePosition:t=Y.Bottom,target:n,targetPosition:o=Y.Top,center:r,offset:s,stepPosition:i}){const a=Qo[t],u=Qo[o],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+u.x*s,y:n.y+u.y*s},f=Jh({source:c,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",g=f[h];let p=[],y,w;const x={x:0,y:0},E={x:0,y:0},[,,m,v]=xi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*u[h]===-1){h==="x"?(y=r.x??c.x+(d.x-c.x)*i,w=r.y??(c.y+d.y)/2):(y=r.x??(c.x+d.x)/2,w=r.y??c.y+(d.y-c.y)*i);const T=[{x:y,y:c.y},{x:y,y:d.y}],P=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===g?p=h==="x"?T:P:p=h==="x"?P:T}else{const T=[{x:c.x,y:d.y}],P=[{x:d.x,y:c.y}];if(h==="x"?p=a.x===g?P:T:p=a.y===g?T:P,t===o){const b=Math.abs(e[h]-n[h]);if(b<=s){const A=Math.min(s-1,s-b);a[h]===g?x[h]=(c[h]>e[h]?-1:1)*A:E[h]=(d[h]>n[h]?-1:1)*A}}if(t!==o){const b=h==="x"?"y":"x",A=a[h]===u[b],S=c[b]>d[b],M=c[b]<d[b];(a[h]===1&&(!A&&S||A&&M)||a[h]!==1&&(!A&&M||A&&S))&&(p=h==="x"?T:P)}const L={x:c.x+x.x,y:c.y+x.y},D={x:d.x+E.x,y:d.y+E.y},z=Math.max(Math.abs(L.x-p[0].x),Math.abs(D.x-p[0].x)),H=Math.max(Math.abs(L.y-p[0].y),Math.abs(D.y-p[0].y));z>=H?(y=(L.x+D.x)/2,w=p[0].y):(y=p[0].x,w=(L.y+D.y)/2)}const C={x:c.x+x.x,y:c.y+x.y},N={x:d.x+E.x,y:d.y+E.y};return[[e,...C.x!==p[0].x||C.y!==p[0].y?[C]:[],...p,...N.x!==p[p.length-1].x||N.y!==p[p.length-1].y?[N]:[],n],y,w,m,v]}function tp(e,t,n,o){const r=Math.min(Jo(e,t)/2,Jo(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,u=e.y<n.y?-1:1;return`L ${s},${i+r*u}Q ${s},${i} ${s+r*a},${i}`}function tn({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top,borderRadius:i=5,centerX:a,centerY:u,offset:c=20,stepPosition:d=.5}){const[f,h,g,p,y]=ep({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:s,center:{x:a,y:u},offset:c,stepPosition:d});let w=`M${f[0].x} ${f[0].y}`;for(let x=1;x<f.length-1;x++)w+=tp(f[x-1],f[x],f[x+1],i);return w+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[w,h,g,p,y]}function er(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function np(e){const{sourceNode:t,targetNode:n}=e;if(!er(t)||!er(n))return null;const o=t.internals.handleBounds||tr(t.handles),r=n.internals.handleBounds||tr(n.handles),s=nr(o?.source??[],e.sourceHandle),i=nr(e.connectionMode===Ze.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!s||!i)return e.onError?.("008",xe.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=s?.position||Y.Bottom,u=i?.position||Y.Top,c=Le(t,s,a),d=Le(n,i,u);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:u}}function tr(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Le(e,t,n=Y.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,s=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Ne(e);if(o)return{x:r+i/2,y:s+a/2};switch(t?.position??n){case Y.Top:return{x:r+i/2,y:s};case Y.Right:return{x:r+i,y:s+a/2};case Y.Bottom:return{x:r+i/2,y:s+a};case Y.Left:return{x:r,y:s+a/2}}}function nr(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Vn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function op(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(u=>{if(u&&typeof u=="object"){const c=Vn(u,t);s.has(c)||(i.push({id:c,color:u.color||n,...u}),s.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const wi=1e3,rp=10,uo={nodeOrigin:[0,0],nodeExtent:wt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},sp={...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 ip(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=Mt(r,o.nodeOrigin),i=qe(r.extent)?r.extent:o.nodeExtent,a=Oe(s,i,Ne(r));r.internals.positionAbsolute=a}}function ap(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 Fn(e,t,n,o={}){const r=fo(sp,o),s={i:0},i=new Map(t),a=r?.elevateNodesOnSelect&&!ho(r.zIndexMode)?wi:0;let u=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=Mt(d,r.nodeOrigin),g=qe(d.extent)?d.extent:r.nodeExtent,p=Oe(h,g,Ne(d));f={...r.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:p,handleBounds:ap(d,f),z:vi(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&&(u=!1),d.parentId&&po(f,t,n,o,s),c||=d.selected??!1}return{nodesInitialized:u,hasSelectedNodes:c}}function cp(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:u}=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}cp(e,n),r&&!d.parentId&&d.internals.rootParentIndex===void 0&&u==="auto"&&(d.internals.rootParentIndex=++r.i,d.internals.z=d.internals.z+r.i*rp),r&&d.internals.rootParentIndex!==void 0&&(r.i=d.internals.rootParentIndex);const f=s&&!ho(u)?wi:0,{x:h,y:g,z:p}=lp(e,d,i,a,f,u),{positionAbsolute:y}=e.internals,w=h!==y.x||g!==y.y;(w||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:g}:y,z:p}})}function vi(e,t,n){const o=pe(e.zIndex)?e.zIndex:0;return ho(n)?o:o+(e.selected?t:0)}function lp(e,t,n,o,r,s){const{x:i,y:a}=t.internals.positionAbsolute,u=Ne(e),c=Mt(e,n),d=qe(e.extent)?Oe(c,e.extent,u):c;let f=Oe({x:i+d.x,y:a+d.y},o,u);e.extent==="parent"&&(f=ai(f,u,t));const h=vi(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 u=s.get(i.parentId)?.expandedRect??Ge(a),c=li(u,i.rect);s.set(i.parentId,{expandedRect:c,parent:a})}return s.size>0&&s.forEach(({expandedRect:i,parent:a},u)=>{const c=a.internals.positionAbsolute,d=Ne(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)),y=Math.max(d.height,Math.round(i.height)),w=(p-d.width)*f[0],x=(y-d.height)*f[1];(h>0||g>0||w||x)&&(r.push({id:u,type:"position",position:{x:a.position.x-h+w,y:a.position.y-g+x}}),n.get(u)?.forEach(E=>{e.some(m=>m.id===E.id)||r.push({id:E.id,type:"position",position:{x:E.position.x+h,y:E.position.y+g}})})),(d.width<i.width||d.height<i.height||h||g)&&r.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:p+(h?f[0]*h-w:0),height:y+(g?f[1]*g-x:0)}})}),r}function up(e,t,n,o,r,s,i){const a=o?.querySelector(".xyflow__viewport");let u=!1;if(!a)return{changes:[],updatedInternals:u};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}}),u=!0;continue}const y=lo(g.nodeElement),w=p.measured.width!==y.width||p.measured.height!==y.height;if(!!(y.width&&y.height&&(w||!p.internals.handleBounds||g.force))){const E=g.nodeElement.getBoundingClientRect(),m=qe(p.extent)?p.extent:s;let{positionAbsolute:v}=p.internals;p.parentId&&p.extent==="parent"?v=ai(v,y,t.get(p.parentId)):m&&(v=Oe(v,m,y));const C={...p,measured:y,internals:{...p.internals,positionAbsolute:v,handleBounds:{source:qo("source",g.nodeElement,E,f,p.id),target:qo("target",g.nodeElement,E,f,p.id)}}};t.set(p.id,C),p.parentId&&po(C,t,n,{nodeOrigin:r,zIndexMode:i}),u=!0,w&&(c.push({id:p.id,type:"dimensions",dimensions:y}),p.expandParent&&p.parentId&&h.push({id:p.id,parentId:p.parentId,rect:Ge(C,r)}))}}if(h.length>0){const g=go(h,t,n,r);c.push(...g)}return{changes:c,updatedInternals:u}}async function dp({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:s}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,s]],o),a=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(a)}function or(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 u=o.get(i)||new Map;if(o.set(i,u.set(n,t)),s){i=`${r}-${e}-${s}`;const c=o.get(i)||new Map;o.set(i,c.set(n,t))}}function bi(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:s,sourceHandle:i=null,targetHandle:a=null}=o,u={edgeId:o.id,source:r,target:s,sourceHandle:i,targetHandle:a},c=`${r}-${i}--${s}-${a}`,d=`${s}-${a}--${r}-${i}`;or("source",u,d,e,r,i),or("target",u,c,e,s,a),t.set(o.id,o)}}function _i(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:_i(n,t):!1}function rr(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 fp(e,t,n,o){const r=new Map;for(const[s,i]of e)if((i.selected||i.id===o)&&(!i.parentId||!_i(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 Sn({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[i,a]of t){const u=n.get(i)?.internals.userNode;u&&r.push({...u,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 hp({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=jt(s,t);return{x:i.x-s.x,y:i.y-s.y}}function pp({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let s={x:null,y:null},i=0,a=new Map,u=!1,c={x:0,y:0},d=null,f=!1,h=null,g=!1,p=!1,y=null;function w({noDragClassName:E,handleSelector:m,domNode:v,isSelectable:C,nodeId:N,nodeClickDistance:I=0}){h=ue(v);function T({x:z,y:H}){const{nodeLookup:b,nodeExtent:A,snapGrid:S,snapToGrid:M,nodeOrigin:k,onNodeDrag:j,onSelectionDrag:R,onError:$,updateNodePositions:O}=t();s={x:z,y:H};let W=!1;const V=a.size>1,X=V&&A?Bn(kt(a)):null,K=V&&M?hp({dragItems:a,snapGrid:S,x:z,y:H}):null;for(const[Z,B]of a){if(!b.has(Z))continue;let U={x:z-B.distance.x,y:H-B.distance.y};M&&(U=K?{x:Math.round(U.x+K.x),y:Math.round(U.y+K.y)}:jt(U,S));let F=null;if(V&&A&&!B.extent&&X){const{positionAbsolute:Q}=B.internals,ee=Q.x-X.x+A[0][0],oe=Q.x+B.measured.width-X.x2+A[1][0],te=Q.y-X.y+A[0][1],ce=Q.y+B.measured.height-X.y2+A[1][1];F=[[ee,te],[oe,ce]]}const{position:G,positionAbsolute:q}=ii({nodeId:Z,nextPosition:U,nodeLookup:b,nodeExtent:F||A,nodeOrigin:k,onError:$});W=W||B.position.x!==G.x||B.position.y!==G.y,B.position=G,B.internals.positionAbsolute=q}if(p=p||W,!!W&&(O(a,!0),y&&(o||j||!N&&R))){const[Z,B]=Sn({nodeId:N,dragItems:a,nodeLookup:b});o?.(y,a,Z,B),j?.(y,Z,B),N||R?.(y,B)}}async function P(){if(!d)return;const{transform:z,panBy:H,autoPanSpeed:b,autoPanOnNodeDrag:A}=t();if(!A){u=!1,cancelAnimationFrame(i);return}const[S,M]=ci(c,d,b);(S!==0||M!==0)&&(s.x=(s.x??0)-S/z[2],s.y=(s.y??0)-M/z[2],await H({x:S,y:M})&&T(s)),i=requestAnimationFrame(P)}function L(z){const{nodeLookup:H,multiSelectionActive:b,nodesDraggable:A,transform:S,snapGrid:M,snapToGrid:k,selectNodesOnDrag:j,onNodeDragStart:R,onSelectionDragStart:$,unselectNodesAndEdges:O}=t();f=!0,(!j||!C)&&!b&&N&&(H.get(N)?.selected||O()),C&&j&&N&&e?.(N);const W=gt(z.sourceEvent,{transform:S,snapGrid:M,snapToGrid:k,containerBounds:d});if(s=W,a=fp(H,A,W,N),a.size>0&&(n||R||!N&&$)){const[V,X]=Sn({nodeId:N,dragItems:a,nodeLookup:H});n?.(z.sourceEvent,a,V,X),R?.(z.sourceEvent,V,X),N||$?.(z.sourceEvent,X)}}const D=Ys().clickDistance(I).on("start",z=>{const{domNode:H,nodeDragThreshold:b,transform:A,snapGrid:S,snapToGrid:M}=t();d=H?.getBoundingClientRect()||null,g=!1,p=!1,y=z.sourceEvent,b===0&&L(z),s=gt(z.sourceEvent,{transform:A,snapGrid:S,snapToGrid:M,containerBounds:d}),c=ge(z.sourceEvent,d)}).on("drag",z=>{const{autoPanOnNodeDrag:H,transform:b,snapGrid:A,snapToGrid:S,nodeDragThreshold:M,nodeLookup:k}=t(),j=gt(z.sourceEvent,{transform:b,snapGrid:A,snapToGrid:S,containerBounds:d});if(y=z.sourceEvent,(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1||N&&!k.has(N))&&(g=!0),!g){if(!u&&H&&f&&(u=!0,P()),!f){const R=ge(z.sourceEvent,d),$=R.x-c.x,O=R.y-c.y;Math.sqrt($*$+O*O)>M&&L(z)}(s.x!==j.xSnapped||s.y!==j.ySnapped)&&a&&f&&(c=ge(z.sourceEvent,d),T(j))}}).on("end",z=>{if(!(!f||g)&&(u=!1,f=!1,cancelAnimationFrame(i),a.size>0)){const{nodeLookup:H,updateNodePositions:b,onNodeDragStop:A,onSelectionDragStop:S}=t();if(p&&(b(a,!1),p=!1),r||A||!N&&S){const[M,k]=Sn({nodeId:N,dragItems:a,nodeLookup:H,dragging:!1});r?.(z.sourceEvent,a,M,k),A?.(z.sourceEvent,M,k),N||S?.(z.sourceEvent,k)}}}).filter(z=>{const H=z.target;return!z.button&&(!E||!rr(H,`.${E}`,v))&&(!m||rr(H,m,v))});h.call(D)}function x(){h?.on(".drag",null)}return{update:w,destroy:x}}function gp(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())bt(r,Ge(s))>0&&o.push(s);return o}const mp=250;function xp(e,t,n,o){let r=[],s=1/0;const i=gp(e,n,t+mp);for(const a of i){const u=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of u){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:d,y:f}=Le(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(u=>u.type===a)??r[0]}return r[0]}function Ei(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??[]],u=(n?a?.find(c=>c.id===n):a?.[0])??null;return u&&s?{...u,...Le(i,u,u.position,!0)}:u}function Si(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function yp(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Ni=()=>!0;function wp(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:u,lib:c,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:g,onConnectStart:p,onConnect:y,onConnectEnd:w,isValidConnection:x=Ni,onReconnectEnd:E,updateConnection:m,getTransform:v,getFromHandle:C,autoPanSpeed:N,dragThreshold:I=1,handleDomNode:T}){const P=fi(e.target);let L=0,D;const{x:z,y:H}=ge(e),b=Si(s,T),A=a?.getBoundingClientRect();let S=!1;if(!A||!b)return;const M=Ei(r,b,o,u,t);if(!M)return;let k=ge(e,A),j=!1,R=null,$=!1,O=null;function W(){if(!d||!A)return;const[G,q]=ci(k,A,N);h({x:G,y:q}),L=requestAnimationFrame(W)}const V={...M,nodeId:r,type:b,position:M.position},X=u.get(r);let Z={inProgress:!0,isValid:null,from:Le(X,V,Y.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:X,to:k,toHandle:null,toPosition:Xo[V.position],toNode:null,pointer:k};function B(){S=!0,m(Z),p?.(e,{nodeId:r,handleId:o,handleType:b})}I===0&&B();function U(G){if(!S){const{x:ce,y:Ce}=ge(G),we=ce-z,Ae=Ce-H;if(!(we*we+Ae*Ae>I*I))return;B()}if(!C()||!V){F(G);return}const q=v();k=ge(G,A),D=xp(It(k,q,!1,[1,1]),n,u,V),j||(W(),j=!0);const Q=Ci(G,{handle:D,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:i?"target":"source",isValidConnection:x,doc:P,lib:c,flowId:f,nodeLookup:u});O=Q.handleDomNode,R=Q.connection,$=yp(!!D,Q.isValid);const ee=u.get(r),oe=ee?Le(ee,V,Y.Left,!0):Z.from,te={...Z,from:oe,isValid:$,to:Q.toHandle&&$?en({x:Q.toHandle.x,y:Q.toHandle.y},q):k,toHandle:Q.toHandle,toPosition:$&&Q.toHandle?Q.toHandle.position:Xo[V.position],toNode:Q.toHandle?u.get(Q.toHandle.nodeId):null,pointer:k};m(te),Z=te}function F(G){if(!("touches"in G&&G.touches.length>0)){if(S){(D||O)&&R&&$&&y?.(R);const{inProgress:q,...Q}=Z,ee={...Q,toPosition:Z.toHandle?Z.toPosition:null};w?.(G,ee),s&&E?.(G,ee)}g(),cancelAnimationFrame(L),j=!1,$=!1,R=null,O=null,P.removeEventListener("mousemove",U),P.removeEventListener("mouseup",F),P.removeEventListener("touchmove",U),P.removeEventListener("touchend",F)}}P.addEventListener("mousemove",U),P.addEventListener("mouseup",F),P.addEventListener("touchmove",U),P.addEventListener("touchend",F)}function Ci(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:s,doc:i,lib:a,flowId:u,isValidConnection:c=Ni,nodeLookup:d}){const f=s==="target",h=t?i.querySelector(`.${a}-flow__handle[data-id="${u}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=ge(e),y=i.elementFromPoint(g,p),w=y?.classList.contains(`${a}-flow__handle`)?y:h,x={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const E=Si(void 0,w),m=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),C=w.classList.contains("connectable"),N=w.classList.contains("connectableend");if(!m||!E)return x;const I={source:f?m:o,sourceHandle:f?v:r,target:f?o:m,targetHandle:f?r:v};x.connection=I;const P=C&&N&&(n===Ze.Strict?f&&E==="source"||!f&&E==="target":m!==o||v!==r);x.isValid=P&&c(I),x.toHandle=Ei(m,E,v,d,n,!0)}return x}const Wn={onPointerDown:wp,isValid:Ci};function vp({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=ue(e);function s({translateExtent:a,width:u,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(),C=m.sourceEvent.ctrlKey&&_t()?10:1,N=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*d,I=v[2]*Math.pow(2,N*C);t.scaleTo(I)};let y=[0,0];const w=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(y=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},x=m=>{const v=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const C=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],N=[C[0]-y[0],C[1]-y[1]];y=C;const I=o()*Math.max(v[2],Math.log(v[2]))*(g?-1:1),T={x:v[0]-N[0]*I,y:v[1]-N[1]*I},P=[[0,0],[u,c]];t.setViewportConstrained({x:T.x,y:T.y,zoom:v[2]},P,a)},E=ei().on("start",w).on("zoom",f?x:null).on("zoom.wheel",h?p:null);r.call(E,{})}function i(){r.on("zoom",null)}return{update:s,destroy:i,pointer:fe}}const fn=e=>({x:e.x,y:e.y,zoom:e.k}),Nn=({x:e,y:t,zoom:n})=>ln.translate(e,t).scale(n),Ve=(e,t)=>e.target.closest(`.${t}`),Mi=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),bp=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Cn=(e,t=0,n=bp,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},ki=e=>{const t=e.ctrlKey&&_t()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function _p({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:u,onPanZoomEnd:c}){return d=>{if(Ve(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=fe(d),x=ki(d),E=f*Math.pow(2,x);o.scaleTo(n,E,w,d);return}const h=d.deltaMode===1?20:1;let g=r===ze.Vertical?0:d.deltaX*h,p=r===ze.Horizontal?0:d.deltaY*h;!_t()&&d.shiftKey&&r!==ze.Vertical&&(g=d.deltaY*h,p=0),o.translateBy(n,-(g/f)*s,-(p/f)*s,{internal:!0});const y=fn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(u?.(d,y),e.panScrollTimeout=setTimeout(()=>{c?.(d,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(d,y))}}function Ep({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const s=o.type==="wheel",i=!t&&s&&!o.ctrlKey,a=Ve(o,e);if(o.ctrlKey&&s&&a&&o.preventDefault(),i||a)return null;o.preventDefault(),n.call(this,o,r)}}function Sp({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=fn(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function Np({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return s=>{e.usedRightMouseButton=!!(n&&Mi(t,e.mouseButton??0)),s.sourceEvent?.sync||o([s.transform.x,s.transform.y,s.transform.k]),r&&!s.sourceEvent?.internal&&r?.(s.sourceEvent,fn(s.transform))}}function Cp({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:s}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,s&&Mi(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&s(i.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=fn(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(i.sourceEvent,a)},n?150:0)}}}function Mp({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:s,userSelectionActive:i,noWheelClassName:a,noPanClassName:u,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"&&(Ve(f,`${c}-flow__node`)||Ve(f,`${c}-flow__edge`)))return!0;if(!o&&!h&&!r&&!s&&!n||i||d&&!p||Ve(f,a)&&p||Ve(f,u)&&(!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 y=Array.isArray(o)&&o.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||p)&&y}}function kp({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:s,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:u}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=ei().scaleExtent([t,n]).translateExtent(o),h=ue(e).call(f);E({x:r.x,y:r.y,zoom:Ue(r.zoom,t,n)},[[0,0],[d.width,d.height]],o);const g=h.on("wheel.zoom"),p=h.on("dblclick.zoom");f.wheelDelta(ki);function y(D,z){return h?new Promise(H=>{f?.interpolate(z?.interpolate==="linear"?bn:Bt).transform(Cn(h,z?.duration,z?.ease,()=>H(!0)),D)}):Promise.resolve(!1)}function w({noWheelClassName:D,noPanClassName:z,onPaneContextMenu:H,userSelectionActive:b,panOnScroll:A,panOnDrag:S,panOnScrollMode:M,panOnScrollSpeed:k,preventScrolling:j,zoomOnPinch:R,zoomOnScroll:$,zoomOnDoubleClick:O,zoomActivationKeyPressed:W,lib:V,onTransformChange:X,connectionInProgress:K,paneClickDistance:Z,selectionOnDrag:B}){b&&!c.isZoomingOrPanning&&x();const U=A&&!W&&!b;f.clickDistance(B?1/0:!pe(Z)||Z<0?0:Z);const F=U?_p({zoomPanValues:c,noWheelClassName:D,d3Selection:h,d3Zoom:f,panOnScrollMode:M,panOnScrollSpeed:k,zoomOnPinch:R,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):Ep({noWheelClassName:D,preventScrolling:j,d3ZoomHandler:g});if(h.on("wheel.zoom",F,{passive:!1}),!b){const q=Sp({zoomPanValues:c,onDraggingChange:u,onPanZoomStart:i});f.on("start",q);const Q=Np({zoomPanValues:c,panOnDrag:S,onPaneContextMenu:!!H,onPanZoom:s,onTransformChange:X});f.on("zoom",Q);const ee=Cp({zoomPanValues:c,panOnDrag:S,panOnScroll:A,onPaneContextMenu:H,onPanZoomEnd:a,onDraggingChange:u});f.on("end",ee)}const G=Mp({zoomActivationKeyPressed:W,panOnDrag:S,zoomOnScroll:$,panOnScroll:A,zoomOnDoubleClick:O,zoomOnPinch:R,userSelectionActive:b,noPanClassName:z,noWheelClassName:D,lib:V,connectionInProgress:K});f.filter(G),O?h.on("dblclick.zoom",p):h.on("dblclick.zoom",null)}function x(){f.on("zoom",null)}async function E(D,z,H){const b=Nn(D),A=f?.constrain()(b,z,H);return A&&await y(A),new Promise(S=>S(A))}async function m(D,z){const H=Nn(D);return await y(H,z),new Promise(b=>b(H))}function v(D){if(h){const z=Nn(D),H=h.property("__zoom");(H.k!==D.zoom||H.x!==D.x||H.y!==D.y)&&f?.transform(h,z,null,{sync:!0})}}function C(){const D=h?Js(h.node()):{x:0,y:0,k:1};return{x:D.x,y:D.y,zoom:D.k}}function N(D,z){return h?new Promise(H=>{f?.interpolate(z?.interpolate==="linear"?bn:Bt).scaleTo(Cn(h,z?.duration,z?.ease,()=>H(!0)),D)}):Promise.resolve(!1)}function I(D,z){return h?new Promise(H=>{f?.interpolate(z?.interpolate==="linear"?bn:Bt).scaleBy(Cn(h,z?.duration,z?.ease,()=>H(!0)),D)}):Promise.resolve(!1)}function T(D){f?.scaleExtent(D)}function P(D){f?.translateExtent(D)}function L(D){const z=!pe(D)||D<0?0:D;f?.clickDistance(z)}return{update:w,destroy:x,setViewport:m,setViewportConstrained:E,getViewport:C,scaleTo:N,scaleBy:I,setScaleExtent:T,setTranslateExtent:P,syncViewport:v,setClickDistance:L}}var Ke;(function(e){e.Line="line",e.Handle="handle"})(Ke||(Ke={}));function jp({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:s}){const i=e-t,a=n-o,u=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&r&&(u[0]=u[0]*-1),a&&s&&(u[1]=u[1]*-1),u}function sr(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function Me(e,t){return Math.max(0,t-e)}function ke(e,t){return Math.max(0,e-t)}function $t(e,t,n){return Math.max(0,t-e,e-n)}function ir(e,t){return e?!t:t}function Ip(e,t,n,o,r,s,i,a){let{affectsX:u,affectsY:c}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:g,ySnapped:p}=n,{minWidth:y,maxWidth:w,minHeight:x,maxHeight:E}=o,{x:m,y:v,width:C,height:N,aspectRatio:I}=e;let T=Math.floor(d?g-e.pointerX:0),P=Math.floor(f?p-e.pointerY:0);const L=C+(u?-T:T),D=N+(c?-P:P),z=-s[0]*C,H=-s[1]*N;let b=$t(L,y,w),A=$t(D,x,E);if(i){let k=0,j=0;u&&T<0?k=Me(m+T+z,i[0][0]):!u&&T>0&&(k=ke(m+L+z,i[1][0])),c&&P<0?j=Me(v+P+H,i[0][1]):!c&&P>0&&(j=ke(v+D+H,i[1][1])),b=Math.max(b,k),A=Math.max(A,j)}if(a){let k=0,j=0;u&&T>0?k=ke(m+T,a[0][0]):!u&&T<0&&(k=Me(m+L,a[1][0])),c&&P>0?j=ke(v+P,a[0][1]):!c&&P<0&&(j=Me(v+D,a[1][1])),b=Math.max(b,k),A=Math.max(A,j)}if(r){if(d){const k=$t(L/I,x,E)*I;if(b=Math.max(b,k),i){let j=0;!u&&!c||u&&!c&&h?j=ke(v+H+L/I,i[1][1])*I:j=Me(v+H+(u?T:-T)/I,i[0][1])*I,b=Math.max(b,j)}if(a){let j=0;!u&&!c||u&&!c&&h?j=Me(v+L/I,a[1][1])*I:j=ke(v+(u?T:-T)/I,a[0][1])*I,b=Math.max(b,j)}}if(f){const k=$t(D*I,y,w)/I;if(A=Math.max(A,k),i){let j=0;!u&&!c||c&&!u&&h?j=ke(m+D*I+z,i[1][0])/I:j=Me(m+(c?P:-P)*I+z,i[0][0])/I,A=Math.max(A,j)}if(a){let j=0;!u&&!c||c&&!u&&h?j=Me(m+D*I,a[1][0])/I:j=ke(m+(c?P:-P)*I,a[0][0])/I,A=Math.max(A,j)}}}P=P+(P<0?A:-A),T=T+(T<0?b:-b),r&&(h?L>D*I?P=(ir(u,c)?-T:T)/I:T=(ir(u,c)?-P:P)*I:d?(P=T/I,c=u):(T=P*I,u=c));const S=u?m+T:m,M=c?v+P:v;return{width:C+(u?-T:T),height:N+(c?-P:P),x:s[0]*T*(u?-1:1)+S,y:s[1]*P*(c?-1:1)+M}}const ji={width:0,height:0,x:0,y:0},Ap={...ji,pointerX:0,pointerY:0,aspectRatio:1};function Pp(e){return[[0,0],[e.measured.width,e.measured.height]]}function Dp(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,u=n[1]*i;return[[o-a,r-u],[o+s-a,r+i-u]]}function Tp({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const s=ue(e);let i={controlDirection:sr("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:y,shouldResize:w}){let x={...ji},E={...Ap};i={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:sr(c)};let m,v=null,C=[],N,I,T,P=!1;const L=Ys().on("start",D=>{const{nodeLookup:z,transform:H,snapGrid:b,snapToGrid:A,nodeOrigin:S,paneDomNode:M}=n();if(m=z.get(t),!m)return;v=M?.getBoundingClientRect()??null;const{xSnapped:k,ySnapped:j}=gt(D.sourceEvent,{transform:H,snapGrid:b,snapToGrid:A,containerBounds:v});x={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},E={...x,pointerX:k,pointerY:j,aspectRatio:x.width/x.height},N=void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(N=z.get(m.parentId),I=N&&m.extent==="parent"?Pp(N):void 0),C=[],T=void 0;for(const[R,$]of z)if($.parentId===t&&(C.push({id:R,position:{...$.position},extent:$.extent}),$.extent==="parent"||$.expandParent)){const O=Dp($,m,$.origin??S);T?T=[[Math.min(O[0][0],T[0][0]),Math.min(O[0][1],T[0][1])],[Math.max(O[1][0],T[1][0]),Math.max(O[1][1],T[1][1])]]:T=O}g?.(D,{...x})}).on("drag",D=>{const{transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:A}=n(),S=gt(D.sourceEvent,{transform:z,snapGrid:H,snapToGrid:b,containerBounds:v}),M=[];if(!m)return;const{x:k,y:j,width:R,height:$}=x,O={},W=m.origin??A,{width:V,height:X,x:K,y:Z}=Ip(E,i.controlDirection,S,i.boundaries,i.keepAspectRatio,W,I,T),B=V!==R,U=X!==$,F=K!==k&&B,G=Z!==j&&U;if(!F&&!G&&!B&&!U)return;if((F||G||W[0]===1||W[1]===1)&&(O.x=F?K:x.x,O.y=G?Z:x.y,x.x=O.x,x.y=O.y,C.length>0)){const oe=K-k,te=Z-j;for(const ce of C)ce.position={x:ce.position.x-oe+W[0]*(V-R),y:ce.position.y-te+W[1]*(X-$)},M.push(ce)}if((B||U)&&(O.width=B&&(!i.resizeDirection||i.resizeDirection==="horizontal")?V:x.width,O.height=U&&(!i.resizeDirection||i.resizeDirection==="vertical")?X:x.height,x.width=O.width,x.height=O.height),N&&m.expandParent){const oe=W[0]*(O.width??0);O.x&&O.x<oe&&(x.x=oe,E.x=E.x-(O.x-oe));const te=W[1]*(O.height??0);O.y&&O.y<te&&(x.y=te,E.y=E.y-(O.y-te))}const q=jp({width:x.width,prevWidth:R,height:x.height,prevHeight:$,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),Q={...x,direction:q};w?.(D,Q)!==!1&&(P=!0,p?.(D,Q),o(O,M))}).on("end",D=>{P&&(y?.(D,{...x}),r?.({...x}),P=!1)});s.call(L)}function u(){s.on(".drag",null)}return{update:a,destroy:u}}var Mn={exports:{}},kn={};var ar;function Rp(){if(ar)return kn;ar=1;var e=Bc(),t=Vc();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,u=e.useDebugValue;return kn.useSyncExternalStoreWithSelector=function(c,d,f,h,g){var p=s(null);if(p.current===null){var y={hasValue:!1,value:null};p.current=y}else y=p.current;p=a(function(){function x(N){if(!E){if(E=!0,m=N,N=h(N),g!==void 0&&y.hasValue){var I=y.value;if(g(I,N))return v=I}return v=N}if(I=v,o(m,N))return I;var T=h(N);return g!==void 0&&g(I,T)?(m=N,I):(m=N,v=T)}var E=!1,m,v,C=f===void 0?null:f;return[function(){return x(d())},C===null?void 0:function(){return x(C())}]},[d,f,h,g]);var w=r(c,p[0],p[1]);return i(function(){y.hasValue=!0,y.value=w},[w]),u(w),w},kn}var cr;function zp(){return cr||(cr=1,Mn.exports=Rp()),Mn.exports}var $p=zp();const Op=Fc($p),Lp={},lr=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,u={setState:o,getState:r,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Lp?"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,u);return u},Hp=e=>e?lr(e):lr,{useDebugValue:Bp}=he,{useSyncExternalStoreWithSelector:Vp}=Op,Fp=e=>e;function Ii(e,t=Fp,n){const o=Vp(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Bp(o),o}const ur=(e,t)=>{const n=Hp(e),o=(r,s=t)=>Ii(n,r,s);return Object.assign(o,n),o},Wp=(e,t)=>e?ur(e,t):ur;function ne(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,r]of e)if(!Object.is(r,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const hn=_.createContext(null),Yp=hn.Provider,Ai=xe.error001();function J(e,t){const n=_.useContext(hn);if(n===null)throw new Error(Ai);return Ii(n,e,t)}function re(){const e=_.useContext(hn);if(e===null)throw new Error(Ai);return _.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const dr={display:"none"},Xp={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Pi="react-flow__node-desc",Di="react-flow__edge-desc",Zp="react-flow__aria-live",Up=e=>e.ariaLiveMessage,Gp=e=>e.ariaLabelConfig;function qp({rfId:e}){const t=J(Up);return l.jsx("div",{id:`${Zp}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Xp,children:t})}function Kp({rfId:e,disableKeyboardA11y:t}){const n=J(Gp);return l.jsxs(l.Fragment,{children:[l.jsx("div",{id:`${Pi}-${e}`,style:dr,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),l.jsx("div",{id:`${Di}-${e}`,style:dr,children:n["edge.a11yDescription.default"]}),!t&&l.jsx(qp,{rfId:e})]})}const pn=_.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},s)=>{const i=`${e}`.split("-");return l.jsx("div",{className:ie(["react-flow__panel",n,...i]),style:o,ref:s,...r,children:t})});pn.displayName="Panel";function Qp({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:l.jsx(pn,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:l.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Jp=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}},Ot=e=>e.id;function eg(e,t){return ne(e.selectedNodes.map(Ot),t.selectedNodes.map(Ot))&&ne(e.selectedEdges.map(Ot),t.selectedEdges.map(Ot))}function tg({onSelectionChange:e}){const t=re(),{selectedNodes:n,selectedEdges:o}=J(Jp,eg);return _.useEffect(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(s=>s(r))},[n,o,e]),null}const ng=e=>!!e.onSelectionChangeHandlers;function og({onSelectionChange:e}){const t=J(ng);return e||t?l.jsx(tg,{onSelectionChange:e}):null}const Yn=typeof window<"u"?_.useLayoutEffect:_.useEffect,Ti=[0,0],rg={x:0,y:0,zoom:1},sg=["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"],fr=[...sg,"rfId"],ig=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}),hr={translateExtent:wt,nodeOrigin:Ti,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ag(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:u}=J(ig,ne),c=re();Yn(()=>(u(e.defaultNodes,e.defaultEdges),()=>{d.current=hr,a()}),[]);const d=_.useRef(hr);return Yn(()=>{for(const f of fr){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:Xh(h)}):f==="fitView"?c.setState({fitViewQueued:h}):f==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[f]:h})))}d.current=e},fr.map(f=>e[f])),null}function pr(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function cg(e){const[t,n]=_.useState(e==="system"?null:e);return _.useEffect(()=>{if(e!=="system"){n(e);return}const o=pr(),r=()=>n(o?.matches?"dark":"light");return r(),o?.addEventListener("change",r),()=>{o?.removeEventListener("change",r)}},[e]),t!==null?t:pr()?.matches?"dark":"light"}const gr=typeof document<"u"?document:null;function Et(e=null,t={target:gr,actInsideInputWithModifier:!0}){const[n,o]=_.useState(!1),r=_.useRef(!1),s=_.useRef(new Set([])),[i,a]=_.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 _.useEffect(()=>{const u=t?.target??gr,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)&&hi(g))return!1;const y=xr(g.code,a);if(s.current.add(g[y]),mr(i,s.current,!1)){const w=g.composedPath?.()?.[0]||g.target,x=w?.nodeName==="BUTTON"||w?.nodeName==="A";t.preventDefault!==!1&&(r.current||!x)&&g.preventDefault(),o(!0)}},f=g=>{const p=xr(g.code,a);mr(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 u?.addEventListener("keydown",d),u?.addEventListener("keyup",f),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{u?.removeEventListener("keydown",d),u?.removeEventListener("keyup",f),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,o]),n}function mr(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function xr(e,t){return t.includes(e)?"code":"key"}const lg=()=>{const e=re();return _.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,s],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??s},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:s,maxZoom:i,panZoom:a}=e.getState(),u=co(t,o,r,s,i,n?.padding??.1);return a?(await a.setViewport(u,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:a,y:u}=i.getBoundingClientRect(),c={x:t.x-a,y:t.y-u},d=n.snapGrid??r,f=n.snapToGrid??s;return It(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=en(t,n);return{x:i.x+r,y:i.y+s}}}),[])};function Ri(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 u of i)ug(u,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 ug(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 dg(e,t){return Ri(e,t)}function fg(e,t){return Ri(e,t)}function De(e,t){return{id:e,type:"select",selected:t}}function Fe(e,t=new Set,n=!1){const o=[];for(const[r,s]of e){const i=t.has(r);!(s.selected===void 0&&!i)&&s.selected!==i&&(n&&(s.selected=i),o.push(De(s.id,i)))}return o}function yr({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 wr(e){return{id:e.id,type:"remove"}}const vr=e=>zh(e),hg=e=>si(e);function zi(e){return _.forwardRef(e)}function br(e){const[t,n]=_.useState(BigInt(0)),[o]=_.useState(()=>pg(()=>n(r=>r+BigInt(1))));return Yn(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function pg(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const $i=_.createContext(null);function gg({children:e}){const t=re(),n=_.useCallback(a=>{const{nodes:u=[],setNodes:c,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h,fitViewQueued:g,onNodesChangeMiddlewareMap:p}=t.getState();let y=u;for(const x of a)y=typeof x=="function"?x(y):x;let w=yr({items:y,lookup:h});for(const x of p.values())w=x(w);d&&c(y),w.length>0?f?.(w):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:x,nodes:E,setNodes:m}=t.getState();x&&m(E)})},[]),o=br(n),r=_.useCallback(a=>{const{edges:u=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let g=u;for(const p of a)g=typeof p=="function"?p(g):p;d?c(g):f&&f(yr({items:g,lookup:h}))},[]),s=br(r),i=_.useMemo(()=>({nodeQueue:o,edgeQueue:s}),[]);return l.jsx($i.Provider,{value:i,children:e})}function mg(){const e=_.useContext($i);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const xg=e=>!!e.panZoom;function gn(){const e=lg(),t=re(),n=mg(),o=J(xg),r=_.useMemo(()=>{const s=f=>t.getState().nodeLookup.get(f),i=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},u=f=>{const{nodeLookup:h,nodeOrigin:g}=t.getState(),p=vr(f)?f:h.get(f.id),y=p.parentId?di(p.position,p.measured,p.parentId,h,g):p.position,w={...p,position:y,width:p.measured?.width??p.width,height:p.measured?.height??p.height};return Ge(w)},c=(f,h,g={replace:!1})=>{i(p=>p.map(y=>{if(y.id===f){const w=typeof h=="function"?h(y):h;return g.replace&&vr(w)?w:{...y,...w}}return y}))},d=(f,h,g={replace:!1})=>{a(p=>p.map(y=>{if(y.id===f){const w=typeof h=="function"?h(y):h;return g.replace&&hg(w)?w:{...y,...w}}return y}))};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,y,w]=g;return{nodes:f.map(x=>({...x})),edges:h.map(x=>({...x})),viewport:{x:p,y,zoom:w}}},deleteElements:async({nodes:f=[],edges:h=[]})=>{const{nodes:g,edges:p,onNodesDelete:y,onEdgesDelete:w,triggerNodeChanges:x,triggerEdgeChanges:E,onDelete:m,onBeforeDelete:v}=t.getState(),{nodes:C,edges:N}=await Bh({nodesToRemove:f,edgesToRemove:h,nodes:g,edges:p,onBeforeDelete:v}),I=N.length>0,T=C.length>0;if(I){const P=N.map(wr);w?.(N),E(P)}if(T){const P=C.map(wr);y?.(C),x(P)}return(T||I)&&m?.({nodes:C,edges:N}),{deletedNodes:C,deletedEdges:N}},getIntersectingNodes:(f,h=!0,g)=>{const p=Uo(f),y=p?f:u(f),w=g!==void 0;return y?(g||t.getState().nodes).filter(x=>{const E=t.getState().nodeLookup.get(x.id);if(E&&!p&&(x.id===f.id||!E.internals.positionAbsolute))return!1;const m=Ge(w?x:E),v=bt(m,y);return h&&v>0||v>=m.width*m.height||v>=y.width*y.height}):[]},isNodeIntersecting:(f,h,g=!0)=>{const y=Uo(f)?f:u(f);if(!y)return!1;const w=bt(y,h);return g&&w>0||w>=h.width*h.height||w>=y.width*y.height},updateNode:c,updateNodeData:(f,h,g={replace:!1})=>{c(f,p=>{const y=typeof h=="function"?h(p):h;return g.replace?{...p,data:y}:{...p,data:{...p.data,...y}}},g)},updateEdge:d,updateEdgeData:(f,h,g={replace:!1})=>{d(f,p=>{const y=typeof h=="function"?h(p):h;return g.replace?{...p,data:y}:{...p,data:{...p.data,...y}}},g)},getNodesBounds:f=>{const{nodeLookup:h,nodeOrigin:g}=t.getState();return $h(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??Yh();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:h}),n.nodeQueue.push(g=>[...g]),h.promise}}},[]);return _.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const _r=e=>e.selected,yg=typeof window<"u"?window:void 0;function wg({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=re(),{deleteElements:o}=gn(),r=Et(e,{actInsideInputWithModifier:!1}),s=Et(t,{target:yg});_.useEffect(()=>{if(r){const{edges:i,nodes:a}=n.getState();o({nodes:a.filter(_r),edges:i.filter(_r)}),n.setState({nodesSelectionActive:!1})}},[r]),_.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function vg(e){const t=re();_.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",xe.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const mn={position:"absolute",width:"100%",height:"100%",top:0,left:0},bg=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=ze.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:u,translateExtent:c,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:g=!0,children:p,noWheelClassName:y,noPanClassName:w,onViewportChange:x,isControlledViewport:E,paneClickDistance:m,selectionOnDrag:v}){const C=re(),N=_.useRef(null),{userSelectionActive:I,lib:T,connectionInProgress:P}=J(bg,ne),L=Et(h),D=_.useRef();vg(N);const z=_.useCallback(H=>{x?.({x:H[0],y:H[1],zoom:H[2]}),E||C.setState({transform:H})},[x,E]);return _.useEffect(()=>{if(N.current){D.current=kp({domNode:N.current,minZoom:d,maxZoom:f,translateExtent:c,viewport:u,onDraggingChange:S=>C.setState(M=>M.paneDragging===S?M:{paneDragging:S}),onPanZoomStart:(S,M)=>{const{onViewportChangeStart:k,onMoveStart:j}=C.getState();j?.(S,M),k?.(M)},onPanZoom:(S,M)=>{const{onViewportChange:k,onMove:j}=C.getState();j?.(S,M),k?.(M)},onPanZoomEnd:(S,M)=>{const{onViewportChangeEnd:k,onMoveEnd:j}=C.getState();j?.(S,M),k?.(M)}});const{x:H,y:b,zoom:A}=D.current.getViewport();return C.setState({panZoom:D.current,transform:[H,b,A],domNode:N.current.closest(".react-flow")}),()=>{D.current?.destroy()}}},[]),_.useEffect(()=>{D.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:s,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:L,preventScrolling:g,noPanClassName:w,userSelectionActive:I,noWheelClassName:y,lib:T,onTransformChange:z,connectionInProgress:P,selectionOnDrag:v,paneClickDistance:m})},[e,t,n,o,r,s,i,a,L,g,w,I,y,T,z,P,v,m]),l.jsx("div",{className:"react-flow__renderer",ref:N,style:mn,children:p})}const Eg=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Sg(){const{userSelectionActive:e,userSelectionRect:t}=J(Eg,ne);return e&&t?l.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 jn=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ng=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Cg({isSelecting:e,selectionKeyPressed:t,selectionMode:n=vt.Full,panOnDrag:o,paneClickDistance:r,selectionOnDrag:s,onSelectionStart:i,onSelectionEnd:a,onPaneClick:u,onPaneContextMenu:c,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:h,onPaneMouseLeave:g,children:p}){const y=re(),{userSelectionActive:w,elementsSelectable:x,dragging:E,connectionInProgress:m}=J(Ng,ne),v=x&&(e||w),C=_.useRef(null),N=_.useRef(),I=_.useRef(new Set),T=_.useRef(new Set),P=_.useRef(!1),L=k=>{if(P.current||m){P.current=!1;return}u?.(k),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},D=k=>{if(Array.isArray(o)&&o?.includes(2)){k.preventDefault();return}c?.(k)},z=d?k=>d(k):void 0,H=k=>{P.current&&(k.stopPropagation(),P.current=!1)},b=k=>{const{domNode:j}=y.getState();if(N.current=j?.getBoundingClientRect(),!N.current)return;const R=k.target===C.current;if(!R&&!!k.target.closest(".nokey")||!e||!(s&&R||t)||k.button!==0||!k.isPrimary)return;k.target?.setPointerCapture?.(k.pointerId),P.current=!1;const{x:W,y:V}=ge(k.nativeEvent,N.current);y.setState({userSelectionRect:{width:0,height:0,startX:W,startY:V,x:W,y:V}}),R||(k.stopPropagation(),k.preventDefault())},A=k=>{const{userSelectionRect:j,transform:R,nodeLookup:$,edgeLookup:O,connectionLookup:W,triggerNodeChanges:V,triggerEdgeChanges:X,defaultEdgeOptions:K,resetSelectedElements:Z}=y.getState();if(!N.current||!j)return;const{x:B,y:U}=ge(k.nativeEvent,N.current),{startX:F,startY:G}=j;if(!P.current){const te=t?0:r;if(Math.hypot(B-F,U-G)<=te)return;Z(),i?.(k)}P.current=!0;const q={startX:F,startY:G,x:B<F?B:F,y:U<G?U:G,width:Math.abs(B-F),height:Math.abs(U-G)},Q=I.current,ee=T.current;I.current=new Set(ao($,q,R,n===vt.Partial,!0).map(te=>te.id)),T.current=new Set;const oe=K?.selectable??!0;for(const te of I.current){const ce=W.get(te);if(ce)for(const{edgeId:Ce}of ce.values()){const we=O.get(Ce);we&&(we.selectable??oe)&&T.current.add(Ce)}}if(!Go(Q,I.current)){const te=Fe($,I.current,!0);V(te)}if(!Go(ee,T.current)){const te=Fe(O,T.current);X(te)}y.setState({userSelectionRect:q,userSelectionActive:!0,nodesSelectionActive:!1})},S=k=>{k.button===0&&(k.target?.releasePointerCapture?.(k.pointerId),!w&&k.target===C.current&&y.getState().userSelectionRect&&L?.(k),y.setState({userSelectionActive:!1,userSelectionRect:null}),P.current&&(a?.(k),y.setState({nodesSelectionActive:I.current.size>0})))},M=o===!0||Array.isArray(o)&&o.includes(0);return l.jsxs("div",{className:ie(["react-flow__pane",{draggable:M,dragging:E,selection:e}]),onClick:v?void 0:jn(L,C),onContextMenu:jn(D,C),onWheel:jn(z,C),onPointerEnter:v?void 0:f,onPointerMove:v?A:h,onPointerUp:v?S:void 0,onPointerDownCapture:v?b:void 0,onClickCapture:v?H:void 0,onPointerLeave:g,ref:C,style:mn,children:[p,l.jsx(Sg,{})]})}function Xn({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:s,multiSelectionActive:i,nodeLookup:a,onError:u}=t.getState(),c=a.get(e);if(!c){u?.("012",xe.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Oi({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:s,nodeClickDistance:i}){const a=re(),[u,c]=_.useState(!1),d=_.useRef();return _.useEffect(()=>{d.current=pp({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{Xn({id:f,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),_.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]),u}const Mg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Li(){const e=re();return _.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:u,nodeLookup:c,nodeOrigin:d}=e.getState(),f=new Map,h=Mg(i),g=r?s[0]:5,p=r?s[1]:5,y=n.direction.x*g*n.factor,w=n.direction.y*p*n.factor;for(const[,x]of c){if(!h(x))continue;let E={x:x.internals.positionAbsolute.x+y,y:x.internals.positionAbsolute.y+w};r&&(E=jt(E,s));const{position:m,positionAbsolute:v}=ii({nodeId:x.id,nextPosition:E,nodeLookup:c,nodeExtent:o,nodeOrigin:d,onError:a});x.position=m,x.internals.positionAbsolute=v,f.set(x.id,x)}u(f)},[])}const mo=_.createContext(null),kg=mo.Provider;mo.Consumer;const Hi=()=>_.useContext(mo),jg=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Ig=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:s,connection:i}=o,{fromHandle:a,toHandle:u,isValid:c}=i,d=u?.nodeId===e&&u?.id===t&&u?.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===Ze.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:d&&c}};function Ag({type:e="source",position:t=Y.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:u,className:c,onMouseDown:d,onTouchStart:f,...h},g){const p=i||null,y=e==="target",w=re(),x=Hi(),{connectOnClick:E,noPanClassName:m,rfId:v}=J(jg,ne),{connectingFrom:C,connectingTo:N,clickConnecting:I,isPossibleEndHandle:T,connectionInProcess:P,clickConnectionInProcess:L,valid:D}=J(Ig(x,p,e),ne);x||w.getState().onError?.("010",xe.error010());const z=A=>{const{defaultEdgeOptions:S,onConnect:M,hasDefaultEdges:k}=w.getState(),j={...S,...A};if(k){const{edges:R,setEdges:$}=w.getState();$(Qh(j,R))}M?.(j),a?.(j)},H=A=>{if(!x)return;const S=pi(A.nativeEvent);if(r&&(S&&A.button===0||!S)){const M=w.getState();Wn.onPointerDown(A.nativeEvent,{handleDomNode:A.currentTarget,autoPanOnConnect:M.autoPanOnConnect,connectionMode:M.connectionMode,connectionRadius:M.connectionRadius,domNode:M.domNode,nodeLookup:M.nodeLookup,lib:M.lib,isTarget:y,handleId:p,nodeId:x,flowId:M.rfId,panBy:M.panBy,cancelConnection:M.cancelConnection,onConnectStart:M.onConnectStart,onConnectEnd:(...k)=>w.getState().onConnectEnd?.(...k),updateConnection:M.updateConnection,onConnect:z,isValidConnection:n||((...k)=>w.getState().isValidConnection?.(...k)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:M.autoPanSpeed,dragThreshold:M.connectionDragThreshold})}S?d?.(A):f?.(A)},b=A=>{const{onClickConnectStart:S,onClickConnectEnd:M,connectionClickStartHandle:k,connectionMode:j,isValidConnection:R,lib:$,rfId:O,nodeLookup:W,connection:V}=w.getState();if(!x||!k&&!r)return;if(!k){S?.(A.nativeEvent,{nodeId:x,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:x,type:e,id:p}});return}const X=fi(A.target),K=n||R,{connection:Z,isValid:B}=Wn.isValid(A.nativeEvent,{handle:{nodeId:x,id:p,type:e},connectionMode:j,fromNodeId:k.nodeId,fromHandleId:k.id||null,fromType:k.type,isValidConnection:K,flowId:O,doc:X,lib:$,nodeLookup:W});B&&Z&&z(Z);const U=structuredClone(V);delete U.inProgress,U.toPosition=U.toHandle?U.toHandle.position:null,M?.(A,U),w.setState({connectionClickStartHandle:null})};return l.jsx("div",{"data-handleid":p,"data-nodeid":x,"data-handlepos":t,"data-id":`${v}-${x}-${p}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!y,target:y,connectable:o,connectablestart:r,connectableend:s,clickconnecting:I,connectingfrom:C,connectingto:N,valid:D,connectionindicator:o&&(!P||T)&&(P||L?s:r)}]),onMouseDown:H,onTouchStart:H,onClick:E?b:void 0,ref:g,...h,children:u})}const St=_.memo(zi(Ag));function Pg({data:e,isConnectable:t,sourcePosition:n=Y.Bottom}){return l.jsxs(l.Fragment,{children:[e?.label,l.jsx(St,{type:"source",position:n,isConnectable:t})]})}function Dg({data:e,isConnectable:t,targetPosition:n=Y.Top,sourcePosition:o=Y.Bottom}){return l.jsxs(l.Fragment,{children:[l.jsx(St,{type:"target",position:n,isConnectable:t}),e?.label,l.jsx(St,{type:"source",position:o,isConnectable:t})]})}function Tg(){return null}function Rg({data:e,isConnectable:t,targetPosition:n=Y.Top}){return l.jsxs(l.Fragment,{children:[l.jsx(St,{type:"target",position:n,isConnectable:t}),e?.label]})}const nn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Er={input:Pg,default:Dg,output:Rg,group:Tg};function zg(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}=kt(e.nodeLookup,{filter:s=>!!s.selected});return{width:pe(t)?t:null,height:pe(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 Og({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=re(),{width:r,height:s,transformString:i,userSelectionActive:a}=J($g,ne),u=Li(),c=_.useRef(null);_.useEffect(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const d=!a&&r!==null&&s!==null;if(Oi({nodeRef:c,disabled:!d}),!d)return null;const f=e?g=>{const p=o.getState().nodes.filter(y=>y.selected);e(g,p)}:void 0,h=g=>{Object.prototype.hasOwnProperty.call(nn,g.key)&&(g.preventDefault(),u({direction:nn[g.key],factor:g.shiftKey?4:1}))};return l.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:l.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 Sr=typeof window<"u"?window:void 0,Lg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Bi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:u,selectionKeyCode:c,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:y,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:v,panOnScrollSpeed:C,panOnScrollMode:N,zoomOnDoubleClick:I,panOnDrag:T,defaultViewport:P,translateExtent:L,minZoom:D,maxZoom:z,preventScrolling:H,onSelectionContextMenu:b,noWheelClassName:A,noPanClassName:S,disableKeyboardA11y:M,onViewportChange:k,isControlledViewport:j}){const{nodesSelectionActive:R,userSelectionActive:$}=J(Lg,ne),O=Et(c,{target:Sr}),W=Et(y,{target:Sr}),V=W||T,X=W||v,K=d&&V!==!0,Z=O||$||K;return wg({deleteKeyCode:u,multiSelectionKeyCode:p}),l.jsx(_g,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:X,panOnScrollSpeed:C,panOnScrollMode:N,zoomOnDoubleClick:I,panOnDrag:!O&&V,defaultViewport:P,translateExtent:L,minZoom:D,maxZoom:z,zoomActivationKeyCode:w,preventScrolling:H,noWheelClassName:A,noPanClassName:S,onViewportChange:k,isControlledViewport:j,paneClickDistance:a,selectionOnDrag:K,children:l.jsxs(Cg,{onSelectionStart:h,onSelectionEnd:g,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:V,isSelecting:!!Z,selectionMode:f,selectionKeyPressed:O,paneClickDistance:a,selectionOnDrag:K,children:[e,R&&l.jsx(Og,{onSelectionContextMenu:b,noPanClassName:S,disableKeyboardA11y:M})]})})}Bi.displayName="FlowRenderer";const Hg=_.memo(Bi),Bg=e=>t=>e?ao(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 Vg(e){return J(_.useCallback(Bg(e),[e]),ne)}const Fg=e=>e.updateNodeInternals;function Wg(){const e=J(Fg),[t]=_.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const s=r.target.getAttribute("data-id");o.set(s,{id:s,nodeElement:r.target,force:!0})}),e(o)}));return _.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Yg({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=re(),s=_.useRef(null),i=_.useRef(null),a=_.useRef(e.sourcePosition),u=_.useRef(e.targetPosition),c=_.useRef(t),d=n&&!!e.internals.handleBounds;return _.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]),_.useEffect(()=>()=>{i.current&&(o?.unobserve(i.current),i.current=null)},[]),_.useEffect(()=>{if(s.current){const f=c.current!==t,h=a.current!==e.sourcePosition,g=u.current!==e.targetPosition;(f||h||g)&&(c.current=t,a.current=e.sourcePosition,u.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 Xg({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:u,nodesConnectable:c,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:g,disableKeyboardA11y:p,rfId:y,nodeTypes:w,nodeClickDistance:x,onError:E}){const{node:m,internals:v,isParent:C}=J(B=>{const U=B.nodeLookup.get(e),F=B.parentLookup.has(e);return{node:U,internals:U.internals,isParent:F}},ne);let N=m.type||"default",I=w?.[N]||Er[N];I===void 0&&(E?.("003",xe.error003(N)),N="default",I=w?.default||Er.default);const T=!!(m.draggable||a&&typeof m.draggable>"u"),P=!!(m.selectable||u&&typeof m.selectable>"u"),L=!!(m.connectable||c&&typeof m.connectable>"u"),D=!!(m.focusable||d&&typeof m.focusable>"u"),z=re(),H=ui(m),b=Yg({node:m,nodeType:N,hasDimensions:H,resizeObserver:f}),A=Oi({nodeRef:b,disabled:m.hidden||!T,noDragClassName:h,handleSelector:m.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:x}),S=Li();if(m.hidden)return null;const M=Ne(m),k=zg(m),j=P||T||t||n||o||r,R=n?B=>n(B,{...v.userNode}):void 0,$=o?B=>o(B,{...v.userNode}):void 0,O=r?B=>r(B,{...v.userNode}):void 0,W=s?B=>s(B,{...v.userNode}):void 0,V=i?B=>i(B,{...v.userNode}):void 0,X=B=>{const{selectNodesOnDrag:U,nodeDragThreshold:F}=z.getState();P&&(!U||!T||F>0)&&Xn({id:e,store:z,nodeRef:b}),t&&t(B,{...v.userNode})},K=B=>{if(!(hi(B.nativeEvent)||p)){if(ti.includes(B.key)&&P){const U=B.key==="Escape";Xn({id:e,store:z,unselect:U,nodeRef:b})}else if(T&&m.selected&&Object.prototype.hasOwnProperty.call(nn,B.key)){B.preventDefault();const{ariaLabelConfig:U}=z.getState();z.setState({ariaLiveMessage:U["node.a11yDescription.ariaLiveMessage"]({direction:B.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),S({direction:nn[B.key],factor:B.shiftKey?4:1})}}},Z=()=>{if(p||!b.current?.matches(":focus-visible"))return;const{transform:B,width:U,height:F,autoPanOnNodeFocus:G,setCenter:q}=z.getState();if(!G)return;ao(new Map([[e,m]]),{x:0,y:0,width:U,height:F},B,!0).length>0||q(m.position.x+M.width/2,m.position.y+M.height/2,{zoom:B[2]})};return l.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${N}`,{[g]:T},m.className,{selected:m.selected,selectable:P,parent:C,draggable:T,dragging:A}]),ref:b,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:j?"all":"none",visibility:H?"visible":"hidden",...m.style,...k},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:R,onMouseMove:$,onMouseLeave:O,onContextMenu:W,onClick:X,onDoubleClick:V,onKeyDown:D?K:void 0,tabIndex:D?0:void 0,onFocus:D?Z:void 0,role:m.ariaRole??(D?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${Pi}-${y}`,"aria-label":m.ariaLabel,...m.domAttributes,children:l.jsx(kg,{value:e,children:l.jsx(I,{id:e,data:m.data,type:N,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:m.selected??!1,selectable:P,draggable:T,deletable:m.deletable??!0,isConnectable:L,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:A,dragHandle:m.dragHandle,zIndex:v.z,parentId:m.parentId,...M})})})}var Zg=_.memo(Xg);const Ug=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Vi(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:s}=J(Ug,ne),i=Vg(e.onlyRenderVisibleElements),a=Wg();return l.jsx("div",{className:"react-flow__nodes",style:mn,children:i.map(u=>l.jsx(Zg,{id:u,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},u))})}Vi.displayName="NodeRenderer";const Gg=_.memo(Vi);function qg(e){return J(_.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const s=n.nodeLookup.get(r.source),i=n.nodeLookup.get(r.target);s&&i&&Gh({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),ne)}const Kg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return l.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Qg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return l.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Nr={[Qt.Arrow]:Kg,[Qt.ArrowClosed]:Qg};function Jg(e){const t=re();return _.useMemo(()=>Object.prototype.hasOwnProperty.call(Nr,e)?Nr[e]:(t.getState().onError?.("009",xe.error009(e)),null),[e])}const em=({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 u=Jg(t);return u?l.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:l.jsx(u,{color:n,strokeWidth:i})}):null},Fi=({defaultColor:e,rfId:t})=>{const n=J(s=>s.edges),o=J(s=>s.defaultEdgeOptions),r=_.useMemo(()=>op(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?l.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:l.jsx("defs",{children:r.map(s=>l.jsx(em,{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};Fi.displayName="MarkerDefinitions";var tm=_.memo(Fi);function Wi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:u,className:c,...d}){const[f,h]=_.useState({x:1,y:0,width:0,height:0}),g=ie(["react-flow__edge-textwrapper",c]),p=_.useRef(null);return _.useEffect(()=>{if(p.current){const y=p.current.getBBox();h({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?l.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:g,visibility:f.width?"visible":"hidden",...d,children:[r&&l.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}),l.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:p,style:o,children:n}),u]}):null}Wi.displayName="EdgeText";const nm=_.memo(Wi);function Qe({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:u,interactionWidth:c=20,...d}){return l.jsxs(l.Fragment,{children:[l.jsx("path",{...d,d:e,fill:"none",className:ie(["react-flow__edge-path",d.className])}),c?l.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,o&&pe(t)&&pe(n)?l.jsx(nm,{x:t,y:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:u}):null]})}function Cr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Y.Left||e===Y.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Yi({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:o,targetY:r,targetPosition:s=Y.Top}){const[i,a]=Cr({pos:n,x1:e,y1:t,x2:o,y2:r}),[u,c]=Cr({pos:s,x1:o,y1:r,x2:e,y2:t}),[d,f,h,g]=gi({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:u,targetControlY:c});return[`M${e},${t} C${i},${a} ${u},${c} ${o},${r}`,d,f,h,g]}function Xi(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i,targetPosition:a,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})=>{const[E,m,v]=Yi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a}),C=e.isInternal?void 0:t;return l.jsx(Qe,{id:C,path:E,labelX:m,labelY:v,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})})}const om=Xi({isInternal:!1}),Zi=Xi({isInternal:!0});om.displayName="SimpleBezierEdge";Zi.displayName="SimpleBezierEdgeInternal";function Ui(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:g=Y.Bottom,targetPosition:p=Y.Top,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:E})=>{const[m,v,C]=tn({sourceX:n,sourceY:o,sourcePosition:g,targetX:r,targetY:s,targetPosition:p,borderRadius:x?.borderRadius,offset:x?.offset,stepPosition:x?.stepPosition}),N=e.isInternal?void 0:t;return l.jsx(Qe,{id:N,path:m,labelX:v,labelY:C,label:i,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:y,markerStart:w,interactionWidth:E})})}const Gi=Ui({isInternal:!1}),qi=Ui({isInternal:!0});Gi.displayName="SmoothStepEdge";qi.displayName="SmoothStepEdgeInternal";function Ki(e){return _.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return l.jsx(Gi,{...n,id:o,pathOptions:_.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const rm=Ki({isInternal:!1}),Qi=Ki({isInternal:!0});rm.displayName="StepEdge";Qi.displayName="StepEdgeInternal";function Ji(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:y})=>{const[w,x,E]=yi({sourceX:n,sourceY:o,targetX:r,targetY:s}),m=e.isInternal?void 0:t;return l.jsx(Qe,{id:m,path:w,labelX:x,labelY:E,label:i,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:y})})}const sm=Ji({isInternal:!1}),ea=Ji({isInternal:!0});sm.displayName="StraightEdge";ea.displayName="StraightEdgeInternal";function ta(e){return _.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i=Y.Bottom,targetPosition:a=Y.Top,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:E})=>{const[m,v,C]=mi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a,curvature:x?.curvature}),N=e.isInternal?void 0:t;return l.jsx(Qe,{id:N,path:m,labelX:v,labelY:C,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:E})})}const im=ta({isInternal:!1}),na=ta({isInternal:!0});im.displayName="BezierEdge";na.displayName="BezierEdgeInternal";const Mr={default:na,straight:ea,step:Qi,smoothstep:qi,simplebezier:Zi},kr={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},am=(e,t,n)=>n===Y.Left?e-t:n===Y.Right?e+t:e,cm=(e,t,n)=>n===Y.Top?e-t:n===Y.Bottom?e+t:e,jr="react-flow__edgeupdater";function Ir({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:s,onMouseOut:i,type:a}){return l.jsx("circle",{onMouseDown:r,onMouseEnter:s,onMouseOut:i,className:ie([jr,`${jr}-${a}`]),cx:am(t,o,e),cy:cm(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function lm({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:s,targetY:i,sourcePosition:a,targetPosition:u,onReconnect:c,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:g}){const p=re(),y=(v,C)=>{if(v.button!==0)return;const{autoPanOnConnect:N,domNode:I,connectionMode:T,connectionRadius:P,lib:L,onConnectStart:D,cancelConnection:z,nodeLookup:H,rfId:b,panBy:A,updateConnection:S}=p.getState(),M=C.type==="target",k=($,O)=>{h(!1),f?.($,n,C.type,O)},j=$=>c?.(n,$),R=($,O)=>{h(!0),d?.(v,n,C.type),D?.($,O)};Wn.onPointerDown(v.nativeEvent,{autoPanOnConnect:N,connectionMode:T,connectionRadius:P,domNode:I,handleId:C.id,nodeId:C.nodeId,nodeLookup:H,isTarget:M,edgeUpdaterType:C.type,lib:L,flowId:b,cancelConnection:z,panBy:A,isValidConnection:(...$)=>p.getState().isValidConnection?.(...$)??!0,onConnect:j,onConnectStart:R,onConnectEnd:(...$)=>p.getState().onConnectEnd?.(...$),onReconnectEnd:k,updateConnection:S,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>y(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),x=v=>y(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),E=()=>g(!0),m=()=>g(!1);return l.jsxs(l.Fragment,{children:[(e===!0||e==="source")&&l.jsx(Ir,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:w,onMouseEnter:E,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&l.jsx(Ir,{position:u,centerX:s,centerY:i,radius:t,onMouseDown:x,onMouseEnter:E,onMouseOut:m,type:"target"})]})}function um({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:u,onMouseLeave:c,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,rfId:p,edgeTypes:y,noPanClassName:w,onError:x,disableKeyboardA11y:E}){let m=J(q=>q.edgeLookup.get(e));const v=J(q=>q.defaultEdgeOptions);m=v?{...v,...m}:m;let C=m.type||"default",N=y?.[C]||Mr[C];N===void 0&&(x?.("011",xe.error011(C)),C="default",N=y?.default||Mr.default);const I=!!(m.focusable||t&&typeof m.focusable>"u"),T=typeof f<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),P=!!(m.selectable||o&&typeof m.selectable>"u"),L=_.useRef(null),[D,z]=_.useState(!1),[H,b]=_.useState(!1),A=re(),{zIndex:S,sourceX:M,sourceY:k,targetX:j,targetY:R,sourcePosition:$,targetPosition:O}=J(_.useCallback(q=>{const Q=q.nodeLookup.get(m.source),ee=q.nodeLookup.get(m.target);if(!Q||!ee)return{zIndex:m.zIndex,...kr};const oe=np({id:e,sourceNode:Q,targetNode:ee,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:q.connectionMode,onError:x});return{zIndex:Uh({selected:m.selected,zIndex:m.zIndex,sourceNode:Q,targetNode:ee,elevateOnSelect:q.elevateEdgesOnSelect,zIndexMode:q.zIndexMode}),...oe||kr}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex]),ne),W=_.useMemo(()=>m.markerStart?`url('#${Vn(m.markerStart,p)}')`:void 0,[m.markerStart,p]),V=_.useMemo(()=>m.markerEnd?`url('#${Vn(m.markerEnd,p)}')`:void 0,[m.markerEnd,p]);if(m.hidden||M===null||k===null||j===null||R===null)return null;const X=q=>{const{addSelectedEdges:Q,unselectNodesAndEdges:ee,multiSelectionActive:oe}=A.getState();P&&(A.setState({nodesSelectionActive:!1}),m.selected&&oe?(ee({nodes:[],edges:[m]}),L.current?.blur()):Q([e])),r&&r(q,m)},K=s?q=>{s(q,{...m})}:void 0,Z=i?q=>{i(q,{...m})}:void 0,B=a?q=>{a(q,{...m})}:void 0,U=u?q=>{u(q,{...m})}:void 0,F=c?q=>{c(q,{...m})}:void 0,G=q=>{if(!E&&ti.includes(q.key)&&P){const{unselectNodesAndEdges:Q,addSelectedEdges:ee}=A.getState();q.key==="Escape"?(L.current?.blur(),Q({edges:[m]})):ee([e])}};return l.jsx("svg",{style:{zIndex:S},children:l.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${C}`,m.className,w,{selected:m.selected,animated:m.animated,inactive:!P&&!r,updating:D,selectable:P}]),onClick:X,onDoubleClick:K,onContextMenu:Z,onMouseEnter:B,onMouseMove:U,onMouseLeave:F,onKeyDown:I?G: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?`${Di}-${p}`:void 0,ref:L,...m.domAttributes,children:[!H&&l.jsx(N,{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:M,sourceY:k,targetX:j,targetY:R,sourcePosition:$,targetPosition:O,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:W,markerEnd:V,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),T&&l.jsx(lm,{edge:m,isReconnectable:T,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,sourceX:M,sourceY:k,targetX:j,targetY:R,sourcePosition:$,targetPosition:O,setUpdateHover:z,setReconnecting:b})]})})}var dm=_.memo(um);const fm=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function oa({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:u,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,disableKeyboardA11y:y}){const{edgesFocusable:w,edgesReconnectable:x,elementsSelectable:E,onError:m}=J(fm,ne),v=qg(t);return l.jsxs("div",{className:"react-flow__edges",children:[l.jsx(tm,{defaultColor:e,rfId:n}),v.map(C=>l.jsx(dm,{id:C,edgesFocusable:w,edgesReconnectable:x,elementsSelectable:E,noPanClassName:r,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:u,onMouseLeave:c,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,rfId:n,onError:m,edgeTypes:o,disableKeyboardA11y:y},C))]})}oa.displayName="EdgeRenderer";const hm=_.memo(oa),pm=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function gm({children:e}){const t=J(pm);return l.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function mm(e){const t=gn(),n=_.useRef(!1);_.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const xm=e=>e.panZoom?.syncViewport;function ym(e){const t=J(xm),n=re();return _.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function wm(e){return e.connection.inProgress?{...e.connection,to:It(e.connection.to,e.transform)}:{...e.connection}}function vm(e){return wm}function bm(e){const t=vm();return J(t,ne)}const _m=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Em({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:s,height:i,isValid:a,inProgress:u}=J(_m,ne);return!(s&&r&&u)?null:l.jsx("svg",{style:e,width:s,height:i,className:"react-flow__connectionline react-flow__container",children:l.jsx("g",{className:ie(["react-flow__connection",ri(a)]),children:l.jsx(ra,{style:t,type:n,CustomComponent:o,isValid:a})})})}const ra=({style:e,type:t=Ie.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:s,fromNode:i,fromHandle:a,fromPosition:u,to:c,toNode:d,toHandle:f,toPosition:h,pointer:g}=bm();if(!r)return;if(n)return l.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:u,toPosition:h,connectionStatus:ri(o),toNode:d,toHandle:f,pointer:g});let p="";const y={sourceX:s.x,sourceY:s.y,sourcePosition:u,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Ie.Bezier:[p]=mi(y);break;case Ie.SimpleBezier:[p]=Yi(y);break;case Ie.Step:[p]=tn({...y,borderRadius:0});break;case Ie.SmoothStep:[p]=tn(y);break;default:[p]=yi(y)}return l.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};ra.displayName="ConnectionLine";const Sm={};function Ar(e=Sm){_.useRef(e),re(),_.useEffect(()=>{},[e])}function Nm(){re(),_.useRef(!1),_.useEffect(()=>{},[])}function sa({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:u,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:g,connectionLineType:p,connectionLineStyle:y,connectionLineComponent:w,connectionLineContainerStyle:x,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,multiSelectionKeyCode:C,panActivationKeyCode:N,zoomActivationKeyCode:I,deleteKeyCode:T,onlyRenderVisibleElements:P,elementsSelectable:L,defaultViewport:D,translateExtent:z,minZoom:H,maxZoom:b,preventScrolling:A,defaultMarkerColor:S,zoomOnScroll:M,zoomOnPinch:k,panOnScroll:j,panOnScrollSpeed:R,panOnScrollMode:$,zoomOnDoubleClick:O,panOnDrag:W,onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:K,onPaneMouseLeave:Z,onPaneScroll:B,onPaneContextMenu:U,paneClickDistance:F,nodeClickDistance:G,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:te,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:we,noDragClassName:Ae,noWheelClassName:Je,noPanClassName:et,disableKeyboardA11y:tt,nodeExtent:xn,rfId:At,viewport:He,onViewportChange:nt}){return Ar(e),Ar(t),Nm(),mm(n),ym(He),l.jsx(Hg,{onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:K,onPaneMouseLeave:Z,onPaneContextMenu:U,onPaneScroll:B,paneClickDistance:F,deleteKeyCode:T,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:C,panActivationKeyCode:N,zoomActivationKeyCode:I,elementsSelectable:L,zoomOnScroll:M,zoomOnPinch:k,zoomOnDoubleClick:O,panOnScroll:j,panOnScrollSpeed:R,panOnScrollMode:$,panOnDrag:W,defaultViewport:D,translateExtent:z,minZoom:H,maxZoom:b,onSelectionContextMenu:f,preventScrolling:A,noDragClassName:Ae,noWheelClassName:Je,noPanClassName:et,disableKeyboardA11y:tt,onViewportChange:nt,isControlledViewport:!!He,children:l.jsxs(gm,{children:[l.jsx(hm,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:i,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:we,onlyRenderVisibleElements:P,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:te,defaultMarkerColor:S,noPanClassName:et,disableKeyboardA11y:tt,rfId:At}),l.jsx(Em,{style:y,type:p,component:w,containerStyle:x}),l.jsx("div",{className:"react-flow__edgelabel-renderer"}),l.jsx(Gg,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:u,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:G,onlyRenderVisibleElements:P,noPanClassName:et,noDragClassName:Ae,disableKeyboardA11y:tt,nodeExtent:xn,rfId:At}),l.jsx("div",{className:"react-flow__viewport-portal"})]})})}sa.displayName="GraphView";const Cm=_.memo(sa),Pr=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:u=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:f,zIndexMode:h="basic"}={})=>{const g=new Map,p=new Map,y=new Map,w=new Map,x=o??t??[],E=n??e??[],m=d??[0,0],v=f??wt;bi(y,w,x);const{nodesInitialized:C}=Fn(E,g,p,{nodeOrigin:m,nodeExtent:v,zIndexMode:h});let N=[0,0,1];if(i&&r&&s){const I=kt(g,{filter:D=>!!((D.width||D.initialWidth)&&(D.height||D.initialHeight))}),{x:T,y:P,zoom:L}=co(I,r,s,u,c,a?.padding??.1);N=[T,P,L]}return{rfId:"1",width:r??0,height:s??0,transform:N,nodes:E,nodesInitialized:C,nodeLookup:g,parentLookup:p,edges:x,edgeLookup:w,connectionLookup:y,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:u,maxZoom:c,translateExtent:wt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ze.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:m,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...oi},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Vh,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:ni,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Mm=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:u,maxZoom:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h})=>Wp((g,p)=>{async function y(){const{nodeLookup:w,panZoom:x,fitViewOptions:E,fitViewResolver:m,width:v,height:C,minZoom:N,maxZoom:I}=p();x&&(await Hh({nodes:w,width:v,height:C,panZoom:x,minZoom:N,maxZoom:I},E),m?.resolve(!0),g({fitViewResolver:null}))}return{...Pr({nodes:e,edges:t,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:u,maxZoom:c,nodeOrigin:d,nodeExtent:f,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:w=>{const{nodeLookup:x,parentLookup:E,nodeOrigin:m,elevateNodesOnSelect:v,fitViewQueued:C,zIndexMode:N,nodesSelectionActive:I}=p(),{nodesInitialized:T,hasSelectedNodes:P}=Fn(w,x,E,{nodeOrigin:m,nodeExtent:f,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:N}),L=I&&P;C&&T?(y(),g({nodes:w,nodesInitialized:T,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:L})):g({nodes:w,nodesInitialized:T,nodesSelectionActive:L})},setEdges:w=>{const{connectionLookup:x,edgeLookup:E}=p();bi(x,E,w),g({edges:w})},setDefaultNodesAndEdges:(w,x)=>{if(w){const{setNodes:E}=p();E(w),g({hasDefaultNodes:!0})}if(x){const{setEdges:E}=p();E(x),g({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:x,nodeLookup:E,parentLookup:m,domNode:v,nodeOrigin:C,nodeExtent:N,debug:I,fitViewQueued:T,zIndexMode:P}=p(),{changes:L,updatedInternals:D}=up(w,E,m,v,C,N,P);D&&(ip(E,m,{nodeOrigin:C,nodeExtent:N,zIndexMode:P}),T?(y(),g({fitViewQueued:!1,fitViewOptions:void 0})):g({}),L?.length>0&&(I&&console.log("React Flow: trigger node changes",L),x?.(L)))},updateNodePositions:(w,x=!1)=>{const E=[];let m=[];const{nodeLookup:v,triggerNodeChanges:C,connection:N,updateConnection:I,onNodesChangeMiddlewareMap:T}=p();for(const[P,L]of w){const D=v.get(P),z=!!(D?.expandParent&&D?.parentId&&L?.position),H={id:P,type:"position",position:z?{x:Math.max(0,L.position.x),y:Math.max(0,L.position.y)}:L.position,dragging:x};if(D&&N.inProgress&&N.fromNode.id===D.id){const b=Le(D,N.fromHandle,Y.Left,!0);I({...N,from:b})}z&&D.parentId&&E.push({id:P,parentId:D.parentId,rect:{...L.internals.positionAbsolute,width:L.measured.width??0,height:L.measured.height??0}}),m.push(H)}if(E.length>0){const{parentLookup:P,nodeOrigin:L}=p(),D=go(E,v,P,L);m.push(...D)}for(const P of T.values())m=P(m);C(m)},triggerNodeChanges:w=>{const{onNodesChange:x,setNodes:E,nodes:m,hasDefaultNodes:v,debug:C}=p();if(w?.length){if(v){const N=dg(w,m);E(N)}C&&console.log("React Flow: trigger node changes",w),x?.(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:x,setEdges:E,edges:m,hasDefaultEdges:v,debug:C}=p();if(w?.length){if(v){const N=fg(w,m);E(N)}C&&console.log("React Flow: trigger edge changes",w),x?.(w)}},addSelectedNodes:w=>{const{multiSelectionActive:x,edgeLookup:E,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:C}=p();if(x){const N=w.map(I=>De(I,!0));v(N);return}v(Fe(m,new Set([...w]),!0)),C(Fe(E))},addSelectedEdges:w=>{const{multiSelectionActive:x,edgeLookup:E,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:C}=p();if(x){const N=w.map(I=>De(I,!0));C(N);return}C(Fe(E,new Set([...w]))),v(Fe(m,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:x}={})=>{const{edges:E,nodes:m,nodeLookup:v,triggerNodeChanges:C,triggerEdgeChanges:N}=p(),I=w||m,T=x||E,P=[];for(const D of I){if(!D.selected)continue;const z=v.get(D.id);z&&(z.selected=!1),P.push(De(D.id,!1))}const L=[];for(const D of T)D.selected&&L.push(De(D.id,!1));C(P),N(L)},setMinZoom:w=>{const{panZoom:x,maxZoom:E}=p();x?.setScaleExtent([w,E]),g({minZoom:w})},setMaxZoom:w=>{const{panZoom:x,minZoom:E}=p();x?.setScaleExtent([E,w]),g({maxZoom:w})},setTranslateExtent:w=>{p().panZoom?.setTranslateExtent(w),g({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:x,triggerNodeChanges:E,triggerEdgeChanges:m,elementsSelectable:v}=p();if(!v)return;const C=x.reduce((I,T)=>T.selected?[...I,De(T.id,!1)]:I,[]),N=w.reduce((I,T)=>T.selected?[...I,De(T.id,!1)]:I,[]);E(C),m(N)},setNodeExtent:w=>{const{nodes:x,nodeLookup:E,parentLookup:m,nodeOrigin:v,elevateNodesOnSelect:C,nodeExtent:N,zIndexMode:I}=p();w[0][0]===N[0][0]&&w[0][1]===N[0][1]&&w[1][0]===N[1][0]&&w[1][1]===N[1][1]||(Fn(x,E,m,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:C,checkEquality:!1,zIndexMode:I}),g({nodeExtent:w}))},panBy:w=>{const{transform:x,width:E,height:m,panZoom:v,translateExtent:C}=p();return dp({delta:w,panZoom:v,transform:x,translateExtent:C,width:E,height:m})},setCenter:async(w,x,E)=>{const{width:m,height:v,maxZoom:C,panZoom:N}=p();if(!N)return Promise.resolve(!1);const I=typeof E?.zoom<"u"?E.zoom:C;return await N.setViewport({x:m/2-w*I,y:v/2-x*I,zoom:I},{duration:E?.duration,ease:E?.ease,interpolate:E?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{g({connection:{...oi}})},updateConnection:w=>{g({connection:w})},reset:()=>g({...Pr()})}},Object.is);function km({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:u,fitView:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h,children:g}){const[p]=_.useState(()=>Mm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:u,nodeOrigin:d,nodeExtent:f,zIndexMode:h}));return l.jsx(Yp,{value:p,children:l.jsx(gg,{children:g})})}function jm({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:s,height:i,fitView:a,fitViewOptions:u,minZoom:c,maxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g}){return _.useContext(hn)?l.jsx(l.Fragment,{children:e}):l.jsx(km,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:u,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g,children:e})}const Im={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Am({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:u,onInit:c,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:N,onNodeDragStart:I,onNodeDrag:T,onNodeDragStop:P,onNodesDelete:L,onEdgesDelete:D,onDelete:z,onSelectionChange:H,onSelectionDragStart:b,onSelectionDrag:A,onSelectionDragStop:S,onSelectionContextMenu:M,onSelectionStart:k,onSelectionEnd:j,onBeforeDelete:R,connectionMode:$,connectionLineType:O=Ie.Bezier,connectionLineStyle:W,connectionLineComponent:V,connectionLineContainerStyle:X,deleteKeyCode:K="Backspace",selectionKeyCode:Z="Shift",selectionOnDrag:B=!1,selectionMode:U=vt.Full,panActivationKeyCode:F="Space",multiSelectionKeyCode:G=_t()?"Meta":"Control",zoomActivationKeyCode:q=_t()?"Meta":"Control",snapToGrid:Q,snapGrid:ee,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:te,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:we,nodesFocusable:Ae,nodeOrigin:Je=Ti,edgesFocusable:et,edgesReconnectable:tt,elementsSelectable:xn=!0,defaultViewport:At=rg,minZoom:He=.5,maxZoom:nt=2,translateExtent:wo=wt,preventScrolling:ya=!0,nodeExtent:yn,defaultMarkerColor:wa="#b1b1b7",zoomOnScroll:va=!0,zoomOnPinch:ba=!0,panOnScroll:_a=!1,panOnScrollSpeed:Ea=.5,panOnScrollMode:Sa=ze.Free,zoomOnDoubleClick:Na=!0,panOnDrag:Ca=!0,onPaneClick:Ma,onPaneMouseEnter:ka,onPaneMouseMove:ja,onPaneMouseLeave:Ia,onPaneScroll:Aa,onPaneContextMenu:Pa,paneClickDistance:Da=1,nodeClickDistance:Ta=0,children:Ra,onReconnect:za,onReconnectStart:$a,onReconnectEnd:Oa,onEdgeContextMenu:La,onEdgeDoubleClick:Ha,onEdgeMouseEnter:Ba,onEdgeMouseMove:Va,onEdgeMouseLeave:Fa,reconnectRadius:Wa=10,onNodesChange:Ya,onEdgesChange:Xa,noDragClassName:Za="nodrag",noWheelClassName:Ua="nowheel",noPanClassName:vo="nopan",fitView:bo,fitViewOptions:_o,connectOnClick:Ga,attributionPosition:qa,proOptions:Ka,defaultEdgeOptions:Qa,elevateNodesOnSelect:Ja=!0,elevateEdgesOnSelect:ec=!1,disableKeyboardA11y:Eo=!1,autoPanOnConnect:tc,autoPanOnNodeDrag:nc,autoPanSpeed:oc,connectionRadius:rc,isValidConnection:sc,onError:ic,style:ac,id:So,nodeDragThreshold:cc,connectionDragThreshold:lc,viewport:uc,onViewportChange:dc,width:fc,height:hc,colorMode:pc="light",debug:gc,onScroll:No,ariaLabelConfig:mc,zIndexMode:Co="basic",...xc},yc){const wn=So||"1",wc=cg(pc),vc=_.useCallback(Mo=>{Mo.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),No?.(Mo)},[No]);return l.jsx("div",{"data-testid":"rf__wrapper",...xc,onScroll:vc,style:{...ac,...Im},ref:yc,className:ie(["react-flow",r,wc]),id:So,role:"application",children:l.jsxs(jm,{nodes:e,edges:t,width:fc,height:hc,fitView:bo,fitViewOptions:_o,minZoom:He,maxZoom:nt,nodeOrigin:Je,nodeExtent:yn,zIndexMode:Co,children:[l.jsx(ag,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:we,nodesFocusable:Ae,edgesFocusable:et,edgesReconnectable:tt,elementsSelectable:xn,elevateNodesOnSelect:Ja,elevateEdgesOnSelect:ec,minZoom:He,maxZoom:nt,nodeExtent:yn,onNodesChange:Ya,onEdgesChange:Xa,snapToGrid:Q,snapGrid:ee,connectionMode:$,translateExtent:wo,connectOnClick:Ga,defaultEdgeOptions:Qa,fitView:bo,fitViewOptions:_o,onNodesDelete:L,onEdgesDelete:D,onDelete:z,onNodeDragStart:I,onNodeDrag:T,onNodeDragStop:P,onSelectionDrag:A,onSelectionDragStart:b,onSelectionDragStop:S,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:vo,nodeOrigin:Je,rfId:wn,autoPanOnConnect:tc,autoPanOnNodeDrag:nc,autoPanSpeed:oc,onError:ic,connectionRadius:rc,isValidConnection:sc,selectNodesOnDrag:te,nodeDragThreshold:cc,connectionDragThreshold:lc,onBeforeDelete:R,debug:gc,ariaLabelConfig:mc,zIndexMode:Co}),l.jsx(Cm,{onInit:c,onNodeClick:a,onEdgeClick:u,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:N,nodeTypes:s,edgeTypes:i,connectionLineType:O,connectionLineStyle:W,connectionLineComponent:V,connectionLineContainerStyle:X,selectionKeyCode:Z,selectionOnDrag:B,selectionMode:U,deleteKeyCode:K,multiSelectionKeyCode:G,panActivationKeyCode:F,zoomActivationKeyCode:q,onlyRenderVisibleElements:oe,defaultViewport:At,translateExtent:wo,minZoom:He,maxZoom:nt,preventScrolling:ya,zoomOnScroll:va,zoomOnPinch:ba,zoomOnDoubleClick:Na,panOnScroll:_a,panOnScrollSpeed:Ea,panOnScrollMode:Sa,panOnDrag:Ca,onPaneClick:Ma,onPaneMouseEnter:ka,onPaneMouseMove:ja,onPaneMouseLeave:Ia,onPaneScroll:Aa,onPaneContextMenu:Pa,paneClickDistance:Da,nodeClickDistance:Ta,onSelectionContextMenu:M,onSelectionStart:k,onSelectionEnd:j,onReconnect:za,onReconnectStart:$a,onReconnectEnd:Oa,onEdgeContextMenu:La,onEdgeDoubleClick:Ha,onEdgeMouseEnter:Ba,onEdgeMouseMove:Va,onEdgeMouseLeave:Fa,reconnectRadius:Wa,defaultMarkerColor:wa,noDragClassName:Za,noWheelClassName:Ua,noPanClassName:vo,rfId:wn,disableKeyboardA11y:Eo,nodeExtent:yn,viewport:uc,onViewportChange:dc}),l.jsx(og,{onSelectionChange:H}),Ra,l.jsx(Qp,{proOptions:Ka,position:qa}),l.jsx(Kp,{rfId:wn,disableKeyboardA11y:Eo})]})})}var Pm=zi(Am);const Dm=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function Tm({children:e}){const t=J(Dm);return t?Wc.createPortal(e,t):null}const Rm=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function zm(){return J(Rm,ne)}function $m({dimensions:e,lineWidth:t,variant:n,className:o}){return l.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function Om({radius:e,className:t}){return l.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var Ee;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ee||(Ee={}));const Lm={[Ee.Dots]:1,[Ee.Lines]:1,[Ee.Cross]:6},Hm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ia({id:e,variant:t=Ee.Dots,gap:n=20,size:o,lineWidth:r=1,offset:s=0,color:i,bgColor:a,style:u,className:c,patternClassName:d}){const f=_.useRef(null),{transform:h,patternId:g}=J(Hm,ne),p=o||Lm[t],y=t===Ee.Dots,w=t===Ee.Cross,x=Array.isArray(n)?n:[n,n],E=[x[0]*h[2]||1,x[1]*h[2]||1],m=p*h[2],v=Array.isArray(s)?s:[s,s],C=w?[m,m]:E,N=[v[0]*h[2]||1+C[0]/2,v[1]*h[2]||1+C[1]/2],I=`${g}${e||""}`;return l.jsxs("svg",{className:ie(["react-flow__background",c]),style:{...u,...mn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:f,"data-testid":"rf__background",children:[l.jsx("pattern",{id:I,x:h[0]%E[0],y:h[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:y?l.jsx(Om,{radius:m/2,className:d}):l.jsx($m,{dimensions:C,lineWidth:r,variant:t,className:d})}),l.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${I})`})]})}ia.displayName="Background";const Bm=_.memo(ia);function Vm(){return l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:l.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Fm(){return l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:l.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Wm(){return l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:l.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 Ym(){return l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:l.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 Xm(){return l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:l.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 Lt({children:e,className:t,...n}){return l.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const Zm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function aa({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:u,className:c,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":g}){const p=re(),{isInteractive:y,minZoomReached:w,maxZoomReached:x,ariaLabelConfig:E}=J(Zm,ne),{zoomIn:m,zoomOut:v,fitView:C}=gn(),N=()=>{m(),s?.()},I=()=>{v(),i?.()},T=()=>{C(r),a?.()},P=()=>{p.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),u?.(!y)},L=h==="horizontal"?"horizontal":"vertical";return l.jsxs(pn,{className:ie(["react-flow__controls",L,c]),position:f,style:e,"data-testid":"rf__controls","aria-label":g??E["controls.ariaLabel"],children:[t&&l.jsxs(l.Fragment,{children:[l.jsx(Lt,{onClick:N,className:"react-flow__controls-zoomin",title:E["controls.zoomIn.ariaLabel"],"aria-label":E["controls.zoomIn.ariaLabel"],disabled:x,children:l.jsx(Vm,{})}),l.jsx(Lt,{onClick:I,className:"react-flow__controls-zoomout",title:E["controls.zoomOut.ariaLabel"],"aria-label":E["controls.zoomOut.ariaLabel"],disabled:w,children:l.jsx(Fm,{})})]}),n&&l.jsx(Lt,{className:"react-flow__controls-fitview",onClick:T,title:E["controls.fitView.ariaLabel"],"aria-label":E["controls.fitView.ariaLabel"],children:l.jsx(Wm,{})}),o&&l.jsx(Lt,{className:"react-flow__controls-interactive",onClick:P,title:E["controls.interactive.ariaLabel"],"aria-label":E["controls.interactive.ariaLabel"],children:y?l.jsx(Xm,{}):l.jsx(Ym,{})}),d]})}aa.displayName="Controls";const Um=_.memo(aa);function Gm({id:e,x:t,y:n,width:o,height:r,style:s,color:i,strokeColor:a,strokeWidth:u,className:c,borderRadius:d,shapeRendering:f,selected:h,onClick:g}){const{background:p,backgroundColor:y}=s||{},w=i||p||y;return l.jsx("rect",{className:ie(["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:u},shapeRendering:f,onClick:g?x=>g(x,e):void 0})}const qm=_.memo(Gm),Km=e=>e.nodes.map(t=>t.id),In=e=>e instanceof Function?e:()=>e;function Qm({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:s=qm,onClick:i}){const a=J(Km,ne),u=In(t),c=In(e),d=In(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return l.jsx(l.Fragment,{children:a.map(h=>l.jsx(ex,{id:h,nodeColorFunc:u,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:s,onClick:i,shapeRendering:f},h))})}function Jm({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:u}){const{node:c,x:d,y:f,width:h,height:g}=J(p=>{const y=p.nodeLookup.get(e);if(!y)return{node:void 0,x:0,y:0,width:0,height:0};const w=y.internals.userNode,{x,y:E}=y.internals.positionAbsolute,{width:m,height:v}=Ne(w);return{node:w,x,y:E,width:m,height:v}},ne);return!c||c.hidden||!ui(c)?null:l.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:u,id:c.id})}const ex=_.memo(Jm);var tx=_.memo(Qm);const nx=200,ox=150,rx=e=>!e.hidden,sx=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?li(kt(e.nodeLookup,{filter:rx}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ix="react-flow__minimap-desc";function ca({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:u,maskColor:c,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:g,onNodeClick:p,pannable:y=!1,zoomable:w=!1,ariaLabel:x,inversePan:E,zoomStep:m=1,offsetScale:v=5}){const C=re(),N=_.useRef(null),{boundingRect:I,viewBB:T,rfId:P,panZoom:L,translateExtent:D,flowWidth:z,flowHeight:H,ariaLabelConfig:b}=J(sx,ne),A=e?.width??nx,S=e?.height??ox,M=I.width/A,k=I.height/S,j=Math.max(M,k),R=j*A,$=j*S,O=v*j,W=I.x-(R-I.width)/2-O,V=I.y-($-I.height)/2-O,X=R+O*2,K=$+O*2,Z=`${ix}-${P}`,B=_.useRef(0),U=_.useRef();B.current=j,_.useEffect(()=>{if(N.current&&L)return U.current=vp({domNode:N.current,panZoom:L,getTransform:()=>C.getState().transform,getViewScale:()=>B.current}),()=>{U.current?.destroy()}},[L]),_.useEffect(()=>{U.current?.update({translateExtent:D,width:z,height:H,inversePan:E,pannable:y,zoomStep:m,zoomable:w})},[y,w,E,m,D,z,H]);const F=g?Q=>{const[ee,oe]=U.current?.pointer(Q)||[0,0];g(Q,{x:ee,y:oe})}:void 0,G=p?_.useCallback((Q,ee)=>{const oe=C.getState().nodeLookup.get(ee).internals.userNode;p(Q,oe)},[]):void 0,q=x??b["minimap.ariaLabel"];return l.jsx(pn,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof u=="string"?u: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*j:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:l.jsxs("svg",{width:A,height:S,viewBox:`${W} ${V} ${X} ${K}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Z,ref:N,onClick:F,children:[q&&l.jsx("title",{id:Z,children:q}),l.jsx(tx,{onClick:G,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:r,nodeStrokeWidth:i,nodeComponent:a}),l.jsx("path",{className:"react-flow__minimap-mask",d:`M${W-O},${V-O}h${X+O*2}v${K+O*2}h${-X-O*2}z
|
|
8
|
+
M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ca.displayName="MiniMap";_.memo(ca);const ax=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cx={[Ke.Line]:"right",[Ke.Handle]:"bottom-right"};function lx({nodeId:e,position:t,variant:n=Ke.Handle,className:o,style:r=void 0,children:s,color:i,minWidth:a=10,minHeight:u=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:h,autoScale:g=!0,shouldResize:p,onResizeStart:y,onResize:w,onResizeEnd:x}){const E=Hi(),m=typeof e=="string"?e:E,v=re(),C=_.useRef(null),N=n===Ke.Handle,I=J(_.useCallback(ax(N&&g),[N,g]),ne),T=_.useRef(null),P=t??cx[n];_.useEffect(()=>{if(!(!C.current||!m))return T.current||(T.current=Tp({domNode:C.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:D,transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:A,domNode:S}=v.getState();return{nodeLookup:D,transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:A,paneDomNode:S}},onChange:(D,z)=>{const{triggerNodeChanges:H,nodeLookup:b,parentLookup:A,nodeOrigin:S}=v.getState(),M=[],k={x:D.x,y:D.y},j=b.get(m);if(j&&j.expandParent&&j.parentId){const R=j.origin??S,$=D.width??j.measured.width??0,O=D.height??j.measured.height??0,W={id:j.id,parentId:j.parentId,rect:{width:$,height:O,...di({x:D.x??j.position.x,y:D.y??j.position.y},{width:$,height:O},j.parentId,b,R)}},V=go([W],b,A,S);M.push(...V),k.x=D.x?Math.max(R[0]*$,D.x):void 0,k.y=D.y?Math.max(R[1]*O,D.y):void 0}if(k.x!==void 0&&k.y!==void 0){const R={id:m,type:"position",position:{...k}};M.push(R)}if(D.width!==void 0&&D.height!==void 0){const $={id:m,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};M.push($)}for(const R of z){const $={...R,type:"position"};M.push($)}H(M)},onEnd:({width:D,height:z})=>{const H={id:m,type:"dimensions",resizing:!1,dimensions:{width:D,height:z}};v.getState().triggerNodeChanges([H])}})),T.current.update({controlPosition:P,boundaries:{minWidth:a,minHeight:u,maxWidth:c,maxHeight:d},keepAspectRatio:f,resizeDirection:h,onResizeStart:y,onResize:w,onResizeEnd:x,shouldResize:p}),()=>{T.current?.destroy()}},[P,a,u,c,d,f,y,w,x,p]);const L=P.split("-");return l.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...L,n,o]),ref:C,style:{...r,scale:I,...i&&{[N?"backgroundColor":"borderColor"]:i}},children:s})}_.memo(lx);const ux="border-dashed border-border-default bg-surface-page text-text-secondary shadow-sm hover:border-border-strong",Dr="var(--xy-edge-stroke)",dx=({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:s,targetPosition:i,data:a})=>{const[u,c]=_.useState(!1),[d,f]=_.useState(!1),[h,g]=_.useState(!1),p=a,[y,w,x]=tn({sourceX:t,sourceY:n,sourcePosition:s,targetX:o,targetY:r,targetPosition:i});if(!p)return l.jsx(Qe,{id:e,path:y,style:{stroke:Dr}});const E=N=>{c(!1),p.onPick(N,{sourceId:p.sourceId,targetId:p.targetId})},m=u||d||h,v=l.jsx("button",{"aria-label":"Insert step here",className:se("flex size-8 items-center justify-center rounded-full border transition-opacity focus-visible:opacity-100 focus-visible:outline-none",ux,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:l.jsx(on,{className:"size-5",strokeWidth:1.5})});let C;return p.disabled?C=p.disabledReason?l.jsx(Yc,{delayDuration:150,children:l.jsxs(Xc,{children:[l.jsx(Zc,{asChild:!0,children:l.jsx("span",{tabIndex:0,children:v})}),l.jsx(Uc,{children:p.disabledReason})]})}):v:C=l.jsxs(Vr,{open:u,onOpenChange:c,children:[l.jsx(Fr,{asChild:!0,children:v}),l.jsx(Wr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:l.jsx(Is,{onPick:E})})]}),l.jsxs("g",{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[l.jsx(Qe,{id:e,interactionWidth:30,path:y,style:{stroke:Dr}}),l.jsx(Tm,{children:l.jsx("div",{className:"pointer-events-auto absolute",style:{transform:`translate(-50%, -50%) translate(${w}px, ${x}px)`},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:l.jsx("div",{className:"flex h-10 w-16 items-center justify-center",children:C})})})]})},fx=()=>{const{data:e}=Un(),{data:t}=Gc(),n=e?.settings||[],o=t?.site?.url||"",[r="all",s=!1,i=!1]=Gn(n,["members_signup_access","donations_enabled","recommendations_enabled"]);return xl({siteUrl:o,membersSignupAccess:typeof r=="string"?r:"all",donationsEnabled:!!s,recommendationsEnabled:!!i})},hx={useFileUpload:bl,fileTypes:vl},px=he.lazy(()=>Kc(()=>import("./koenig-lexical-REiYtzGD.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.EmailEditor})));class gx extends he.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?l.jsx("div",{className:"p-6 text-sm text-destructive",children:"Something went wrong loading the editor."}):this.props.children}}const mx=se("text-[1.6rem] leading-[1.6] tracking-[-0.01em] pb-10","dark:text-white dark:selection:bg-[rgba(88,101,116,0.99)]","[&_.koenig-lexical-editor-input-placeholder]:font-sans! [&_.koenig-lexical-editor-input-placeholder]:text-[1.6rem] [&_.koenig-lexical-editor-input-placeholder]:tracking-tight","[&_:is(h2,h3)]:dark:text-white","[&_.koenig-lexical_input]:text-[1.4rem]","[&_[data-kg-plus-button]]:top-[-4px]","[&_[data-kg-card-selected]]:isolate","[&_:is(p,blockquote,aside,ul,ol)]:tracking-tight","[&_figcaption_:is(p,blockquote,aside,ul,ol)]:text-[1.4rem] [&_figcaption_:is(p,blockquote,aside,ul,ol)]:tracking-[.025em]","[&_figcaption_p]:mb-0","[&_:is(h1)]:text-[36px] [&_:is(h2)]:text-[32px] [&_:is(h3)]:text-[26px] [&_:is(h4)]:text-[21px] [&_:is(h5)]:text-[19px] [&_:is(h6)]:text-[19px] [&_:is(h1,h2,h3,h4,h5,h6)]:mb-[0.5em]","[&_:is(hr)]:pt-0","[&_p]:mb-4 [&_strong]:font-semibold","[&_[data-kg-settings-panel]_p]:!mb-0","[&_.not-kg-prose>div]:font-sans! [&_.not-kg-prose>div]:tracking-tight! [&_.not-kg-prose>div]:text-[1.6rem]! [&_.not-kg-prose>div]:leading-[1.6]!","[&_.kg-inherit-styles_p]:mb-0!","[&_.kg-inherit-styles]:pt-[3px]!","[&_.koenig-lexical-cta-label_p]:!text-[12.5px]"),xx=({value:e,placeholder:t,className:n,onChange:o})=>{const r=_.useRef(null),s=_.useRef(e),{unsplashConfig:i}=qc(),a=yl(),{data:u}=Un(),{data:c}=Yr(),d=u?.settings||[],f=c?.config,{fetchAutocompleteLinks:h,searchLinks:g}=fx(),p=wl(),y=f?.tenor?.googleApiKey?f.tenor:null,[w]=Gn(d,["transistor"]),x=_.useMemo(()=>({unsplash:i,pinturaConfig:a,tenor:y,fetchEmbed:p,fetchAutocompleteLinks:h,searchLinks:g,feature:{transistor:w},visibilitySettings:"none"}),[i,a,y,p,h,g,w]),E=_.useCallback(N=>{r.current=N},[]),m=_.useCallback(N=>{o&&N&&typeof N=="object"&&o(JSON.stringify(N))},[o]),v=_.useCallback(N=>{(N.metaKey||N.ctrlKey)&&N.key==="k"&&N.stopPropagation()},[]),C=N=>{r.current&&_l(r.current,N)};return l.jsx("div",{className:"h-full",onKeyDown:v,onMouseDown:C,children:l.jsx(gx,{children:l.jsx(_.Suspense,{fallback:l.jsx(Te,{size:"lg"}),children:l.jsx("div",{className:se("koenig-react-editor w-full",mx,n),children:l.jsx(px,{cardConfig:x,className:"koenig-lexical koenig-lexical-editor-input",darkMode:!1,fileUploader:hx,initialEditorState:s.current,placeholderText:t,registerAPI:E,onChange:m})})})})})},yx=he.memo(xx),wx=({previewState:e})=>{const[t,n]=_.useState(null),[o,r]=_.useState(!1),s=_.useRef(!1),i=_.useRef(null),a=_.useRef(null),u=_.useRef(null),c=_.useRef(null);function d(){a.current?.disconnect(),a.current=null,u.current!==null&&(window.cancelAnimationFrame(u.current),u.current=null),c.current!==null&&(window.cancelAnimationFrame(c.current),c.current=null)}const f=e.status==="success"?e.html:"";_.useEffect(()=>(d(),s.current=!1,r(!1),n(null),()=>{d()}),[f,e.status]);function h(){const w=i.current,x=w?.contentDocument;if(!w||!x)return;x.documentElement.style.overflowY="hidden",x.body.style.overflowY="hidden";const E=Math.max(x.documentElement?.scrollHeight||0,x.body?.scrollHeight||0,x.documentElement?.offsetHeight||0,x.body?.offsetHeight||0);E>0&&(n(m=>m===E?m:E),!s.current&&c.current===null&&(c.current=window.requestAnimationFrame(()=>{c.current=window.requestAnimationFrame(()=>{c.current=null,s.current=!0,r(!0)})})))}function g(){u.current!==null&&window.cancelAnimationFrame(u.current),u.current=window.requestAnimationFrame(()=>{u.current=null,h()})}function p(){const w=i.current,x=w?.contentDocument;if(!(!w||!x)&&(d(),g(),typeof ResizeObserver<"u")){const E=new ResizeObserver(()=>{g()});E.observe(x.documentElement),E.observe(x.body),a.current=E}}const y=e.status==="loading"||e.status==="success"&&!o;return l.jsxs("div",{className:"relative w-full","data-testid":"email-preview",children:[y&&l.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:l.jsx(Te,{size:"md"})}),e.status==="success"&&l.jsx("div",{"aria-hidden":!o,className:se("w-full",!o&&"pointer-events-none absolute left-0 top-0 opacity-0"),children:l.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")&&l.jsx("div",{className:"flex h-full items-center justify-center px-4","data-testid":"email-preview-error",children:l.jsx("span",{className:"text-sm text-destructive",children:e.message})})]})},vx=({automatedEmailId:e,subject:t,lexical:n,validateForm:o,onClose:r})=>{const{data:s}=Qc(),{mutateAsync:i}=El(),[a,u]=_.useState(s?.email||""),[c,d]=_.useState(""),[f,h]=_.useState("idle"),g=_.useRef(null);_.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]),_.useEffect(()=>{s?.email&&u(s.email)},[s?.email]),_.useEffect(()=>{const y=w=>{w.key==="Escape"&&(w.stopPropagation(),r())};return document.addEventListener("keydown",y,!0),()=>document.removeEventListener("keydown",y,!0)},[r]);const p=async()=>{if(d(""),!Sl.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(y){h("idle");let w;y instanceof Xr&&y.data&&y.data.errors[0]?w=y.data.errors[0].context||y.data.errors[0].message:y instanceof Error&&(w=y.message),d(w||"Failed to send test email")}};return l.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:[l.jsxs("div",{className:"mb-3",children:[l.jsx("label",{className:"mb-2 block text-sm font-semibold",htmlFor:"test-email-input",children:"Send test email"}),l.jsx(qn,{id:"test-email-input",placeholder:"you@yoursite.com",value:a,onChange:y=>{u(y.target.value)}})]}),l.jsx(ae,{className:"w-full",disabled:f==="sending",onClick:p,children:f==="sent"?"Sent":f==="sending"?"Sending...":"Send"}),c&&l.jsx("span",{className:"mt-2 block text-xs text-destructive",children:c})]})},xo=(e,t,n)=>Kn(t)&&!Zr(t)&&n?n:e.sender_email||n||"",bx=(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,_x=(e,t,n,o)=>{const r=bx(e,t,n,o);return r||(e.sender_reply_to==="newsletter"?xo(e,t,o)||n||o||"":n||o||"")},Zn={free:"member-welcome-email-free",paid:"member-welcome-email-paid"},je=e=>e?.trim()||"",An=(...e)=>e.map(je).find(Boolean)||"",Ex=({automatedEmails:e=[],config:t,defaultEmailAddress:n,newsletter:o,siteTitle:r,supportEmailAddress:s})=>{const i=e.find(I=>I.slug===Zn.free),a=e.find(I=>I.slug===Zn.paid),u=An(i?.sender_name,a?.sender_name),c=An(i?.sender_email,a?.sender_email),d=An(i?.sender_reply_to,a?.sender_reply_to),f=je(o?.sender_name),h=o?je(xo(o,t,n||void 0)):"",g=o?je(_x(o,t,s||void 0,n||void 0)):"",p=f||je(r)||"Your site name",y=h||je(n),w=g||je(s)||je(n),x=u||p,E=c||y||"",m=d||w||"",v=m!==""&&m!==E,C=Kn(t),N=Zr(t);return{hasDistinctReplyTo:v,replyToEmailInput:d,replyToEmailPlaceholder:w,resolvedReplyToEmail:m,resolvedSenderEmail:E,resolvedSenderName:x,senderEmailDomain:N?Jc(t):null,senderEmailInput:c,senderEmailPlaceholder:y,senderNameInput:u,senderNamePlaceholder:p,showSenderEmailInput:!C||N}},Sx=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}},la=e=>{const t={};return e.subject?.trim()||(t.subject="A subject is required"),Sx(e.lexical)&&(t.lexical="Email content is required"),t},Nx=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}`},Cx=e=>{const t="Failed to render preview";return e instanceof Xr&&e.data?.errors?.[0]?e.data.errors[0].context||e.data.errors[0].message||t:e instanceof Error&&e.message?e.message:t},Mx=({automatedEmailId:e,previewWelcomeEmail:t,setErrors:n})=>{const[o,r]=_.useState({status:"idle"}),s=_.useRef(0),i=()=>{s.current+=1,r({status:"idle"}),n({})},a=async c=>{const d=s.current+1;s.current=d;const f=la(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.automated_emails?.[0];if(!g?.html||!g?.plaintext||!g?.subject)throw new Error("Preview response was incomplete");r({status:"success",preview:{...g,html:Nx(g.html)}})}catch(h){if(s.current!==d)return;r({status:"error",message:Cx(h)})}};let u={status:"loading"};return o.status==="success"?u={status:"success",html:o.preview.html}:(o.status==="error"||o.status==="invalid")&&(u={status:o.status,message:o.message}),{previewFrameState:u,previewState:o,enterPreview:a,exitPreview:i}},kx=(e=[])=>{const{data:t}=Un(),{data:n}=Yr(),o=t?.settings||[],r=_.useMemo(()=>n?.config||{},[n]),[s,i,a]=Gn(o,["title","default_email_address","support_email_address"]),{data:u}=Il({searchParams:{filter:"status:active",limit:"1"}}),c=u?.newsletters?.[0];return _.useMemo(()=>Ex({automatedEmails:e,config:r,defaultEmailAddress:i,newsletter:c,siteTitle:s,supportEmailAddress:a}),[e,r,i,c,s,a])},ua=he.forwardRef(({title:e,centeredHeaderContent:t,headerActions:n,children:o,className:r,isEditMode:s=!1},i)=>l.jsxs("div",{ref:i,className:se("flex h-full w-full flex-col gap-0 overflow-hidden p-0",s?"bg-white":"bg-gray-100","dark:bg-gray-975",r),children:[l.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:[l.jsx("h3",{className:"justify-self-start text-xl font-semibold",children:e}),l.jsx("div",{className:"justify-self-center",children:t}),l.jsx("div",{className:"flex items-center gap-2 justify-self-end",children:n})]}),l.jsx("div",{className:"flex min-h-0 grow flex-col overflow-y-auto [scrollbar-gutter:stable]",children:o})]}));ua.displayName="EmailPreviewModalContent";const jx=({children:e,className:t})=>l.jsx("div",{className:se("relative z-20 isolate mx-auto w-full max-w-[780px] rounded-t-lg border border-b-0 border-gray-200 bg-white px-6 py-4 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:bg-grey-975",t),children:e}),Ix=({children:e,className:t})=>l.jsx("div",{className:se("flex mx-auto w-full rounded-b-lg transition-[max-width,height,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:shadow-none grow max-w-[780px]",t),children:e}),Ax=({initialMode:e="edit",initialSubject:t,initialLexical:n,onClose:o,onSave:r})=>{const{mutateAsync:s}=Nl(),{data:i}=Cl(),[a,u]=_.useState(!1),[c,d]=_.useState(e),[f,h]=_.useState(null),[g,p]=_.useState(!1),y=_.useRef(!1),w=_.useRef(null),x=_.useRef(n||""),E=_.useRef(!1),m=el(),v=i?.automated_emails||[],{resolvedSenderName:C,resolvedSenderEmail:N,resolvedReplyToEmail:I,hasDistinctReplyTo:T}=kx(v),P=(v.find(F=>F.slug===Zn.free)||v[0])?.id||"",{formState:L,saveState:D,updateForm:z,setFormState:H,setErrors:b,handleSave:A,okProps:S,errors:M,clearError:k}=Ml({initialState:{subject:t||"",lexical:n||""},savingDelay:500,onSave:async F=>{r({subject:F.subject,lexical:F.lexical})},onSaveError:m}),j=_.useCallback(()=>{const F=la(L);return b(F),Object.values(F).every(G=>!G)},[L,b]),R=S.label||"Save",{previewFrameState:$,enterPreview:O,exitPreview:W}=Mx({automatedEmailId:P,previewWelcomeEmail:s,setErrors:b});_.useEffect(()=>{e!=="preview"||y.current||(y.current=!0,O(L))},[O,L,e]);const V=D==="unsaved",X=_.useCallback(()=>{V?p(!0):o()},[V,o]),K=_.useCallback(async()=>{await A({fakeWhenUnchanged:!0})&&o()},[A,o]);_.useEffect(()=>{const F=G=>{w.current&&!w.current.contains(G.target)&&u(!1)};return a&&document.addEventListener("mousedown",F),()=>{document.removeEventListener("mousedown",F)}},[a]);const Z=_.useRef(K);_.useEffect(()=>{Z.current=K},[K]),_.useEffect(()=>{const F=G=>{(G.metaKey||G.ctrlKey)&&G.key==="s"&&(G.preventDefault(),Z.current())};return window.addEventListener("keydown",F),()=>{window.removeEventListener("keydown",F)}},[]);const B=_.useCallback(F=>{d(F),F==="preview"?(h(null),O(L)):(u(!1),h(null),W())},[O,W,L]),U=_.useCallback(F=>{if(!E.current){x.current=F,H(G=>({...G,lexical:F}));return}F!==x.current?z(G=>({...G,lexical:F})):H(G=>({...G,lexical:F}))},[H,z]);return l.jsxs(l.Fragment,{children:[l.jsx(tl,{open:!0,onOpenChange:F=>{F||X()},children:l.jsxs(nl,{"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:F=>{F.preventDefault(),F.stopPropagation(),X()},children:[l.jsx(ol,{className:"sr-only",children:"Edit email"}),l.jsx(ua,{centeredHeaderContent:l.jsx(kl,{"data-testid":"email-mode-toggle",value:c,variant:"segmented-sm",onValueChange:F=>F&&B(F),children:l.jsxs(jl,{className:"grid w-[240px] grid-cols-2 bg-gray-100 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04)]",children:[l.jsx(Io,{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"}),l.jsx(Io,{className:"w-full justify-center","data-testid":"email-mode-preview",value:"preview",children:"Preview"})]})}),headerActions:l.jsxs(l.Fragment,{children:[l.jsx(ae,{variant:"outline",onClick:X,children:"Close"}),l.jsx(ae,{disabled:S.disabled,onClick:K,children:R})]}),isEditMode:c==="edit",title:"Edit email",children:l.jsxs("div",{className:"flex grow flex-col items-center p-6",children:[c==="preview"&&l.jsx(jx,{className:"border-x-0 border-t-0 border-b",children:l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsxs("div",{className:"flex items-center py-1",children:[l.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"From:"}),l.jsx("div",{className:"min-w-0 grow pr-4 text-sm",children:l.jsxs("span",{className:"flex gap-1 truncate whitespace-nowrap",children:[l.jsx("span",{children:C}),l.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:`<${N}>`})]})}),l.jsxs("div",{ref:w,className:"relative",children:[l.jsxs(ae,{variant:"outline",onClick:()=>u(!a),children:[l.jsx(Al,{className:"size-4"}),"Test"]}),a&&l.jsx(vx,{automatedEmailId:P,lexical:L.lexical,subject:L.subject,validateForm:j,onClose:()=>u(!1)})]})]}),T&&l.jsxs("div",{className:"flex items-center",children:[l.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Reply-to:"}),l.jsx("div",{className:"grow text-sm text-gray-500 dark:text-gray-400",children:I})]}),l.jsxs("div",{className:"flex items-center",children:[l.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Subject:"}),l.jsxs("div",{className:"grow",children:[l.jsx(qn,{className:"w-full","data-testid":"email-preview-subject",value:f??L.subject,onChange:F=>{const G=F.target.value;h(G),z(q=>({...q,subject:G})),k("subject")}}),M.subject&&l.jsx("span",{className:"mt-2 block text-xs text-destructive",children:M.subject})]})]})]})}),l.jsxs(Ix,{className:se(c==="preview"&&"shadow-sm bg-white dark:bg-grey-975",c==="edit"&&"px-6",c==="edit"&&"rounded-lg",c==="edit"&&M.lexical&&"border border-red-500"),children:[l.jsx("div",{className:se("mx-auto w-full max-w-[600px] pt-10 pb-8 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none",c==="preview"&&"hidden"),"data-testid":"email-editor",onFocus:()=>{E.current=!0},children:l.jsx(yx,{className:"automation-email-editor",placeholder:"Write your email content...",value:L.lexical,onChange:U})}),c==="preview"&&l.jsx(wx,{previewState:$})]}),c==="edit"&&M.lexical&&l.jsx("span",{className:"mt-2 block max-w-[740px] text-xs text-destructive",children:M.lexical})]})})]})}),l.jsx(ct,{open:g,onOpenChange:p,children:l.jsxs(lt,{children:[l.jsxs(ut,{children:[l.jsx(dt,{children:"Discard changes?"}),l.jsx(ft,{children:"Your changes to this email haven't been saved."})]}),l.jsxs(ht,{children:[l.jsx(pt,{children:"Keep editing"}),l.jsx(ae,{variant:"destructive",onClick:()=>{p(!1),o()},children:"Discard"})]})]})})]})},Xt=30,Px=/^\d+$/,Zt=0,Dx=256,Tx=Zt+Dx/2,Tr=180,Rx=40,zx=180,$x=250,Ox="Maximum steps added",Lx="var(--xy-edge-stroke)",Hx=[1.5,1,.75,.5,.25],be="__trigger__",Re="__tail__",Bx=({sourceId:e,targetId:t})=>({previousActionId:e===be?void 0:e,nextActionId:t===Re?void 0:t}),Vx={background:"transparent",border:"none",height:0,minHeight:0,minWidth:0,opacity:0,pointerEvents:"none",width:0},Nt=({type:e,position:t})=>l.jsx(St,{isConnectable:!1,position:t,style:Vx,type:e}),da=({children:e,className:t,data:n})=>{const o=_.useRef(!1);return l.jsxs(Su,{onOpenChange:r=>{r||(o.current=!1)},children:[l.jsx(Nu,{asChild:!0,children:l.jsx("button",{"aria-invalid":!!n.errorMessage,"aria-label":n.value?`${n.label}: ${n.value}`:n.label,"aria-pressed":n.selected,className:se("flex w-64 items-center gap-3 rounded-lg border border-transparent bg-surface-elevated p-3 text-left text-sm text-foreground shadow-sm transition-all focus-visible:border-border-strong focus-visible:outline-none",(n.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})}),l.jsx(Ms,{className:"w-44",onClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:n.contextMenuItems.map(r=>{if(r.type==="separator")return l.jsx(js,{},r.id);const s=r.icon;return l.jsxs(ks,{variant:r.variant,onSelect:r.onSelect,children:[s&&l.jsx(s,{className:"size-4"}),r.label]},r.label)})})]})},fa=({data:e})=>{const t=e.icon,n=e.errorMessage||e.warningMessage;return l.jsxs(l.Fragment,{children:[l.jsx("div",{className:se("flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",n&&"mt-[3px]"),children:l.jsx(t,{className:"size-4"})}),l.jsxs("div",{className:"flex min-w-0 flex-col text-left",children:[l.jsx("span",{className:"text-xs text-text-secondary",children:e.label}),e.value&&l.jsx("span",{className:se("truncate font-medium",e.isPlaceholderValue&&"opacity-50"),children:e.value}),e.errorMessage&&l.jsx("span",{className:"mt-1 text-xs text-destructive",children:e.errorMessage}),!e.errorMessage&&e.warningMessage&&l.jsx("span",{className:"mt-1 text-xs text-yellow-600",children:e.warningMessage})]})]})},ha=he.memo(({data:e})=>l.jsxs(da,{data:e,children:[l.jsx(fa,{data:e}),l.jsx(Nt,{position:Y.Bottom,type:"source"})]}));ha.displayName="TriggerNode";const pa=he.memo(({data:e})=>l.jsxs(da,{data:e,children:[l.jsx(Nt,{position:Y.Top,type:"target"}),l.jsx(fa,{data:e}),l.jsx(Nt,{position:Y.Bottom,type:"source"})]}));pa.displayName="StepNode";const Fx=({data:e})=>{const[t,n]=_.useState(!1),o=s=>{n(!1),e.onPick(s,e.anchor)},r="flex h-12 w-64 items-center justify-center rounded-lg border border-dashed border-border-default bg-surface-page transition-colors hover:border-border-strong focus-visible:border-border-strong focus-visible:outline-none";return e.disabled?l.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:[l.jsx(Nt,{position:Y.Top,type:"target"}),l.jsx(pl,{className:"mr-2 size-4",strokeWidth:1.5}),e.disabledReason]}):l.jsxs(Vr,{open:t,onOpenChange:n,children:[l.jsxs(Fr,{"aria-label":"Add step",className:se(r,"cursor-pointer"),"data-testid":"add-step-tail-button",children:[l.jsx(Nt,{position:Y.Top,type:"target"}),l.jsx(on,{className:"size-5 text-text-secondary",strokeWidth:1.5})]}),l.jsx(Wr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:l.jsx(Is,{onPick:o})})]})},Wx={trigger:ha,step:pa,tail:Fx},Yx={"add-step-edge":dx},Xx=()=>{const[e,t]=_.useState(!1),{fitView:n,zoomIn:o,zoomOut:r,zoomTo:s}=gn(),{zoom:i}=zm(),a={duration:zx},u=Math.round(i*100),c=f=>{t(!1),s(f,a)},d=()=>{t(!1),n(a)};return l.jsxs(Um,{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:[l.jsx(ae,{"aria-label":"Zoom out",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom out",type:"button",variant:"ghost",onClick:()=>{r(a)},children:l.jsx(Jr,{className:"size-5",strokeWidth:1.5})}),l.jsxs(Gr,{open:e,onOpenChange:t,children:[l.jsx(qr,{asChild:!0,children:l.jsxs(ae,{"aria-label":`Zoom level ${Ht(u)}%`,className:"min-w-14 rounded-sm px-2 font-semibold",type:"button",variant:"ghost",children:[Ht(u),"%"]})}),l.jsxs(Kr,{align:"center",className:"w-40",side:"top",sideOffset:12,children:[Hx.map(f=>{const h=Math.round(f*100),g=Math.abs(i-f)<.01;return l.jsxs(Tn,{onSelect:()=>c(f),children:[Ht(h),"%",g&&l.jsx(sl,{children:l.jsx(Br,{className:"size-4 text-text-secondary",strokeWidth:1.5})})]},f)}),l.jsx(il,{}),l.jsx(Tn,{onSelect:d,children:"Fit to view"})]})]}),l.jsx(ae,{"aria-label":"Zoom in",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom in",type:"button",variant:"ghost",onClick:()=>{o(a)},children:l.jsx(on,{className:"size-5",strokeWidth:1.5})})]})},ga=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`},ma=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}},Zx=e=>{switch(e.type){case"wait":return{icon:Jn,label:"Wait",value:ga(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:ma(e.data.email_lexical)?"Empty email body":void 0};default:{const t=e;throw new Error(`Unknown automation action type: ${t}`)}}},Rr=({canDelete:e=!1,canEditEmailBody:t=!1,onDelete:n,onEditEmailBody:o,onPreviewEmail:r,onSelectStep:s,stepId:i})=>{const a=[{icon:al,label:"Edit settings",onSelect:()=>s(i)}];return t&&o&&a.push({icon:es,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:Qr,label:"Delete",onSelect:()=>n(i),variant:"destructive"})),a},Ux=e=>{if(e.actions.length===0)return[];const t=new Map(e.actions.map(u=>[u.id,u])),n=new Set(e.edges.map(u=>u.target_action_id)),o=e.actions.find(u=>!n.has(u.id));if(!o)throw new Error(`Could not determine the starting step for automation ${e.id}.`);const r=new Map(e.edges.map(u=>[u.source_action_id,u.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 u=r.get(a.id);a=u?t.get(u):void 0}if(s.length!==e.actions.length)throw new Error(`Some steps in automation ${e.id} are missing or disconnected.`);return s},Gx=({actionErrors:e,automation:t,disabled:n,onDelete:o,onEditEmailBody:r,onPick:s,onPreviewEmail:i,onSelectStep:a,newStepId:u,selectedStepId:c})=>{const d=Ux(t),f={draggable:!1,selectable:!1,connectable:!1,focusable:!1},h=n?Ox:void 0,p={sourceId:d[d.length-1]?.id??be,targetId:Re},y=[{id:be,type:"trigger",position:{x:Zt,y:0},data:{contextMenuItems:Rr({onSelectStep:a,stepId:be}),icon:Ur,isNew:!1,label:"Trigger",value:"Member signs up",selected:c===be,onSelect:()=>a(be)},...f}];d.forEach((E,m)=>{y.push({id:E.id,type:"step",position:{x:Zt,y:Tr*(m+1)},data:{...Zx(E),contextMenuItems:Rr({canDelete:!0,canEditEmailBody:E.type==="send_email",onDelete:o,onEditEmailBody:r,onPreviewEmail:i,onSelectStep:a,stepId:E.id}),errorMessage:e[E.id],isNew:u===E.id,selected:c===E.id,onSelect:()=>a(E.id)},...f})}),y.push({id:Re,type:"tail",position:{x:Zt,y:Tr*(d.length+1)},data:{disabled:n,disabledReason:h,onPick:s,anchor:p},draggable:!1,connectable:!1});const w=[];let x=be;return d.forEach(E=>{const m={sourceId:x,targetId:E.id,disabled:n,disabledReason:h,onPick:s};w.push({id:`e-${x}-${E.id}`,source:x,target:E.id,type:"add-step-edge",focusable:!1,data:m}),x=E.id}),w.push({id:`e-${x}-${Re}`,source:x,target:Re,type:"smoothstep",focusable:!1,style:{stroke:Lx}}),{nodes:y,edges:w}},qx=e=>({x:Math.round(e/2-Tx),y:Rx,zoom:1}),Kx={"member-welcome-email-free":["free"],"member-welcome-email-paid":["paid"]},Qx=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s})=>{if(!t)return null;if(t===be)return{icon:Ur,label:"Trigger",title:"Member signs up",memberTiers:Kx[e.slug]??[],type:"trigger"};const i=e.actions.find(a=>a.id===t);if(!i)return null;switch(i.type){case"wait":{const a=ga(i.data.wait_hours);return{icon:Jn,label:"Wait",title:a,action:i,onDelete:()=>n(i.id),onUpdate:u=>o(i.id,u),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}`)}}},yo=({children:e,htmlFor:t,label:n})=>l.jsxs(Dl,{children:[l.jsx(Tl,{className:"text-xs font-medium text-text-secondary",htmlFor:t,children:n}),e]}),Jx=({value:e})=>l.jsx(Ll,{value:e,children:l.jsx(Hl,{disabled:!0,children:l.jsx("span",{children:e})})}),ey=({memberTiers:e})=>l.jsxs("div",{className:"flex flex-col gap-5",children:[l.jsx(yo,{label:"Trigger",children:l.jsx(Jx,{value:"New member sign up"})}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsx("span",{className:"text-xs font-medium text-text-secondary",children:"Members"}),l.jsxs(Do,{className:"flex items-center gap-2 text-sm font-normal text-foreground",children:[l.jsx(Ao,{checked:e.includes("free"),disabled:!0}),"Free"]}),l.jsxs(Do,{className:"flex items-center gap-2 text-sm font-normal text-foreground",children:[l.jsx(Ao,{checked:e.includes("paid"),disabled:!0}),"Paid"]})]})]}),xa=({onClick:e})=>l.jsxs(ae,{className:"w-full border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground",type:"button",variant:"outline",onClick:e,children:[l.jsx(Qr,{className:"size-4"}),"Delete step"]}),Pn=e=>{const t=Number(e);return!Px.test(e)||!Number.isInteger(t)||t<1||t>Xt?null:t},ty=({action:e,onUpdate:t,onDelete:n})=>{if(e.data.wait_hours%24!==0)throw new Error(`WaitSidebarBody: wait_hours must be a multiple of 24, received ${e.data.wait_hours}`);const o=e.data.wait_hours/24,[r,s]=_.useState(String(o)),[i,a]=_.useState(!1),u=Number(r),c=Pn(r)!==null,d=i&&!c,f=p=>{const y=p*24;y!==e.data.wait_hours&&t(y)},h=p=>{const y=Pn(r);if(y===null)return;const w=Math.min(Xt,Math.max(1,y+p));s(String(w)),f(w)},g=p=>{const y=p.target.value;s(y);const w=Pn(y);w!==null&&f(w)};return l.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[l.jsxs(yo,{htmlFor:"automation-wait-days",label:"Wait for",children:[l.jsxs(Rl,{"aria-label":"Wait duration in days",className:"h-(--control-height)","data-disabled":d?"true":void 0,children:[l.jsx(zl,{"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)}),l.jsx($l,{className:"mr-auto",children:u===1?"day":"days"}),l.jsxs(Ol,{align:"inline-end",className:"gap-0.5 pr-2",children:[l.jsx(Po,{"aria-label":"Decrease wait by one day",disabled:!c||u<=1,size:"icon-xs",title:"Decrease wait by one day",onClick:()=>h(-1),children:l.jsx(Jr,{className:"size-4"})}),l.jsx(Po,{"aria-label":"Increase wait by one day",disabled:!c||u>=Xt,size:"icon-xs",title:"Increase wait by one day",onClick:()=>h(1),children:l.jsx(on,{className:"size-4"})})]})]}),d&&l.jsxs(Pl,{className:"text-xs",id:"automation-wait-days-error",children:["Enter a delay between 1 and ",Ht(Xt)," days"]})]}),l.jsx("div",{className:"mt-auto pt-6",children:l.jsx(xa,{onClick:n})})]})},ny=({action:e,onUpdateSubject:t,onEditEmail:n,onDelete:o})=>{const r=_.useRef(null);return _.useEffect(()=>{r.current?.focus({preventScroll:!0})},[e.id]),l.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[l.jsx(yo,{label:"Subject line",children:l.jsx(qn,{ref:r,placeholder:"Subject line",value:e.data.email_subject,onChange:s=>t(s.target.value)})}),l.jsxs(ae,{className:"w-full",type:"button",variant:"outline",onClick:n,children:[l.jsx(es,{className:"size-4"}),"Edit email content"]}),l.jsx("div",{className:"mt-auto pt-6",children:l.jsx(xa,{onClick:o})})]})},oy=({detail:e})=>{switch(e.type){case"trigger":return l.jsx(ey,{memberTiers:e.memberTiers});case"wait":return l.jsx(ty,{action:e.action,onDelete:e.onDelete,onUpdate:e.onUpdate},e.action.id);case"send_email":return l.jsx(ny,{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}`)}}},ry=({detail:e})=>{const t=e.icon;return l.jsxs("div",{className:"flex min-h-full flex-col gap-6",children:[l.jsx("div",{className:"flex items-start gap-4",children:l.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[l.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:l.jsx(t,{className:"size-4"})}),l.jsxs("div",{className:"min-w-0",children:[l.jsx("span",{className:"block text-xs text-text-secondary",children:e.label}),l.jsx("h2",{className:se("truncate text-base leading-tight font-medium text-foreground",e.isPlaceholderTitle&&"opacity-50"),children:e.title})]})]})}),l.jsx(oy,{detail:e})]})},sy=({detail:e,isEmailModalOpen:t,onClose:n})=>(_.useEffect(()=>{if(!e)return;const o=r=>{if(r.key==="Escape"){if(t)return;n()}};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[e,t,n]),l.jsx("aside",{"aria-hidden":!e,"aria-label":"Step details",className:se("absolute inset-y-0 right-0 z-[1] flex w-[calc(100%-6rem)] max-w-none translate-x-full flex-col gap-6 overflow-y-auto bg-background p-6 shadow-sm transition-transform duration-200 ease-out sm:w-[36rem] dark:border-l dark:border-gray-950",e?"translate-x-0":"pointer-events-none"),"data-state":e?"open":"closed","data-testid":"automation-step-sidebar",children:e&&l.jsx(ry,{detail:e})})),iy={wait:Wl,send_email:Fl},ay=({actionErrors:e={},automation:t,isLoading:n,isError:o,onChange:r})=>{const[s,i]=_.useState(null),[a,u]=_.useState("edit"),[c,d]=_.useState(null),[f,h]=_.useState(null),[g,p]=_.useState(null),y=f?.id??null,w=_.useCallback((S,M)=>{if(!t||t.actions.length>=To)return;const k=Bx(M),j=iy[S],R=j({detail:t,anchor:k}),$=R.actions.find(O=>!t.actions.some(W=>W.id===O.id));i($?.id??null),$&&h({id:$.id}),r(R)},[t,r]);_.useEffect(()=>{if(!s)return;const S=window.setTimeout(()=>{i(null)},$x);return()=>window.clearTimeout(S)},[s]);const x=_.useCallback(S=>{if(!t)return;const M=Bl({detail:t,actionId:S});d(k=>k===S?null:k),h(null),p(null),r(M)},[t,r]),E=_.useCallback(S=>{if(!t)return;const M=t.actions.find(k=>k.id===S);if(M?.type==="send_email"&&!ma(M.data.email_lexical)){p(M.id);return}x(S)},[t,x]),m=_.useCallback((S,M)=>{t&&r(Vl({detail:t,actionId:S,waitHours:M}))},[t,r]),v=_.useCallback((S,M)=>{if(!t)return;const k=t.actions.find(j=>j.id===S&&j.type==="send_email");k&&r(Ro({detail:t,actionId:S,emailSubject:M,emailLexical:k.data.email_lexical}))},[t,r]),C=_.useCallback((S,M="edit")=>{u(M),d(S)},[]),N=_.useCallback((S,M="edit")=>{h(null),u(M),d(S)},[]),I=_.useCallback(S=>{N(S,"preview")},[N]),T=c&&t?t.actions.find(S=>S.id===c&&S.type==="send_email"):void 0,P=t&&g?t.actions.find(S=>S.id===g&&S.type==="send_email"):void 0,L=_.useRef(qx(window.innerWidth)),D=_.useMemo(()=>t?Gx({actionErrors:e,automation:t,disabled:t.actions.length>=To,onDelete:E,onEditEmailBody:N,onPick:w,onPreviewEmail:I,onSelectStep:S=>h({id:S}),newStepId:s,selectedStepId:y}):null,[e,t,N,I,w,E,s,y]),z=t?Qx({automation:t,onDelete:E,onUpdateWait:m,onUpdateSubject:v,onEditEmail:C,stepId:y}):null,H=_.useCallback(()=>{h(null)},[]),b=()=>{d(null),u("edit")},A=_.useCallback((S,M)=>{if(S.stopPropagation(),!t||M.id===Re||M.id===be)return;const k=t.actions.find(j=>j.id===M.id);k?.type==="send_email"&&C(k.id)},[t,C]);return n?l.jsx("div",{className:"flex flex-1 items-center justify-center bg-surface-page","data-testid":"automation-canvas-loading",children:l.jsx(Te,{size:"lg"})}):o||!t||!D?l.jsx("div",{className:"flex flex-1 items-start justify-center bg-surface-page px-4 py-8",children:l.jsx(rl,{className:"max-w-md",role:"alert",variant:"destructive",children:l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx(Ul,{className:"mt-0.5 size-5 text-red"}),l.jsxs("div",{children:[l.jsx("strong",{className:"block",children:"Couldn't load automation"}),l.jsx("p",{className:"text-sm text-muted-foreground",children:"Try refreshing the page."})]})]})})}):l.jsxs("div",{className:"relative flex-1 overflow-hidden bg-surface-page","data-testid":"automation-canvas",children:[l.jsxs(Pm,{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:L.current,edges:D.edges,edgesFocusable:!1,edgeTypes:Yx,nodes:D.nodes,nodesConnectable:!1,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:Wx,proOptions:{hideAttribution:!0},zoomOnDoubleClick:!1,zoomOnScroll:!1,panOnScroll:!0,onNodeClick:(S,M)=>{S.button===0&&M.id!==Re&&h({id:M.id})},onNodeDoubleClick:A,onPaneClick:H,children:[l.jsx(Bm,{variant:Ee.Dots}),l.jsx(Xx,{})]}),l.jsx(sy,{detail:z,isEmailModalOpen:!!T||!!P,onClose:H}),T&&t&&l.jsx(Ax,{initialLexical:T.data.email_lexical,initialMode:a,initialSubject:T.data.email_subject,onClose:b,onSave:({subject:S,lexical:M})=>{r(Ro({detail:t,actionId:T.id,emailSubject:S,emailLexical:M})),b()}}),l.jsx(ct,{open:!!P,onOpenChange:S=>{S||p(null)},children:l.jsxs(lt,{children:[l.jsxs(ut,{children:[l.jsx(dt,{children:"Delete this email?"}),l.jsx(ft,{children:"This email will be removed from the automation. Save or publish the automation to apply this change."})]}),l.jsxs(ht,{children:[l.jsx(pt,{children:"Cancel"}),l.jsx(ae,{variant:"destructive",onClick:()=>{P&&x(P.id)},children:"Delete email"})]})]})})]})},cy=({automation:e,isLoadingAutomation:t,isSaveButtonEnabled:n,isPublishButtonEnabled:o,saveButtonVariant:r,publishButtonVariant:s,isTurnOffButtonEnabled:i,saveButtonChildren:a,publishButtonChildren:u,onSave:c,onPublish:d,onTurnOff:f})=>{const h=e?.name,g=e?.status;return l.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:[l.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[l.jsx(ae,{variant:"ghost",asChild:!0,children:l.jsx(cl,{"aria-label":"Back to automations",to:"/automations",children:l.jsx(ll,{strokeWidth:2})})}),t?l.jsx(ul,{className:"h-5 w-40"}):l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"truncate text-lg font-semibold",children:h}),g&&l.jsx(Yl,{status:g})]})]}),l.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[g==="active"&&l.jsxs(Gr,{children:[l.jsx(qr,{asChild:!0,children:l.jsx(ae,{"aria-label":"Automation options",variant:"ghost",children:l.jsx(dl,{})})}),l.jsx(Kr,{align:"end",className:"min-w-40",children:l.jsxs(Tn,{disabled:!i,onSelect:f,children:[l.jsx(gl,{className:"size-4"}),"Turn off"]})})]}),g==="inactive"&&l.jsx(ae,{disabled:!n,variant:r,onClick:c,children:a}),l.jsx(ae,{disabled:!o,variant:s,onClick:d,children:u})]})]})};var zr=Object.prototype.hasOwnProperty;function $r(e,t,n){for(n of e.keys())if(mt(n,t))return n}function mt(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--&&mt(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=$r(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=$r(t,r),!r)||!mt(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(zr.call(e,n)&&++o&&!zr.call(t,n)||!(n in t)||!mt(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const ly="Add a subject line.",uy="Add an email body.",dy="Add a subject line and email body.",fy=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}},Or=e=>({status:e.status,actions:e.actions,edges:e.edges}),hy=e=>{switch(e){case"failed to publish":case"failed to re-publish":case"failed to save":case"failed to unpublish":return!0;case"confirming re-publish":case"confirming unpublish":case"idle":case"publishing":case"re-publishing":case"saving":case"unpublishing":return!1;default:{const t=e;throw new Error(`Unhandled edit state: ${t}`)}}},Dn=e=>{const t={};for(const n of e.actions){if(n.type!=="send_email")continue;const o=!n.data.email_subject.trim(),r=fy(n.data.email_lexical);o&&r?t[n.id]=dy:o?t[n.id]=ly:r&&(t[n.id]=uy)}return t},zy=()=>{const{id:e=""}=fl(),{data:t,isLoading:n,isError:o}=Xl(e,{defaultErrorHandler:!1}),r=t?.automations[0],s=Zl(),[i,a]=he.useState("idle"),[u,c]=he.useState({}),[d,f]=he.useState(void 0);he.useEffect(()=>{r&&f(j=>j?.id===r.id?j:r)},[r]);const h=!!d&&!!r&&!mt(Or(d),Or(r)),g=j=>{f(j),c(R=>{if(Object.keys(R).length===0)return R;const $=Dn(j);return Object.fromEntries(Object.entries(R).filter(([O])=>$[O]))}),a(R=>hy(R)?"idle":R)},p=(j,R)=>{const $=Dn(j);return Object.keys($).length>0?(c($),a(R),vn.error("Automation couldn’t be saved",{description:"Fix the highlighted steps and try again."}),!1):!0},y=j=>{if(!d)throw new Error("Cannot edit an automation that has not loaded.");let R,$;const O=d.status,W=j??O,V=`${O} -> ${W}`;switch(V){case"active -> active":R="re-publishing",$="failed to re-publish";break;case"inactive -> inactive":R="saving",$="failed to save";break;case"inactive -> active":R="publishing",$="failed to publish";break;case"active -> inactive":R="unpublishing",$="failed to unpublish";break;default:{const X=V;throw new Error(`Unhandled status transition: ${X}`)}}W==="active"&&!p(d,$)||(a(R),s.mutate({id:d.id,status:W,actions:d.actions,edges:d.edges},{onSuccess:X=>{f(X.automations[0]),c({}),a("idle")},onError:X=>{const K=W==="active"?Dn(d):{},Z=Object.keys(K).length>0;Z&&c(K),a($),Z?vn.error("Automation couldn’t be saved",{description:"Fix the highlighted steps and try again."}):vn.error("Automation couldn’t be saved")}}))};let w=!1,x=!1,E=!1,m=!!d&&d.actions.length>0&&d.status==="inactive"&&h,v="secondary",C="Save",N=!!d&&d.actions.length>0&&(d.status==="inactive"||h),I="default",T=d?.status==="active"?h?"Publish changes":"Published":"Publish",P=!0,L="Turn off",D=!0,z="default",H="Publish changes";switch(i){case"idle":break;case"saving":E=!0,m=!1,N=!1,P=!1,C=l.jsxs(l.Fragment,{children:[l.jsx(Te,{size:"sm"}),l.jsx("span",{className:"sr-only",children:"Saving..."})]});break;case"publishing":E=!0,m=!1,N=!1,P=!1,T=l.jsxs(l.Fragment,{children:[l.jsx(Te,{color:"light",size:"sm"}),l.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"re-publishing":E=!0,x=!0,N=!1,P=!1,D=!1,H=l.jsxs(l.Fragment,{children:[l.jsx(Te,{color:"light",size:"sm"}),l.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"unpublishing":E=!0,w=!0,m=!1,N=!1,P=!1,L=l.jsxs(l.Fragment,{children:[l.jsx(Te,{color:"light",size:"sm"}),l.jsx("span",{className:"sr-only",children:"Turning off..."})]});break;case"confirming unpublish":w=!0,m=!1,N=!1,P=!1;break;case"confirming re-publish":x=!0,N=!1,P=!1;break;case"failed to save":v="destructive",C="Retry";break;case"failed to publish":I="destructive",T="Retry";break;case"failed to re-publish":x=!0,N=!1,P=!1,z="destructive",H="Retry";break;case"failed to unpublish":w=!0,P=!0,L="Retry";break;default:{const j=i;throw new Error(`Unhandled edit state: ${j}`)}}const b=j=>{a(R=>{switch(R){case"confirming unpublish":case"failed to unpublish":return j?R:"idle";case"idle":return j?"confirming unpublish":R;default:return R}})},A=j=>{a(R=>{switch(R){case"confirming re-publish":case"failed to re-publish":return j?R:"idle";case"idle":return j?"confirming re-publish":R;default:return R}})},S=()=>{if(!d)throw new Error("Cannot publish an automation that has not loaded.");switch(d.status){case"active":if(!p(d,"idle"))return;a("confirming re-publish");break;case"inactive":y("active");break;default:{const j=d.status;throw new Error(`Unhandled status: ${j}`)}}};ql(E||h);const M=hl(({currentLocation:j,nextLocation:R})=>h&&j.pathname!==R.pathname),k=j=>{!j&&M.state==="blocked"&&M.reset()};return l.jsxs("div",{className:"fixed inset-0 z-50 flex flex-col bg-background","data-testid":"automation-editor",children:[l.jsx(cy,{automation:d,isLoadingAutomation:n,isPublishButtonEnabled:N,isSaveButtonEnabled:m,isTurnOffButtonEnabled:P,publishButtonChildren:T,publishButtonVariant:I,saveButtonChildren:C,saveButtonVariant:v,onPublish:S,onSave:()=>y(),onTurnOff:()=>a("confirming unpublish")}),l.jsx(ay,{actionErrors:u,automation:d,isError:o,isLoading:n,onChange:g}),l.jsx(ct,{open:M.state==="blocked",onOpenChange:k,children:l.jsxs(lt,{children:[l.jsxs(ut,{children:[l.jsx(dt,{children:"Discard unsaved changes?"}),l.jsx(ft,{children:"Your changes will be lost if you leave this automation."})]}),l.jsxs(ht,{children:[l.jsx(pt,{children:"Keep working"}),l.jsx(ae,{variant:"destructive",onClick:()=>M.proceed?.(),children:"Discard changes"})]})]})}),l.jsx(ct,{open:w,onOpenChange:b,children:l.jsxs(lt,{children:[l.jsxs(ut,{children:[l.jsx(dt,{children:"Turn off this automation?"}),l.jsx(ft,{children:"It will stop running until you turn it back on."})]}),l.jsxs(ht,{children:[l.jsx(pt,{disabled:E,children:"Cancel"}),l.jsx(ae,{disabled:E,variant:i==="failed to unpublish"?"destructive":"default",onClick:()=>y("inactive"),children:L})]})]})}),l.jsx(ct,{open:x,onOpenChange:A,children:l.jsxs(lt,{children:[l.jsxs(ut,{children:[l.jsx(dt,{children:"Update automation?"}),l.jsx(ft,{children:"This will update the automation for new runs of the automation, as well as any actively-running ones."})]}),l.jsxs(ht,{children:[l.jsx(pt,{disabled:E,children:"Cancel"}),l.jsx(ae,{disabled:!D,variant:z,onClick:()=>y(),children:H})]})]})})]})};export{zy as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{d4 as m,d$ as e,cL as n}from"./index-CgSVv5Up.js";const x=m.forwardRef(({children:s,className:r,...a},t)=>e.jsx("div",{ref:t,className:n("flex items-center justify-center rounded-full bg-muted w-12 h-12 max-w-12 max-h-12 [&_svg]:size-4 [&_svg]:text-muted-foreground [&_svg]:shrink-0",r),...a,children:s}));x.displayName="EmptyBadge";const l=m.forwardRef(({children:s,className:r,title:a,description:t,actions:d,...c},i)=>e.jsxs("div",{ref:i,className:n("flex flex-col items-center justify-center space-y-3 text-center",r),...c,children:[e.jsx(x,{children:s}),e.jsxs("div",{className:"max-w-[320px] space-y-1.5",children:[e.jsx("h3",{className:"text-md font-medium tracking-normal text-pretty text-foreground",children:a}),t&&e.jsx("p",{className:"text-sm leading-tight text-pretty text-muted-foreground",children:t})]}),d&&e.jsx("div",{className:"flex items-center gap-2",children:d})]}));l.displayName="EmptyIndicator";export{l as E};
|