ghost 6.47.0 → 6.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MigratorConfig.js +0 -1
- package/bin/create-migration.js +1 -1
- package/bin/generate-golden-email.js +0 -1
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/core/boot.js +13 -7
- package/core/built/admin/assets/{PolarAngleAxis-CLluELUg.js → PolarAngleAxis-DufzOBEz.js} +1 -1
- package/core/built/admin/assets/{_baseAssignValue-Dz1iqdwD.js → _baseAssignValue-BjUm4QeA.js} +1 -1
- package/core/built/admin/assets/{a-large-small-BA74vHPp.js → a-large-small-D0RF_WS9.js} +1 -1
- package/core/built/admin/assets/{account-migration-B-NqdKuN.js → account-migration-B7n6ezrZ.js} +1 -1
- package/core/built/admin/assets/activitypub/{account-migration-ClmVrAXr.js → account-migration-BJeRnMCl.js} +3 -3
- package/core/built/admin/assets/activitypub/activitypub.js +1 -1
- package/core/built/admin/assets/activitypub/{at-sign-9F3qd4Nn.js → at-sign-BygVOKdj.js} +2 -2
- package/core/built/admin/assets/activitypub/{avatar-flipboard-jBHA13Ej.js → avatar-flipboard-CNcjI8lK.js} +2 -2
- package/core/built/admin/assets/activitypub/{bluesky-sharing-1irhvVtF.js → bluesky-sharing-mgBNeRfA.js} +4 -4
- package/core/built/admin/assets/activitypub/{copy-DXRvsGiK.js → copy-BMChXIQc.js} +2 -2
- package/core/built/admin/assets/activitypub/{deleted-feed-item-67VQJde4.js → deleted-feed-item-D-spb6V1.js} +2 -2
- package/core/built/admin/assets/activitypub/{edit-profile-BfpbEj98.js → edit-profile-CDQ3V8-c.js} +4 -4
- package/core/built/admin/assets/activitypub/{feed-DUrI7SPC.js → feed-Vqr3WU-V.js} +4 -4
- package/core/built/admin/assets/activitypub/{hash-CMtB10PN.js → hash-D7SSXVOg.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-2xq8SJ7A.js → inbox-BHk5Dw27.js} +2 -2
- package/core/built/admin/assets/activitypub/{index-BT97xLpd.js → index-BejkeH-m.js} +2 -2
- package/core/built/admin/assets/activitypub/{index-DssHQAjK.js → index-BqL23J-m.js} +32 -32
- package/core/built/admin/assets/activitypub/{index-Ba6FXt8y.js → index-CHhvjNuG.js} +6 -6
- package/core/built/admin/assets/activitypub/{index-ERtz4Bvy.js → index-CZsNO9hA.js} +5 -5
- package/core/built/admin/assets/activitypub/{index-sgY7lLrg.js → index-CaIhRYzz.js} +3 -3
- package/core/built/admin/assets/activitypub/{index-D1EWoXrK.js → index-DA2MkQVu.js} +2 -2
- package/core/built/admin/assets/activitypub/{index-sudOvKcY.js → index-DHhFcmfu.js} +21 -21
- package/core/built/admin/assets/activitypub/{index-Ccighz1t.js → index-sh2bDSls.js} +4 -4
- package/core/built/admin/assets/activitypub/{label-KQSsSjmN.js → label-D80yhOIm.js} +2 -2
- package/core/built/admin/assets/activitypub/{moderation-B78if-r0.js → moderation-LJNmKBCi.js} +3 -3
- package/core/built/admin/assets/activitypub/{note-Bfr7ovn7.js → note-CyjKLcQ-.js} +4 -4
- package/core/built/admin/assets/activitypub/{reply-CehesW8Z.js → reply-BiiCFx7G.js} +2 -2
- package/core/built/admin/assets/activitypub/{separator-B_Ly_Qq8.js → separator-CY3PMmtI.js} +2 -2
- package/core/built/admin/assets/activitypub/{settings-D6R97p7v.js → settings-BQy6Gr7R.js} +3 -3
- package/core/built/admin/assets/activitypub/{step-1-Cl1YxgZ1.js → step-1-DCqRwgf3.js} +3 -3
- package/core/built/admin/assets/activitypub/{step-2-DDyR--Qe.js → step-2-DQlhehTO.js} +5 -5
- package/core/built/admin/assets/activitypub/{step-3-Don8gv0n.js → step-3-DAUCAcxW.js} +7 -7
- package/core/built/admin/assets/activitypub/{tabs-DTpfm-wu.js → tabs-B_6UuI7r.js} +3 -3
- package/core/built/admin/assets/activitypub/{topic-filter-Oee10885.js → topic-filter--FT1A_dc.js} +2 -2
- 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-CGZuiDGx.js → code-editor-view-Bp_sCJR0.js} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-CwEblQZC.js → index-BPXA3pTW.js} +5 -5
- package/core/built/admin/assets/admin-x-settings/{index-rr_UntGE.js → index-BS375mg1.js} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-BpM6W2br.js → index-B_PlQoEG.js} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-BGdS5xw4.js → index-BflhAbu2.js} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-DtWUeJhp.js → index-CftMe8fe.js} +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-B65inCwj.js → index-DRB7FH6y.js} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-DSX261S9.js → index-DijZ3oAM.js} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-DF6YEs01.js → index-cV0Lof9H.js} +1526 -1500
- package/core/built/admin/assets/admin-x-settings/{index-CluZYkUC.js → index-qc4x3vZj.js} +3 -3
- package/core/built/admin/assets/admin-x-settings/{modals-Bf4KOU31.js → modals-CkjuEByw.js} +55 -67
- package/core/built/admin/assets/{arrow-right-BxP3aeA5.js → arrow-right-BF77Yx73.js} +1 -1
- package/core/built/admin/assets/{at-sign-Bf0y-jim.js → at-sign-DhJF3n_V.js} +1 -1
- package/core/built/admin/assets/{audience-DHR1WgFK.js → audience-DHPKKayV.js} +1 -1
- package/core/built/admin/assets/{automated-emails-DbJbDLib.js → automated-emails-DInKYTEC.js} +1 -1
- package/core/built/admin/assets/{automations-aLgTzSsZ.js → automations-DJpeZw9T.js} +1 -1
- package/core/built/admin/assets/automations-DpQKN9j0.js +1 -0
- package/core/built/admin/assets/{avatar-flipboard-B0F2LMW5.js → avatar-flipboard-yRdmFC6R.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-DjhtIuyr.js → bluesky-sharing-qSiCERoR.js} +1 -1
- package/core/built/admin/assets/{chart-BGwxlD0z.js → chart-CP2N9ZC-.js} +1 -1
- package/core/built/admin/assets/{chevron-up-C2FeVzre.js → chevron-up-BQ6fOpFR.js} +1 -1
- package/core/built/admin/assets/{chunk.524.31b31f7958dfae110016.js → chunk.524.ad4560630d4d62fbceb5.js} +4 -4
- package/core/built/admin/assets/{chunk.582.a855020953886af6e83b.js → chunk.582.fd4878e4e0af31ef86c0.js} +6 -6
- package/core/built/admin/assets/{chunk.972.258e6b1dab79b2189f1c.js → chunk.98.69968e0f393d82c2949c.js} +4 -4
- package/core/built/admin/assets/{code-editor-view-DzPkm_nJ.js → code-editor-view-CVODiRVJ.js} +1 -1
- package/core/built/admin/assets/{comments-DgItXUWN.js → comments-CP-NxopD.js} +1 -1
- package/core/built/admin/assets/{content-helpers-BNefU_PE.js → content-helpers-Crzkusiq.js} +1 -1
- package/core/built/admin/assets/{copy-DoNNUZlb.js → copy-r1LFsU75.js} +1 -1
- package/core/built/admin/assets/{data-list-CO1cZQRU.js → data-list-CzSc7z-2.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-DC2wSAhv.js → deleted-feed-item-PyEM8FiX.js} +1 -1
- package/core/built/admin/assets/{dropzone-BTODLafn.js → dropzone-DI8A9qO6.js} +1 -1
- package/core/built/admin/assets/{edit-profile-BMMpmWIZ.js → edit-profile-DlJ64lV7.js} +1 -1
- package/core/built/admin/assets/editor-CevNZicQ.js +8 -0
- package/core/built/admin/assets/{empty-indicator-Dza0FQlj.js → empty-indicator-Dxg05yWg.js} +1 -1
- package/core/built/admin/assets/{en-yf9qAqTu.js → en-D93GVp3o.js} +1 -1
- package/core/built/admin/assets/{eye-CAqnnfQF.js → eye-6POPPpTw.js} +1 -1
- package/core/built/admin/assets/{feed-BkNsbWiF.js → feed-P_RMYb5x.js} +1 -1
- package/core/built/admin/assets/{field-Ddb1ZOqM.js → field-DeNjwWrL.js} +1 -1
- package/core/built/admin/assets/{filter-query-core-5Mac92kh.js → filter-query-core-DFs5WSmA.js} +1 -1
- package/core/built/admin/assets/{filters-BCb4bgtg.js → filters-C_BSQgb7.js} +1 -1
- package/core/built/admin/assets/{gh-chart-C6zkIg8k.js → gh-chart-pNHAbeQn.js} +1 -1
- package/core/built/admin/assets/{ghost-5313258fd425ced5db6516acde01ba36.js → ghost-3f5b3569e0beec61266cb74077677fbc.js} +3 -3
- package/core/built/admin/assets/{growth-ezUlN8OE.js → growth-B83tVOYO.js} +1 -1
- package/core/built/admin/assets/{hash-DE2OmChI.js → hash-BCTATV5W.js} +1 -1
- package/core/built/admin/assets/{inbox-OthiHvlV.js → inbox-rE3c5suT.js} +1 -1
- package/core/built/admin/assets/{index-BLyzLfyx.js → index-7EiRc5Ay.js} +1 -1
- package/core/built/admin/assets/{index-CV5v0eFE.js → index-B5bpZGTI.js} +1 -1
- package/core/built/admin/assets/index-BNtzAd7H.css +1 -0
- package/core/built/admin/assets/{index-BC1yWeaJ.js → index-BT33w2Io.js} +1 -1
- package/core/built/admin/assets/{index-DjffQ3VJ.js → index-BbkXWdhb.js} +1 -1
- package/core/built/admin/assets/{index-DH6PA3W6.js → index-BfhSrnrJ.js} +1 -1
- package/core/built/admin/assets/{index-CRvK0Iac.js → index-BmR_OUpb.js} +1 -1
- package/core/built/admin/assets/{index-CNV7fxKZ.js → index-BuhMgn5c.js} +1 -1
- package/core/built/admin/assets/{index-pkixJbdq.js → index-C-075SzJ.js} +34 -34
- package/core/built/admin/assets/{index-DJoByVS8.js → index-CB3hJd9E.js} +1 -1
- package/core/built/admin/assets/{index-D3bb-MEJ.js → index-CCISLIQd.js} +1 -1
- package/core/built/admin/assets/{index-BIEhcKiV.js → index-Cnptpx11.js} +1 -1
- package/core/built/admin/assets/{index-DK1cu59e.js → index-CrBRU81r.js} +1 -1
- package/core/built/admin/assets/{index-B0_p1-R0.js → index-CscUHFJp.js} +1 -1
- package/core/built/admin/assets/{index-Bi5qzf86.js → index-D3ZzfuJt.js} +1 -1
- package/core/built/admin/assets/{index-CKPny_6u.js → index-D4wn-U0V.js} +1 -1
- package/core/built/admin/assets/{index-YzcsD17L.js → index-DNRlkUeu.js} +1 -1
- package/core/built/admin/assets/{index-BoMsDCxD.js → index-D_G6negZ.js} +1 -1
- package/core/built/admin/assets/{index-CwsmINtV.js → index-DfxHSK1s.js} +1 -1
- package/core/built/admin/assets/{index-X91I8PcS.js → index-Dpc3COTl.js} +1 -1
- package/core/built/admin/assets/{index-c1h-EQpd.js → index-UsbnU2jy.js} +1 -1
- package/core/built/admin/assets/{index-oKgNVmwC.js → index-VfrJzh5m.js} +1 -1
- package/core/built/admin/assets/{index-D5MrQBSe.js → index-fbxc8Dpt.js} +1 -1
- package/core/built/admin/assets/{input-group-BOLMrDfJ.js → input-group-BLygwiDK.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-DlzcWUPw.js → koenig-lexical-B9U3sBS5.js} +1 -1
- package/core/built/admin/assets/{kpi-card-BlF7JKRC.js → kpi-card-Bmnvvp4X.js} +1 -1
- package/core/built/admin/assets/{kpi-card-HDshm3lO.js → kpi-card-CGVtzdgJ.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-Dty6zMSP.js → kpi-tabs-DxbvMkIU.js} +1 -1
- package/core/built/admin/assets/{kpis-CFz4r5wW.js → kpis-CQBAGVjP.js} +1 -1
- package/core/built/admin/assets/{label-CVzNcbjb.js → label-DpTwHQi_.js} +1 -1
- package/core/built/admin/assets/{links-D9dHwDlP.js → links-Bdw25FJF.js} +1 -1
- package/core/built/admin/assets/{list-page-shoQED7N.js → list-page-BvTQwP5F.js} +1 -1
- package/core/built/admin/assets/{loader-circle-cad701gH.js → loader-circle-3HJkQKWf.js} +1 -1
- package/core/built/admin/assets/{mail-DG4PKpZy.js → mail-DvrqP73n.js} +1 -1
- package/core/built/admin/assets/{main-layout-BmFla3Se.js → main-layout-BAPpm0bz.js} +1 -1
- package/core/built/admin/assets/{members-d19Z6k1C.js → members-CF4CzJSf.js} +1 -1
- package/core/built/admin/assets/minus-DJIePlnU.js +1 -0
- package/core/built/admin/assets/modals-CVsVi0zu.js +35 -0
- package/core/built/admin/assets/{moderation-BWBLnh4h.js → moderation-BX1KH5QL.js} +1 -1
- package/core/built/admin/assets/{newsletter-DNY4MroI.js → newsletter-BlKeb58e.js} +1 -1
- package/core/built/admin/assets/{newsletters-B10iBPP-.js → newsletters-3In8H0Z5.js} +1 -1
- package/core/built/admin/assets/{note-S0b6wjRR.js → note-ybwJCAxm.js} +1 -1
- package/core/built/admin/assets/{offers-B-9mZqKd.js → offers-Cl0ZNEMr.js} +1 -1
- package/core/built/admin/assets/{onboarding-route-AMFn0X5G.js → onboarding-route-A3ECeMAi.js} +1 -1
- package/core/built/admin/assets/{overview-WKadyZRW.js → overview-DrMrfsk-.js} +1 -1
- package/core/built/admin/assets/{pagemenu-BofQcFaF.js → pagemenu-O7HbsehH.js} +1 -1
- package/core/built/admin/assets/{pencil-LfMcD0vS.js → pencil-CknTbJeE.js} +1 -1
- package/core/built/admin/assets/{pin-CayUjL8e.js → pin-BNs-JdQ3.js} +1 -1
- package/core/built/admin/assets/{post-analytics-DMHvt3Jl.js → post-analytics-Dk1VloZp.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-10cqioP1.js → post-analytics-context-kPL94Ivz.js} +1 -1
- package/core/built/admin/assets/{post-analytics-header-DlICE18K.js → post-analytics-header-CpMOozq-.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-Cfwy2UwD.js → post-share-modal-F0dobdhF.js} +1 -1
- package/core/built/admin/assets/posts/{alert-dialog-cQK32v9G.js → alert-dialog-NoPLULhG.js} +5 -5
- package/core/built/admin/assets/posts/{app-utils-DQ2hixop.js → app-utils-BiM9QO4L.js} +3 -3
- package/core/built/admin/assets/posts/{automations-BqkU9-zY.js → automations-BgIAmq9f.js} +3 -3
- package/core/built/admin/assets/posts/{automations-CoilKpVH.js → automations-D_XwO405.js} +30 -30
- package/core/built/admin/assets/posts/{avatar-BejAO6Rj.js → avatar-BYsYOpmq.js} +5 -5
- package/core/built/admin/assets/posts/{badge-BYGRyd2f.js → badge-B54vLono.js} +2 -2
- package/core/built/admin/assets/posts/{button-CG2Dpjqy.js → button-DMLfwOQt.js} +3 -3
- package/core/built/admin/assets/posts/{check-fsC5BvGC.js → check-D6qDi62T.js} +2 -2
- package/core/built/admin/assets/posts/{comments-CsyF5C1S.js → comments-CyYCbvUG.js} +26 -26
- package/core/built/admin/assets/posts/{data-list-JslRF2F5.js → data-list-B0DrMm-x.js} +4 -4
- package/core/built/admin/assets/posts/{dialog-3KY3A8t5.js → dialog-DtEZpY1q.js} +3 -3
- package/core/built/admin/assets/posts/{editor-3HPW_xW4.js → editor-LJHLmUoW.js} +1943 -1943
- package/core/built/admin/assets/posts/{ellipsis-BhK5S70U.js → ellipsis-JeIF0Biz.js} +2 -2
- package/core/built/admin/assets/posts/{empty-indicator-C9DbE9wZ.js → empty-indicator-dktzN32y.js} +2 -2
- package/core/built/admin/assets/posts/{filters-BCBDCnQF.js → filters-D1L-LU_m.js} +10 -10
- package/core/built/admin/assets/posts/{get-site-timezone-83C41MGz.js → get-site-timezone-dsyl8nlB.js} +3 -3
- package/core/built/admin/assets/posts/{growth-COoL1kMe.js → growth-yX8UB_ce.js} +12 -12
- package/core/built/admin/assets/posts/{heading-D3VqNO3z.js → heading-CNte43wH.js} +2 -2
- package/core/built/admin/assets/posts/{hooks-5YpJYWOw.js → hooks-BIgv7QBp.js} +2 -2
- package/core/built/admin/assets/posts/{index-Dqn5WIFh.js → index-2FO6Vy0r.js} +11 -11
- package/core/built/admin/assets/posts/{input-C1qcZBGw.js → input-BycmlCp8.js} +3 -3
- package/core/built/admin/assets/posts/{input-surface-C4vUAdbV.js → input-surface-vY3ACaso.js} +2 -2
- package/core/built/admin/assets/posts/{koenig-lexical-NZjxFY0X.js → koenig-lexical-Cq8SUcZC.js} +2 -2
- package/core/built/admin/assets/posts/{kpis-C2FEXoUT.js → kpis-CAJcU1w0.js} +27 -27
- package/core/built/admin/assets/posts/{label-CmJzmJY7.js → label-BmLTflMF.js} +3 -3
- package/core/built/admin/assets/posts/{links-nzud7t_t.js → links-BVcmMZmF.js} +4 -4
- package/core/built/admin/assets/posts/{list-page-D_rv4TgN.js → list-page-DX2WRn5T.js} +4 -4
- package/core/built/admin/assets/posts/{loading-indicator-DAOD6O2b.js → loading-indicator-C6FD4nS6.js} +3 -3
- package/core/built/admin/assets/posts/{mail-CtH0gTpq.js → mail-BMyoNUVM.js} +2 -2
- package/core/built/admin/assets/posts/{main-layout-VqvCxOXQ.js → main-layout-ClnxdW1Y.js} +2 -2
- package/core/built/admin/assets/posts/{message-circle-D4bCjxKS.js → message-circle-DwfHX-p1.js} +2 -2
- package/core/built/admin/assets/posts/{newsletter-BfwFyv6d.js → newsletter-Bid5_Bim.js} +19 -19
- package/core/built/admin/assets/posts/{overview-DKGum6ro.js → overview-BXti6Wg_.js} +18 -18
- package/core/built/admin/assets/posts/{pencil-Cffx-vm3.js → pencil-ChTk8IpW.js} +2 -2
- package/core/built/admin/assets/posts/{plus-D2ekwsq0.js → plus-DIKls8C6.js} +2 -2
- package/core/built/admin/assets/posts/{popover-DdbdKflP.js → popover-DVZsAT5u.js} +4 -4
- package/core/built/admin/assets/posts/{post-analytics-BleJYoNZ.js → post-analytics-DBL_kS0g.js} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-context-DT3Avn9Q.js → post-analytics-context-Dr5y5nxd.js} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-header-BktlrM_v.js → post-analytics-header-LH2-Jzgp.js} +13 -13
- package/core/built/admin/assets/posts/{post-share-modal-G8v3ZuSg.js → post-share-modal-D4DrfNfJ.js} +6 -6
- package/core/built/admin/assets/posts/{posts-CdWV_nlm.js → posts-ByxhcCrn.js} +2 -2
- package/core/built/admin/assets/posts/posts.js +1 -1
- package/core/built/admin/assets/posts/{search-CXP00fG8.js → search-DZR23LP-.js} +2 -2
- package/core/built/admin/assets/posts/{settings-DEXxDYc2.js → settings-CWyOKKnK.js} +2 -2
- package/core/built/admin/assets/posts/{sheet-CXHmD_eT.js → sheet-CNe7II5c.js} +3 -3
- package/core/built/admin/assets/posts/{site-C6DajagV.js → site-H9RAiQVv.js} +2 -2
- package/core/built/admin/assets/posts/{skeleton-Bihnkn8q.js → skeleton-Cn6x1x_C.js} +3 -3
- package/core/built/admin/assets/posts/{source-icon-C3oQy3UI.js → source-icon-BZOYujd1.js} +4 -4
- package/core/built/admin/assets/posts/{stats-DFicPtCX.js → stats-ugHCg8Oe.js} +4 -4
- package/core/built/admin/assets/posts/{table-DSJmeU5t.js → table-dG3Q5X95.js} +2 -2
- package/core/built/admin/assets/posts/{tabs-oRdVpN8P.js → tabs--EW8uL5B.js} +4 -4
- package/core/built/admin/assets/posts/{tags-6v5Qt_05.js → tags-DVdOfiSf.js} +2 -2
- package/core/built/admin/assets/posts/{tags-Upnkm0CF.js → tags-i0HJqNYU.js} +16 -16
- package/core/built/admin/assets/posts/{tooltip-Ci7pesWi.js → tooltip-ZvsT1Fs9.js} +4 -4
- package/core/built/admin/assets/posts/{trash-2-NCYWjRlg.js → trash-2-BT9fEHUL.js} +2 -2
- package/core/built/admin/assets/posts/{value-CcwzOh2_.js → value-DoFcsWDk.js} +2 -2
- package/core/built/admin/assets/posts/{virtual-list-window-CNahQBXY.js → virtual-list-window-Bt47XODn.js} +3 -3
- package/core/built/admin/assets/posts/{web-C3KrPq0T.js → web-BMTRLT-h.js} +20 -20
- package/core/built/admin/assets/posts/{zap-k30mZEuO.js → zap-DcIfEzKX.js} +2 -2
- package/core/built/admin/assets/{posts-DAfLuxAA.js → posts-DODOCB1E.js} +1 -1
- package/core/built/admin/assets/{power-Drkzg1xX.js → power-BZ7BM82m.js} +1 -1
- package/core/built/admin/assets/{referrers-TYxTJ2On.js → referrers-xwNb6L-8.js} +1 -1
- package/core/built/admin/assets/{repeat-CTM1qAzl.js → repeat-DHMCQMCA.js} +1 -1
- package/core/built/admin/assets/{reply-DXN16g7W.js → reply-DoLURZi2.js} +1 -1
- package/core/built/admin/assets/{rocket-DLixlWs0.js → rocket-BDH89dZr.js} +1 -1
- package/core/built/admin/assets/{select-DbiLEqYb.js → select-oE39QRll.js} +1 -1
- package/core/built/admin/assets/{send-B71C_46D.js → send-QgRN_yRy.js} +1 -1
- package/core/built/admin/assets/{settings-BBMPA3MP.js → settings-CF4NLxuS.js} +4 -4
- package/core/built/admin/assets/{settings-lSFHFrsJ.js → settings-D7e6KLAi.js} +1 -1
- package/core/built/admin/assets/{share-modal-CXrYja6o.js → share-modal-BxIh7i7o.js} +1 -1
- package/core/built/admin/assets/{sort-button-WYo-9Kge.js → sort-button-CEe_40Pi.js} +1 -1
- package/core/built/admin/assets/{source-icon-D6BzjYPP.js → source-icon-CzTNLO6j.js} +1 -1
- package/core/built/admin/assets/{sprout-DVfG_qhy.js → sprout-B2fN41p-.js} +1 -1
- package/core/built/admin/assets/{square-BbUJwQJi.js → square-CJZsjE-3.js} +1 -1
- package/core/built/admin/assets/{stats-CnXALQ4j.js → stats-jTxCK1CB.js} +1 -1
- package/core/built/admin/assets/{stats-view-B-yeMUkl.js → stats-view-B4jz69N8.js} +1 -1
- package/core/built/admin/assets/{step-1-DUl_hlpV.js → step-1-BovjhDNc.js} +1 -1
- package/core/built/admin/assets/{step-2-DjX_A4Ke.js → step-2-ClG40BfX.js} +1 -1
- package/core/built/admin/assets/{step-3-CnDCCA8T.js → step-3-ZMSyEHZI.js} +1 -1
- package/core/built/admin/assets/{table-AagTvMa9.js → table-B8Pj96or.js} +1 -1
- package/core/built/admin/assets/{tabs-IDJWnQD-.js → tabs-BZosOk0o.js} +1 -1
- package/core/built/admin/assets/{tags-CXAcIDw-.js → tags-BpWoYBfB.js} +1 -1
- package/core/built/admin/assets/{tags-C3lykbgu.js → tags-DZukMyuU.js} +1 -1
- package/core/built/admin/assets/{textarea-Cc3nUXep.js → textarea-BtnzsOk7.js} +1 -1
- package/core/built/admin/assets/{thumbs-down-SsjC2lMD.js → thumbs-down-CZTzyz7D.js} +1 -1
- package/core/built/admin/assets/{tiers-J8AeZmRd.js → tiers-Do7zBqAk.js} +1 -1
- package/core/built/admin/assets/{toggle-group-BzD8yimX.js → toggle-group-abk9FYXi.js} +1 -1
- package/core/built/admin/assets/{topic-filter-CA_L6ehz.js → topic-filter-CdMvjkmc.js} +1 -1
- package/core/built/admin/assets/{trash-BKhRqxsX.js → trash-DNXRsBf0.js} +1 -1
- package/core/built/admin/assets/{underline-_HIgX6e1.js → underline-HXWuVCAi.js} +1 -1
- package/core/built/admin/assets/{undo-2-ClkkOS0O.js → undo-2-C2ntNJKC.js} +1 -1
- package/core/built/admin/assets/{upload-DEPHbyvo.js → upload-D52l7HIb.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-BM2qWt0C.js → use-growth-stats-Dgs0UxDT.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-zyklfekn.js → use-simple-pagination-Cj2rVggA.js} +1 -1
- package/core/built/admin/assets/{user-round-check-DoaGU2hC.js → user-round-check-C0GdT99c.js} +1 -1
- package/core/built/admin/assets/{user-round-x-CwEKNuU6.js → user-round-x-CVCvxuUG.js} +1 -1
- package/core/built/admin/assets/{virtual-list-window-C0Cv0gUC.js → virtual-list-window-mdQS2bt_.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-BjdG5glh.js → wallet-cards-CtLF01jQ.js} +1 -1
- package/core/built/admin/assets/{web-BZNnanCT.js → web-DTib8_n8.js} +1 -1
- package/core/built/admin/index.html +6 -6
- package/core/frontend/helpers/ghost_foot.js +12 -2
- package/core/frontend/helpers/prev_post.js +1 -1
- package/core/frontend/helpers/tpl/gift-toast.hbs +130 -0
- package/core/frontend/services/proxy.js +9 -0
- package/core/frontend/services/routing/controllers/entry/canonical-url.js +15 -0
- package/core/frontend/services/routing/controllers/entry/canonical-url.ts +14 -0
- package/core/frontend/services/routing/controllers/entry/gift-links.js +82 -0
- package/core/frontend/services/routing/controllers/entry/gift-links.ts +92 -0
- package/core/frontend/services/routing/controllers/entry/markdown.js +62 -0
- package/core/frontend/services/routing/controllers/entry/markdown.ts +66 -0
- package/core/frontend/services/routing/controllers/entry.js +96 -105
- package/core/frontend/services/routing/controllers/entry.ts +97 -0
- package/core/frontend/services/routing/controllers/index.js +1 -1
- package/core/frontend/web/middleware/frontend-caching.js +9 -0
- package/core/server/adapters/cache/Redis.js +0 -1
- package/core/server/adapters/redirects/RedirectsStoreBase.d.ts +0 -4
- package/core/server/adapters/scheduling/scheduling-default.js +8 -1
- package/core/server/api/endpoints/gift-links.js +23 -16
- package/core/server/api/endpoints/gift-links.ts +25 -17
- package/core/server/api/endpoints/index.js +0 -1
- package/core/server/api/endpoints/previews.js +3 -24
- package/core/server/api/endpoints/utils/serializers/output/gift-links.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/gift-links.ts +4 -4
- package/core/server/api/endpoints/utils/serializers/output/index.js +0 -1
- package/core/server/api/endpoints/utils/validators/input/automation_email_previews.js +8 -9
- package/core/server/api/endpoints/utils/validators/input/index.js +0 -1
- package/core/server/data/migrations/versions/6.48/2026-06-23-00-00-00-drop-gift-links-revoked-at.js +6 -0
- package/core/server/data/migrations/versions/6.48/2026-06-23-00-00-01-rename-gift-links-revoke-all-permission-to-remove-all.js +37 -0
- package/core/server/data/migrations/versions/6.48/2026-06-24-00-00-00-drop-gift-links-redemption-columns.js +10 -0
- package/core/server/data/schema/fixtures/fixtures.json +2 -2
- package/core/server/data/schema/schema.js +1 -4
- package/core/server/data/seeders/data-generator.js +4 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +0 -1
- package/core/server/data/seeders/importers/members-newsletters-importer.js +0 -1
- package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +0 -1
- package/core/server/data/seeders/importers/members-status-events-importer.js +0 -1
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +0 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +0 -1
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +0 -1
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +0 -1
- package/core/server/lib/lexical.js +62 -36
- package/core/server/lib/post-revisions.js +0 -2
- package/core/server/lib/post-revisions.ts +0 -3
- package/core/server/models/index.js +0 -3
- package/core/server/services/auth/reset-authentication.js +0 -2
- package/core/server/services/auth/reset-authentication.ts +0 -3
- package/core/server/services/auth/session/index.js +0 -1
- package/core/server/services/automations/automations-api.js +59 -17
- package/core/server/services/automations/automations-api.ts +69 -16
- package/core/server/services/automations/database-automations-repository.js +58 -3
- package/core/server/services/automations/database-automations-repository.ts +70 -3
- package/core/server/services/automations/stale-lock-cutoff.js +7 -0
- package/core/server/services/automations/stale-lock-cutoff.ts +5 -0
- package/core/server/services/email-address/email-address-parser.js.d.ts +0 -1
- package/core/server/services/email-service/batch-sending-service.js +99 -26
- package/core/server/services/email-service/email-service-wrapper.js +7 -2
- package/core/server/services/email-service/email-service.js +146 -4
- package/core/server/services/gift-links/database.js +0 -3
- package/core/server/services/gift-links/database.ts +1 -4
- package/core/server/services/gift-links/index.js +2 -2
- package/core/server/services/gift-links/index.ts +4 -2
- package/core/server/services/gift-links/models.js +0 -2
- package/core/server/services/gift-links/models.ts +0 -2
- package/core/server/services/gift-links/queries.js +2 -2
- package/core/server/services/gift-links/queries.ts +2 -2
- package/core/server/services/gift-links/serializers.js +0 -2
- package/core/server/services/gift-links/serializers.ts +0 -2
- package/core/server/services/gift-links/service.js +54 -35
- package/core/server/services/gift-links/service.ts +70 -35
- package/core/server/services/gifts/gift-reminder-scheduler.js +0 -2
- package/core/server/services/gifts/gift-reminder-scheduler.ts +0 -2
- package/core/server/services/indexnow.js +8 -1
- package/core/server/services/internal-keys/index.js +0 -1
- package/core/server/services/internal-keys/index.ts +0 -2
- package/core/server/services/lib/dynamic-redirect-manager.d.ts +0 -1
- package/core/server/services/lib/in-memory-repository.js +0 -1
- package/core/server/services/lib/in-memory-repository.ts +0 -2
- package/core/server/services/members/api.js +0 -3
- package/core/server/services/members/create-paid-member-shim.js +31 -0
- package/core/server/services/members/create-paid-member-shim.ts +31 -0
- package/core/server/services/members/emails/signin.js +0 -1
- package/core/server/services/members/members-api/members-api.js +0 -2
- package/core/server/services/members/members-api/repositories/member-repository.js +0 -3
- package/core/server/services/members/service.js +4 -0
- package/core/server/services/post-scheduling/index.js +0 -2
- package/core/server/services/post-scheduling/index.ts +0 -2
- package/core/server/services/post-scheduling/post-scheduling.js +0 -5
- package/core/server/services/post-scheduling/post-scheduling.ts +0 -5
- package/core/server/services/recommendations/service/bookshelf-repository.js +0 -1
- package/core/server/services/recommendations/service/bookshelf-repository.ts +0 -4
- package/core/server/services/recommendations/service/incoming-recommendation-service.js +0 -1
- package/core/server/services/recommendations/service/incoming-recommendation-service.ts +0 -1
- package/core/server/services/recommendations/service/recommendation-controller.js +0 -1
- package/core/server/services/recommendations/service/recommendation-controller.ts +0 -1
- package/core/server/services/recommendations/service/recommendation-metadata-service.js +0 -1
- package/core/server/services/recommendations/service/recommendation-metadata-service.ts +0 -1
- package/core/server/services/recommendations/service/recommendation.js +0 -1
- package/core/server/services/recommendations/service/recommendation.ts +0 -1
- package/core/server/services/remote-flags/index.js +0 -1
- package/core/server/services/remote-flags/index.ts +0 -1
- package/core/server/services/slack.js +5 -1
- package/core/server/services/update-check/index.js +0 -1
- package/core/server/services/url/lazy-find-resource.js +0 -1
- package/core/server/services/url/lazy-find-resource.ts +0 -2
- package/core/server/services/url/lazy-url-service.js +0 -1
- package/core/server/services/url/lazy-url-service.ts +0 -2
- package/core/server/services/url/permalink-matcher.js +0 -1
- package/core/server/services/url/permalink-matcher.ts +0 -2
- package/core/server/services/url/router-filter.js +0 -2
- package/core/server/services/url/router-filter.ts +0 -2
- package/core/server/services/url/url-service-facade.js +0 -1
- package/core/server/services/url/url-service-facade.ts +0 -2
- package/core/server/services/verification/verification-webhook-service.js +0 -1
- package/core/server/services/verification/verification-webhook-service.ts +0 -1
- package/core/server/web/api/endpoints/admin/routes.js +7 -7
- package/core/shared/events-ts/post-deleted-event.js +0 -2
- package/core/shared/events-ts/post-deleted-event.ts +0 -2
- package/core/shared/labs.js +0 -1
- package/package.json +8 -16
- package/pnpm-lock.yaml +162 -113
- package/core/built/admin/assets/automations-BthXBzzq.js +0 -1
- package/core/built/admin/assets/editor-91xrI2A3.js +0 -8
- package/core/built/admin/assets/index-BYb09f-7.css +0 -1
- package/core/built/admin/assets/minus-DmrVsJ-z.js +0 -1
- package/core/built/admin/assets/modals-dnqxCS3l.js +0 -35
- package/core/server/models/outbox.js +0 -24
- package/core/server/services/outbox/events/start-outbox-processing-event.js +0 -22
- package/core/server/services/outbox/handlers/member-created.js +0 -85
- package/core/server/services/outbox/index.js +0 -49
- package/core/server/services/outbox/jobs/index.js +0 -30
- package/core/server/services/outbox/jobs/lib/constants.js +0 -17
- package/core/server/services/outbox/jobs/lib/process-entries.js +0 -117
- package/core/server/services/outbox/jobs/lib/process-outbox.js +0 -96
- package/core/server/services/outbox/jobs/outbox-job.js +0 -36
- package/types/ghost-storage-base.d.ts +0 -22
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./koenig-lexical-DlzcWUPw.js","./index-pkixJbdq.js","./index-BYb09f-7.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ed as b,eX as yc,d$ as u,bC as wc,q as vc,bm as bc,cL as gt,cS as $r,bj as _c,V as Ec,bN as Sc,aN as Nc,cP as Cc,ax as Mc,aQ as kc,L as jc,bp as Ic,bq as Ac,aO as Pc,u as Dc,b$ as Tc,b_ as Rc,bE as Lr,cJ as se,O as zc,K as Br,Q as Oc,eh as $c,ei as Lc,di as Bc,d2 as le,ec as Hc,bd as an,c9 as Vc,c7 as Fc,ca as Wc,c8 as Yc,be as Hr,bh as Vr,bg as Fr,eO as Zn,eP as Xc,dv as Gn,fe as Uc,eK as Wr,aU as He,ct as Zc,eY as Gc,aL as qn,J as ce,aP as Yr,dV as Kn,dA as Xr,el as qc,fh as Kc,_ as Qc,a1 as Jc,a5 as el,f as Ge,i as qe,l as Ke,m as Qe,j as Je,k as et,h as tt,a8 as tl,af as nl,dc as Wt,aa as ol,ac as Mo,ae as rl,ad as sl,cq as Ur,cb as Zr,fn as il,fq as al,fF as cl,D as ll,bP as ul,aS as dl,v as fl,bW as hl,fx as pl,eJ as gl,es as En}from"./index-pkixJbdq.js";import{M as Qn}from"./mail-DG4PKpZy.js";import{C as Jn,M as ml,P as xl}from"./power-Drkzg1xX.js";import{a as Le,c as ko,b as jo,d as yl,i as Sn}from"./value-BTdN53H7.js";import{i as wl,j as vl,g as bl,k as _l,h as El,f as Sl,v as Nl,a as Cl,e as Ml}from"./automated-emails-DbJbDLib.js";import{g as kl,e as jl,M as Io,r as Il,b as Al,u as Ao,i as Pl,a as Dl,A as Tl,f as Rl,d as zl}from"./automations-aLgTzSsZ.js";import{T as Ol,b as $l,c as Po}from"./tabs-IDJWnQD-.js";import{a as Ll}from"./newsletters-B10iBPP-.js";import{S as Bl}from"./send-B71C_46D.js";import{M as Gr}from"./minus-DmrVsJ-z.js";import{b as Hl,F as Vl,c as Fl}from"./field-Ddb1ZOqM.js";import{I as Wl,c as Yl,d as Xl,a as Ul,b as Do}from"./input-group-BOLMrDfJ.js";import{P as qr}from"./pencil-LfMcD0vS.js";import{C as Zl,E as Gl}from"./eye-CAqnnfQF.js";import"./offers-B-9mZqKd.js";import"./posts-DAfLuxAA.js";import"./nql-X2E2VBtR.js";import"./label-CVzNcbjb.js";function ql(e){b.useEffect(()=>{if(!e)return;const t=n=>{n.preventDefault(),n.returnValue=""};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}},[e])}var To=180/Math.PI,On={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Kr(e,t,n,o,r,s){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,l/=a),e*o<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:r,translateY:s,rotate:Math.atan2(t,e)*To,skewX:Math.atan(l)*To,scaleX:i,scaleY:a}}var zt;function Kl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?On:Kr(t.a,t.b,t.c,t.d,t.e,t.f)}function Ql(e){return e==null||(zt||(zt=document.createElementNS("http://www.w3.org/2000/svg","g")),zt.setAttribute("transform",e),!(e=zt.transform.baseVal.consolidate()))?On:(e=e.matrix,Kr(e.a,e.b,e.c,e.d,e.e,e.f))}function Qr(e,t,n,o){function r(c){return c.length?c.pop()+" ":""}function s(c,d,f,h,g,p){if(c!==f||d!==h){var y=g.push("translate(",null,t,null,n);p.push({i:y-4,x:Le(c,f)},{i:y-2,x:Le(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:Le(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:Le(c,d)}):d&&f.push(r(f)+"skewX("+d+o)}function l(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:Le(c,f)},{i:y-2,x:Le(d,h)})}else(f!==1||h!==1)&&g.push(r(g)+"scale("+f+","+h+")")}return function(c,d){var f=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,f,h),i(c.rotate,d.rotate,f,h),a(c.skewX,d.skewX,f,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,f,h),c=d=null,function(g){for(var p=-1,y=h.length,w;++p<y;)f[(w=h[p]).i]=w.x(g);return f.join("")}}}var Jl=Qr(Kl,"px, ","px)","deg)"),eu=Qr(Ql,", ",")",")"),tu=1e-12;function Ro(e){return((e=Math.exp(e))+1/e)/2}function nu(e){return((e=Math.exp(e))-1/e)/2}function ou(e){return((e=Math.exp(2*e))-1)/(e+1)}const Yt=(function e(t,n,o){function r(s,i){var a=s[0],l=s[1],c=s[2],d=i[0],f=i[1],h=i[2],g=d-a,p=f-l,y=g*g+p*p,w,x;if(y<tu)x=Math.log(h/c)/t,w=function(k){return[a+k*g,l+k*p,c*Math.exp(t*k*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),S=Math.log(Math.sqrt(v*v+1)-v);x=(S-C)/t,w=function(k){var A=k*x,P=Ro(C),H=c/(n*E)*(P*ou(t*A+C)-nu(C));return[a+H*g,l+H*p,c*P/Ro(t*A+C)]}}return w.duration=x*1e3*t/Math.SQRT2,w}return r.rho=function(s){var i=Math.max(.001,+s),a=i*i,l=a*a;return e(i,a,l)},r})(Math.SQRT2,2,4);var cn="ContextMenu",[ru]=Cc(cn,[$r]),ue=$r(),[su,Jr]=ru(cn),es=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:o,open:r,dir:s,modal:i=!0}=e,a=b.useRef(!1);{const f=b.useRef(!1);b.useEffect(()=>{r===!0&&!a.current&&!f.current&&(f.current=!0,console.warn("ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport."))},[r])}const[l,c]=yc({prop:r,defaultProp:!1,onChange:o,caller:cn}),d=ue(t);return u.jsx(su,{scope:t,open:l,onOpenChange:c,modal:i,hasInteractedRef:a,children:u.jsx(wc,{...d,dir:s,open:l,onOpenChange:c,modal:i,children:n})})};es.displayName=cn;var ts="ContextMenuTrigger",ns=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:o=!1,...r}=e,s=Jr(ts,n),i=ue(n),a=b.useRef({x:0,y:0}),l=b.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),c=b.useRef(0),d=b.useCallback(()=>window.clearTimeout(c.current),[]),f=h=>{s.hasInteractedRef.current=!0,a.current={x:h.clientX,y:h.clientY},s.onOpenChange(!0)};return b.useEffect(()=>d,[d]),b.useEffect(()=>{o&&d()},[o,d]),u.jsxs(u.Fragment,{children:[u.jsx(vc,{...i,virtualRef:l}),u.jsx(bc.span,{"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,...r,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:o?e.onContextMenu:gt(e.onContextMenu,h=>{d(),f(h),h.preventDefault()}),onPointerDown:o?e.onPointerDown:gt(e.onPointerDown,Ot(h=>{d(),s.open&&s.onOpenChange(!1),c.current=window.setTimeout(()=>f(h),700)})),onPointerMove:o?e.onPointerMove:gt(e.onPointerMove,Ot(d)),onPointerCancel:o?e.onPointerCancel:gt(e.onPointerCancel,Ot(d)),onPointerUp:o?e.onPointerUp:gt(e.onPointerUp,Ot(d))})]})});ns.displayName=ts;var iu="ContextMenuPortal",os=e=>{const{__scopeContextMenu:t,...n}=e,o=ue(t);return u.jsx(_c,{...o,...n})};os.displayName=iu;var rs="ContextMenuContent",ss=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=Jr(rs,n),s=ue(n),i=b.useRef(!1);return u.jsx(Ec,{...s,...o,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),!a.defaultPrevented&&i.current&&a.preventDefault(),i.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),!a.defaultPrevented&&!r.modal&&(i.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ss.displayName=rs;var au="ContextMenuGroup",cu=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Mc,{...r,...o,ref:t})});cu.displayName=au;var lu="ContextMenuLabel",is=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(kc,{...r,...o,ref:t})});is.displayName=lu;var uu="ContextMenuItem",as=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Nc,{...r,...o,ref:t})});as.displayName=uu;var du="ContextMenuCheckboxItem",cs=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(jc,{...r,...o,ref:t})});cs.displayName=du;var fu="ContextMenuRadioGroup",hu=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Ic,{...r,...o,ref:t})});hu.displayName=fu;var pu="ContextMenuRadioItem",ls=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Ac,{...r,...o,ref:t})});ls.displayName=pu;var gu="ContextMenuItemIndicator",us=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Pc,{...r,...o,ref:t})});us.displayName=gu;var mu="ContextMenuSeparator",ds=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Sc,{...r,...o,ref:t})});ds.displayName=mu;var xu="ContextMenuArrow",yu=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Dc,{...r,...o,ref:t})});yu.displayName=xu;var wu="ContextMenuSubTrigger",fs=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Tc,{...r,...o,ref:t})});fs.displayName=wu;var vu="ContextMenuSubContent",hs=b.forwardRef((e,t)=>{const{__scopeContextMenu:n,...o}=e,r=ue(n);return u.jsx(Rc,{...r,...o,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});hs.displayName=vu;function Ot(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var bu=es,_u=ns,Eu=os,ps=ss,gs=is,ms=as,xs=cs,ys=ls,ws=us,vs=ds,bs=fs,_s=hs;const Su=bu,Nu=_u,Cu=b.forwardRef(({className:e,inset:t,children:n,...o},r)=>u.jsxs(bs,{ref:r,className:se("flex cursor-default gap-2 select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden hover:bg-accent focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...o,children:[n,u.jsx(zc,{className:"ml-auto"})]}));Cu.displayName=bs.displayName;const Mu=b.forwardRef(({className:e,...t},n)=>u.jsx("div",{className:Lr,children:u.jsx(_s,{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=_s.displayName;const Es=b.forwardRef(({className:e,...t},n)=>u.jsx(Eu,{children:u.jsx("div",{className:Lr,children:u.jsx(ps,{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})})}));Es.displayName=ps.displayName;const Ss=b.forwardRef(({className:e,inset:t,variant:n="default",...o},r)=>u.jsx(ms,{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}));Ss.displayName=ms.displayName;const ku=b.forwardRef(({className:e,children:t,checked:n,...o},r)=>u.jsxs(xs,{ref:r,checked:n,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[u.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:u.jsx(ws,{children:u.jsx(Br,{className:"size-4"})})}),t]}));ku.displayName=xs.displayName;const ju=b.forwardRef(({className:e,children:t,...n},o)=>u.jsxs(ys,{ref:o,className:se("relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[u.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:u.jsx(ws,{children:u.jsx(Oc,{className:"size-2 fill-current"})})}),t]}));ju.displayName=ys.displayName;const Iu=b.forwardRef(({className:e,inset:t,...n},o)=>u.jsx(gs,{ref:o,className:se("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));Iu.displayName=gs.displayName;const Ns=b.forwardRef(({className:e,...t},n)=>u.jsx(vs,{ref:n,className:se("-mx-1 my-1 h-px bg-muted",e),...t}));Ns.displayName=vs.displayName;const zo=({icon:e,label:t,description:n,onClick:o})=>u.jsxs("button",{className:"flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm hover:bg-grey-50 focus-visible:bg-grey-50 focus-visible:outline-none dark:hover:bg-grey-900 dark:focus-visible:bg-grey-900",type:"button",onClick:o,children:[u.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:u.jsx(e,{className:"size-4"})}),u.jsxs("div",{className:"flex min-w-0 flex-col",children:[u.jsx("span",{className:"font-medium",children:t}),u.jsx("span",{className:"text-xs text-text-secondary",children:n})]})]}),Cs=({onPick:e})=>u.jsxs("div",{className:"flex w-72 flex-col gap-1 p-1","data-testid":"step-picker",children:[u.jsx(zo,{description:"Send an email",icon:Qn,label:"Email",onClick:()=>e("send_email")}),u.jsx(zo,{description:"Add a delay before the next step",icon:Jn,label:"Wait",onClick:()=>e("wait")})]});function 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 ln(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new Xt(n)}function Xt(e){this._=e}function Pu(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}Xt.prototype=ln.prototype={constructor:Xt,on:function(e,t){var n=this._,o=Pu(e+"",n),r,s=-1,i=o.length;if(arguments.length<2){for(;++s<i;)if((r=(e=o[s]).type)&&(r=Du(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<i;)if(r=(e=o[s]).type)n[r]=Oo(n[r],e.name,t);else if(t==null)for(r in n)n[r]=Oo(n[r],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Xt(e)},call:function(e,t){if((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,s;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(s=this._[e],o=0,r=s.length;o<r;++o)s[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)}};function Du(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function Oo(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=Au,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var $n="http://www.w3.org/1999/xhtml";const $o={svg:"http://www.w3.org/2000/svg",xhtml:$n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function un(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),$o.hasOwnProperty(t)?{space:$o[t],local:e}:e}function Tu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===$n&&t.documentElement.namespaceURI===$n?t.createElement(e):t.createElementNS(n,e)}}function Ru(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ms(e){var t=un(e);return(t.local?Ru:Tu)(t)}function zu(){}function eo(e){return e==null?zu:function(){return this.querySelector(e)}}function Ou(e){typeof e!="function"&&(e=eo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=new Array(i),l,c,d=0;d<i;++d)(l=s[d])&&(c=e.call(l,l.__data__,d,s))&&("__data__"in l&&(c.__data__=l.__data__),a[d]=c);return new ge(o,this._parents)}function $u(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Lu(){return[]}function ks(e){return e==null?Lu:function(){return this.querySelectorAll(e)}}function Bu(e){return function(){return $u(e.apply(this,arguments))}}function Hu(e){typeof e=="function"?e=Bu(e):e=ks(e);for(var t=this._groups,n=t.length,o=[],r=[],s=0;s<n;++s)for(var i=t[s],a=i.length,l,c=0;c<a;++c)(l=i[c])&&(o.push(e.call(l,l.__data__,c,i)),r.push(l));return new ge(o,r)}function js(e){return function(){return this.matches(e)}}function Is(e){return function(t){return t.matches(e)}}var Vu=Array.prototype.find;function Fu(e){return function(){return Vu.call(this.children,e)}}function Wu(){return this.firstElementChild}function Yu(e){return this.select(e==null?Wu:Fu(typeof e=="function"?e:Is(e)))}var Xu=Array.prototype.filter;function Uu(){return Array.from(this.children)}function Zu(e){return function(){return Xu.call(this.children,e)}}function Gu(e){return this.selectAll(e==null?Uu:Zu(typeof e=="function"?e:Is(e)))}function qu(e){typeof e!="function"&&(e=js(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new ge(o,this._parents)}function As(e){return new Array(e.length)}function Ku(){return new ge(this._enter||this._groups.map(As),this._parents)}function Qt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Qt.prototype={constructor:Qt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Qu(e){return function(){return e}}function Ju(e,t,n,o,r,s){for(var i=0,a,l=t.length,c=s.length;i<c;++i)(a=t[i])?(a.__data__=s[i],o[i]=a):n[i]=new Qt(e,s[i]);for(;i<l;++i)(a=t[i])&&(r[i]=a)}function ed(e,t,n,o,r,s,i){var a,l,c=new Map,d=t.length,f=s.length,h=new Array(d),g;for(a=0;a<d;++a)(l=t[a])&&(h[a]=g=i.call(l,l.__data__,a,t)+"",c.has(g)?r[a]=l:c.set(g,l));for(a=0;a<f;++a)g=i.call(e,s[a],a,s)+"",(l=c.get(g))?(o[a]=l,l.__data__=s[a],c.delete(g)):n[a]=new Qt(e,s[a]);for(a=0;a<d;++a)(l=t[a])&&c.get(h[a])===l&&(r[a]=l)}function td(e){return e.__data__}function nd(e,t){if(!arguments.length)return Array.from(this,td);var n=t?ed:Ju,o=this._parents,r=this._groups;typeof e!="function"&&(e=Qu(e));for(var s=r.length,i=new Array(s),a=new Array(s),l=new Array(s),c=0;c<s;++c){var d=o[c],f=r[c],h=f.length,g=od(e.call(d,d&&d.__data__,c,o)),p=g.length,y=a[c]=new Array(p),w=i[c]=new Array(p),x=l[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 ge(i,o),i._enter=a,i._exit=l,i}function od(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function rd(){return new ge(this._exit||this._groups.map(As),this._parents)}function sd(e,t,n){var o=this.enter(),r=this,s=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?s.remove():n(s),o&&r?o.merge(r).order():r}function id(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,s=o.length,i=Math.min(r,s),a=new Array(r),l=0;l<i;++l)for(var c=n[l],d=o[l],f=c.length,h=a[l]=new Array(f),g,p=0;p<f;++p)(g=c[p]||d[p])&&(h[p]=g);for(;l<r;++l)a[l]=n[l];return new ge(a,this._parents)}function ad(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,s=o[r],i;--r>=0;)(i=o[r])&&(s&&i.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(i,s),s=i);return this}function cd(e){e||(e=ld);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,o=n.length,r=new Array(o),s=0;s<o;++s){for(var i=n[s],a=i.length,l=r[s]=new Array(a),c,d=0;d<a;++d)(c=i[d])&&(l[d]=c);l.sort(t)}return new ge(r,this._parents).order()}function ld(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ud(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function dd(){return Array.from(this)}function fd(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,s=o.length;r<s;++r){var i=o[r];if(i)return i}return null}function hd(){let e=0;for(const t of this)++e;return e}function pd(){return!this.node()}function gd(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],s=0,i=r.length,a;s<i;++s)(a=r[s])&&e.call(a,a.__data__,s,r);return this}function md(e){return function(){this.removeAttribute(e)}}function xd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function yd(e,t){return function(){this.setAttribute(e,t)}}function wd(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function bd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function _d(e,t){var n=un(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?xd:md:typeof t=="function"?n.local?bd:vd:n.local?wd:yd)(n,t))}function Ps(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function 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??"")):st(this.node(),e)}function st(e,t){return e.style.getPropertyValue(t)||Ps(e).getComputedStyle(e,null).getPropertyValue(t)}function Md(e){return function(){delete this[e]}}function kd(e,t){return function(){this[e]=t}}function jd(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Id(e,t){return arguments.length>1?this.each((t==null?Md:typeof t=="function"?jd:kd)(e,t)):this.node()[e]}function Ds(e){return e.trim().split(/^|\s+/)}function to(e){return e.classList||new Ts(e)}function Ts(e){this._node=e,this._names=Ds(e.getAttribute("class")||"")}Ts.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Rs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function zs(e,t){for(var n=to(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Ad(e){return function(){Rs(this,e)}}function Pd(e){return function(){zs(this,e)}}function Dd(e,t){return function(){(t.apply(this,arguments)?Rs:zs)(this,e)}}function Td(e,t){var n=Ds(e+"");if(arguments.length<2){for(var o=to(this.node()),r=-1,s=n.length;++r<s;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?Dd:t?Ad:Pd)(n,t))}function Rd(){this.textContent=""}function zd(e){return function(){this.textContent=e}}function Od(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function $d(e){return arguments.length?this.each(e==null?Rd:(typeof e=="function"?Od:zd)(e)):this.node().textContent}function Ld(){this.innerHTML=""}function Bd(e){return function(){this.innerHTML=e}}function Hd(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Vd(e){return arguments.length?this.each(e==null?Ld:(typeof e=="function"?Hd:Bd)(e)):this.node().innerHTML}function Fd(){this.nextSibling&&this.parentNode.appendChild(this)}function Wd(){return this.each(Fd)}function Yd(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xd(){return this.each(Yd)}function Ud(e){var t=typeof e=="function"?e:Ms(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Zd(){return null}function Gd(e,t){var n=typeof e=="function"?e:Ms(e),o=t==null?Zd:typeof t=="function"?t:eo(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function qd(){var e=this.parentNode;e&&e.removeChild(this)}function Kd(){return this.each(qd)}function Qd(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Jd(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ef(e){return this.select(e?Jd:Qd)}function tf(e){return arguments.length?this.property("__data__",e):this.node().__data__}function nf(e){return function(t){e.call(this,t,this.__data__)}}function of(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function rf(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,s;n<r;++n)s=t[n],(!e.type||s.type===e.type)&&s.name===e.name?this.removeEventListener(s.type,s.listener,s.options):t[++o]=s;++o?t.length=o:delete this.__on}}}function sf(e,t,n){return function(){var o=this.__on,r,s=nf(t);if(o){for(var i=0,a=o.length;i<a;++i)if((r=o[i]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=s,r.options=n),r.value=t;return}}this.addEventListener(e.type,s,n),r={type:e.type,name:e.name,value:t,listener:s,options:n},o?o.push(r):this.__on=[r]}}function af(e,t,n){var o=of(e+""),r,s=o.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,d;l<c;++l)for(r=0,d=a[l];r<s;++r)if((i=o[r]).type===d.type&&i.name===d.name)return d.value}return}for(a=t?sf:rf,r=0;r<s;++r)this.each(a(o[r],t,n));return this}function Os(e,t,n){var o=Ps(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function cf(e,t){return function(){return Os(this,e,t)}}function lf(e,t){return function(){return Os(this,e,t.apply(this,arguments))}}function uf(e,t){return this.each((typeof t=="function"?lf:cf)(e,t))}function*df(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,s=o.length,i;r<s;++r)(i=o[r])&&(yield i)}var $s=[null];function ge(e,t){this._groups=e,this._parents=t}function Pt(){return new ge([[document.documentElement]],$s)}function ff(){return this}ge.prototype=Pt.prototype={constructor:ge,select:Ou,selectAll:Hu,selectChild:Yu,selectChildren:Gu,filter:qu,data:nd,enter:Ku,exit:rd,join:sd,merge:id,selection:ff,order:ad,sort:cd,call:ud,nodes:dd,node:fd,size:hd,empty:pd,each:gd,attr:_d,style:Cd,property:Id,classed:Td,text:$d,html:Vd,raise:Wd,lower:Xd,append:Ud,insert:Gd,remove:Kd,clone:ef,datum:tf,on:af,dispatch:uf,[Symbol.iterator]:df};function pe(e){return typeof e=="string"?new ge([[document.querySelector(e)]],[document.documentElement]):new ge([[e]],$s)}function hf(e){let t;for(;t=e.sourceEvent;)e=t;return e}function xe(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},Et={capture:!0,passive:!1};function Nn(e){e.stopImmediatePropagation()}function rt(e){e.preventDefault(),e.stopImmediatePropagation()}function Ls(e){var t=e.document.documentElement,n=pe(e).on("dragstart.drag",rt,Et);"onselectstart"in t?n.on("selectstart.drag",rt,Et):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Bs(e,t){var n=e.document.documentElement,o=pe(e).on("dragstart.drag",null);t&&(o.on("click.drag",rt,Et),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const $t=e=>()=>e;function Ln(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:s,x:i,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}Ln.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function gf(e){return!e.ctrlKey&&!e.button}function mf(){return this.parentNode}function xf(e,t){return t??{x:e.x,y:e.y}}function yf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Hs(){var e=gf,t=mf,n=xf,o=yf,r={},s=ln("start","drag","end"),i=0,a,l,c,d,f=0;function h(v){v.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",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 S=m(this,t.call(this,v,C),v,C,"mouse");S&&(pe(v.view).on("mousemove.drag",p,Et).on("mouseup.drag",y,Et),Ls(v.view),Nn(v),c=!1,a=v.clientX,l=v.clientY,S("start",v))}}function p(v){if(rt(v),!c){var C=v.clientX-a,S=v.clientY-l;c=C*C+S*S>f}r.mouse("drag",v)}function y(v){pe(v.view).on("mousemove.drag mouseup.drag",null),Bs(v.view,c),rt(v),r.mouse("end",v)}function w(v,C){if(e.call(this,v,C)){var S=v.changedTouches,k=t.call(this,v,C),A=S.length,P,H;for(P=0;P<A;++P)(H=m(this,k,v,C,S[P].identifier,S[P]))&&(Nn(v),H("start",v,S[P]))}}function x(v){var C=v.changedTouches,S=C.length,k,A;for(k=0;k<S;++k)(A=r[C[k].identifier])&&(rt(v),A("drag",v,C[k]))}function E(v){var C=v.changedTouches,S=C.length,k,A;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),k=0;k<S;++k)(A=r[C[k].identifier])&&(Nn(v),A("end",v,C[k]))}function m(v,C,S,k,A,P){var H=s.copy(),j=xe(P||S,C),R,$,_;if((_=n.call(v,new Ln("beforestart",{sourceEvent:S,target:h,identifier:A,active:i,x:j[0],y:j[1],dx:0,dy:0,dispatch:H}),k))!=null)return R=_.x-j[0]||0,$=_.y-j[1]||0,function N(M,I,T){var D=j,L;switch(M){case"start":r[A]=N,L=i++;break;case"end":delete r[A],--i;case"drag":j=xe(T||I,C),L=i;break}H.call(M,v,new Ln(M,{sourceEvent:I,subject:_,target:h,identifier:A,active:L,x:j[0]+R,y:j[1]+$,dx:j[0]-D[0],dy:j[1]-D[1],dispatch:H}),k)}}return h.filter=function(v){return arguments.length?(e=typeof v=="function"?v:$t(!!v),h):e},h.container=function(v){return arguments.length?(t=typeof v=="function"?v:$t(v),h):t},h.subject=function(v){return arguments.length?(n=typeof v=="function"?v:$t(v),h):n},h.touchable=function(v){return arguments.length?(o=typeof v=="function"?v:$t(!!v),h):o},h.on=function(){var v=s.on.apply(s,arguments);return v===s?h:v},h.clickDistance=function(v){return arguments.length?(f=(v=+v)*v,h):Math.sqrt(f)},h}var it=0,yt=0,mt=0,Vs=1e3,Jt,wt,en=0,We=0,dn=0,St=typeof performance=="object"&&performance.now?performance:Date,Fs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function no(){return We||(Fs(wf),We=St.now()+dn)}function wf(){We=0}function tn(){this._call=this._time=this._next=null}tn.prototype=Ws.prototype={constructor:tn,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?no():+n)+(t==null?0:+t),!this._next&&wt!==this&&(wt?wt._next=this:Jt=this,wt=this),this._call=e,this._time=n,Bn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Bn())}};function Ws(e,t,n){var o=new tn;return o.restart(e,t,n),o}function vf(){no(),++it;for(var e=Jt,t;e;)(t=We-e._time)>=0&&e._call.call(void 0,t),e=e._next;--it}function Lo(){We=(en=St.now())+dn,it=yt=0;try{vf()}finally{it=0,_f(),We=0}}function bf(){var e=St.now(),t=e-en;t>Vs&&(dn-=t,en=e)}function _f(){for(var e,t=Jt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Jt=n);wt=e,Bn(o)}function Bn(e){if(!it){yt&&(yt=clearTimeout(yt));var t=e-We;t>24?(e<1/0&&(yt=setTimeout(Lo,e-St.now()-dn)),mt&&(mt=clearInterval(mt))):(mt||(en=St.now(),mt=setInterval(bf,Vs)),it=1,Fs(Lo))}}function Bo(e,t,n){var o=new tn;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var Ef=ln("start","end","cancel","interrupt"),Sf=[],Ys=0,Ho=1,Hn=2,Ut=3,Vo=4,Vn=5,Zt=6;function fn(e,t,n,o,r,s){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;Nf(e,n,{name:t,index:o,group:r,on:Ef,tween:Sf,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Ys})}function oo(e,t){var n=be(e,t);if(n.state>Ys)throw new Error("too late; already scheduled");return n}function _e(e,t){var n=be(e,t);if(n.state>Ut)throw new Error("too late; already running");return n}function be(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Nf(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=Ws(s,0,n.time);function s(c){n.state=Ho,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var d,f,h,g;if(n.state!==Ho)return l();for(d in o)if(g=o[d],g.name===n.name){if(g.state===Ut)return Bo(i);g.state===Vo?(g.state=Zt,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[d]):+d<t&&(g.state=Zt,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete o[d])}if(Bo(function(){n.state===Ut&&(n.state=Vo,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=Hn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Hn){for(n.state=Ut,r=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(g=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(r[++f]=g);r.length=f+1}}function a(c){for(var d=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=Vn,1),f=-1,h=r.length;++f<h;)r[f].call(e,d);n.state===Vn&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Zt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function Gt(e,t){var n=e.__transition,o,r,s=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((o=n[i]).name!==t){s=!1;continue}r=o.state>Hn&&o.state<Vn,o.state=Zt,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[i]}s&&delete e.__transition}}function Cf(e){return this.each(function(){Gt(this,e)})}function Mf(e,t){var n,o;return function(){var r=_e(this,e),s=r.tween;if(s!==n){o=n=s;for(var i=0,a=o.length;i<a;++i)if(o[i].name===t){o=o.slice(),o.splice(i,1);break}}r.tween=o}}function kf(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var s=_e(this,e),i=s.tween;if(i!==o){r=(o=i).slice();for(var a={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=a;break}l===c&&r.push(a)}s.tween=r}}function jf(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=be(this.node(),n).tween,r=0,s=o.length,i;r<s;++r)if((i=o[r]).name===e)return i.value;return null}return this.each((t==null?Mf:kf)(n,e,t))}function ro(e,t,n){var o=e._id;return e.each(function(){var r=_e(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return be(r,o).value[t]}}function Xs(e,t){var n;return(typeof t=="number"?Le:t instanceof ko?jo:(n=ko(t))?(t=n,jo):yl)(e,t)}function If(e){return function(){this.removeAttribute(e)}}function Af(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Pf(e,t,n){var o,r=n+"",s;return function(){var i=this.getAttribute(e);return i===r?null:i===o?s:s=t(o=i,n)}}function Df(e,t,n){var o,r=n+"",s;return function(){var i=this.getAttributeNS(e.space,e.local);return i===r?null:i===o?s:s=t(o=i,n)}}function Tf(e,t,n){var o,r,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a)))}}function Rf(e,t,n){var o,r,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a)))}}function zf(e,t){var n=un(e),o=n==="transform"?eu:Xs;return this.attrTween(e,typeof t=="function"?(n.local?Rf:Tf)(n,o,ro(this,"attr."+e,t)):t==null?(n.local?Af:If)(n):(n.local?Df:Pf)(n,o,t))}function Of(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function $f(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Lf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&$f(e,s)),n}return r._value=t,r}function Bf(e,t){var n,o;function r(){var s=t.apply(this,arguments);return s!==o&&(n=(o=s)&&Of(e,s)),n}return r._value=t,r}function Hf(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var o=un(e);return this.tween(n,(o.local?Lf:Bf)(o,t))}function Vf(e,t){return function(){oo(this,e).delay=+t.apply(this,arguments)}}function Ff(e,t){return t=+t,function(){oo(this,e).delay=t}}function Wf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Vf:Ff)(t,e)):be(this.node(),t).delay}function Yf(e,t){return function(){_e(this,e).duration=+t.apply(this,arguments)}}function Xf(e,t){return t=+t,function(){_e(this,e).duration=t}}function Uf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Yf:Xf)(t,e)):be(this.node(),t).duration}function Zf(e,t){if(typeof t!="function")throw new Error;return function(){_e(this,e).ease=t}}function Gf(e){var t=this._id;return arguments.length?this.each(Zf(t,e)):be(this.node(),t).ease}function qf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;_e(this,e).ease=n}}function Kf(e){if(typeof e!="function")throw new Error;return this.each(qf(this._id,e))}function Qf(e){typeof e!="function"&&(e=js(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var s=t[r],i=s.length,a=o[r]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new Ie(o,this._parents,this._name,this._id)}function Jf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,s=Math.min(o,r),i=new Array(o),a=0;a<s;++a)for(var l=t[a],c=n[a],d=l.length,f=i[a]=new Array(d),h,g=0;g<d;++g)(h=l[g]||c[g])&&(f[g]=h);for(;a<o;++a)i[a]=t[a];return new Ie(i,this._parents,this._name,this._id)}function eh(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function th(e,t,n){var o,r,s=eh(t)?oo:_e;return function(){var i=s(this,e),a=i.on;a!==o&&(r=(o=a).copy()).on(t,n),i.on=r}}function nh(e,t){var n=this._id;return arguments.length<2?be(this.node(),n).on.on(e):this.each(th(n,e,t))}function oh(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function rh(){return this.on("end.remove",oh(this._id))}function sh(e){var t=this._name,n=this._id;typeof e!="function"&&(e=eo(e));for(var o=this._groups,r=o.length,s=new Array(r),i=0;i<r;++i)for(var a=o[i],l=a.length,c=s[i]=new Array(l),d,f,h=0;h<l;++h)(d=a[h])&&(f=e.call(d,d.__data__,h,a))&&("__data__"in d&&(f.__data__=d.__data__),c[h]=f,fn(c[h],t,n,h,c,be(d,n)));return new Ie(s,this._parents,t,n)}function ih(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ks(e));for(var o=this._groups,r=o.length,s=[],i=[],a=0;a<r;++a)for(var l=o[a],c=l.length,d,f=0;f<c;++f)if(d=l[f]){for(var h=e.call(d,d.__data__,f,l),g,p=be(d,n),y=0,w=h.length;y<w;++y)(g=h[y])&&fn(g,t,n,y,h,p);s.push(h),i.push(d)}return new Ie(s,i,t,n)}var ah=Pt.prototype.constructor;function ch(){return new ah(this._groups,this._parents)}function lh(e,t){var n,o,r;return function(){var s=st(this,e),i=(this.style.removeProperty(e),st(this,e));return s===i?null:s===n&&i===o?r:r=t(n=s,o=i)}}function Us(e){return function(){this.style.removeProperty(e)}}function uh(e,t,n){var o,r=n+"",s;return function(){var i=st(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=st(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),st(this,e))),i===l?null:i===o&&l===r?s:(r=l,s=t(o=i,a))}}function fh(e,t){var n,o,r,s="style."+t,i="end."+s,a;return function(){var l=_e(this,e),c=l.on,d=l.value[s]==null?a||(a=Us(t)):void 0;(c!==n||r!==d)&&(o=(n=c).copy()).on(i,r=d),l.on=o}}function hh(e,t,n){var o=(e+="")=="transform"?Jl:Xs;return t==null?this.styleTween(e,lh(e,o)).on("end.style."+e,Us(e)):typeof t=="function"?this.styleTween(e,dh(e,o,ro(this,"style."+e,t))).each(fh(this._id,e)):this.styleTween(e,uh(e,o,t),n).on("end.style."+e,null)}function ph(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function gh(e,t,n){var o,r;function s(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&ph(e,i,n)),o}return s._value=t,s}function mh(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,gh(e,t,n??""))}function xh(e){return function(){this.textContent=e}}function yh(e){return function(){var t=e(this);this.textContent=t??""}}function wh(e){return this.tween("text",typeof e=="function"?yh(ro(this,"text",e)):xh(e==null?"":e+""))}function vh(e){return function(t){this.textContent=e.call(this,t)}}function bh(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&vh(r)),t}return o._value=e,o}function _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=Zs(),o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,l,c=0;c<a;++c)if(l=i[c]){var d=be(l,t);fn(l,e,n,c,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ie(o,this._parents,e,n)}function Sh(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(s,i){var a={value:i},l={value:function(){--r===0&&s()}};n.each(function(){var c=_e(this,o),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),r===0&&s()})}var Nh=0;function Ie(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Zs(){return++Nh}var Ce=Pt.prototype;Ie.prototype={constructor:Ie,select:sh,selectAll:ih,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:Qf,merge:Jf,selection:ch,transition:Eh,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:nh,attr:zf,attrTween:Hf,style:hh,styleTween:mh,text:wh,textTween:_h,remove:rh,tween:jf,delay:Wf,duration:Uf,ease:Gf,easeVarying:Kf,end:Sh,[Symbol.iterator]:Ce[Symbol.iterator]};function Ch(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Mh={time:null,delay:0,duration:250,ease:Ch};function kh(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function jh(e){var t,n;e instanceof Ie?(t=e._id,e=e._name):(t=Zs(),(n=Mh).time=no(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,s=0;s<r;++s)for(var i=o[s],a=i.length,l,c=0;c<a;++c)(l=i[c])&&fn(l,e,t,c,i,n||kh(l,t));return new Ie(o,this._parents,e,t)}Pt.prototype.interrupt=Cf;Pt.prototype.transition=jh;const Lt=e=>()=>e;function Ih(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function ke(e,t,n){this.k=e,this.x=t,this.y=n}ke.prototype={constructor:ke,scale:function(e){return e===1?this:new ke(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ke(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var hn=new ke(1,0,0);Gs.prototype=ke.prototype;function Gs(e){for(;!e.__zoom;)if(!(e=e.parentNode))return hn;return e.__zoom}function Cn(e){e.stopImmediatePropagation()}function xt(e){e.preventDefault(),e.stopImmediatePropagation()}function Ah(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Ph(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Fo(){return this.__zoom||hn}function Dh(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Th(){return navigator.maxTouchPoints||"ontouchstart"in this}function Rh(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),i>s?(s+i)/2:Math.min(0,s)||Math.max(0,i))}function qs(){var e=Ah,t=Ph,n=Rh,o=Dh,r=Th,s=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Yt,c=ln("start","zoom","end"),d,f,h,g=500,p=150,y=0,w=10;function x(_){_.property("__zoom",Fo).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",H).filter(r).on("touchstart.zoom",j).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}x.transform=function(_,N,M,I){var T=_.selection?_.selection():_;T.property("__zoom",Fo),_!==T?C(_,N,M,I):T.interrupt().each(function(){S(this,arguments).event(I).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},x.scaleBy=function(_,N,M,I){x.scaleTo(_,function(){var T=this.__zoom.k,D=typeof N=="function"?N.apply(this,arguments):N;return T*D},M,I)},x.scaleTo=function(_,N,M,I){x.transform(_,function(){var T=t.apply(this,arguments),D=this.__zoom,L=M==null?v(T):typeof M=="function"?M.apply(this,arguments):M,B=D.invert(L),O=typeof N=="function"?N.apply(this,arguments):N;return n(m(E(D,O),L,B),T,i)},M,I)},x.translateBy=function(_,N,M,I){x.transform(_,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),i)},null,I)},x.translateTo=function(_,N,M,I,T){x.transform(_,function(){var D=t.apply(this,arguments),L=this.__zoom,B=I==null?v(D):typeof I=="function"?I.apply(this,arguments):I;return n(hn.translate(B[0],B[1]).scale(L.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof M=="function"?-M.apply(this,arguments):-M),D,i)},I,T)};function E(_,N){return N=Math.max(s[0],Math.min(s[1],N)),N===_.k?_:new ke(N,_.x,_.y)}function m(_,N,M){var I=N[0]-M[0]*_.k,T=N[1]-M[1]*_.k;return I===_.x&&T===_.y?_:new ke(_.k,I,T)}function v(_){return[(+_[0][0]+ +_[1][0])/2,(+_[0][1]+ +_[1][1])/2]}function C(_,N,M,I){_.on("start.zoom",function(){S(this,arguments).event(I).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(I).end()}).tween("zoom",function(){var T=this,D=arguments,L=S(T,D).event(I),B=t.apply(T,D),O=M==null?v(B):typeof M=="function"?M.apply(T,D):M,q=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),G=T.__zoom,V=typeof N=="function"?N.apply(T,D):N,X=l(G.invert(O).concat(q/G.k),V.invert(O).concat(q/V.k));return function(Y){if(Y===1)Y=V;else{var z=X(Y),U=q/z[2];Y=new ke(U,O[0]-z[0]*U,O[1]-z[1]*U)}L.zoom(null,Y)}})}function S(_,N,M){return!M&&_.__zooming||new k(_,N)}function k(_,N){this.that=_,this.args=N,this.active=0,this.sourceEvent=null,this.extent=t.apply(_,N),this.taps=0}k.prototype={event:function(_){return _&&(this.sourceEvent=_),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(_,N){return this.mouse&&_!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&_!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&_!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(_){var N=pe(this.that).datum();c.call(_,this.that,new Ih(_,{sourceEvent:this.sourceEvent,target:x,transform:this.that.__zoom,dispatch:c}),N)}};function A(_,...N){if(!e.apply(this,arguments))return;var M=S(this,N).event(_),I=this.__zoom,T=Math.max(s[0],Math.min(s[1],I.k*Math.pow(2,o.apply(this,arguments)))),D=xe(_);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=I.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(I.k===T)return;M.mouse=[D,I.invert(D)],Gt(this),M.start()}xt(_),M.wheel=setTimeout(L,p),M.zoom("mouse",n(m(E(I,T),M.mouse[0],M.mouse[1]),M.extent,i));function L(){M.wheel=null,M.end()}}function P(_,...N){if(h||!e.apply(this,arguments))return;var M=_.currentTarget,I=S(this,N,!0).event(_),T=pe(_.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",q,!0),D=xe(_,M),L=_.clientX,B=_.clientY;Ls(_.view),Cn(_),I.mouse=[D,this.__zoom.invert(D)],Gt(this),I.start();function O(G){if(xt(G),!I.moved){var V=G.clientX-L,X=G.clientY-B;I.moved=V*V+X*X>y}I.event(G).zoom("mouse",n(m(I.that.__zoom,I.mouse[0]=xe(G,M),I.mouse[1]),I.extent,i))}function q(G){T.on("mousemove.zoom mouseup.zoom",null),Bs(G.view,I.moved),xt(G),I.event(G).end()}}function H(_,...N){if(e.apply(this,arguments)){var M=this.__zoom,I=xe(_.changedTouches?_.changedTouches[0]:_,this),T=M.invert(I),D=M.k*(_.shiftKey?.5:2),L=n(m(E(M,D),I,T),t.apply(this,N),i);xt(_),a>0?pe(this).transition().duration(a).call(C,L,I,_):pe(this).call(x.transform,L,I,_)}}function j(_,...N){if(e.apply(this,arguments)){var M=_.touches,I=M.length,T=S(this,N,_.changedTouches.length===I).event(_),D,L,B,O;for(Cn(_),L=0;L<I;++L)B=M[L],O=xe(B,this),O=[O,this.__zoom.invert(O),B.identifier],T.touch0?!T.touch1&&T.touch0[2]!==O[2]&&(T.touch1=O,T.taps=0):(T.touch0=O,D=!0,T.taps=1+!!d);d&&(d=clearTimeout(d)),D&&(T.taps<2&&(f=O[0],d=setTimeout(function(){d=null},g)),Gt(this),T.start())}}function R(_,...N){if(this.__zooming){var M=S(this,N).event(_),I=_.changedTouches,T=I.length,D,L,B,O;for(xt(_),D=0;D<T;++D)L=I[D],B=xe(L,this),M.touch0&&M.touch0[2]===L.identifier?M.touch0[0]=B:M.touch1&&M.touch1[2]===L.identifier&&(M.touch1[0]=B);if(L=M.that.__zoom,M.touch1){var q=M.touch0[0],G=M.touch0[1],V=M.touch1[0],X=M.touch1[1],Y=(Y=V[0]-q[0])*Y+(Y=V[1]-q[1])*Y,z=(z=X[0]-G[0])*z+(z=X[1]-G[1])*z;L=E(L,Math.sqrt(Y/z)),B=[(q[0]+V[0])/2,(q[1]+V[1])/2],O=[(G[0]+X[0])/2,(G[1]+X[1])/2]}else if(M.touch0)B=M.touch0[0],O=M.touch0[1];else return;M.zoom("touch",n(m(L,B,O),M.extent,i))}}function $(_,...N){if(this.__zooming){var M=S(this,N).event(_),I=_.changedTouches,T=I.length,D,L;for(Cn(_),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),D=0;D<T;++D)L=I[D],M.touch0&&M.touch0[2]===L.identifier?delete M.touch0:M.touch1&&M.touch1[2]===L.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(L=xe(L,this),Math.hypot(f[0]-L[0],f[1]-L[1])<w)){var B=pe(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return x.wheelDelta=function(_){return arguments.length?(o=typeof _=="function"?_:Lt(+_),x):o},x.filter=function(_){return arguments.length?(e=typeof _=="function"?_:Lt(!!_),x):e},x.touchable=function(_){return arguments.length?(r=typeof _=="function"?_:Lt(!!_),x):r},x.extent=function(_){return arguments.length?(t=typeof _=="function"?_:Lt([[+_[0][0],+_[0][1]],[+_[1][0],+_[1][1]]]),x):t},x.scaleExtent=function(_){return arguments.length?(s[0]=+_[0],s[1]=+_[1],x):[s[0],s[1]]},x.translateExtent=function(_){return arguments.length?(i[0][0]=+_[0][0],i[1][0]=+_[1][0],i[0][1]=+_[0][1],i[1][1]=+_[1][1],x):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},x.constrain=function(_){return arguments.length?(n=_,x):n},x.duration=function(_){return arguments.length?(a=+_,x):a},x.interpolate=function(_){return arguments.length?(l=_,x):l},x.on=function(){var _=c.on.apply(c,arguments);return _===c?x:_},x.clickDistance=function(_){return arguments.length?(y=(_=+_)*_,x):Math.sqrt(y)},x.tapDistance=function(_){return arguments.length?(w=+_,x):w},x}const ve={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Nt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Ks=["Enter"," ","Escape"],Qs={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var at;(function(e){e.Strict="strict",e.Loose="loose"})(at||(at={}));var Fe;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Fe||(Fe={}));var Ct;(function(e){e.Partial="partial",e.Full="full"})(Ct||(Ct={}));const Js={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Re;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Re||(Re={}));var nn;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(nn||(nn={}));var K;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(K||(K={}));const Wo={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function ei(e){return e===null?null:e?"valid":"invalid"}const ti=e=>"id"in e&&"source"in e&&"target"in e,zh=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),so=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Dt=(e,t=[0,0])=>{const{width:n,height:o}=Ae(e),r=e.origin??t,s=n*r[0],i=o*r[1];return{x:e.position.x-s,y:e.position.y-i}},Oh=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const s=typeof r=="string";let i=!t.nodeLookup&&!s?r:void 0;t.nodeLookup&&(i=s?t.nodeLookup.get(r):so(r)?r:t.nodeLookup.get(r.id));const a=i?on(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return pn(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return gn(n)},Tt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=pn(n,on(r)),o=!0)}),o?gn(n):{x:0,y:0,width:0,height:0}},io=(e,t,[n,o,r]=[0,0,1],s=!1,i=!1)=>{const a={...ht(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(const c of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=c;if(i&&!f||h)continue;const g=d.width??c.width??c.initialWidth??null,p=d.height??c.height??c.initialHeight??null,y=Mt(a,lt(c)),w=(g??0)*(p??0),x=s&&y>0;(!c.internals.handleBounds||x||y>=w||c.dragging)&&l.push(c)}return l},$h=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function Lh(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function Bh({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:s},i){if(e.size===0)return!0;const a=Lh(e,i),l=Tt(a),c=co(l,t,n,i?.minZoom??r,i?.maxZoom??s,i?.padding??.1);return await o.setViewport(c,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),!0}function ni({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:s}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=i.origin??o;let f=i.extent||r;if(i.extent==="parent"&&!i.expandParent)if(!a)s?.("005",ve.error005());else{const g=a.measured.width,p=a.measured.height;g&&p&&(f=[[l,c],[l+g,c+p]])}else a&&Xe(i.extent)&&(f=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const h=Xe(f)?Ye(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&s?.("015",ve.error015()),{position:{x:h.x-l+(i.measured.width??0)*d[0],y:h.y-c+(i.measured.height??0)*d[1]},positionAbsolute:h}}async function Hh({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const s=new Set(e.map(h=>h.id)),i=[];for(const h of n){if(h.deletable===!1)continue;const g=s.has(h.id),p=!g&&h.parentId&&i.find(y=>y.id===h.parentId);(g||p)&&i.push(h)}const a=new Set(t.map(h=>h.id)),l=o.filter(h=>h.deletable!==!1),d=$h(i,l);for(const h of l)a.has(h.id)&&!d.find(p=>p.id===h.id)&&d.push(h);if(!r)return{edges:d,nodes:i};const f=await r({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const ct=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ye=(e={x:0,y:0},t,n)=>({x:ct(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ct(e.y,t[0][1],t[1][1]-(n?.height??0))});function oi(e,t,n){const{width:o,height:r}=Ae(n),{x:s,y:i}=n.internals.positionAbsolute;return Ye(e,[[s,i],[s+o,i+r]],t)}const Yo=(e,t,n)=>e<t?ct(Math.abs(e-t),1,t)/t:e>n?-ct(Math.abs(e-n),1,t)/t:0,ao=(e,t,n=15,o=40)=>{const r=Yo(e.x,o,t.width-o)*n,s=Yo(e.y,o,t.height-o)*n;return[r,s]},pn=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Fn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),gn=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),lt=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:Dt(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},on=(e,t=[0,0])=>{const{x:n,y:o}=so(e)?e.internals.positionAbsolute:Dt(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},ri=(e,t)=>gn(pn(Fn(e),Fn(t))),Mt=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},Xo=e=>ye(e.width)&&ye(e.height)&&ye(e.x)&&ye(e.y),ye=e=>!isNaN(e)&&isFinite(e),si=(e,t)=>(n,o)=>{},Rt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ht=({x:e,y:t},[n,o,r],s=!1,i=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return s?Rt(a,i):a},ut=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Ze(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Vh(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ze(e,n),r=Ze(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Ze(e.top??e.y??0,n),r=Ze(e.bottom??e.y??0,n),s=Ze(e.left??e.x??0,t),i=Ze(e.right??e.x??0,t);return{top:o,right:i,bottom:r,left:s,x:s+i,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Fh(e,t,n,o,r,s){const{x:i,y:a}=ut(e,[t,n,o]),{x:l,y:c}=ut({x:e.x+e.width,y:e.y+e.height},[t,n,o]),d=r-l,f=s-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(f)}}const co=(e,t,n,o,r,s)=>{const i=Vh(s,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Math.min(a,l),d=ct(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=Fh(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}},kt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function Xe(e){return e!=null&&e!=="parent"}function Ae(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ii(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ai(e,t={width:0,height:0},n,o,r){const s={...e},i=o.get(n);if(i){const a=i.origin||r;s.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function Uo(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Wh(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Yh(e){return{...Qs,...e||{}}}function vt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:s,y:i}=we(e),a=ht({x:s-(r?.left??0),y:i-(r?.top??0)},o),{x:l,y:c}=n?Rt(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const lo=e=>({width:e.offsetWidth,height:e.offsetHeight}),ci=e=>e?.getRootNode?.()||window?.document,Xh=["INPUT","SELECT","TEXTAREA"];function li(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Xh.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ui=e=>"clientX"in e,we=(e,t)=>{const n=ui(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},Zo=(e,t,n,o,r)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:r,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...lo(i)}})};function di({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:s,targetControlX:i,targetControlY:a}){const l=e*.125+r*.375+i*.375+n*.125,c=t*.125+s*.375+a*.375+o*.125,d=Math.abs(l-e),f=Math.abs(c-t);return[l,c,d,f]}function Bt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Go({pos:e,x1:t,y1:n,x2:o,y2:r,c:s}){switch(e){case K.Left:return[t-Bt(t-o,s),n];case K.Right:return[t+Bt(o-t,s),n];case K.Top:return[t,n-Bt(n-r,s)];case K.Bottom:return[t,n+Bt(r-n,s)]}}function fi({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top,curvature:i=.25}){const[a,l]=Go({pos:n,x1:e,y1:t,x2:o,y2:r,c:i}),[c,d]=Go({pos:s,x1:o,y1:r,x2:e,y2:t,c:i}),[f,h,g,p]=di({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${o},${r}`,f,h,g,p]}function hi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,s=n<e?n+r:n-r,i=Math.abs(o-t)/2,a=o<t?o+i:o-i;return[s,a,r,i]}function Uh({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:s="basic"}){if(s==="manual")return o;const i=r&&n?o+1e3:o,a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return i+a}function Zh({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const s=pn(on(e),on(t));s.x===s.x2&&(s.x2+=1),s.y===s.y2&&(s.y2+=1);const i={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return Mt(i,gn(s))>0}const Gh=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,qh=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Kh=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",ve.error006()),t;const o=n.getEdgeId||Gh;let r;return ti(e)?r={...e}:r={...e,id:o(e)},qh(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function pi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,s,i,a]=hi({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,s,i,a]}const qo={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},Qh=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Ko=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Jh({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:o=K.Top,center:r,offset:s,stepPosition:i}){const a=qo[t],l=qo[o],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},f=Qh({source:c,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",g=f[h];let p=[],y,w;const x={x:0,y:0},E={x:0,y:0},[,,m,v]=hi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(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 A=[{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"?A:P:p=h==="x"?P:A}else{const A=[{x:c.x,y:d.y}],P=[{x:d.x,y:c.y}];if(h==="x"?p=a.x===g?P:A:p=a.y===g?A:P,t===o){const _=Math.abs(e[h]-n[h]);if(_<=s){const N=Math.min(s-1,s-_);a[h]===g?x[h]=(c[h]>e[h]?-1:1)*N:E[h]=(d[h]>n[h]?-1:1)*N}}if(t!==o){const _=h==="x"?"y":"x",N=a[h]===l[_],M=c[_]>d[_],I=c[_]<d[_];(a[h]===1&&(!N&&M||N&&I)||a[h]!==1&&(!N&&I||N&&M))&&(p=h==="x"?A:P)}const H={x:c.x+x.x,y:c.y+x.y},j={x:d.x+E.x,y:d.y+E.y},R=Math.max(Math.abs(H.x-p[0].x),Math.abs(j.x-p[0].x)),$=Math.max(Math.abs(H.y-p[0].y),Math.abs(j.y-p[0].y));R>=$?(y=(H.x+j.x)/2,w=p[0].y):(y=p[0].x,w=(H.y+j.y)/2)}const C={x:c.x+x.x,y:c.y+x.y},S={x:d.x+E.x,y:d.y+E.y};return[[e,...C.x!==p[0].x||C.y!==p[0].y?[C]:[],...p,...S.x!==p[p.length-1].x||S.y!==p[p.length-1].y?[S]:[],n],y,w,m,v]}function ep(e,t,n,o){const r=Math.min(Ko(e,t)/2,Ko(t,n)/2,o),{x:s,y:i}=t;if(e.x===s&&s===n.x||e.y===i&&i===n.y)return`L${s} ${i}`;if(e.y===i){const c=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${s+r*c},${i}Q ${s},${i} ${s},${i+r*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${s},${i+r*l}Q ${s},${i} ${s+r*a},${i}`}function rn({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:d=.5}){const[f,h,g,p,y]=Jh({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:s,center:{x:a,y:l},offset:c,stepPosition:d});let w=`M${f[0].x} ${f[0].y}`;for(let x=1;x<f.length-1;x++)w+=ep(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 Qo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function tp(e){const{sourceNode:t,targetNode:n}=e;if(!Qo(t)||!Qo(n))return null;const o=t.internals.handleBounds||Jo(t.handles),r=n.internals.handleBounds||Jo(n.handles),s=er(o?.source??[],e.sourceHandle),i=er(e.connectionMode===at.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!s||!i)return e.onError?.("008",ve.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=s?.position||K.Bottom,l=i?.position||K.Top,c=Ue(t,s,a),d=Ue(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function Jo(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Ue(e,t,n=K.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,s=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Ae(e);if(o)return{x:r+i/2,y:s+a/2};switch(t?.position??n){case K.Top:return{x:r+i/2,y:s};case K.Right:return{x:r+i,y:s+a/2};case K.Bottom:return{x:r+i/2,y:s+a};case K.Left:return{x:r,y:s+a/2}}}function er(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Wn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function np(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const s=new Set;return e.reduce((i,a)=>([a.markerStart||o,a.markerEnd||r].forEach(l=>{if(l&&typeof l=="object"){const c=Wn(l,t);s.has(c)||(i.push({id:c,color:l.color||n,...l}),s.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const gi=1e3,op=10,uo={nodeOrigin:[0,0],nodeExtent:Nt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},rp={...uo,checkEquality:!0};function fo(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function sp(e,t,n){const o=fo(uo,n);for(const r of e.values())if(r.parentId)po(r,e,t,o);else{const s=Dt(r,o.nodeOrigin),i=Xe(r.extent)?r.extent:o.nodeExtent,a=Ye(s,i,Ae(r));r.internals.positionAbsolute=a}}function ip(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const s={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(s):r.type==="target"&&o.push(s)}return{source:n,target:o}}function ho(e){return e==="manual"}function Yn(e,t,n,o={}){const r=fo(rp,o),s={i:0},i=new Map(t),a=r?.elevateNodesOnSelect&&!ho(r.zIndexMode)?gi:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(r.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const h=Dt(d,r.nodeOrigin),g=Xe(d.extent)?d.extent:r.nodeExtent,p=Ye(h,g,Ae(d));f={...r.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:p,handleBounds:ip(d,f),z:mi(d,a,r.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),d.parentId&&po(f,t,n,o,s),c||=d.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function ap(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function po(e,t,n,o,r){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=fo(uo,o),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ap(e,n),r&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++r.i,d.internals.z=d.internals.z+r.i*op),r&&d.internals.rootParentIndex!==void 0&&(r.i=d.internals.rootParentIndex);const f=s&&!ho(l)?gi:0,{x:h,y:g,z:p}=cp(e,d,i,a,f,l),{positionAbsolute: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 mi(e,t,n){const o=ye(e.zIndex)?e.zIndex:0;return ho(n)?o:o+(e.selected?t:0)}function cp(e,t,n,o,r,s){const{x:i,y:a}=t.internals.positionAbsolute,l=Ae(e),c=Dt(e,n),d=Xe(e.extent)?Ye(c,e.extent,l):c;let f=Ye({x:i+d.x,y:a+d.y},o,l);e.extent==="parent"&&(f=oi(f,l,t));const h=mi(e,r,s),g=t.internals.z??0;return{x:f.x,y:f.y,z:g>=h?g+1:h}}function go(e,t,n,o=[0,0]){const r=[],s=new Map;for(const i of e){const a=t.get(i.parentId);if(!a)continue;const l=s.get(i.parentId)?.expandedRect??lt(a),c=ri(l,i.rect);s.set(i.parentId,{expandedRect:c,parent:a})}return s.size>0&&s.forEach(({expandedRect:i,parent:a},l)=>{const c=a.internals.positionAbsolute,d=Ae(a),f=a.origin??o,h=i.x<c.x?Math.round(Math.abs(c.x-i.x)):0,g=i.y<c.y?Math.round(Math.abs(c.y-i.y)):0,p=Math.max(d.width,Math.round(i.width)),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:l,type:"position",position:{x:a.position.x-h+w,y:a.position.y-g+x}}),n.get(l)?.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:l,type:"dimensions",setAttributes:!0,dimensions:{width:p+(h?f[0]*h-w:0),height:y+(g?f[1]*g-x:0)}})}),r}function lp(e,t,n,o,r,s,i){const a=o?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],d=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=[];for(const g of e.values()){const p=t.get(g.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),l=!0;continue}const 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=Xe(p.extent)?p.extent:s;let{positionAbsolute:v}=p.internals;p.parentId&&p.extent==="parent"?v=oi(v,y,t.get(p.parentId)):m&&(v=Ye(v,m,y));const C={...p,measured:y,internals:{...p.internals,positionAbsolute:v,handleBounds:{source:Zo("source",g.nodeElement,E,f,p.id),target:Zo("target",g.nodeElement,E,f,p.id)}}};t.set(p.id,C),p.parentId&&po(C,t,n,{nodeOrigin:r,zIndexMode:i}),l=!0,w&&(c.push({id:p.id,type:"dimensions",dimensions:y}),p.expandParent&&p.parentId&&h.push({id:p.id,parentId:p.parentId,rect:lt(C,r)}))}}if(h.length>0){const g=go(h,t,n,r);c.push(...g)}return{changes:c,updatedInternals:l}}async function up({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:s}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,s]],o);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}function tr(e,t,n,o,r,s){let i=r;const a=o.get(i)||new Map;o.set(i,a.set(n,t)),i=`${r}-${e}`;const l=o.get(i)||new Map;if(o.set(i,l.set(n,t)),s){i=`${r}-${e}-${s}`;const c=o.get(i)||new Map;o.set(i,c.set(n,t))}}function xi(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:s,sourceHandle:i=null,targetHandle:a=null}=o,l={edgeId:o.id,source:r,target:s,sourceHandle:i,targetHandle:a},c=`${r}-${i}--${s}-${a}`,d=`${s}-${a}--${r}-${i}`;tr("source",l,d,e,r,i),tr("target",l,c,e,s,a),t.set(o.id,o)}}function yi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:yi(n,t):!1}function nr(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function dp(e,t,n,o){const r=new Map;for(const[s,i]of e)if((i.selected||i.id===o)&&(!i.parentId||!yi(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(s);a&&r.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return r}function Mn({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[i,a]of t){const l=n.get(i)?.internals.userNode;l&&r.push({...l,position:a.position,dragging:o})}if(!e)return[r[0],r];const s=n.get(e)?.internals.userNode;return[s?{...s,position:t.get(e)?.position||s.position,dragging:o}:r[0],r]}function fp({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const s={x:n-r.distance.x,y:o-r.distance.y},i=Rt(s,t);return{x:i.x-s.x,y:i.y-s.y}}function hp({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let s={x:null,y:null},i=0,a=new Map,l=!1,c={x:0,y:0},d=null,f=!1,h=null,g=!1,p=!1,y=null;function w({noDragClassName:E,handleSelector:m,domNode:v,isSelectable:C,nodeId:S,nodeClickDistance:k=0}){h=pe(v);function A({x:R,y:$}){const{nodeLookup:_,nodeExtent:N,snapGrid:M,snapToGrid:I,nodeOrigin:T,onNodeDrag:D,onSelectionDrag:L,onError:B,updateNodePositions:O}=t();s={x:R,y:$};let q=!1;const G=a.size>1,V=G&&N?Fn(Tt(a)):null,X=G&&I?fp({dragItems:a,snapGrid:M,x:R,y:$}):null;for(const[Y,z]of a){if(!_.has(Y))continue;let U={x:R-z.distance.x,y:$-z.distance.y};I&&(U=X?{x:Math.round(U.x+X.x),y:Math.round(U.y+X.y)}:Rt(U,M));let ee=null;if(G&&N&&!z.extent&&V){const{positionAbsolute:W}=z.internals,J=W.x-V.x+N[0][0],Z=W.x+z.measured.width-V.x2+N[1][0],te=W.y-V.y+N[0][1],ae=W.y+z.measured.height-V.y2+N[1][1];ee=[[J,te],[Z,ae]]}const{position:Q,positionAbsolute:F}=ni({nodeId:Y,nextPosition:U,nodeLookup:_,nodeExtent:ee||N,nodeOrigin:T,onError:B});q=q||z.position.x!==Q.x||z.position.y!==Q.y,z.position=Q,z.internals.positionAbsolute=F}if(p=p||q,!!q&&(O(a,!0),y&&(o||D||!S&&L))){const[Y,z]=Mn({nodeId:S,dragItems:a,nodeLookup:_});o?.(y,a,Y,z),D?.(y,Y,z),S||L?.(y,z)}}async function P(){if(!d)return;const{transform:R,panBy:$,autoPanSpeed:_,autoPanOnNodeDrag:N}=t();if(!N){l=!1,cancelAnimationFrame(i);return}const[M,I]=ao(c,d,_);(M!==0||I!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-I/R[2],await $({x:M,y:I})&&A(s)),i=requestAnimationFrame(P)}function H(R){const{nodeLookup:$,multiSelectionActive:_,nodesDraggable:N,transform:M,snapGrid:I,snapToGrid:T,selectNodesOnDrag:D,onNodeDragStart:L,onSelectionDragStart:B,unselectNodesAndEdges:O}=t();f=!0,(!D||!C)&&!_&&S&&($.get(S)?.selected||O()),C&&D&&S&&e?.(S);const q=vt(R.sourceEvent,{transform:M,snapGrid:I,snapToGrid:T,containerBounds:d});if(s=q,a=dp($,N,q,S),a.size>0&&(n||L||!S&&B)){const[G,V]=Mn({nodeId:S,dragItems:a,nodeLookup:$});n?.(R.sourceEvent,a,G,V),L?.(R.sourceEvent,G,V),S||B?.(R.sourceEvent,V)}}const j=Hs().clickDistance(k).on("start",R=>{const{domNode:$,nodeDragThreshold:_,transform:N,snapGrid:M,snapToGrid:I}=t();d=$?.getBoundingClientRect()||null,g=!1,p=!1,y=R.sourceEvent,_===0&&H(R),s=vt(R.sourceEvent,{transform:N,snapGrid:M,snapToGrid:I,containerBounds:d}),c=we(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:$,transform:_,snapGrid:N,snapToGrid:M,nodeDragThreshold:I,nodeLookup:T}=t(),D=vt(R.sourceEvent,{transform:_,snapGrid:N,snapToGrid:M,containerBounds:d});if(y=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||S&&!T.has(S))&&(g=!0),!g){if(!l&&$&&f&&(l=!0,P()),!f){const L=we(R.sourceEvent,d),B=L.x-c.x,O=L.y-c.y;Math.sqrt(B*B+O*O)>I&&H(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&f&&(c=we(R.sourceEvent,d),A(D))}}).on("end",R=>{if(!f||g){g&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,f=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:$,updateNodePositions:_,onNodeDragStop:N,onSelectionDragStop:M}=t();if(p&&(_(a,!1),p=!1),r||N||!S&&M){const[I,T]=Mn({nodeId:S,dragItems:a,nodeLookup:$,dragging:!1});r?.(R.sourceEvent,a,I,T),N?.(R.sourceEvent,I,T),S||M?.(R.sourceEvent,T)}}}).filter(R=>{const $=R.target;return!R.button&&(!E||!nr($,`.${E}`,v))&&(!m||nr($,m,v))});h.call(j)}function x(){h?.on(".drag",null)}return{update:w,destroy:x}}function pp(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Mt(r,lt(s))>0&&o.push(s);return o}const gp=250;function mp(e,t,n,o){let r=[],s=1/0;const i=pp(e,n,t+gp);for(const a of i){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:d,y:f}=Ue(a,c,c.position,!0),h=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));h>t||(h<s?(r=[{...c,x:d,y:f}],s=h):h===s&&r.push({...c,x:d,y:f}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(l=>l.type===a)??r[0]}return r[0]}function wi(e,t,n,o,r,s=!1){const i=o.get(e);if(!i)return null;const a=r==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&s?{...l,...Ue(i,l,l.position,!0)}:l}function vi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function xp(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const bi=()=>!0;function yp(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:g,onConnectStart:p,onConnect:y,onConnectEnd:w,isValidConnection:x=bi,onReconnectEnd:E,updateConnection:m,getTransform:v,getFromHandle:C,autoPanSpeed:S,dragThreshold:k=1,handleDomNode:A}){const P=ci(e.target);let H=0,j;const{x:R,y:$}=we(e),_=vi(s,A),N=a?.getBoundingClientRect();let M=!1;if(!N||!_)return;const I=wi(r,_,o,l,t);if(!I)return;let T=we(e,N),D=!1,L=null,B=!1,O=null;function q(){if(!d||!N)return;const[Q,F]=ao(T,N,S);h({x:Q,y:F}),H=requestAnimationFrame(q)}const G={...I,nodeId:r,type:_,position:I.position},V=l.get(r);let Y={inProgress:!0,isValid:null,from:Ue(V,G,K.Left,!0),fromHandle:G,fromPosition:G.position,fromNode:V,to:T,toHandle:null,toPosition:Wo[G.position],toNode:null,pointer:T};function z(){M=!0,m(Y),p?.(e,{nodeId:r,handleId:o,handleType:_})}k===0&&z();function U(Q){if(!M){const{x:ae,y:de}=we(Q),fe=ae-R,he=de-$;if(!(fe*fe+he*he>k*k))return;z()}if(!C()||!G){ee(Q);return}const F=v();T=we(Q,N),j=mp(ht(T,F,!1,[1,1]),n,l,G),D||(q(),D=!0);const W=_i(Q,{handle:j,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:i?"target":"source",isValidConnection:x,doc:P,lib:c,flowId:f,nodeLookup:l});O=W.handleDomNode,L=W.connection,B=xp(!!j,W.isValid);const J=l.get(r),Z=J?Ue(J,G,K.Left,!0):Y.from,te={...Y,from:Z,isValid:B,to:W.toHandle&&B?ut({x:W.toHandle.x,y:W.toHandle.y},F):T,toHandle:W.toHandle,toPosition:B&&W.toHandle?W.toHandle.position:Wo[G.position],toNode:W.toHandle?l.get(W.toHandle.nodeId):null,pointer:T};m(te),Y=te}function ee(Q){if(!("touches"in Q&&Q.touches.length>0)){if(M){(j||O)&&L&&B&&y?.(L);const{inProgress:F,...W}=Y,J={...W,toPosition:Y.toHandle?Y.toPosition:null};w?.(Q,J),s&&E?.(Q,J)}g(),cancelAnimationFrame(H),D=!1,B=!1,L=null,O=null,P.removeEventListener("mousemove",U),P.removeEventListener("mouseup",ee),P.removeEventListener("touchmove",U),P.removeEventListener("touchend",ee)}}P.addEventListener("mousemove",U),P.addEventListener("mouseup",ee),P.addEventListener("touchmove",U),P.addEventListener("touchend",ee)}function _i(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:s,doc:i,lib:a,flowId:l,isValidConnection:c=bi,nodeLookup:d}){const f=s==="target",h=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=we(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=vi(void 0,w),m=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),C=w.classList.contains("connectable"),S=w.classList.contains("connectableend");if(!m||!E)return x;const k={source:f?m:o,sourceHandle:f?v:r,target:f?o:m,targetHandle:f?r:v};x.connection=k;const P=C&&S&&(n===at.Strict?f&&E==="source"||!f&&E==="target":m!==o||v!==r);x.isValid=P&&c(k),x.toHandle=wi(m,E,v,d,n,!0)}return x}const Xn={onPointerDown:yp,isValid:_i};function wp({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=pe(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:f=!0,zoomable:h=!0,inversePan:g=!1}){const p=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const v=n(),C=m.sourceEvent.ctrlKey&&kt()?10:1,S=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*d,k=v[2]*Math.pow(2,S*C);t.scaleTo(k)};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],S=[C[0]-y[0],C[1]-y[1]];y=C;const k=o()*Math.max(v[2],Math.log(v[2]))*(g?-1:1),A={x:v[0]-S[0]*k,y:v[1]-S[1]*k},P=[[0,0],[l,c]];t.setViewportConstrained({x:A.x,y:A.y,zoom:v[2]},P,a)},E=qs().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:xe}}const mn=e=>({x:e.x,y:e.y,zoom:e.k}),kn=({x:e,y:t,zoom:n})=>hn.translate(e,t).scale(n),nt=(e,t)=>e.target.closest(`.${t}`),Ei=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),vp=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,jn=(e,t=0,n=vp,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},Si=e=>{const t=e.ctrlKey&&kt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function bp({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(nt(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=xe(d),x=Si(d),E=f*Math.pow(2,x);o.scaleTo(n,E,w,d);return}const h=d.deltaMode===1?20:1;let g=r===Fe.Vertical?0:d.deltaX*h,p=r===Fe.Horizontal?0:d.deltaY*h;!kt()&&d.shiftKey&&r!==Fe.Vertical&&(g=d.deltaY*h,p=0),o.translateBy(n,-(g/f)*s,-(p/f)*s,{internal:!0});const y=mn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(d,y),e.panScrollTimeout=setTimeout(()=>{c?.(d,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(d,y))}}function _p({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const s=o.type==="wheel",i=!t&&s&&!o.ctrlKey,a=nt(o,e);if(o.ctrlKey&&s&&a&&o.preventDefault(),i||a)return null;o.preventDefault(),n.call(this,o,r)}}function Ep({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=mn(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function Sp({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return s=>{e.usedRightMouseButton=!!(n&&Ei(t,e.mouseButton??0)),s.sourceEvent?.sync||o([s.transform.x,s.transform.y,s.transform.k]),r&&!s.sourceEvent?.internal&&r?.(s.sourceEvent,mn(s.transform))}}function Np({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:s}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,s&&Ei(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&s(i.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=mn(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(i.sourceEvent,a)},n?150:0)}}}function Cp({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:s,userSelectionActive:i,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return f=>{const h=e||t,g=n&&f.ctrlKey,p=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(nt(f,`${c}-flow__node`)||nt(f,`${c}-flow__edge`)))return!0;if(!o&&!h&&!r&&!s&&!n||i||d&&!p||nt(f,a)&&p||nt(f,l)&&(!p||r&&p&&!e)||!n&&f.ctrlKey&&p)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!h&&!r&&!g&&p||!o&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(o)&&!o.includes(f.button)&&f.type==="mousedown")return!1;const y=Array.isArray(o)&&o.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||p)&&y}}function Mp({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:s,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=qs().scaleExtent([t,n]).translateExtent(o),h=pe(e).call(f);E({x:r.x,y:r.y,zoom:ct(r.zoom,t,n)},[[0,0],[d.width,d.height]],o);const g=h.on("wheel.zoom"),p=h.on("dblclick.zoom");f.wheelDelta(Si);async function y(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).transform(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}function w({noWheelClassName:j,noPanClassName:R,onPaneContextMenu:$,userSelectionActive:_,panOnScroll:N,panOnDrag:M,panOnScrollMode:I,panOnScrollSpeed:T,preventScrolling:D,zoomOnPinch:L,zoomOnScroll:B,zoomOnDoubleClick:O,zoomActivationKeyPressed:q,lib:G,onTransformChange:V,connectionInProgress:X,paneClickDistance:Y,selectionOnDrag:z}){_&&!c.isZoomingOrPanning&&x();const U=N&&!q&&!_;f.clickDistance(z?1/0:!ye(Y)||Y<0?0:Y);const ee=U?bp({zoomPanValues:c,noWheelClassName:j,d3Selection:h,d3Zoom:f,panOnScrollMode:I,panOnScrollSpeed:T,zoomOnPinch:L,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):_p({noWheelClassName:j,preventScrolling:D,d3ZoomHandler:g});h.on("wheel.zoom",ee,{passive:!1});const Q=Ep({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});f.on("start",Q);const F=Sp({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!$,onPanZoom:s,onTransformChange:V});f.on("zoom",F);const W=Np({zoomPanValues:c,panOnDrag:M,panOnScroll:N,onPaneContextMenu:$,onPanZoomEnd:a,onDraggingChange:l});f.on("end",W);const J=Cp({zoomActivationKeyPressed:q,panOnDrag:M,zoomOnScroll:B,panOnScroll:N,zoomOnDoubleClick:O,zoomOnPinch:L,userSelectionActive:_,noPanClassName:R,noWheelClassName:j,lib:G,connectionInProgress:X});f.filter(J),O?h.on("dblclick.zoom",p):h.on("dblclick.zoom",null)}function x(){f.on("zoom",null)}async function E(j,R,$){const _=kn(j),N=f?.constrain()(_,R,$);return N&&await y(N),N}async function m(j,R){const $=kn(j);return await y($,R),$}function v(j){if(h){const R=kn(j),$=h.property("__zoom");($.k!==j.zoom||$.x!==j.x||$.y!==j.y)&&f?.transform(h,R,null,{sync:!0})}}function C(){const j=h?Gs(h.node()):{x:0,y:0,k:1};return{x:j.x,y:j.y,zoom:j.k}}async function S(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).scaleTo(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}async function k(j,R){return h?new Promise($=>{f?.interpolate(R?.interpolate==="linear"?Sn:Yt).scaleBy(jn(h,R?.duration,R?.ease,()=>$(!0)),j)}):!1}function A(j){f?.scaleExtent(j)}function P(j){f?.translateExtent(j)}function H(j){const R=!ye(j)||j<0?0:j;f?.clickDistance(R)}return{update:w,destroy:x,setViewport:m,setViewportConstrained:E,getViewport:C,scaleTo:S,scaleBy:k,setScaleExtent:A,setTranslateExtent:P,syncViewport:v,setClickDistance:H}}var dt;(function(e){e.Line="line",e.Handle="handle"})(dt||(dt={}));function kp({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:s}){const i=e-t,a=n-o,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&r&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function or(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function Pe(e,t){return Math.max(0,t-e)}function De(e,t){return Math.max(0,e-t)}function Ht(e,t,n){return Math.max(0,t-e,e-n)}function rr(e,t){return e?!t:t}function jp(e,t,n,o,r,s,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:g,ySnapped:p}=n,{minWidth:y,maxWidth:w,minHeight:x,maxHeight:E}=o,{x:m,y:v,width:C,height:S,aspectRatio:k}=e;let A=Math.floor(d?g-e.pointerX:0),P=Math.floor(f?p-e.pointerY:0);const H=C+(l?-A:A),j=S+(c?-P:P),R=-s[0]*C,$=-s[1]*S;let _=Ht(H,y,w),N=Ht(j,x,E);if(i){let T=0,D=0;l&&A<0?T=Pe(m+A+R,i[0][0]):!l&&A>0&&(T=De(m+H+R,i[1][0])),c&&P<0?D=Pe(v+P+$,i[0][1]):!c&&P>0&&(D=De(v+j+$,i[1][1])),_=Math.max(_,T),N=Math.max(N,D)}if(a){let T=0,D=0;l&&A>0?T=De(m+A,a[0][0]):!l&&A<0&&(T=Pe(m+H,a[1][0])),c&&P>0?D=De(v+P,a[0][1]):!c&&P<0&&(D=Pe(v+j,a[1][1])),_=Math.max(_,T),N=Math.max(N,D)}if(r){if(d){const T=Ht(H/k,x,E)*k;if(_=Math.max(_,T),i){let D=0;!l&&!c||l&&!c&&h?D=De(v+$+H/k,i[1][1])*k:D=Pe(v+$+(l?A:-A)/k,i[0][1])*k,_=Math.max(_,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=Pe(v+H/k,a[1][1])*k:D=De(v+(l?A:-A)/k,a[0][1])*k,_=Math.max(_,D)}}if(f){const T=Ht(j*k,y,w)/k;if(N=Math.max(N,T),i){let D=0;!l&&!c||c&&!l&&h?D=De(m+j*k+R,i[1][0])/k:D=Pe(m+(c?P:-P)*k+R,i[0][0])/k,N=Math.max(N,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=Pe(m+j*k,a[1][0])/k:D=De(m+(c?P:-P)*k,a[0][0])/k,N=Math.max(N,D)}}}P=P+(P<0?N:-N),A=A+(A<0?_:-_),r&&(h?H>j*k?P=(rr(l,c)?-A:A)/k:A=(rr(l,c)?-P:P)*k:d?(P=A/k,c=l):(A=P*k,l=c));const M=l?m+A:m,I=c?v+P:v;return{width:C+(l?-A:A),height:S+(c?-P:P),x:s[0]*A*(l?-1:1)+M,y:s[1]*P*(c?-1:1)+I}}const Ni={width:0,height:0,x:0,y:0},Ip={...Ni,pointerX:0,pointerY:0,aspectRatio:1};function Ap(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,s=e.measured.width??0,i=e.measured.height??0,a=n[0]*s,l=n[1]*i;return[[o-a,r-l],[o+s-a,r+i-l]]}function Pp({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const s=pe(e);let i={controlDirection:or("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:f,resizeDirection:h,onResizeStart:g,onResize:p,onResizeEnd:y,shouldResize:w}){let x={...Ni},E={...Ip};i={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:or(c)};let m,v=null,C=[],S,k,A,P=!1;const H=Hs().on("start",j=>{const{nodeLookup:R,transform:$,snapGrid:_,snapToGrid:N,nodeOrigin:M,paneDomNode:I}=n();if(m=R.get(t),!m)return;v=I?.getBoundingClientRect()??null;const{xSnapped:T,ySnapped:D}=vt(j.sourceEvent,{transform:$,snapGrid:_,snapToGrid:N,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:T,pointerY:D,aspectRatio:x.width/x.height},S=void 0,k=Xe(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(S=R.get(m.parentId)),S&&m.extent==="parent"&&(k=[[0,0],[S.measured.width,S.measured.height]]),C=[],A=void 0;for(const[L,B]of R)if(B.parentId===t&&(C.push({id:L,position:{...B.position},extent:B.extent}),B.extent==="parent"||B.expandParent)){const O=Ap(B,m,B.origin??M);A?A=[[Math.min(O[0][0],A[0][0]),Math.min(O[0][1],A[0][1])],[Math.max(O[1][0],A[1][0]),Math.max(O[1][1],A[1][1])]]:A=O}g?.(j,{...x})}).on("drag",j=>{const{transform:R,snapGrid:$,snapToGrid:_,nodeOrigin:N}=n(),M=vt(j.sourceEvent,{transform:R,snapGrid:$,snapToGrid:_,containerBounds:v}),I=[];if(!m)return;const{x:T,y:D,width:L,height:B}=x,O={},q=m.origin??N,{width:G,height:V,x:X,y:Y}=jp(E,i.controlDirection,M,i.boundaries,i.keepAspectRatio,q,k,A),z=G!==L,U=V!==B,ee=X!==T&&z,Q=Y!==D&&U;if(!ee&&!Q&&!z&&!U)return;if((ee||Q||q[0]===1||q[1]===1)&&(O.x=ee?X:x.x,O.y=Q?Y:x.y,x.x=O.x,x.y=O.y,C.length>0)){const Z=X-T,te=Y-D;for(const ae of C)ae.position={x:ae.position.x-Z+q[0]*(G-L),y:ae.position.y-te+q[1]*(V-B)},I.push(ae)}if((z||U)&&(O.width=z&&(!i.resizeDirection||i.resizeDirection==="horizontal")?G:x.width,O.height=U&&(!i.resizeDirection||i.resizeDirection==="vertical")?V:x.height,x.width=O.width,x.height=O.height),S&&m.expandParent){const Z=q[0]*(O.width??0);O.x&&O.x<Z&&(x.x=Z,E.x=E.x-(O.x-Z));const te=q[1]*(O.height??0);O.y&&O.y<te&&(x.y=te,E.y=E.y-(O.y-te))}const F=kp({width:x.width,prevWidth:L,height:x.height,prevHeight:B,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),W={...x,direction:F};w?.(j,W)!==!1&&(P=!0,p?.(j,W),o(O,I))}).on("end",j=>{P&&(y?.(j,{...x}),r?.({...x}),P=!1)});s.call(H)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var In={exports:{}},An={};var sr;function Dp(){if(sr)return An;sr=1;var e=$c(),t=Lc();function n(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var o=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,s=e.useRef,i=e.useEffect,a=e.useMemo,l=e.useDebugValue;return An.useSyncExternalStoreWithSelector=function(c,d,f,h,g){var p=s(null);if(p.current===null){var y={hasValue:!1,value:null};p.current=y}else y=p.current;p=a(function(){function x(S){if(!E){if(E=!0,m=S,S=h(S),g!==void 0&&y.hasValue){var k=y.value;if(g(k,S))return v=k}return v=S}if(k=v,o(m,S))return k;var A=h(S);return g!==void 0&&g(k,A)?(m=S,k):(m=S,v=A)}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]),l(w),w},An}var ir;function Tp(){return ir||(ir=1,In.exports=Dp()),In.exports}var Rp=Tp();const zp=Bc(Rp),Op={},ar=e=>{let t;const n=new Set,o=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const g=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(p=>p(t,g))}},r=()=>t,l={setState:o,getState:r,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Op?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(o,r,l);return l},$p=e=>e?ar(e):ar,{useDebugValue:Lp}=le,{useSyncExternalStoreWithSelector:Bp}=zp,Hp=e=>e;function Ci(e,t=Hp,n){const o=Bp(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Lp(o),o}const cr=(e,t)=>{const n=$p(e),o=(r,s=t)=>Ci(n,r,s);return Object.assign(o,n),o},Vp=(e,t)=>e?cr(e,t):cr;function oe(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,r]of e)if(!Object.is(r,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const xn=b.createContext(null),Fp=xn.Provider,Mi=ve.error001("react");function ne(e,t){const n=b.useContext(xn);if(n===null)throw new Error(Mi);return Ci(n,e,t)}function re(){const e=b.useContext(xn);if(e===null)throw new Error(Mi);return b.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const lr={display:"none"},Wp={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ki="react-flow__node-desc",ji="react-flow__edge-desc",Yp="react-flow__aria-live",Xp=e=>e.ariaLiveMessage,Up=e=>e.ariaLabelConfig;function Zp({rfId:e}){const t=ne(Xp);return u.jsx("div",{id:`${Yp}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Wp,children:t})}function Gp({rfId:e,disableKeyboardA11y:t}){const n=ne(Up);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${ki}-${e}`,style:lr,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${ji}-${e}`,style:lr,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(Zp,{rfId:e})]})}const yn=b.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},s)=>{const i=`${e}`.split("-");return u.jsx("div",{className:ie(["react-flow__panel",n,...i]),style:o,ref:s,...r,children:t})});yn.displayName="Panel";function qp({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(yn,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:u.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Kp=e=>{const t=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&t.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:t,selectedEdges:n}},Vt=e=>e.id;function Qp(e,t){return oe(e.selectedNodes.map(Vt),t.selectedNodes.map(Vt))&&oe(e.selectedEdges.map(Vt),t.selectedEdges.map(Vt))}function Jp({onSelectionChange:e}){const t=re(),{selectedNodes:n,selectedEdges:o}=ne(Kp,Qp);return b.useEffect(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(s=>s(r))},[n,o,e]),null}const eg=e=>!!e.onSelectionChangeHandlers;function tg({onSelectionChange:e}){const t=ne(eg);return e||t?u.jsx(Jp,{onSelectionChange:e}):null}const Ii=[0,0],ng={x:0,y:0,zoom:1},og=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],ur=[...og,"rfId"],rg=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),dr={translateExtent:Nt,nodeOrigin:Ii,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function sg(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=ne(rg,oe),c=re();b.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=dr,a()}),[]);const d=b.useRef(dr);return b.useEffect(()=>{for(const f of ur){const h=e[f],g=d.current[f];h!==g&&(typeof e[f]>"u"||(f==="nodes"?t(h):f==="edges"?n(h):f==="minZoom"?o(h):f==="maxZoom"?r(h):f==="translateExtent"?s(h):f==="nodeExtent"?i(h):f==="ariaLabelConfig"?c.setState({ariaLabelConfig:Yh(h)}):f==="fitView"?c.setState({fitViewQueued:h}):f==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[f]:h})))}d.current=e},ur.map(f=>e[f])),null}function fr(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function ig(e){const[t,n]=b.useState(e==="system"?null:e);return b.useEffect(()=>{if(e!=="system"){n(e);return}const o=fr(),r=()=>n(o?.matches?"dark":"light");return r(),o?.addEventListener("change",r),()=>{o?.removeEventListener("change",r)}},[e]),t!==null?t:fr()?.matches?"dark":"light"}const hr=typeof document<"u"?document:null;function jt(e=null,t={target:hr,actInsideInputWithModifier:!0}){const[n,o]=b.useState(!1),r=b.useRef(!1),s=b.useRef(new Set([])),[i,a]=b.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 b.useEffect(()=>{const l=t?.target??hr,c=t?.actInsideInputWithModifier??!0;if(e!==null){const d=g=>{if(r.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!r.current||r.current&&!c)&&li(g))return!1;const y=gr(g.code,a);if(s.current.add(g[y]),pr(i,s.current,!1)){const w=g.composedPath?.()?.[0]||g.target,x=w?.nodeName==="BUTTON"||w?.nodeName==="A";t.preventDefault!==!1&&(r.current||!x)&&g.preventDefault(),o(!0)}},f=g=>{const p=gr(g.code,a);pr(i,s.current,!0)?(o(!1),s.current.clear()):s.current.delete(g[p]),g.key==="Meta"&&s.current.clear(),r.current=!1},h=()=>{s.current.clear(),o(!1)};return l?.addEventListener("keydown",d),l?.addEventListener("keyup",f),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l?.removeEventListener("keydown",d),l?.removeEventListener("keyup",f),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,o]),n}function pr(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function gr(e,t){return t.includes(e)?"code":"key"}const ag=()=>{const e=re();return b.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,s],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:s,maxZoom:i,panZoom:a}=e.getState(),l=co(t,o,r,s,i,n?.padding??.1);return a?(await a.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??r,f=n.snapToGrid??s;return ht(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=ut(t,n);return{x:i.x+r,y:i.y+s}}}),[])};function Ai(e,t){const n=[],o=new Map,r=[];for(const s of e)if(s.type==="add"){r.push(s);continue}else if(s.type==="remove"||s.type==="replace")o.set(s.id,[s]);else{const i=o.get(s.id);i?i.push(s):o.set(s.id,[s])}for(const s of t){const i=o.get(s.id);if(!i){n.push(s);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...s};for(const l of i)cg(l,a);n.push(a)}return r.length&&r.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function cg(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function lg(e,t){return Ai(e,t)}function ug(e,t){return Ai(e,t)}function Be(e,t){return{id:e,type:"select",selected:t}}function ot(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(Be(s.id,i)))}return o}function mr({items:e=[],lookup:t}){const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,s]of e.entries()){const i=t.get(s.id),a=i?.internals?.userNode??i;a!==void 0&&a!==s&&n.push({id:s.id,item:s,type:"replace"}),a===void 0&&n.push({item:s,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function xr(e){return{id:e.id,type:"remove"}}const dg=si();function fg(e,t,n={}){return Kh(e,t,{...n,onError:n.onError??dg})}const yr=e=>zh(e),hg=e=>ti(e);function Pi(e){return b.forwardRef(e)}const pg=typeof window<"u"?b.useLayoutEffect:b.useEffect;function wr(e){const[t,n]=b.useState(BigInt(0)),[o]=b.useState(()=>gg(()=>n(r=>r+BigInt(1))));return pg(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function gg(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Di=b.createContext(null);function mg({children:e}){const t=re(),n=b.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h,fitViewQueued:g,onNodesChangeMiddlewareMap:p}=t.getState();let y=l;for(const x of a)y=typeof x=="function"?x(y):x;let w=mr({items:y,lookup:h});for(const x of p.values())w=x(w);d&&c(y),w.length>0?f?.(w):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:x,nodes:E,setNodes:m}=t.getState();x&&m(E)})},[]),o=wr(n),r=b.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let g=l;for(const p of a)g=typeof p=="function"?p(g):p;d?c(g):f&&f(mr({items:g,lookup:h}))},[]),s=wr(r),i=b.useMemo(()=>({nodeQueue:o,edgeQueue:s}),[]);return u.jsx(Di.Provider,{value:i,children:e})}function xg(){const e=b.useContext(Di);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const yg=e=>!!e.panZoom;function wn(){const e=ag(),t=re(),n=xg(),o=ne(yg),r=b.useMemo(()=>{const s=f=>t.getState().nodeLookup.get(f),i=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{const{nodeLookup:h,nodeOrigin:g}=t.getState(),p=yr(f)?f:h.get(f.id),y=p.parentId?ai(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 lt(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&&yr(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:S}=await Hh({nodesToRemove:f,edgesToRemove:h,nodes:g,edges:p,onBeforeDelete:v}),k=S.length>0,A=C.length>0;if(k){const P=S.map(xr);w?.(S),E(P)}if(A){const P=C.map(xr);y?.(C),x(P)}return(A||k)&&m?.({nodes:C,edges:S}),{deletedNodes:C,deletedEdges:S}},getIntersectingNodes:(f,h=!0,g)=>{const p=Xo(f),y=p?f:l(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=lt(w?x:E),v=Mt(m,y);return h&&v>0||v>=m.width*m.height||v>=y.width*y.height}):[]},isNodeIntersecting:(f,h,g=!0)=>{const y=Xo(f)?f:l(f);if(!y)return!1;const w=Mt(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 Oh(f,{nodeLookup:h,nodeOrigin:g})},getHandleConnections:({type:f,id:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}-${f}${h?`-${h}`:""}`)?.values()??[]),getNodeConnections:({type:f,handleId:h,nodeId:g})=>Array.from(t.getState().connectionLookup.get(`${g}${f?h?`-${f}-${h}`:`-${f}`:""}`)?.values()??[]),fitView:async f=>{const h=t.getState().fitViewResolver??Wh();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:h}),n.nodeQueue.push(g=>[...g]),h.promise}}},[]);return b.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const vr=e=>e.selected,wg=typeof window<"u"?window:void 0;function vg({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=re(),{deleteElements:o}=wn(),r=jt(e,{actInsideInputWithModifier:!1}),s=jt(t,{target:wg});b.useEffect(()=>{if(r){const{edges:i,nodes:a}=n.getState();o({nodes:a.filter(vr),edges:i.filter(vr)}),n.setState({nodesSelectionActive:!1})}},[r]),b.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function bg(e){const t=re();b.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",ve.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const vn={position:"absolute",width:"100%",height:"100%",top:0,left:0},_g=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Eg({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:s=Fe.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:l,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(),S=b.useRef(null),{userSelectionActive:k,lib:A,connectionInProgress:P}=ne(_g,oe),H=jt(h),j=b.useRef();bg(S);const R=b.useCallback($=>{x?.({x:$[0],y:$[1],zoom:$[2]}),E||C.setState({transform:$})},[x,E]);return b.useEffect(()=>{if(S.current){j.current=Mp({domNode:S.current,minZoom:d,maxZoom:f,translateExtent:c,viewport:l,onDraggingChange:M=>C.setState(I=>I.paneDragging===M?I:{paneDragging:M}),onPanZoomStart:(M,I)=>{const{onViewportChangeStart:T,onMoveStart:D}=C.getState();D?.(M,I),T?.(I)},onPanZoom:(M,I)=>{const{onViewportChange:T,onMove:D}=C.getState();D?.(M,I),T?.(I)},onPanZoomEnd:(M,I)=>{const{onViewportChangeEnd:T,onMoveEnd:D}=C.getState();D?.(M,I),T?.(I)}});const{x:$,y:_,zoom:N}=j.current.getViewport();return C.setState({panZoom:j.current,transform:[$,_,N],domNode:S.current.closest(".react-flow")}),()=>{j.current?.destroy()}}},[]),b.useEffect(()=>{j.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:s,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:H,preventScrolling:g,noPanClassName:w,userSelectionActive:k,noWheelClassName:y,lib:A,onTransformChange:R,connectionInProgress:P,selectionOnDrag:v,paneClickDistance:m})},[e,t,n,o,r,s,i,a,H,g,w,k,y,A,R,P,v,m]),u.jsx("div",{className:"react-flow__renderer",ref:S,style:vn,children:p})}const Sg=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ng(){const{userSelectionActive:e,userSelectionRect:t}=ne(Sg,oe);return e&&t?u.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const Pn=(e,t)=>n=>{n.target===t.current&&e?.(n)},Cg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Mg({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ct.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:s,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:f,onPaneMouseEnter:h,onPaneMouseMove:g,onPaneMouseLeave:p,children:y}){const w=b.useRef(0),x=re(),{userSelectionActive:E,elementsSelectable:m,dragging:v,connectionInProgress:C,panBy:S,autoPanSpeed:k}=ne(Cg,oe),A=m&&(e||E),P=b.useRef(null),H=b.useRef(),j=b.useRef(new Set),R=b.useRef(new Set),$=b.useRef(!1),_=b.useRef({x:0,y:0}),N=b.useRef(!1),M=z=>{if($.current||C){$.current=!1;return}c?.(z),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},I=z=>{if(Array.isArray(o)&&o?.includes(2)){z.preventDefault();return}d?.(z)},T=f?z=>f(z):void 0,D=z=>{$.current&&(z.stopPropagation(),$.current=!1)},L=z=>{const{domNode:U,transform:ee}=x.getState();if(H.current=U?.getBoundingClientRect(),!H.current)return;const Q=z.target===P.current;if(!Q&&!!z.target.closest(".nokey")||!e||!(i&&Q||t)||z.button!==0||!z.isPrimary)return;z.target?.setPointerCapture?.(z.pointerId),$.current=!1;const{x:J,y:Z}=we(z.nativeEvent,H.current),te=ht({x:J,y:Z},ee);x.setState({userSelectionRect:{width:0,height:0,startX:te.x,startY:te.y,x:J,y:Z}}),Q||(z.stopPropagation(),z.preventDefault())};function B(z,U){const{userSelectionRect:ee}=x.getState();if(!ee)return;const{transform:Q,nodeLookup:F,edgeLookup:W,connectionLookup:J,triggerNodeChanges:Z,triggerEdgeChanges:te,defaultEdgeOptions:ae}=x.getState(),de={x:ee.startX,y:ee.startY},{x:fe,y:he}=ut(de,Q),Ee={startX:de.x,startY:de.y,x:z<fe?z:fe,y:U<he?U:he,width:Math.abs(z-fe),height:Math.abs(U-he)},pt=j.current,ze=R.current;j.current=new Set(io(F,Ee,Q,n===Ct.Partial,!0).map(me=>me.id)),R.current=new Set;const Oe=ae?.selectable??!0;for(const me of j.current){const Se=J.get(me);if(Se)for(const{edgeId:Ne}of Se.values()){const $e=W.get(Ne);$e&&($e.selectable??Oe)&&R.current.add(Ne)}}if(!Uo(pt,j.current)){const me=ot(F,j.current,!0);Z(me)}if(!Uo(ze,R.current)){const me=ot(W,R.current);te(me)}x.setState({userSelectionRect:Ee,userSelectionActive:!0,nodesSelectionActive:!1})}function O(){if(!r||!H.current)return;const[z,U]=ao(_.current,H.current,k);S({x:z,y:U}).then(ee=>{if(!$.current||!ee){w.current=requestAnimationFrame(O);return}const{x:Q,y:F}=_.current;B(Q,F),w.current=requestAnimationFrame(O)})}const q=()=>{cancelAnimationFrame(w.current),w.current=0,N.current=!1};b.useEffect(()=>()=>q(),[]);const G=z=>{const{userSelectionRect:U,transform:ee,resetSelectedElements:Q}=x.getState();if(!H.current||!U)return;const{x:F,y:W}=we(z.nativeEvent,H.current);_.current={x:F,y:W};const J=ut({x:U.startX,y:U.startY},ee);if(!$.current){const Z=t?0:s;if(Math.hypot(F-J.x,W-J.y)<=Z)return;Q(),a?.(z)}$.current=!0,N.current||(O(),N.current=!0),B(F,W)},V=z=>{z.button===0&&(z.target?.releasePointerCapture?.(z.pointerId),!E&&z.target===P.current&&x.getState().userSelectionRect&&M?.(z),x.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(l?.(z),x.setState({nodesSelectionActive:j.current.size>0})),q())},X=z=>{z.target?.releasePointerCapture?.(z.pointerId),q()},Y=o===!0||Array.isArray(o)&&o.includes(0);return u.jsxs("div",{className:ie(["react-flow__pane",{draggable:Y,dragging:v,selection:e}]),onClick:A?void 0:Pn(M,P),onContextMenu:Pn(I,P),onWheel:Pn(T,P),onPointerEnter:A?void 0:h,onPointerMove:A?G:g,onPointerUp:A?V:void 0,onPointerCancel:A?X:void 0,onPointerDownCapture:A?L:void 0,onClickCapture:A?D:void 0,onPointerLeave:p,ref:P,style:vn,children:[y,u.jsx(Ng,{})]})}function Un({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:s,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l?.("012",ve.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Ti({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:s,nodeClickDistance:i}){const a=re(),[l,c]=b.useState(!1),d=b.useRef();return b.useEffect(()=>{d.current=hp({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{Un({id:f,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),b.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:s,nodeId:r,nodeClickDistance:i}),()=>{d.current?.destroy()}},[n,o,t,s,e,r,i]),l}const kg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Ri(){const e=re();return b.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),f=new Map,h=kg(i),g=r?s[0]:5,p=r?s[1]:5,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=Rt(E,s));const{position:m,positionAbsolute:v}=ni({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)}l(f)},[])}const mo=b.createContext(null),jg=mo.Provider;mo.Consumer;const zi=()=>b.useContext(mo),Ig=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Ag=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:s,connection:i}=o,{fromHandle:a,toHandle:l,isValid:c}=i,d=l?.nodeId===e&&l?.id===t&&l?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:d,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:s===at.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:d&&c}};function Pg({type:e="source",position:t=K.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:f,...h},g){const p=i||null,y=e==="target",w=re(),x=zi(),{connectOnClick:E,noPanClassName:m,rfId:v}=ne(Ig,oe),{connectingFrom:C,connectingTo:S,clickConnecting:k,isPossibleEndHandle:A,connectionInProcess:P,clickConnectionInProcess:H,valid:j}=ne(Ag(x,p,e),oe);x||w.getState().onError?.("010",ve.error010());const R=N=>{const{defaultEdgeOptions:M,onConnect:I,hasDefaultEdges:T}=w.getState(),D={...M,...N};if(T){const{edges:L,setEdges:B,onError:O}=w.getState();B(fg(D,L,{onError:O}))}I?.(D),a?.(D)},$=N=>{if(!x)return;const M=ui(N.nativeEvent);if(r&&(M&&N.button===0||!M)){const I=w.getState();Xn.onPointerDown(N.nativeEvent,{handleDomNode:N.currentTarget,autoPanOnConnect:I.autoPanOnConnect,connectionMode:I.connectionMode,connectionRadius:I.connectionRadius,domNode:I.domNode,nodeLookup:I.nodeLookup,lib:I.lib,isTarget:y,handleId:p,nodeId:x,flowId:I.rfId,panBy:I.panBy,cancelConnection:I.cancelConnection,onConnectStart:I.onConnectStart,onConnectEnd:(...T)=>w.getState().onConnectEnd?.(...T),updateConnection:I.updateConnection,onConnect:R,isValidConnection:n||((...T)=>w.getState().isValidConnection?.(...T)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:I.autoPanSpeed,dragThreshold:I.connectionDragThreshold})}M?d?.(N):f?.(N)},_=N=>{const{onClickConnectStart:M,onClickConnectEnd:I,connectionClickStartHandle:T,connectionMode:D,isValidConnection:L,lib:B,rfId:O,nodeLookup:q,connection:G}=w.getState();if(!x||!T&&!r)return;if(!T){M?.(N.nativeEvent,{nodeId:x,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:x,type:e,id:p}});return}const V=ci(N.target),X=n||L,{connection:Y,isValid:z}=Xn.isValid(N.nativeEvent,{handle:{nodeId:x,id:p,type:e},connectionMode:D,fromNodeId:T.nodeId,fromHandleId:T.id||null,fromType:T.type,isValidConnection:X,flowId:O,doc:V,lib:B,nodeLookup:q});z&&Y&&R(Y);const U=structuredClone(G);delete U.inProgress,U.toPosition=U.toHandle?U.toHandle.position:null,I?.(N,U),w.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":p,"data-nodeid":x,"data-handlepos":t,"data-id":`${v}-${x}-${p}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!y,target:y,connectable:o,connectablestart:r,connectableend:s,clickconnecting:k,connectingfrom:C,connectingto:S,valid:j,connectionindicator:o&&(!P||A)&&(P||H?s:r)}]),onMouseDown:$,onTouchStart:$,onClick:E?_:void 0,ref:g,...h,children:l})}const It=b.memo(Pi(Pg));function Dg({data:e,isConnectable:t,sourcePosition:n=K.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(It,{type:"source",position:n,isConnectable:t})]})}function Tg({data:e,isConnectable:t,targetPosition:n=K.Top,sourcePosition:o=K.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(It,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(It,{type:"source",position:o,isConnectable:t})]})}function Rg(){return null}function zg({data:e,isConnectable:t,targetPosition:n=K.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(It,{type:"target",position:n,isConnectable:t}),e?.label]})}const sn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},br={input:Dg,default:Tg,output:zg,group:Rg};function Og(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const $g=e=>{const{width:t,height:n,x:o,y:r}=Tt(e.nodeLookup,{filter:s=>!!s.selected});return{width:ye(t)?t:null,height:ye(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function Lg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=re(),{width:r,height:s,transformString:i,userSelectionActive:a}=ne($g,oe),l=Ri(),c=b.useRef(null);b.useEffect(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const d=!a&&r!==null&&s!==null;if(Ti({nodeRef:c,disabled:!d}),!d)return null;const f=e?g=>{const p=o.getState().nodes.filter(y=>y.selected);e(g,p)}:void 0,h=g=>{Object.prototype.hasOwnProperty.call(sn,g.key)&&(g.preventDefault(),l({direction:sn[g.key],factor:g.shiftKey?4:1}))};return u.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:u.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:r,height:s}})})}const _r=typeof window<"u"?window:void 0,Bg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Oi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:y,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:v,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:k,panOnDrag:A,autoPanOnSelection:P,defaultViewport:H,translateExtent:j,minZoom:R,maxZoom:$,preventScrolling:_,onSelectionContextMenu:N,noWheelClassName:M,noPanClassName:I,disableKeyboardA11y:T,onViewportChange:D,isControlledViewport:L}){const{nodesSelectionActive:B,userSelectionActive:O}=ne(Bg,oe),q=jt(c,{target:_r}),G=jt(y,{target:_r}),V=G||A,X=G||v,Y=d&&V!==!0,z=q||O||Y;return vg({deleteKeyCode:l,multiSelectionKeyCode:p}),u.jsx(Eg,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:X,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:k,panOnDrag:!q&&V,defaultViewport:H,translateExtent:j,minZoom:R,maxZoom:$,zoomActivationKeyCode:w,preventScrolling:_,noWheelClassName:M,noPanClassName:I,onViewportChange:D,isControlledViewport:L,paneClickDistance:a,selectionOnDrag:Y,children:u.jsxs(Mg,{onSelectionStart:h,onSelectionEnd:g,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:V,autoPanOnSelection:P,isSelecting:!!z,selectionMode:f,selectionKeyPressed:q,paneClickDistance:a,selectionOnDrag:Y,children:[e,B&&u.jsx(Lg,{onSelectionContextMenu:N,noPanClassName:I,disableKeyboardA11y:T})]})})}Oi.displayName="FlowRenderer";const Hg=b.memo(Oi),Vg=e=>t=>e?io(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function Fg(e){return ne(b.useCallback(Vg(e),[e]),oe)}const Wg=e=>e.updateNodeInternals;function Yg(){const e=ne(Wg),[t]=b.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 b.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Xg({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=re(),s=b.useRef(null),i=b.useRef(null),a=b.useRef(e.sourcePosition),l=b.useRef(e.targetPosition),c=b.useRef(t),d=n&&!!e.internals.handleBounds;return b.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]),b.useEffect(()=>()=>{i.current&&(o?.unobserve(i.current),i.current=null)},[]),b.useEffect(()=>{if(s.current){const f=c.current!==t,h=a.current!==e.sourcePosition,g=l.current!==e.targetPosition;(f||h||g)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function Ug({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:g,disableKeyboardA11y:p,rfId:y,nodeTypes:w,nodeClickDistance:x,onError:E}){const{node:m,internals:v,isParent:C}=ne(z=>{const U=z.nodeLookup.get(e),ee=z.parentLookup.has(e);return{node:U,internals:U.internals,isParent:ee}},oe);let S=m.type||"default",k=w?.[S]||br[S];k===void 0&&(E?.("003",ve.error003(S)),S="default",k=w?.default||br.default);const A=!!(m.draggable||a&&typeof m.draggable>"u"),P=!!(m.selectable||l&&typeof m.selectable>"u"),H=!!(m.connectable||c&&typeof m.connectable>"u"),j=!!(m.focusable||d&&typeof m.focusable>"u"),R=re(),$=ii(m),_=Xg({node:m,nodeType:S,hasDimensions:$,resizeObserver:f}),N=Ti({nodeRef:_,disabled:m.hidden||!A,noDragClassName:h,handleSelector:m.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:x}),M=Ri();if(m.hidden)return null;const I=Ae(m),T=Og(m),D=P||A||t||n||o||r,L=n?z=>n(z,{...v.userNode}):void 0,B=o?z=>o(z,{...v.userNode}):void 0,O=r?z=>r(z,{...v.userNode}):void 0,q=s?z=>s(z,{...v.userNode}):void 0,G=i?z=>i(z,{...v.userNode}):void 0,V=z=>{const{selectNodesOnDrag:U,nodeDragThreshold:ee}=R.getState();P&&(!U||!A||ee>0)&&Un({id:e,store:R,nodeRef:_}),t&&t(z,{...v.userNode})},X=z=>{if(!(li(z.nativeEvent)||p)){if(Ks.includes(z.key)&&P){const U=z.key==="Escape";Un({id:e,store:R,unselect:U,nodeRef:_})}else if(A&&m.selected&&Object.prototype.hasOwnProperty.call(sn,z.key)){z.preventDefault();const{ariaLabelConfig:U}=R.getState();R.setState({ariaLiveMessage:U["node.a11yDescription.ariaLiveMessage"]({direction:z.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:sn[z.key],factor:z.shiftKey?4:1})}}},Y=()=>{if(p||!_.current?.matches(":focus-visible"))return;const{transform:z,width:U,height:ee,autoPanOnNodeFocus:Q,setCenter:F}=R.getState();if(!Q)return;io(new Map([[e,m]]),{x:0,y:0,width:U,height:ee},z,!0).length>0||F(m.position.x+I.width/2,m.position.y+I.height/2,{zoom:z[2]})};return u.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${S}`,{[g]:A},m.className,{selected:m.selected,selectable:P,parent:C,draggable:A,dragging:N}]),ref:_,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:$?"visible":"hidden",...m.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:O,onContextMenu:q,onClick:V,onDoubleClick:G,onKeyDown:j?X:void 0,tabIndex:j?0:void 0,onFocus:j?Y:void 0,role:m.ariaRole??(j?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${ki}-${y}`,"aria-label":m.ariaLabel,...m.domAttributes,children:u.jsx(jg,{value:e,children:u.jsx(k,{id:e,data:m.data,type:S,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:m.selected??!1,selectable:P,draggable:A,deletable:m.deletable??!0,isConnectable:H,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:N,dragHandle:m.dragHandle,zIndex:v.z,parentId:m.parentId,...I})})})}var Zg=b.memo(Ug);const Gg=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function $i(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:s}=ne(Gg,oe),i=Fg(e.onlyRenderVisibleElements),a=Yg();return u.jsx("div",{className:"react-flow__nodes",style:vn,children:i.map(l=>u.jsx(Zg,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}$i.displayName="NodeRenderer";const qg=b.memo($i);function Kg(e){return ne(b.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const s=n.nodeLookup.get(r.source),i=n.nodeLookup.get(r.target);s&&i&&Zh({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),oe)}const Qg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return u.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Jg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return u.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Er={[nn.Arrow]:Qg,[nn.ArrowClosed]:Jg};function em(e){const t=re();return b.useMemo(()=>Object.prototype.hasOwnProperty.call(Er,e)?Er[e]:(t.getState().onError?.("009",ve.error009(e)),null),[e])}const tm=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:s="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const l=em(t);return l?u.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:u.jsx(l,{color:n,strokeWidth:i})}):null},Li=({defaultColor:e,rfId:t})=>{const n=ne(s=>s.edges),o=ne(s=>s.defaultEdgeOptions),r=b.useMemo(()=>np(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?u.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:u.jsx("defs",{children:r.map(s=>u.jsx(tm,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};Li.displayName="MarkerDefinitions";var nm=b.memo(Li);function Bi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[f,h]=b.useState({x:1,y:0,width:0,height:0}),g=ie(["react-flow__edge-textwrapper",c]),p=b.useRef(null);return b.useEffect(()=>{if(p.current){const y=p.current.getBBox();h({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:g,visibility:f.width?"visible":"hidden",...d,children:[r&&u.jsx("rect",{width:f.width+2*i[0],x:-i[0],y:-i[1],height:f.height+2*i[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),u.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:p,style:o,children:n}),l]}):null}Bi.displayName="EdgeText";const om=b.memo(Bi);function ft({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...d,d:e,fill:"none",className:ie(["react-flow__edge-path",d.className])}),c?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,o&&ye(t)&&ye(n)?u.jsx(om,{x:t,y:n,label:o,labelStyle:r,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Sr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===K.Left||e===K.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Hi({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:o,targetY:r,targetPosition:s=K.Top}){const[i,a]=Sr({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=Sr({pos:s,x1:o,y1:r,x2:e,y2:t}),[d,f,h,g]=di({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${i},${a} ${l},${c} ${o},${r}`,d,f,h,g]}function Vi(e){return b.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})=>{const[E,m,v]=Hi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a}),C=e.isInternal?void 0:t;return u.jsx(ft,{id:C,path:E,labelX:m,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:x})})}const rm=Vi({isInternal:!1}),Fi=Vi({isInternal:!0});rm.displayName="SimpleBezierEdge";Fi.displayName="SimpleBezierEdgeInternal";function Wi(e){return b.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:g=K.Bottom,targetPosition:p=K.Top,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:E})=>{const[m,v,C]=rn({sourceX:n,sourceY:o,sourcePosition:g,targetX:r,targetY:s,targetPosition:p,borderRadius:x?.borderRadius,offset:x?.offset,stepPosition:x?.stepPosition}),S=e.isInternal?void 0:t;return u.jsx(ft,{id:S,path:m,labelX:v,labelY:C,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:y,markerStart:w,interactionWidth:E})})}const Yi=Wi({isInternal:!1}),Xi=Wi({isInternal:!0});Yi.displayName="SmoothStepEdge";Xi.displayName="SmoothStepEdgeInternal";function Ui(e){return b.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return u.jsx(Yi,{...n,id:o,pathOptions:b.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const sm=Ui({isInternal:!1}),Zi=Ui({isInternal:!0});sm.displayName="StepEdge";Zi.displayName="StepEdgeInternal";function Gi(e){return b.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:y})=>{const[w,x,E]=pi({sourceX:n,sourceY:o,targetX:r,targetY:s}),m=e.isInternal?void 0:t;return u.jsx(ft,{id:m,path:w,labelX:x,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:g,markerStart:p,interactionWidth:y})})}const im=Gi({isInternal:!1}),qi=Gi({isInternal:!0});im.displayName="StraightEdge";qi.displayName="StraightEdgeInternal";function Ki(e){return b.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:s,sourcePosition:i=K.Bottom,targetPosition:a=K.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,pathOptions:x,interactionWidth:E})=>{const[m,v,C]=fi({sourceX:n,sourceY:o,sourcePosition:i,targetX:r,targetY:s,targetPosition:a,curvature:x?.curvature}),S=e.isInternal?void 0:t;return u.jsx(ft,{id:S,path:m,labelX:v,labelY:C,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:g,style:p,markerEnd:y,markerStart:w,interactionWidth:E})})}const am=Ki({isInternal:!1}),Qi=Ki({isInternal:!0});am.displayName="BezierEdge";Qi.displayName="BezierEdgeInternal";const Nr={default:Qi,straight:qi,step:Zi,smoothstep:Xi,simplebezier:Fi},Cr={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},cm=(e,t,n)=>n===K.Left?e-t:n===K.Right?e+t:e,lm=(e,t,n)=>n===K.Top?e-t:n===K.Bottom?e+t:e,Mr="react-flow__edgeupdater";function kr({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:s,onMouseOut:i,type:a}){return u.jsx("circle",{onMouseDown:r,onMouseEnter:s,onMouseOut:i,className:ie([Mr,`${Mr}-${a}`]),cx:cm(t,o,e),cy:lm(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function um({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:s,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:g}){const p=re(),y=(v,C)=>{if(v.button!==0)return;const{autoPanOnConnect:S,domNode:k,connectionMode:A,connectionRadius:P,lib:H,onConnectStart:j,cancelConnection:R,nodeLookup:$,rfId:_,panBy:N,updateConnection:M}=p.getState(),I=C.type==="target",T=(B,O)=>{h(!1),f?.(B,n,C.type,O)},D=B=>c?.(n,B),L=(B,O)=>{h(!0),d?.(v,n,C.type),j?.(B,O)};Xn.onPointerDown(v.nativeEvent,{autoPanOnConnect:S,connectionMode:A,connectionRadius:P,domNode:k,handleId:C.id,nodeId:C.nodeId,nodeLookup:$,isTarget:I,edgeUpdaterType:C.type,lib:H,flowId:_,cancelConnection:R,panBy:N,isValidConnection:(...B)=>p.getState().isValidConnection?.(...B)??!0,onConnect:D,onConnectStart:L,onConnectEnd:(...B)=>p.getState().onConnectEnd?.(...B),onReconnectEnd:T,updateConnection:M,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>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 u.jsxs(u.Fragment,{children:[(e===!0||e==="source")&&u.jsx(kr,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:w,onMouseEnter:E,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&u.jsx(kr,{position:l,centerX:s,centerY:i,radius:t,onMouseDown:x,onMouseEnter:E,onMouseOut:m,type:"target"})]})}function dm({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,rfId:p,edgeTypes:y,noPanClassName:w,onError:x,disableKeyboardA11y:E}){let m=ne(F=>F.edgeLookup.get(e));const v=ne(F=>F.defaultEdgeOptions);m=v?{...v,...m}:m;let C=m.type||"default",S=y?.[C]||Nr[C];S===void 0&&(x?.("011",ve.error011(C)),C="default",S=y?.default||Nr.default);const k=!!(m.focusable||t&&typeof m.focusable>"u"),A=typeof f<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),P=!!(m.selectable||o&&typeof m.selectable>"u"),H=b.useRef(null),[j,R]=b.useState(!1),[$,_]=b.useState(!1),N=re(),{zIndex:M,sourceX:I,sourceY:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O}=ne(b.useCallback(F=>{const W=F.nodeLookup.get(m.source),J=F.nodeLookup.get(m.target);if(!W||!J)return{zIndex:m.zIndex,...Cr};const Z=tp({id:e,sourceNode:W,targetNode:J,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:F.connectionMode,onError:x});return{zIndex:Uh({selected:m.selected,zIndex:m.zIndex,sourceNode:W,targetNode:J,elevateOnSelect:F.elevateEdgesOnSelect,zIndexMode:F.zIndexMode}),...Z||Cr}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex]),oe),q=b.useMemo(()=>m.markerStart?`url('#${Wn(m.markerStart,p)}')`:void 0,[m.markerStart,p]),G=b.useMemo(()=>m.markerEnd?`url('#${Wn(m.markerEnd,p)}')`:void 0,[m.markerEnd,p]);if(m.hidden||I===null||T===null||D===null||L===null)return null;const V=F=>{const{addSelectedEdges:W,unselectNodesAndEdges:J,multiSelectionActive:Z}=N.getState();P&&(N.setState({nodesSelectionActive:!1}),m.selected&&Z?(J({nodes:[],edges:[m]}),H.current?.blur()):W([e])),r&&r(F,m)},X=s?F=>{s(F,{...m})}:void 0,Y=i?F=>{i(F,{...m})}:void 0,z=a?F=>{a(F,{...m})}:void 0,U=l?F=>{l(F,{...m})}:void 0,ee=c?F=>{c(F,{...m})}:void 0,Q=F=>{if(!E&&Ks.includes(F.key)&&P){const{unselectNodesAndEdges:W,addSelectedEdges:J}=N.getState();F.key==="Escape"?(H.current?.blur(),W({edges:[m]})):J([e])}};return u.jsx("svg",{style:{zIndex:M},children:u.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${C}`,m.className,w,{selected:m.selected,animated:m.animated,inactive:!P&&!r,updating:j,selectable:P}]),onClick:V,onDoubleClick:X,onContextMenu:Y,onMouseEnter:z,onMouseMove:U,onMouseLeave:ee,onKeyDown:k?Q:void 0,tabIndex:k?0:void 0,role:m.ariaRole??(k?"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":k?`${ji}-${p}`:void 0,ref:H,...m.domAttributes,children:[!$&&u.jsx(S,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:P,deletable:m.deletable??!0,label:m.label,labelStyle:m.labelStyle,labelShowBg:m.labelShowBg,labelBgStyle:m.labelBgStyle,labelBgPadding:m.labelBgPadding,labelBgBorderRadius:m.labelBgBorderRadius,sourceX:I,sourceY:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:q,markerEnd:G,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),A&&u.jsx(um,{edge:m,isReconnectable:A,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:g,sourceX:I,sourceY:T,targetX:D,targetY:L,sourcePosition:B,targetPosition:O,setUpdateHover:R,setReconnecting:_})]})})}var fm=b.memo(dm);const hm=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Ji({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,disableKeyboardA11y:y}){const{edgesFocusable:w,edgesReconnectable:x,elementsSelectable:E,onError:m}=ne(hm,oe),v=Kg(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(nm,{defaultColor:e,rfId:n}),v.map(C=>u.jsx(fm,{id:C,edgesFocusable:w,edgesReconnectable:x,elementsSelectable:E,noPanClassName:r,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:g,onReconnectEnd:p,rfId:n,onError:m,edgeTypes:o,disableKeyboardA11y:y},C))]})}Ji.displayName="EdgeRenderer";const pm=b.memo(Ji),gm=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function mm({children:e}){const t=ne(gm);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function xm(e){const t=wn(),n=b.useRef(!1);b.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const ym=e=>e.panZoom?.syncViewport;function wm(e){const t=ne(ym),n=re();return b.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function vm(e){return e.connection.inProgress?{...e.connection,to:ht(e.connection.to,e.transform)}:{...e.connection}}function bm(e){return vm}function _m(e){const t=bm();return ne(t,oe)}const Em=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Sm({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:s,height:i,isValid:a,inProgress:l}=ne(Em,oe);return!(s&&r&&l)?null:u.jsx("svg",{style:e,width:s,height:i,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:ie(["react-flow__connection",ei(a)]),children:u.jsx(ea,{style:t,type:n,CustomComponent:o,isValid:a})})})}const ea=({style:e,type:t=Re.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:s,fromNode:i,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:f,toPosition:h,pointer:g}=_m();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:ei(o),toNode:d,toHandle:f,pointer:g});let p="";const y={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Re.Bezier:[p]=fi(y);break;case Re.SimpleBezier:[p]=Hi(y);break;case Re.Step:[p]=rn({...y,borderRadius:0});break;case Re.SmoothStep:[p]=rn(y);break;default:[p]=pi(y)}return u.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};ea.displayName="ConnectionLine";const Nm={};function jr(e=Nm){b.useRef(e),re(),b.useEffect(()=>{},[e])}function Cm(){re(),b.useRef(!1),b.useEffect(()=>{},[])}function ta({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:g,connectionLineType:p,connectionLineStyle:y,connectionLineComponent:w,connectionLineContainerStyle:x,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:k,deleteKeyCode:A,onlyRenderVisibleElements:P,elementsSelectable:H,defaultViewport:j,translateExtent:R,minZoom:$,maxZoom:_,preventScrolling:N,defaultMarkerColor:M,zoomOnScroll:I,zoomOnPinch:T,panOnScroll:D,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:O,panOnDrag:q,autoPanOnSelection:G,onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:z,onPaneScroll:U,onPaneContextMenu:ee,paneClickDistance:Q,nodeClickDistance:F,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:Z,onEdgeMouseLeave:te,reconnectRadius:ae,onReconnect:de,onReconnectStart:fe,onReconnectEnd:he,noDragClassName:Ee,noWheelClassName:pt,noPanClassName:ze,disableKeyboardA11y:Oe,nodeExtent:me,rfId:Se,viewport:Ne,onViewportChange:$e}){return jr(e),jr(t),Cm(),xm(n),wm(Ne),u.jsx(Hg,{onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:z,onPaneContextMenu:ee,onPaneScroll:U,paneClickDistance:Q,deleteKeyCode:A,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:k,elementsSelectable:H,zoomOnScroll:I,zoomOnPinch:T,zoomOnDoubleClick:O,panOnScroll:D,panOnScrollSpeed:L,panOnScrollMode:B,panOnDrag:q,autoPanOnSelection:G,defaultViewport:j,translateExtent:R,minZoom:$,maxZoom:_,onSelectionContextMenu:f,preventScrolling:N,noDragClassName:Ee,noWheelClassName:pt,noPanClassName:ze,disableKeyboardA11y:Oe,onViewportChange:$e,isControlledViewport:!!Ne,children:u.jsxs(mm,{children:[u.jsx(pm,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:i,onReconnect:de,onReconnectStart:fe,onReconnectEnd:he,onlyRenderVisibleElements:P,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:Z,onEdgeMouseLeave:te,reconnectRadius:ae,defaultMarkerColor:M,noPanClassName:ze,disableKeyboardA11y:Oe,rfId:Se}),u.jsx(Sm,{style:y,type:p,component:w,containerStyle:x}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(qg,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:F,onlyRenderVisibleElements:P,noPanClassName:ze,noDragClassName:Ee,disableKeyboardA11y:Oe,nodeExtent:me,rfId:Se}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}ta.displayName="GraphView";const Mm=b.memo(ta),km=si(),Ir=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:f,zIndexMode:h="basic"}={})=>{const g=new Map,p=new Map,y=new Map,w=new Map,x=o??t??[],E=n??e??[],m=d??[0,0],v=f??Nt;xi(y,w,x);const{nodesInitialized:C}=Yn(E,g,p,{nodeOrigin:m,nodeExtent:v,zIndexMode:h});let S=[0,0,1];if(i&&r&&s){const k=Tt(g,{filter:j=>!!((j.width||j.initialWidth)&&(j.height||j.initialHeight))}),{x:A,y:P,zoom:H}=co(k,r,s,l,c,a?.padding??.1);S=[A,P,H]}return{rfId:"1",width:r??0,height:s??0,transform:S,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:l,maxZoom:c,translateExtent:Nt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:at.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:m,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Js},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:km,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Qs,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},jm=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h})=>Vp((g,p)=>{async function y(){const{nodeLookup:w,panZoom:x,fitViewOptions:E,fitViewResolver:m,width:v,height:C,minZoom:S,maxZoom:k}=p();x&&(await Bh({nodes:w,width:v,height:C,panZoom:x,minZoom:S,maxZoom:k},E),m?.resolve(!0),g({fitViewResolver:null}))}return{...Ir({nodes:e,edges:t,width:r,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:f,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:w=>{const{nodeLookup:x,parentLookup:E,nodeOrigin:m,elevateNodesOnSelect:v,fitViewQueued:C,zIndexMode:S,nodesSelectionActive:k}=p(),{nodesInitialized:A,hasSelectedNodes:P}=Yn(w,x,E,{nodeOrigin:m,nodeExtent:f,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:S}),H=k&&P;C&&A?(y(),g({nodes:w,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:H})):g({nodes:w,nodesInitialized:A,nodesSelectionActive:H})},setEdges:w=>{const{connectionLookup:x,edgeLookup:E}=p();xi(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:S,debug:k,fitViewQueued:A,zIndexMode:P}=p(),{changes:H,updatedInternals:j}=lp(w,E,m,v,C,S,P);j&&(sp(E,m,{nodeOrigin:C,nodeExtent:S,zIndexMode:P}),A?(y(),g({fitViewQueued:!1,fitViewOptions:void 0})):g({}),H?.length>0&&(k&&console.log("React Flow: trigger node changes",H),x?.(H)))},updateNodePositions:(w,x=!1)=>{const E=[];let m=[];const{nodeLookup:v,triggerNodeChanges:C,connection:S,updateConnection:k,onNodesChangeMiddlewareMap:A}=p();for(const[P,H]of w){const j=v.get(P),R=!!(j?.expandParent&&j?.parentId&&H?.position),$={id:P,type:"position",position:R?{x:Math.max(0,H.position.x),y:Math.max(0,H.position.y)}:H.position,dragging:x};if(j&&S.inProgress&&S.fromNode.id===j.id){const _=Ue(j,S.fromHandle,K.Left,!0);k({...S,from:_})}R&&j.parentId&&E.push({id:P,parentId:j.parentId,rect:{...H.internals.positionAbsolute,width:H.measured.width??0,height:H.measured.height??0}}),m.push($)}if(E.length>0){const{parentLookup:P,nodeOrigin:H}=p(),j=go(E,v,P,H);m.push(...j)}for(const P of A.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 S=lg(w,m);E(S)}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 S=ug(w,m);E(S)}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 S=w.map(k=>Be(k,!0));v(S);return}v(ot(m,new Set([...w]),!0)),C(ot(E))},addSelectedEdges:w=>{const{multiSelectionActive:x,edgeLookup:E,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:C}=p();if(x){const S=w.map(k=>Be(k,!0));C(S);return}C(ot(E,new Set([...w]))),v(ot(m,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:x}={})=>{const{edges:E,nodes:m,nodeLookup:v,triggerNodeChanges:C,triggerEdgeChanges:S}=p(),k=w||m,A=x||E,P=[];for(const j of k){if(!j.selected)continue;const R=v.get(j.id);R&&(R.selected=!1),P.push(Be(j.id,!1))}const H=[];for(const j of A)j.selected&&H.push(Be(j.id,!1));C(P),S(H)},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((k,A)=>A.selected?[...k,Be(A.id,!1)]:k,[]),S=w.reduce((k,A)=>A.selected?[...k,Be(A.id,!1)]:k,[]);E(C),m(S)},setNodeExtent:w=>{const{nodes:x,nodeLookup:E,parentLookup:m,nodeOrigin:v,elevateNodesOnSelect:C,nodeExtent:S,zIndexMode:k}=p();w[0][0]===S[0][0]&&w[0][1]===S[0][1]&&w[1][0]===S[1][0]&&w[1][1]===S[1][1]||(Yn(x,E,m,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:C,checkEquality:!1,zIndexMode:k}),g({nodeExtent:w}))},panBy:w=>{const{transform:x,width:E,height:m,panZoom:v,translateExtent:C}=p();return up({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:S}=p();if(!S)return!1;const k=typeof E?.zoom<"u"?E.zoom:C;return await S.setViewport({x:m/2-w*k,y:v/2-x*k,zoom:k},{duration:E?.duration,ease:E?.ease,interpolate:E?.interpolate}),!0},cancelConnection:()=>{g({connection:{...Js}})},updateConnection:w=>{g({connection:w})},reset:()=>g({...Ir()})}},Object.is);function Im({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h,children:g}){const[p]=b.useState(()=>jm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:s,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:f,zIndexMode:h}));return u.jsx(Fp,{value:p,children:u.jsx(mg,{children:g})})}function Am({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:s,height:i,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g}){return b.useContext(xn)?u.jsx(u.Fragment,{children:e}):u.jsx(Im,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:g,children:e})}const Pm={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Dm({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:S,onNodeDragStart:k,onNodeDrag:A,onNodeDragStop:P,onNodesDelete:H,onEdgesDelete:j,onDelete:R,onSelectionChange:$,onSelectionDragStart:_,onSelectionDrag:N,onSelectionDragStop:M,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:D,onBeforeDelete:L,connectionMode:B,connectionLineType:O=Re.Bezier,connectionLineStyle:q,connectionLineComponent:G,connectionLineContainerStyle:V,deleteKeyCode:X="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:z=!1,selectionMode:U=Ct.Full,panActivationKeyCode:ee="Space",multiSelectionKeyCode:Q=kt()?"Meta":"Control",zoomActivationKeyCode:F=kt()?"Meta":"Control",snapToGrid:W,snapGrid:J,onlyRenderVisibleElements:Z=!1,selectNodesOnDrag:te,nodesDraggable:ae,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:he,nodeOrigin:Ee=Ii,edgesFocusable:pt,edgesReconnectable:ze,elementsSelectable:Oe=!0,defaultViewport:me=ng,minZoom:Se=.5,maxZoom:Ne=2,translateExtent:$e=Nt,preventScrolling:pa=!0,nodeExtent:bn,defaultMarkerColor:ga="#b1b1b7",zoomOnScroll:ma=!0,zoomOnPinch:xa=!0,panOnScroll:ya=!1,panOnScrollSpeed:wa=.5,panOnScrollMode:va=Fe.Free,zoomOnDoubleClick:ba=!0,panOnDrag:_a=!0,onPaneClick:Ea,onPaneMouseEnter:Sa,onPaneMouseMove:Na,onPaneMouseLeave:Ca,onPaneScroll:Ma,onPaneContextMenu:ka,paneClickDistance:ja=1,nodeClickDistance:Ia=0,children:Aa,onReconnect:Pa,onReconnectStart:Da,onReconnectEnd:Ta,onEdgeContextMenu:Ra,onEdgeDoubleClick:za,onEdgeMouseEnter:Oa,onEdgeMouseMove:$a,onEdgeMouseLeave:La,reconnectRadius:Ba=10,onNodesChange:Ha,onEdgesChange:Va,noDragClassName:Fa="nodrag",noWheelClassName:Wa="nowheel",noPanClassName:wo="nopan",fitView:vo,fitViewOptions:bo,connectOnClick:Ya,attributionPosition:Xa,proOptions:Ua,defaultEdgeOptions:Za,elevateNodesOnSelect:Ga=!0,elevateEdgesOnSelect:qa=!1,disableKeyboardA11y:_o=!1,autoPanOnConnect:Ka,autoPanOnNodeDrag:Qa,autoPanOnSelection:Ja=!0,autoPanSpeed:ec,connectionRadius:tc,isValidConnection:nc,onError:oc,style:rc,id:Eo,nodeDragThreshold:sc,connectionDragThreshold:ic,viewport:ac,onViewportChange:cc,width:lc,height:uc,colorMode:dc="light",debug:fc,onScroll:So,ariaLabelConfig:hc,zIndexMode:No="basic",...pc},gc){const _n=Eo||"1",mc=ig(dc),xc=b.useCallback(Co=>{Co.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),So?.(Co)},[So]);return u.jsx("div",{"data-testid":"rf__wrapper",...pc,onScroll:xc,style:{...rc,...Pm},ref:gc,className:ie(["react-flow",r,mc]),id:Eo,role:"application",children:u.jsxs(Am,{nodes:e,edges:t,width:lc,height:uc,fitView:vo,fitViewOptions:bo,minZoom:Se,maxZoom:Ne,nodeOrigin:Ee,nodeExtent:bn,zIndexMode:No,children:[u.jsx(sg,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:p,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:x,nodesDraggable:ae,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:he,edgesFocusable:pt,edgesReconnectable:ze,elementsSelectable:Oe,elevateNodesOnSelect:Ga,elevateEdgesOnSelect:qa,minZoom:Se,maxZoom:Ne,nodeExtent:bn,onNodesChange:Ha,onEdgesChange:Va,snapToGrid:W,snapGrid:J,connectionMode:B,translateExtent:$e,connectOnClick:Ya,defaultEdgeOptions:Za,fitView:vo,fitViewOptions:bo,onNodesDelete:H,onEdgesDelete:j,onDelete:R,onNodeDragStart:k,onNodeDrag:A,onNodeDragStop:P,onSelectionDrag:N,onSelectionDragStart:_,onSelectionDragStop:M,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:wo,nodeOrigin:Ee,rfId:_n,autoPanOnConnect:Ka,autoPanOnNodeDrag:Qa,autoPanSpeed:ec,onError:oc,connectionRadius:tc,isValidConnection:nc,selectNodesOnDrag:te,nodeDragThreshold:sc,connectionDragThreshold:ic,onBeforeDelete:L,debug:fc,ariaLabelConfig:hc,zIndexMode:No}),u.jsx(Mm,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:S,nodeTypes:s,edgeTypes:i,connectionLineType:O,connectionLineStyle:q,connectionLineComponent:G,connectionLineContainerStyle:V,selectionKeyCode:Y,selectionOnDrag:z,selectionMode:U,deleteKeyCode:X,multiSelectionKeyCode:Q,panActivationKeyCode:ee,zoomActivationKeyCode:F,onlyRenderVisibleElements:Z,defaultViewport:me,translateExtent:$e,minZoom:Se,maxZoom:Ne,preventScrolling:pa,zoomOnScroll:ma,zoomOnPinch:xa,zoomOnDoubleClick:ba,panOnScroll:ya,panOnScrollSpeed:wa,panOnScrollMode:va,panOnDrag:_a,autoPanOnSelection:Ja,onPaneClick:Ea,onPaneMouseEnter:Sa,onPaneMouseMove:Na,onPaneMouseLeave:Ca,onPaneScroll:Ma,onPaneContextMenu:ka,paneClickDistance:ja,nodeClickDistance:Ia,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:D,onReconnect:Pa,onReconnectStart:Da,onReconnectEnd:Ta,onEdgeContextMenu:Ra,onEdgeDoubleClick:za,onEdgeMouseEnter:Oa,onEdgeMouseMove:$a,onEdgeMouseLeave:La,reconnectRadius:Ba,defaultMarkerColor:ga,noDragClassName:Fa,noWheelClassName:Wa,noPanClassName:wo,rfId:_n,disableKeyboardA11y:_o,nodeExtent:bn,viewport:ac,onViewportChange:cc}),u.jsx(tg,{onSelectionChange:$}),Aa,u.jsx(qp,{proOptions:Ua,position:Xa}),u.jsx(Gp,{rfId:_n,disableKeyboardA11y:_o})]})})}var Tm=Pi(Dm);const Rm=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function zm({children:e}){const t=ne(Rm);return t?Hc.createPortal(e,t):null}const Om=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function $m(){return ne(Om,oe)}function Lm({dimensions:e,lineWidth:t,variant:n,className:o}){return u.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function Bm({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var je;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(je||(je={}));const Hm={[je.Dots]:1,[je.Lines]:1,[je.Cross]:6},Vm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function na({id:e,variant:t=je.Dots,gap:n=20,size:o,lineWidth:r=1,offset:s=0,color:i,bgColor:a,style:l,className:c,patternClassName:d}){const f=b.useRef(null),{transform:h,patternId:g}=ne(Vm,oe),p=o||Hm[t],y=t===je.Dots,w=t===je.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,S=[v[0]*h[2]||1+C[0]/2,v[1]*h[2]||1+C[1]/2],k=`${g}${e||""}`;return u.jsxs("svg",{className:ie(["react-flow__background",c]),style:{...l,...vn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:f,"data-testid":"rf__background",children:[u.jsx("pattern",{id:k,x:h[0]%E[0],y:h[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:y?u.jsx(Bm,{radius:m/2,className:d}):u.jsx(Lm,{dimensions:C,lineWidth:r,variant:t,className:d})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${k})`})]})}na.displayName="Background";const Fm=b.memo(na);function Wm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:u.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Ym(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:u.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Xm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:u.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function Um(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Zm(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Ft({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const Gm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function oa({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:c,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":g}){const p=re(),{isInteractive:y,minZoomReached:w,maxZoomReached:x,ariaLabelConfig:E}=ne(Gm,oe),{zoomIn:m,zoomOut:v,fitView:C}=wn(),S=()=>{m(),s?.()},k=()=>{v(),i?.()},A=()=>{C(r),a?.()},P=()=>{p.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),l?.(!y)},H=h==="horizontal"?"horizontal":"vertical";return u.jsxs(yn,{className:ie(["react-flow__controls",H,c]),position:f,style:e,"data-testid":"rf__controls","aria-label":g??E["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(Ft,{onClick:S,className:"react-flow__controls-zoomin",title:E["controls.zoomIn.ariaLabel"],"aria-label":E["controls.zoomIn.ariaLabel"],disabled:x,children:u.jsx(Wm,{})}),u.jsx(Ft,{onClick:k,className:"react-flow__controls-zoomout",title:E["controls.zoomOut.ariaLabel"],"aria-label":E["controls.zoomOut.ariaLabel"],disabled:w,children:u.jsx(Ym,{})})]}),n&&u.jsx(Ft,{className:"react-flow__controls-fitview",onClick:A,title:E["controls.fitView.ariaLabel"],"aria-label":E["controls.fitView.ariaLabel"],children:u.jsx(Xm,{})}),o&&u.jsx(Ft,{className:"react-flow__controls-interactive",onClick:P,title:E["controls.interactive.ariaLabel"],"aria-label":E["controls.interactive.ariaLabel"],children:y?u.jsx(Zm,{}):u.jsx(Um,{})}),d]})}oa.displayName="Controls";const qm=b.memo(oa);function Km({id:e,x:t,y:n,width:o,height:r,style:s,color:i,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:f,selected:h,onClick:g}){const{background:p,backgroundColor:y}=s||{},w=i||p||y;return u.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:l},shapeRendering:f,onClick:g?x=>g(x,e):void 0})}const Qm=b.memo(Km),Jm=e=>e.nodes.map(t=>t.id),Dn=e=>e instanceof Function?e:()=>e;function ex({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:s=Qm,onClick:i}){const a=ne(Jm,oe),l=Dn(t),c=Dn(e),d=Dn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:a.map(h=>u.jsx(nx,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:s,onClick:i,shapeRendering:f},h))})}function tx({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:c,x:d,y:f,width:h,height:g}=ne(p=>{const 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}=Ae(w);return{node:w,x,y:E,width:m,height:v}},oe);return!c||c.hidden||!ii(c)?null:u.jsx(a,{x:d,y:f,width:h,height:g,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:r,strokeColor:n(c),strokeWidth:s,shapeRendering:i,onClick:l,id:c.id})}const nx=b.memo(tx);var ox=b.memo(ex);const rx=200,sx=150,ix=e=>!e.hidden,ax=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ri(Tt(e.nodeLookup,{filter:ix}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},cx="react-flow__minimap-desc";function ra({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:g,onNodeClick:p,pannable:y=!1,zoomable:w=!1,ariaLabel:x,inversePan:E,zoomStep:m=1,offsetScale:v=5}){const C=re(),S=b.useRef(null),{boundingRect:k,viewBB:A,rfId:P,panZoom:H,translateExtent:j,flowWidth:R,flowHeight:$,ariaLabelConfig:_}=ne(ax,oe),N=e?.width??rx,M=e?.height??sx,I=k.width/N,T=k.height/M,D=Math.max(I,T),L=D*N,B=D*M,O=v*D,q=k.x-(L-k.width)/2-O,G=k.y-(B-k.height)/2-O,V=L+O*2,X=B+O*2,Y=`${cx}-${P}`,z=b.useRef(0),U=b.useRef();z.current=D,b.useEffect(()=>{if(S.current&&H)return U.current=wp({domNode:S.current,panZoom:H,getTransform:()=>C.getState().transform,getViewScale:()=>z.current}),()=>{U.current?.destroy()}},[H]),b.useEffect(()=>{U.current?.update({translateExtent:j,width:R,height:$,inversePan:E,pannable:y,zoomStep:m,zoomable:w})},[y,w,E,m,j,R,$]);const ee=g?W=>{const[J,Z]=U.current?.pointer(W)||[0,0];g(W,{x:J,y:Z})}:void 0,Q=p?b.useCallback((W,J)=>{const Z=C.getState().nodeLookup.get(J).internals.userNode;p(W,Z)},[]):void 0,F=x??_["minimap.ariaLabel"];return u.jsx(yn,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*D:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:N,height:M,viewBox:`${q} ${G} ${V} ${X}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:S,onClick:ee,children:[F&&u.jsx("title",{id:Y,children:F}),u.jsx(ox,{onClick:Q,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:r,nodeStrokeWidth:i,nodeComponent:a}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${q-O},${G-O}h${V+O*2}v${X+O*2}h${-V-O*2}z
|
|
8
|
-
M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ra.displayName="MiniMap";b.memo(ra);const lx=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,ux={[dt.Line]:"right",[dt.Handle]:"bottom-right"};function dx({nodeId:e,position:t,variant:n=dt.Handle,className:o,style:r=void 0,children:s,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:h,autoScale:g=!0,shouldResize:p,onResizeStart:y,onResize:w,onResizeEnd:x}){const E=zi(),m=typeof e=="string"?e:E,v=re(),C=b.useRef(null),S=n===dt.Handle,k=ne(b.useCallback(lx(S&&g),[S,g]),oe),A=b.useRef(null),P=t??ux[n];b.useEffect(()=>{if(!(!C.current||!m))return A.current||(A.current=Pp({domNode:C.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:j,transform:R,snapGrid:$,snapToGrid:_,nodeOrigin:N,domNode:M}=v.getState();return{nodeLookup:j,transform:R,snapGrid:$,snapToGrid:_,nodeOrigin:N,paneDomNode:M}},onChange:(j,R)=>{const{triggerNodeChanges:$,nodeLookup:_,parentLookup:N,nodeOrigin:M}=v.getState(),I=[],T={x:j.x,y:j.y},D=_.get(m);if(D&&D.expandParent&&D.parentId){const L=D.origin??M,B=j.width??D.measured.width??0,O=j.height??D.measured.height??0,q={id:D.id,parentId:D.parentId,rect:{width:B,height:O,...ai({x:j.x??D.position.x,y:j.y??D.position.y},{width:B,height:O},D.parentId,_,L)}},G=go([q],_,N,M);I.push(...G),T.x=j.x?Math.max(L[0]*B,j.x):void 0,T.y=j.y?Math.max(L[1]*O,j.y):void 0}if(T.x!==void 0&&T.y!==void 0){const L={id:m,type:"position",position:{...T}};I.push(L)}if(j.width!==void 0&&j.height!==void 0){const B={id:m,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:j.width,height:j.height}};I.push(B)}for(const L of R){const B={...L,type:"position"};I.push(B)}$(I)},onEnd:({width:j,height:R})=>{const $={id:m,type:"dimensions",resizing:!1,dimensions:{width:j,height:R}};v.getState().triggerNodeChanges([$])}})),A.current.update({controlPosition:P,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:f,resizeDirection:h,onResizeStart:y,onResize:w,onResizeEnd:x,shouldResize:p}),()=>{A.current?.destroy()}},[P,a,l,c,d,f,y,w,x,p]);const H=P.split("-");return u.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...H,n,o]),ref:C,style:{...r,scale:k,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:s})}b.memo(dx);const fx="border-dashed border-border-default bg-surface-page text-text-secondary shadow-sm hover:border-border-strong",Ar="var(--xy-edge-stroke)",hx=({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:s,targetPosition:i,data:a})=>{const[l,c]=b.useState(!1),[d,f]=b.useState(!1),[h,g]=b.useState(!1),p=a,[y,w,x]=rn({sourceX:t,sourceY:n,sourcePosition:s,targetX:o,targetY:r,targetPosition:i});if(!p)return u.jsx(ft,{id:e,path:y,style:{stroke:Ar}});const E=S=>{c(!1),p.onPick(S,{sourceId:p.sourceId,targetId:p.targetId})},m=l||d||h,v=u.jsx("button",{"aria-label":"Insert step here",className:se("flex size-8 items-center justify-center rounded-full border transition-opacity focus-visible:opacity-100 focus-visible:outline-none",fx,m?"opacity-100":"opacity-0",p.disabled&&"cursor-not-allowed!"),"data-testid":`add-step-button-${p.sourceId}-${p.targetId}`,disabled:p.disabled,type:"button",children:u.jsx(an,{className:"size-5",strokeWidth:1.5})});let C;return p.disabled?C=p.disabledReason?u.jsx(Vc,{delayDuration:150,children:u.jsxs(Fc,{children:[u.jsx(Wc,{asChild:!0,children:u.jsx("span",{tabIndex:0,children:v})}),u.jsx(Yc,{children:p.disabledReason})]})}):v:C=u.jsxs(Hr,{open:l,onOpenChange:c,children:[u.jsx(Vr,{asChild:!0,children:v}),u.jsx(Fr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(Cs,{onPick:E})})]}),u.jsxs("g",{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[u.jsx(ft,{id:e,interactionWidth:30,path:y,style:{stroke:Ar}}),u.jsx(zm,{children:u.jsx("div",{className:"pointer-events-auto absolute",style:{transform:`translate(-50%, -50%) translate(${w}px, ${x}px)`},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:u.jsx("div",{className:"flex h-10 w-16 items-center justify-center",children:C})})})]})},px=()=>{const{data:e}=Zn(),{data:t}=Xc(),n=e?.settings||[],o=t?.site?.url||"",[r="all",s=!1,i=!1]=Gn(n,["members_signup_access","donations_enabled","recommendations_enabled"]);return wl({siteUrl:o,membersSignupAccess:typeof r=="string"?r:"all",donationsEnabled:!!s,recommendationsEnabled:!!i})},gx={useFileUpload:El,fileTypes:_l},mx=le.lazy(()=>Zc(()=>import("./koenig-lexical-DlzcWUPw.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.EmailEditor})));class xx extends le.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?u.jsx("div",{className:"p-6 text-sm text-destructive",children:"Something went wrong loading the editor."}):this.props.children}}const yx=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]"),wx=({value:e,placeholder:t,className:n,onChange:o})=>{const r=b.useRef(null),s=b.useRef(e),{unsplashConfig:i}=Uc(),a=vl(),{data:l}=Zn(),{data:c}=Wr(),d=l?.settings||[],f=c?.config,{fetchAutocompleteLinks:h,searchLinks:g}=px(),p=bl(),y=f?.tenor?.googleApiKey?f.tenor:null,[w]=Gn(d,["transistor"]),x=b.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=b.useCallback(S=>{r.current=S},[]),m=b.useCallback(S=>{o&&S&&typeof S=="object"&&o(JSON.stringify(S))},[o]),v=b.useCallback(S=>{(S.metaKey||S.ctrlKey)&&S.key==="k"&&S.stopPropagation()},[]),C=S=>{r.current&&Sl(r.current,S)};return u.jsx("div",{className:"h-full",onKeyDown:v,onMouseDown:C,children:u.jsx(xx,{children:u.jsx(b.Suspense,{fallback:u.jsx(He,{size:"lg"}),children:u.jsx("div",{className:se("koenig-react-editor w-full",yx,n),children:u.jsx(mx,{cardConfig:x,className:"koenig-lexical koenig-lexical-editor-input",darkMode:!1,fileUploader:gx,initialEditorState:s.current,placeholderText:t,registerAPI:E,onChange:m})})})})})},vx=le.memo(wx),bx=({previewState:e})=>{const[t,n]=b.useState(null),[o,r]=b.useState(!1),s=b.useRef(!1),i=b.useRef(null),a=b.useRef(null),l=b.useRef(null),c=b.useRef(null);function d(){a.current?.disconnect(),a.current=null,l.current!==null&&(window.cancelAnimationFrame(l.current),l.current=null),c.current!==null&&(window.cancelAnimationFrame(c.current),c.current=null)}const f=e.status==="success"?e.html:"";b.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(){l.current!==null&&window.cancelAnimationFrame(l.current),l.current=window.requestAnimationFrame(()=>{l.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 u.jsxs("div",{className:"relative w-full","data-testid":"email-preview",children:[y&&u.jsx("div",{className:"flex min-h-full items-start justify-center pt-24","data-testid":"email-preview-loading",style:t?{height:`${t}px`}:void 0,children:u.jsx(He,{size:"md"})}),e.status==="success"&&u.jsx("div",{"aria-hidden":!o,className:se("w-full",!o&&"pointer-events-none absolute left-0 top-0 opacity-0"),children:u.jsx("iframe",{ref:i,className:"w-full rounded bg-white","data-testid":"email-preview-iframe",sandbox:"allow-same-origin allow-popups allow-popups-to-escape-sandbox",srcDoc:e.html,style:{height:t?`${t}px`:"600px"},title:"Email preview",onLoad:p})}),(e.status==="error"||e.status==="invalid")&&u.jsx("div",{className:"flex h-full items-center justify-center px-4","data-testid":"email-preview-error",children:u.jsx("span",{className:"text-sm text-destructive",children:e.message})})]})},_x=({automationId:e,subject:t,lexical:n,validateForm:o,onClose:r})=>{const{data:s}=Gc(),{mutateAsync:i}=kl(),[a,l]=b.useState(s?.email||""),[c,d]=b.useState(""),[f,h]=b.useState("idle"),g=b.useRef(null);b.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]),b.useEffect(()=>{s?.email&&l(s.email)},[s?.email]),b.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(""),!Nl.isEmail(a)){d("Please enter a valid email address");return}if(!o()){d("Please complete the required fields");return}h("sending");try{await i({id:e,email:a,subject:t,lexical:n}),h("sent"),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>h("idle"),2e3)}catch(y){h("idle");let w;y instanceof Yr&&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 u.jsxs("div",{className:"absolute top-full right-0 z-10 mt-2 w-[260px] rounded border border-grey-300 bg-white p-4 shadow-lg dark:border-grey-950 dark:bg-grey-950","data-testid":"test-email-dropdown",children:[u.jsxs("div",{className:"mb-3",children:[u.jsx("label",{className:"mb-2 block text-sm font-semibold",htmlFor:"test-email-input",children:"Send test email"}),u.jsx(qn,{id:"test-email-input",placeholder:"you@yoursite.com",value:a,onChange:y=>{l(y.target.value)}})]}),u.jsx(ce,{className:"w-full",disabled:f==="sending",onClick:p,children:f==="sent"?"Sent":f==="sending"?"Sending...":"Send"}),c&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:c})]})},Ex=e=>{if(!e)return!0;try{const n=JSON.parse(e)?.root?.children;return!n||n.length===0||n.length===1&&n[0].type==="paragraph"&&(!n[0].children||n[0].children.length===0)}catch{return!0}},sa=e=>{const t={};return e.subject?.trim()||(t.subject="A subject is required"),Ex(e.lexical)&&(t.lexical="Email content is required"),t},Sx=e=>{if(typeof DOMParser>"u")return e;const n=new DOMParser().parseFromString(e,"text/html");return n.querySelectorAll("a[href]").forEach(o=>{o.target="_blank",o.rel="noopener noreferrer"}),`<!doctype html>${n.documentElement.outerHTML}`},Nx=e=>{const t="Failed to render preview";return e instanceof Yr&&e.data?.errors?.[0]?e.data.errors[0].context||e.data.errors[0].message||t:e instanceof Error&&e.message?e.message:t},Cx=({automationId:e,previewAutomationEmail:t,setErrors:n})=>{const[o,r]=b.useState({status:"idle"}),s=b.useRef(0),i=()=>{s.current+=1,r({status:"idle"}),n({})},a=async c=>{const d=s.current+1;s.current=d;const f=sa(c);if(f.lexical){n({lexical:f.lexical}),r({status:"invalid",message:f.lexical});return}n({}),r({status:"loading"});try{const h=await t({id:e,subject:c.subject,lexical:c.lexical});if(s.current!==d)return;const g=h.automation_email_previews?.[0];if(!g?.html||!g?.plaintext||!g?.subject)throw new Error("Preview response was incomplete");r({status:"success",preview:{...g,html:Sx(g.html)}})}catch(h){if(s.current!==d)return;r({status:"error",message:Nx(h)})}};let l={status:"loading"};return o.status==="success"?l={status:"success",html:o.preview.html}:(o.status==="error"||o.status==="invalid")&&(l={status:o.status,message:o.message}),{previewFrameState:l,previewState:o,enterPreview:a,exitPreview:i}},xo=(e,t,n)=>Kn(t)&&!Xr(t)&&n?n:e.sender_email||n||"",Mx=(e,t,n,o)=>e.sender_reply_to==="newsletter"?Kn(t)?"":xo(e,t,o):e.sender_reply_to==="support"?n||o||"":e.sender_reply_to,kx=(e,t,n,o)=>{const r=Mx(e,t,n,o);return r||(e.sender_reply_to==="newsletter"?xo(e,t,o)||n||o||"":n||o||"")},Pr={free:"member-welcome-email-free",paid:"member-welcome-email-paid"},Te=e=>e?.trim()||"",Tn=(...e)=>e.map(Te).find(Boolean)||"",jx=({automatedEmails:e=[],config:t,defaultEmailAddress:n,newsletter:o,siteTitle:r,supportEmailAddress:s})=>{const i=e.find(k=>k.slug===Pr.free),a=e.find(k=>k.slug===Pr.paid),l=Tn(i?.sender_name,a?.sender_name),c=Tn(i?.sender_email,a?.sender_email),d=Tn(i?.sender_reply_to,a?.sender_reply_to),f=Te(o?.sender_name),h=o?Te(xo(o,t,n||void 0)):"",g=o?Te(kx(o,t,s||void 0,n||void 0)):"",p=f||Te(r)||"Your site name",y=h||Te(n),w=g||Te(s)||Te(n),x=l||p,E=c||y||"",m=d||w||"",v=m!==""&&m!==E,C=Kn(t),S=Xr(t);return{hasDistinctReplyTo:v,replyToEmailInput:d,replyToEmailPlaceholder:w,resolvedReplyToEmail:m,resolvedSenderEmail:E,resolvedSenderName:x,senderEmailDomain:S?qc(t):null,senderEmailInput:c,senderEmailPlaceholder:y,senderNameInput:l,senderNamePlaceholder:p,showSenderEmailInput:!C||S}},Ix=(e=[])=>{const{data:t}=Zn(),{data:n}=Wr(),o=t?.settings||[],r=b.useMemo(()=>n?.config||{},[n]),[s,i,a]=Gn(o,["title","default_email_address","support_email_address"]),{data:l}=Ll({searchParams:{filter:"status:active",limit:"1"}}),c=l?.newsletters?.[0];return b.useMemo(()=>jx({automatedEmails:e,config:r,defaultEmailAddress:i,newsletter:c,siteTitle:s,supportEmailAddress:a}),[e,r,i,c,s,a])},ia=le.forwardRef(({title:e,centeredHeaderContent:t,headerActions:n,children:o,className:r,isEditMode:s=!1},i)=>u.jsxs("div",{ref:i,className:se("flex h-full w-full flex-col gap-0 overflow-hidden p-0",s?"bg-white":"bg-gray-100","dark:bg-gray-975",r),children:[u.jsxs("div",{className:"sticky top-0 grid shrink-0 grid-cols-[1fr_auto_1fr] items-center border-b border-gray-200 bg-white px-5 py-3 dark:border-gray-900 dark:bg-gray-950",children:[u.jsx("h3",{className:"justify-self-start text-xl font-semibold",children:e}),u.jsx("div",{className:"justify-self-center",children:t}),u.jsx("div",{className:"flex items-center gap-2 justify-self-end",children:n})]}),u.jsx("div",{className:"flex min-h-0 grow flex-col overflow-y-auto [scrollbar-gutter:stable]",children:o})]}));ia.displayName="EmailPreviewModalContent";const Ax=({children:e,className:t})=>u.jsx("div",{className:se("relative z-20 isolate mx-auto w-full max-w-[780px] rounded-t-lg border border-b-0 border-gray-200 bg-white px-6 py-4 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:bg-grey-975",t),children:e}),Px=({children:e,className:t})=>u.jsx("div",{className:se("flex mx-auto w-full rounded-b-lg transition-[max-width,height,padding] duration-300 ease-out motion-reduce:transition-none dark:border-grey-900 dark:shadow-none grow max-w-[780px]",t),children:e}),Dx=({automationId:e,initialMode:t="edit",initialSubject:n,initialLexical:o,isDiscardNavigationBlocked:r=!1,onClose:s,onDirtyChange:i,onDiscardBlockedNavigation:a,onKeepEditingAfterBlockedNavigation:l,onSave:c})=>{const{mutateAsync:d}=jl(),{data:f}=Cl(),[h,g]=b.useState(!1),[p,y]=b.useState(t),[w,x]=b.useState(null),[E,m]=b.useState(!1),v=b.useRef(!1),C=b.useRef(null),S=b.useRef(o||""),k=b.useRef(!1),A=b.useRef(!1),P=Kc(),H=f?.automated_emails||[],{resolvedSenderName:j,resolvedSenderEmail:R,resolvedReplyToEmail:$,hasDistinctReplyTo:_}=Ix(H),{formState:N,saveState:M,updateForm:I,setFormState:T,setErrors:D,handleSave:L,okProps:B,errors:O,clearError:q}=Ml({initialState:{subject:n||"",lexical:o||""},savingDelay:500,onSave:async Z=>{c({subject:Z.subject,lexical:Z.lexical})},onSaveError:P}),G=b.useCallback(()=>{const Z=sa(N);return D(Z),Object.values(Z).every(te=>!te)},[N,D]),V=B.label||"Save",{previewFrameState:X,enterPreview:Y,exitPreview:z}=Cx({automationId:e,previewAutomationEmail:d,setErrors:D});b.useEffect(()=>{t!=="preview"||v.current||(v.current=!0,Y(N))},[Y,N,t]);const U=M==="unsaved";b.useEffect(()=>(i?.(U&&!A.current),()=>{i?.(!1)}),[U,i]);const ee=b.useCallback(()=>{U?m(!0):s()},[U,s]),Q=b.useCallback(async()=>{await L({fakeWhenUnchanged:!0})},[L]);b.useEffect(()=>{const Z=te=>{C.current&&!C.current.contains(te.target)&&g(!1)};return h&&document.addEventListener("mousedown",Z),()=>{document.removeEventListener("mousedown",Z)}},[h]);const F=b.useRef(Q);b.useEffect(()=>{F.current=Q},[Q]),b.useEffect(()=>{const Z=te=>{(te.metaKey||te.ctrlKey)&&te.key==="s"&&(te.preventDefault(),F.current())};return window.addEventListener("keydown",Z),()=>{window.removeEventListener("keydown",Z)}},[]);const W=b.useCallback(Z=>{y(Z),Z==="preview"?(x(null),Y(N)):(g(!1),x(null),z())},[Y,z,N]),J=b.useCallback(Z=>{if(!k.current){S.current=Z,T(te=>({...te,lexical:Z}));return}Z!==S.current?I(te=>({...te,lexical:Z})):T(te=>({...te,lexical:Z}))},[T,I]);return u.jsxs(u.Fragment,{children:[u.jsx(Qc,{open:!0,onOpenChange:Z=>{Z||ee()},children:u.jsxs(Jc,{"aria-describedby":void 0,className:"top-0 left-0 h-[100dvh] w-full max-w-full translate-x-0 translate-y-0 grid-rows-[1fr] gap-0 rounded-none border-0 p-0 shadow-none outline-hidden sm:rounded-none dark:bg-[#151719]",onEscapeKeyDown:Z=>{Z.preventDefault(),Z.stopPropagation(),ee()},children:[u.jsx(el,{className:"sr-only",children:"Edit email"}),u.jsx(ia,{centeredHeaderContent:u.jsx(Ol,{"data-testid":"email-mode-toggle",value:p,variant:"segmented-sm",onValueChange:Z=>Z&&W(Z),children:u.jsxs($l,{className:"grid w-[240px] grid-cols-2 bg-gray-100 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04)]",children:[u.jsx(Po,{className:"w-full justify-center data-[state=active]:bg-white dark:data-[state=active]:bg-white dark:data-[state=active]:text-black","data-testid":"email-mode-edit",value:"edit",children:"Email content"}),u.jsx(Po,{className:"w-full justify-center","data-testid":"email-mode-preview",value:"preview",children:"Preview"})]})}),headerActions:u.jsxs(u.Fragment,{children:[u.jsx(ce,{variant:"outline",onClick:ee,children:"Close"}),u.jsx(ce,{disabled:B.disabled,onClick:Q,children:V})]}),isEditMode:p==="edit",title:"Edit email",children:u.jsxs("div",{className:"flex grow flex-col items-center p-6",children:[p==="preview"&&u.jsx(Ax,{className:"border-x-0 border-t-0 border-b",children:u.jsxs("div",{className:"flex flex-col gap-2",children:[u.jsxs("div",{className:"flex items-center py-1",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"From:"}),u.jsx("div",{className:"min-w-0 grow pr-4 text-sm",children:u.jsxs("span",{className:"flex gap-1 truncate whitespace-nowrap",children:[u.jsx("span",{children:j}),u.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:`<${R}>`})]})}),u.jsxs("div",{ref:C,className:"relative",children:[u.jsxs(ce,{variant:"outline",onClick:()=>g(!h),children:[u.jsx(Bl,{className:"size-4"}),"Test"]}),h&&u.jsx(_x,{automationId:e,lexical:N.lexical,subject:N.subject,validateForm:G,onClose:()=>g(!1)})]})]}),_&&u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Reply-to:"}),u.jsx("div",{className:"grow text-sm text-gray-500 dark:text-gray-400",children:$})]}),u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"w-20 shrink-0 text-sm font-semibold",children:"Subject:"}),u.jsxs("div",{className:"grow",children:[u.jsx(qn,{className:"w-full","data-testid":"email-preview-subject",value:w??N.subject,onChange:Z=>{const te=Z.target.value;x(te),I(ae=>({...ae,subject:te})),q("subject")}}),O.subject&&u.jsx("span",{className:"mt-2 block text-xs text-destructive",children:O.subject})]})]})]})}),u.jsxs(Px,{className:se(p==="preview"&&"shadow-sm bg-white dark:bg-grey-975",p==="edit"&&"px-6",p==="edit"&&"rounded-lg",p==="edit"&&O.lexical&&"border border-red-500"),children:[u.jsx("div",{className:se("mx-auto w-full max-w-[600px] pt-10 pb-8 transition-[max-width,padding] duration-300 ease-out motion-reduce:transition-none",p==="preview"&&"hidden"),"data-testid":"email-editor",onFocus:()=>{k.current=!0},children:u.jsx(vx,{className:"automation-email-editor",placeholder:"Begin writing your email...",value:N.lexical,onChange:J})}),p==="preview"&&u.jsx(bx,{previewState:X})]}),p==="edit"&&O.lexical&&u.jsx("span",{className:"mt-2 block max-w-[740px] text-xs text-destructive",children:O.lexical})]})})]})}),u.jsx(Ge,{open:E||r,onOpenChange:Z=>{if(Z){m(!0);return}m(!1),r&&l?.()},children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Discard changes?"}),u.jsx(Je,{children:"Your changes to this email haven't been saved."})]}),u.jsxs(et,{children:[u.jsx(tt,{children:"Keep editing"}),u.jsx(ce,{variant:"destructive",onClick:()=>{if(m(!1),r){a?.();return}A.current=!0,i?.(!1),s()},children:"Discard"})]})]})})]})},Tx=180,Rx=[1.5,1,.75,.5,.25],zx=()=>{const[e,t]=b.useState(!1),{fitView:n,zoomIn:o,zoomOut:r,zoomTo:s}=wn(),{zoom:i}=$m(),a={duration:Tx},l=Math.round(i*100),c=f=>{t(!1),s(f,a)},d=()=>{t(!1),n(a)};return u.jsxs(qm,{className:"gap-1 overflow-hidden rounded-md bg-surface-elevated p-0.5 text-foreground shadow-sm",orientation:"horizontal",showFitView:!1,showInteractive:!1,showZoom:!1,style:{bottom:24,left:24},children:[u.jsx(ce,{"aria-label":"Zoom out",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom out",type:"button",variant:"ghost",onClick:()=>{r(a)},children:u.jsx(Gr,{className:"size-5",strokeWidth:1.5})}),u.jsxs(tl,{open:e,onOpenChange:t,children:[u.jsx(nl,{asChild:!0,children:u.jsxs(ce,{"aria-label":`Zoom level ${Wt(l)}%`,className:"h-9 min-w-14 rounded-sm px-2 font-semibold",type:"button",variant:"ghost",children:[Wt(l),"%"]})}),u.jsxs(ol,{align:"center",className:"w-40",side:"top",sideOffset:12,children:[Rx.map(f=>{const h=Math.round(f*100),g=Math.abs(i-f)<.01;return u.jsxs(Mo,{onSelect:()=>c(f),children:[Wt(h),"%",g&&u.jsx(rl,{children:u.jsx(Br,{className:"size-4 text-text-secondary",strokeWidth:1.5})})]},f)}),u.jsx(sl,{}),u.jsx(Mo,{onSelect:d,children:"Fit to view"})]})]}),u.jsx(ce,{"aria-label":"Zoom in",className:"rounded-sm text-text-secondary hover:text-foreground",size:"icon",title:"Zoom in",type:"button",variant:"ghost",onClick:()=>{o(a)},children:u.jsx(an,{className:"size-5",strokeWidth:1.5})})]})},Me="__trigger__",Ve="__tail__",Ox=({sourceId:e,targetId:t})=>({previousActionId:e===Me?void 0:e,nextActionId:t===Ve?void 0:t}),$x={background:"transparent",border:"none",height:0,minHeight:0,minWidth:0,opacity:0,pointerEvents:"none",width:0},At=({type:e,position:t})=>u.jsx(It,{isConnectable:!1,position:t,style:$x,type:e}),aa=({children:e,className:t,data:n})=>{const o=b.useRef(!1);return u.jsxs(Su,{onOpenChange:r=>{r||(o.current=!1)},children:[u.jsx(Nu,{asChild:!0,children:u.jsx("button",{"aria-invalid":!!n.errorMessage,"aria-label":n.value?`${n.label}: ${n.value}`:n.label,"aria-pressed":n.selected,className: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})}),u.jsx(Es,{className:"w-44",onClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:n.contextMenuItems.map(r=>{if(r.type==="separator")return u.jsx(Ns,{},r.id);const s=r.icon;return u.jsxs(Ss,{variant:r.variant,onSelect:r.onSelect,children:[s&&u.jsx(s,{className:"size-4"}),r.label]},r.label)})})]})},ca=({data:e})=>{const t=e.icon,n=e.errorMessage||e.warningMessage;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:se("flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",n&&"mt-[3px]"),children:u.jsx(t,{className:"size-4"})}),u.jsxs("div",{className:"flex min-w-0 flex-col text-left",children:[u.jsx("span",{className:"text-sm text-text-secondary",children:e.label}),e.value&&u.jsx("span",{className:se("truncate text-base font-medium",e.isPlaceholderValue&&"opacity-50"),children:e.value}),e.errorMessage&&u.jsx("span",{className:"mt-1 text-xs text-destructive",children:e.errorMessage}),!e.errorMessage&&e.warningMessage&&u.jsx("span",{className:"mt-1 text-xs text-yellow-600",children:e.warningMessage})]})]})},la=le.memo(({data:e})=>u.jsxs(aa,{data:e,children:[u.jsx(ca,{data:e}),u.jsx(At,{position:K.Bottom,type:"source"})]}));la.displayName="TriggerNode";const ua=le.memo(({data:e})=>u.jsxs(aa,{data:e,children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(ca,{data:e}),u.jsx(At,{position:K.Bottom,type:"source"})]}));ua.displayName="StepNode";const Lx=({data:e})=>{const[t,n]=b.useState(!1),o=s=>{n(!1),e.onPick(s,e.anchor)},r="flex h-12 w-64 items-center justify-center rounded-lg border border-dashed border-border-default bg-surface-page transition-colors hover:border-border-strong focus-visible:border-border-strong focus-visible:outline-none";return e.disabled?u.jsxs("div",{className:"flex h-12 w-64 items-center justify-center rounded-lg border border-border-default bg-[repeating-linear-gradient(135deg,var(--color-white)_0,var(--color-white)_12px,var(--color-gray-100)_12px,var(--color-gray-100)_24px)] text-sm font-medium text-text-secondary","data-testid":"step-limit-tail-node",children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(ml,{className:"mr-2 size-4",strokeWidth:1.5}),e.disabledReason]}):u.jsxs(Hr,{open:t,onOpenChange:n,children:[u.jsxs(Vr,{"aria-label":"Add step",className:se(r,"cursor-pointer"),"data-testid":"add-step-tail-button",children:[u.jsx(At,{position:K.Top,type:"target"}),u.jsx(an,{className:"size-5 text-text-secondary",strokeWidth:1.5})]}),u.jsx(Fr,{align:"center",className:"border-0 p-0 shadow-lg",side:"top",sideOffset:12,children:u.jsx(Cs,{onPick:o})})]})},Bx={trigger:la,step:ua,tail:Lx},da=e=>{if(e<=0)throw new Error("Wait time must be a positive number of hours.");if(e%24===0){const t=e/24;return t===1?"1 day":`${t} days`}return e===1?"1 hour":`${e} hours`},qt=30,Hx=/^\d+$/,Rn=e=>{const t=Number(e);return!Hx.test(e)||!Number.isInteger(t)||t<1||t>qt?null:t},fa=({children:e,htmlFor:t,label:n})=>u.jsxs(Vl,{children:[u.jsx(Fl,{className:"text-sm font-medium text-text-secondary",htmlFor:t,children:n}),e]}),ha=({onClick:e})=>u.jsxs(ce,{className:"w-full border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground",type:"button",variant:"outline",onClick:e,children:[u.jsx(Zr,{className:"size-4"}),"Delete step"]}),Vx={free:"Free",paid:"Paid"},Fx=({memberTiers:e})=>{const t=e.map(n=>Vx[n]).join(", ");return u.jsx("div",{className:"flex flex-col gap-5",children:t&&u.jsxs("div",{className:"flex flex-col",children:[u.jsx("span",{className:"text-sm font-medium text-text-secondary",children:"Members"}),u.jsx("span",{className:"text-base text-foreground",children:t})]})})},Wx=({action:e,onUpdate:t,onDelete:n})=>{if(e.data.wait_hours%24!==0)throw new Error(`WaitSidebarBody: wait_hours must be a multiple of 24, received ${e.data.wait_hours}`);const o=e.data.wait_hours/24,[r,s]=b.useState(String(o)),[i,a]=b.useState(!1),l=Number(r),c=Rn(r)!==null,d=i&&!c,f=p=>{const y=p*24;y!==e.data.wait_hours&&t(y)},h=p=>{const y=Rn(r);if(y===null)return;const w=Math.min(qt,Math.max(1,y+p));s(String(w)),f(w)},g=p=>{const y=p.target.value;s(y);const w=Rn(y);w!==null&&f(w)};return u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsxs(fa,{htmlFor:"automation-wait-days",label:"Wait for",children:[u.jsxs(Wl,{"aria-label":"Wait duration in days",className:"h-(--control-height)","data-disabled":d?"true":void 0,children:[u.jsx(Yl,{"aria-describedby":d?"automation-wait-days-error":void 0,"aria-invalid":d,className:"w-10 min-w-10 flex-none pr-1 font-mono tabular-nums",id:"automation-wait-days",inputMode:"numeric",value:r,onBlur:()=>a(!0),onChange:g,onFocus:()=>a(!1)}),u.jsx(Xl,{className:"mr-auto",children:l===1?"day":"days"}),u.jsxs(Ul,{align:"inline-end",className:"gap-0.5 pr-2",children:[u.jsx(Do,{"aria-label":"Decrease wait by one day",disabled:!c||l<=1,size:"icon-xs",title:"Decrease wait by one day",onClick:()=>h(-1),children:u.jsx(Gr,{className:"size-4"})}),u.jsx(Do,{"aria-label":"Increase wait by one day",disabled:!c||l>=qt,size:"icon-xs",title:"Increase wait by one day",onClick:()=>h(1),children:u.jsx(an,{className:"size-4"})})]})]}),d&&u.jsxs(Hl,{className:"text-xs",id:"automation-wait-days-error",children:["Enter a delay between 1 and ",Wt(qt)," days"]})]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ha,{onClick:n})})]})},Yx=({action:e,onUpdateSubject:t,onEditEmail:n,onDelete:o})=>{const r=b.useRef(null);return b.useEffect(()=>{r.current?.focus({preventScroll:!0})},[e.id]),u.jsxs("div",{className:"flex flex-1 flex-col gap-5",children:[u.jsx(fa,{label:"Subject line",children:u.jsx(qn,{ref:r,placeholder:"Subject line",value:e.data.email_subject,onChange:s=>t(s.target.value)})}),u.jsxs(ce,{className:"w-full",type:"button",variant:"outline",onClick:n,children:[u.jsx(qr,{className:"size-4"}),"Edit email"]}),u.jsx("div",{className:"mt-auto pt-6",children:u.jsx(ha,{onClick:o})})]})},Xx=({detail:e})=>{switch(e.type){case"trigger":return u.jsx(Fx,{memberTiers:e.memberTiers});case"wait":return u.jsx(Wx,{action:e.action,onDelete:e.onDelete,onUpdate:e.onUpdate},e.action.id);case"send_email":return u.jsx(Yx,{action:e.action,onDelete:e.onDelete,onEditEmail:e.onEditEmail,onUpdateSubject:e.onUpdateSubject},e.action.id);default:{const t=e;throw new Error(`Unknown sidebar type: ${t}`)}}},Ux=({detail:e})=>{const t=e.icon;return u.jsxs("div",{className:"flex min-h-full flex-col gap-6",children:[u.jsx("div",{className:"flex items-start gap-4",children:u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-muted text-text-secondary",children:u.jsx(t,{className:"size-4"})}),u.jsxs("div",{className:"min-w-0",children:[u.jsx("span",{className:"block text-sm text-text-secondary",children:e.label}),u.jsx("h2",{className:se("truncate text-base leading-tight font-medium text-foreground",e.isPlaceholderTitle&&"opacity-50"),children:e.title})]})]})}),u.jsx(Xx,{detail:e})]})},Zx={"member-welcome-email-free":["free"],"member-welcome-email-paid":["paid"]},Gx=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s})=>{if(!t)return null;if(t===Me)return{icon:Ur,label:"Trigger",title:"Member signs up",memberTiers:Zx[e.slug]??[],type:"trigger"};const i=e.actions.find(a=>a.id===t);if(!i)return null;switch(i.type){case"wait":{const a=da(i.data.wait_hours);return{icon:Jn,label:"Wait",title:a,action:i,onDelete:()=>n(i.id),onUpdate:l=>o(i.id,l),type:"wait"}}case"send_email":return{icon:Qn,label:"Send email",isPlaceholderTitle:!i.data.email_subject,title:i.data.email_subject||"Untitled",action:i,onDelete:()=>n(i.id),onUpdateSubject:a=>r(i.id,a),onEditEmail:()=>s(i.id),type:"send_email"};default:{const a=i;throw new Error(`Unknown automation action type: ${a}`)}}},qx=({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s,isEmailModalOpen:i,onClose:a})=>{const l=Gx({automation:e,stepId:t,onDelete:n,onUpdateWait:o,onUpdateSubject:r,onEditEmail:s});return b.useEffect(()=>{if(!l)return;const c=d=>{if(d.key==="Escape"){if(i)return;a()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)}},[l,i,a]),u.jsx("aside",{"aria-hidden":!l,"aria-label":"Step details",className: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",l?"translate-x-0":"pointer-events-none"),"data-state":l?"open":"closed","data-testid":"automation-step-sidebar",children:l&&u.jsx(Ux,{detail:l})})},yo=e=>{if(!e)return!0;try{const n=JSON.parse(e)?.root?.children;return!n||n.length===0?!0:n.length===1&&n[0].type==="paragraph"&&(!n[0].children||n[0].children.length===0)}catch{return!0}},Kt=0,Kx=256,Qx=Kt+Kx/2,Dr=180,Jx=40,ey=250,ty="Maximum steps added",ny="var(--xy-edge-stroke)",bt="emailStep",oy={"add-step-edge":hx},ry=e=>{switch(e.type){case"wait":return{icon:Jn,label:"Wait",value:da(e.data.wait_hours)};case"send_email":return{icon:Qn,isPlaceholderValue:!e.data.email_subject,label:"Send email",value:e.data.email_subject||"Untitled",warningMessage:yo(e.data.email_lexical)?"Empty email body":void 0};default:{const t=e;throw new Error(`Unknown automation action type: ${t}`)}}},Tr=({canDelete:e=!1,canEditEmailBody:t=!1,onDelete:n,onEditEmailBody:o,onPreviewEmail:r,onSelectStep:s,stepId:i})=>{const a=[{icon:ul,label:"Edit settings",onSelect:()=>s(i)}];return t&&o&&a.push({icon:qr,label:"Edit email body",onSelect:()=>o(i)}),t&&r&&a.push({icon:Gl,label:"Preview",onSelect:()=>r(i)}),e&&n&&(t&&a.push({id:"before-delete",type:"separator"}),a.push({icon:Zr,label:"Delete",onSelect:()=>n(i),variant:"destructive"})),a},sy=e=>{if(e.actions.length===0)return[];const t=new Map(e.actions.map(l=>[l.id,l])),n=new Set(e.edges.map(l=>l.target_action_id)),o=e.actions.find(l=>!n.has(l.id));if(!o)throw new Error(`Could not determine the starting step for automation ${e.id}.`);const r=new Map(e.edges.map(l=>[l.source_action_id,l.target_action_id])),s=[],i=new Set;let a=o;for(;a;){if(i.has(a.id))throw new Error(`Detected a loop in automation ${e.id}.`);s.push(a),i.add(a.id);const l=r.get(a.id);a=l?t.get(l):void 0}if(s.length!==e.actions.length)throw new Error(`Some steps in automation ${e.id} are missing or disconnected.`);return s},iy=({actionErrors:e,automation:t,disabled:n,onDelete:o,onEditEmailBody:r,onPick:s,onPreviewEmail:i,onSelectStep:a,newStepId:l,selectedStepId:c})=>{const d=sy(t),f={draggable:!1,selectable:!1,connectable:!1,focusable:!1},h=n?ty:void 0,p={sourceId:d[d.length-1]?.id??Me,targetId:Ve},y=[{id:Me,type:"trigger",position:{x:Kt,y:0},data:{contextMenuItems:Tr({onSelectStep:a,stepId:Me}),icon:Ur,isNew:!1,label:"Trigger",value:"Member signs up",selected:c===Me,onSelect:()=>a(Me)},...f}];d.forEach((E,m)=>{y.push({id:E.id,type:"step",position:{x:Kt,y:Dr*(m+1)},data:{...ry(E),contextMenuItems:Tr({canDelete:!0,canEditEmailBody:E.type==="send_email",onDelete:o,onEditEmailBody:r,onPreviewEmail:i,onSelectStep:a,stepId:E.id}),errorMessage:e[E.id],isNew:l===E.id,selected:c===E.id,onSelect:()=>a(E.id)},...f})}),y.push({id:Ve,type:"tail",position:{x:Kt,y:Dr*(d.length+1)},data:{disabled:n,disabledReason:h,onPick:s,anchor:p},draggable:!1,connectable:!1});const w=[];let x=Me;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}-${Ve}`,source:x,target:Ve,type:"smoothstep",focusable:!1,style:{stroke:ny}}),{nodes:y,edges:w}},ay=e=>({x:Math.round(e/2-Qx),y:Jx,zoom:1}),cy={wait:Dl,send_email:Pl},ly=e=>!!e&&typeof e=="object"&&"automationEmailModal"in e&&typeof e.automationEmailModal=="boolean",uy=({actionErrors:e={},automation:t,isEmailNavigationBlocked:n=!1,isLoading:o,isError:r,onChange:s,onDiscardBlockedEmailNavigation:i,onEmailDirtyChange:a,onKeepEditingAfterBlockedEmailNavigation:l})=>{const c=il(),d=al(),[f,h]=cl(),[g,p]=b.useState(null),[y,w]=b.useState("edit"),[x,E]=b.useState(null),[m,v]=b.useState(null),C=x?.id??null,S=f.get(bt),k=ly(c.state)&&c.state.automationEmailModal,A=b.useCallback(V=>{const X=new URLSearchParams(f);X.delete(bt),h(X,{replace:V?.replace??!0})},[f,h]),P=b.useCallback((V,X)=>{if(!t||t.actions.length>=Io)return;const Y=Ox(X),z=cy[V],U=z({detail:t,anchor:Y}),ee=U.actions.find(Q=>!t.actions.some(F=>F.id===Q.id));p(ee?.id??null),ee&&E({id:ee.id}),s(U)},[t,s]);b.useEffect(()=>{if(!g)return;const V=window.setTimeout(()=>{p(null)},ey);return()=>window.clearTimeout(V)},[g]);const H=b.useCallback(V=>{if(!t)return;const X=Il({detail:t,actionId:V});S===V&&A(),E(null),v(null),s(X)},[t,S,s,A]),j=b.useCallback(V=>{if(!t)return;const X=t.actions.find(Y=>Y.id===V);if(X?.type==="send_email"&&!yo(X.data.email_lexical)){v(X.id);return}H(V)},[t,H]),R=b.useCallback((V,X)=>{t&&s(Al({detail:t,actionId:V,waitHours:X}))},[t,s]),$=b.useCallback((V,X)=>{if(!t)return;const Y=t.actions.find(z=>z.id===V&&z.type==="send_email");Y&&s(Ao({detail:t,actionId:V,emailSubject:X,emailLexical:Y.data.email_lexical}))},[t,s]),_=b.useCallback((V,X="edit")=>{w(X);const Y=new URLSearchParams(f);Y.set(bt,V),h(Y,{state:{...c.state&&typeof c.state=="object"?c.state:{},automationEmailModal:!0}})},[c.state,f,h]),N=b.useCallback((V,X="edit")=>{E(null),_(V,X)},[_]),M=b.useCallback(V=>{N(V,"preview")},[N]),I=S&&t?t.actions.find(V=>V.id===S&&V.type==="send_email"):void 0,T=t&&m?t.actions.find(V=>V.id===m&&V.type==="send_email"):void 0,D=b.useRef(ay(window.innerWidth)),L=b.useMemo(()=>t?iy({actionErrors:e,automation:t,disabled:t.actions.length>=Io,onDelete:j,onEditEmailBody:N,onPick:P,onPreviewEmail:M,onSelectStep:V=>E({id:V}),newStepId:g,selectedStepId:C}):null,[e,t,N,M,P,j,g,C]),B=b.useCallback(()=>{E(null)},[]),O=()=>{if(w("edit"),k){d(-1);return}A()},q=b.useCallback(()=>{w("edit"),A()},[A]);b.useEffect(()=>{if(!t||!S)return;t.actions.some(X=>X.id===S&&X.type==="send_email")||A()},[t,S,A]);const G=b.useCallback((V,X)=>{if(V.stopPropagation(),!t||X.id===Ve||X.id===Me)return;const Y=t.actions.find(z=>z.id===X.id);Y?.type==="send_email"&&_(Y.id)},[t,_]);return o?u.jsx("div",{className:"flex flex-1 items-center justify-center bg-surface-page","data-testid":"automation-canvas-loading",children:u.jsx(He,{size:"lg"})}):r||!t||!L?u.jsx("div",{className:"flex flex-1 items-start justify-center bg-surface-page px-4 py-8",children:u.jsx(ll,{className:"max-w-md",role:"alert",variant:"destructive",children:u.jsxs("div",{className:"flex items-start gap-3",children:[u.jsx(Zl,{className:"mt-0.5 size-5 text-red"}),u.jsxs("div",{children:[u.jsx("strong",{className:"block",children:"Couldn't load automation"}),u.jsx("p",{className:"text-sm text-muted-foreground",children:"Try refreshing the page."})]})]})})}):u.jsxs("div",{className:"relative flex-1 overflow-hidden bg-surface-page","data-testid":"automation-canvas",children:[u.jsxs(Tm,{className:"[--xy-background-color:var(--color-grey-50)] [--xy-background-pattern-color:var(--color-grey-500)] [--xy-edge-stroke:var(--color-grey-300)] dark:[--xy-background-color:var(--color-black)] dark:[--xy-background-pattern-color:var(--color-grey-900)] dark:[--xy-edge-stroke:var(--color-grey-800)]",defaultViewport:D.current,edges:L.edges,edgesFocusable:!1,edgeTypes:oy,nodes:L.nodes,nodesConnectable:!1,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:Bx,proOptions:{hideAttribution:!0},zoomOnDoubleClick:!1,zoomOnScroll:!1,panOnScroll:!0,onNodeClick:(V,X)=>{V.button===0&&X.id!==Ve&&E({id:X.id})},onNodeDoubleClick:G,onPaneClick:B,children:[u.jsx(Fm,{variant:je.Dots}),u.jsx(zx,{})]}),u.jsx(qx,{automation:t,isEmailModalOpen:!!I||!!T,stepId:C,onClose:B,onDelete:j,onEditEmail:_,onUpdateSubject:$,onUpdateWait:R}),I&&t&&u.jsx(Dx,{automationId:t.id,initialLexical:I.data.email_lexical,initialMode:y,initialSubject:I.data.email_subject,isDiscardNavigationBlocked:n,onClose:O,onDirtyChange:a,onDiscardBlockedNavigation:()=>i?.(q),onKeepEditingAfterBlockedNavigation:l,onSave:({subject:V,lexical:X})=>{s(Ao({detail:t,actionId:I.id,emailSubject:V,emailLexical:X}))}}),u.jsx(Ge,{open:!!T,onOpenChange:V=>{V||v(null)},children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Delete this email?"}),u.jsx(Je,{children:"This email will be removed from the automation. Save or publish the automation to apply this change."})]}),u.jsxs(et,{children:[u.jsx(tt,{children:"Cancel"}),u.jsx(ce,{variant:"destructive",onClick:()=>{T&&H(T.id)},children:"Delete email"})]})]})})]})},dy=({automation:e,isLoadingAutomation:t,isSaveButtonEnabled:n,isPublishButtonEnabled:o,saveButtonVariant:r,publishButtonVariant:s,isTurnOffButtonEnabled:i,saveButtonChildren:a,publishButtonChildren:l,onSave:c,onPublish:d,onTurnOff:f})=>{const h=e?.name,g=e?.status;return u.jsxs("header",{className:"relative z-10 flex h-14 shrink-0 items-center justify-between bg-background px-4 shadow-sm dark:border-b dark:border-gray-950",children:[u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx(ce,{variant:"ghost",asChild:!0,children:u.jsx(dl,{"aria-label":"Back to automations",to:"/automations",children:u.jsx(fl,{strokeWidth:2})})}),t?u.jsx(hl,{className:"h-5 w-40"}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"truncate text-lg font-semibold",children:h}),g&&u.jsx(Tl,{status:g})]})]}),u.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[g==="active"&&u.jsxs(ce,{disabled:!i,variant:"outline",onClick:f,children:[u.jsx(xl,{}),"Turn off"]}),g==="inactive"&&u.jsx(ce,{disabled:!n,variant:r,onClick:c,children:a}),u.jsx(ce,{disabled:!o,variant:s,onClick:d,children:l})]})]})};var Rr=Object.prototype.hasOwnProperty;function zr(e,t,n){for(n of e.keys())if(_t(n,t))return n}function _t(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--&&_t(e[o],t[o]););return o===-1}if(n===Set){if(e.size!==t.size)return!1;for(o of e)if(r=o,r&&typeof r=="object"&&(r=zr(t,r),!r)||!t.has(r))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(o of e)if(r=o[0],r&&typeof r=="object"&&(r=zr(t,r),!r)||!_t(o[1],t.get(r)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((o=e.byteLength)===t.byteLength)for(;o--&&e.getInt8(o)===t.getInt8(o););return o===-1}if(ArrayBuffer.isView(e)){if((o=e.byteLength)===t.byteLength)for(;o--&&e[o]===t[o];);return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(Rr.call(e,n)&&++o&&!Rr.call(t,n)||!(n in t)||!_t(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const fy="Add a subject line.",hy="Add an email body.",py="Add a subject line and email body.",Or=e=>({status:e.status,actions:e.actions,edges:e.edges}),gy=e=>e.phase==="failed",zn=e=>{const t={};for(const n of e.actions){if(n.type!=="send_email")continue;const o=!n.data.email_subject.trim(),r=yo(n.data.email_lexical);o&&r?t[n.id]=py:o?t[n.id]=fy:r&&(t[n.id]=hy)}return t},Ty=()=>{const{id:e=""}=pl(),{data:t,isLoading:n,isError:o}=Rl(e,{defaultErrorHandler:!1}),r=t?.automations[0],s=zl(),[i,a]=le.useState({phase:"idle"}),[l,c]=le.useState({}),[d,f]=le.useState(!1),h=le.useRef(!1),g=le.useRef(null),p=le.useRef(!1),[y,w]=le.useState(void 0);le.useEffect(()=>{r&&w(F=>F?.id===r.id?F:r)},[r]);const x=!!y&&!!r&&!_t(Or(y),Or(r)),E=F=>{w(F),c(W=>{if(Object.keys(W).length===0)return W;const J=zn(F);return Object.fromEntries(Object.entries(W).filter(([Z])=>J[Z]))}),a(W=>gy(W)?{phase:"idle"}:W)},m=(F,W)=>{const J=zn(F);return Object.keys(J).length>0?(c(J),a(W),En.error("Automation needs a few details",{description:"Fix the highlighted steps and try again."}),!1):!0},v=F=>{if(!y)throw new Error("Cannot edit an automation that has not loaded.");let W,J;const Z=y.status,te=F??Z,ae=`${Z} -> ${te}`;switch(ae){case"active -> active":W={phase:"submitting",action:"republish"},J={phase:"failed",action:"republish"};break;case"inactive -> inactive":W={phase:"submitting",action:"save"},J={phase:"failed",action:"save"};break;case"inactive -> active":W={phase:"submitting",action:"publish"},J={phase:"failed",action:"publish"};break;case"active -> inactive":W={phase:"submitting",action:"unpublish"},J={phase:"failed",action:"unpublish"};break;default:{const de=ae;throw new Error(`Unhandled status transition: ${de}`)}}te==="active"&&!m(y,J)||(a(W),s.mutate({id:y.id,status:te,actions:y.actions,edges:y.edges},{onSuccess:de=>{w(de.automations[0]),c({}),a({phase:"idle"})},onError:de=>{const fe=te==="active"?zn(y):{},he=Object.keys(fe).length>0;he&&c(fe),a(J),he?En.error("Automation needs a few details",{description:"Fix the highlighted steps and try again."}):En.error("Automation couldn’t be saved")}}))},C=i.action==="publish",S=i.action==="unpublish",k=i.action==="republish",A=i.phase==="submitting";let P=!!y&&y.actions.length>0&&y.status==="inactive"&&x,H="outline",j="Save",R=!!y&&y.actions.length>0&&(y.status==="inactive"||x);const $="default",_=y?.status==="active"?x?"Publish changes":"Published":"Publish";let N=!0,M="Turn off",I=!0,T="default",D="Publish",L=!0,B="default",O="Publish changes";switch(i.phase){case"idle":break;case"submitting":switch(P=!1,R=!1,N=!1,i.action){case"save":j=u.jsxs(u.Fragment,{children:[u.jsx(He,{size:"sm"}),u.jsx("span",{className:"sr-only",children:"Saving..."})]});break;case"publish":I=!1,D=u.jsxs(u.Fragment,{children:[u.jsx(He,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"republish":L=!1,O=u.jsxs(u.Fragment,{children:[u.jsx(He,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Publishing..."})]});break;case"unpublish":M=u.jsxs(u.Fragment,{children:[u.jsx(He,{color:"light",size:"sm"}),u.jsx("span",{className:"sr-only",children:"Turning off..."})]});break}break;case"confirming":switch(i.action){case"publish":P=!1,R=!1;break;case"republish":R=!1,N=!1;break;case"unpublish":P=!1,R=!1,N=!1;break}break;case"failed":switch(i.action){case"save":H="destructive",j="Retry";break;case"publish":P=!1,R=!1,T="destructive",D="Retry";break;case"republish":R=!1,N=!1,B="destructive",O="Retry";break;case"unpublish":N=!0,M="Retry";break}break;default:{const F=i;throw new Error(`Unhandled edit state: ${F}`)}}const q=F=>{a(W=>{switch(W.phase){case"confirming":case"failed":return W.action==="unpublish"&&!F?{phase:"idle"}:W;case"idle":return F?{phase:"confirming",action:"unpublish"}:W;default:return W}})},G=F=>{a(W=>{switch(W.phase){case"confirming":case"failed":return W.action==="publish"&&!F?{phase:"idle"}:W;case"idle":return F?{phase:"confirming",action:"publish"}:W;default:return W}})},V=F=>{a(W=>{switch(W.phase){case"confirming":case"failed":return W.action==="republish"&&!F?{phase:"idle"}:W;case"idle":return F?{phase:"confirming",action:"republish"}:W;default:return W}})},X=()=>{if(!y)throw new Error("Cannot publish an automation that has not loaded.");switch(y.status){case"active":if(!m(y,{phase:"idle"}))return;a({phase:"confirming",action:"republish"});break;case"inactive":if(!m(y,{phase:"idle"}))return;a({phase:"confirming",action:"publish"});break;default:{const F=y.status;throw new Error(`Unhandled status: ${F}`)}}};ql(A||x||d);const Y=gl(({currentLocation:F,nextLocation:W})=>{const J=new URLSearchParams(F.search).get(bt),Z=new URLSearchParams(W.search).get(bt);return h.current&&J&&J!==Z?(g.current="email",p.current=F.pathname!==W.pathname,!0):x&&F.pathname!==W.pathname?(g.current="automation",p.current=!1,!0):(g.current=null,p.current=!1,!1)}),z=Y.state==="blocked"&&g.current==="email",U=Y.state==="blocked"&&g.current==="automation",ee=F=>{!F&&U&&Y.reset()},Q=le.useCallback(F=>{h.current=F,f(F)},[]);return u.jsxs("div",{className:"fixed inset-0 z-50 flex flex-col bg-background","data-testid":"automation-editor",children:[u.jsx(dy,{automation:y,isLoadingAutomation:n,isPublishButtonEnabled:R,isSaveButtonEnabled:P,isTurnOffButtonEnabled:N,publishButtonChildren:_,publishButtonVariant:$,saveButtonChildren:j,saveButtonVariant:H,onPublish:X,onSave:()=>v(),onTurnOff:()=>a({phase:"confirming",action:"unpublish"})}),u.jsx(uy,{actionErrors:l,automation:y,isEmailNavigationBlocked:z,isError:o,isLoading:n,onChange:E,onDiscardBlockedEmailNavigation:F=>{if(Q(!1),p.current){p.current=!1,Y.reset?.(),F();return}p.current=!1,Y.proceed?.()},onEmailDirtyChange:Q,onKeepEditingAfterBlockedEmailNavigation:()=>{p.current=!1,Y.reset?.()}}),u.jsx(Ge,{open:U,onOpenChange:ee,children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Discard unsaved changes?"}),u.jsx(Je,{children:"Your changes will be lost if you leave this automation."})]}),u.jsxs(et,{children:[u.jsx(tt,{children:"Keep working"}),u.jsx(ce,{variant:"destructive",onClick:()=>Y.proceed?.(),children:"Discard changes"})]})]})}),u.jsx(Ge,{open:C,onOpenChange:G,children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Start your automation?"}),u.jsx(Je,{children:"Once published, your automation goes live. Any member who meets the trigger will be enrolled automatically."})]}),u.jsxs(et,{children:[u.jsx(tt,{disabled:A,children:"Cancel"}),u.jsx(ce,{disabled:!I,variant:T,onClick:()=>v("active"),children:D})]})]})}),u.jsx(Ge,{open:S,onOpenChange:q,children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Turn off automation?"}),u.jsx(Je,{children:"Your automation will no longer run, and any members currently in progress will be removed."})]}),u.jsxs(et,{children:[u.jsx(tt,{disabled:A,children:"Cancel"}),u.jsx(ce,{disabled:A,variant:i.phase==="failed"&&i.action==="unpublish"?"destructive":"default",onClick:()=>v("inactive"),children:M})]})]})}),u.jsx(Ge,{open:k,onOpenChange:V,children:u.jsxs(qe,{children:[u.jsxs(Ke,{children:[u.jsx(Qe,{children:"Update your automation?"}),u.jsx(Je,{children:"Once published, your changes apply immediately to members already in progress and to any new members who enter the automation."})]}),u.jsxs(et,{children:[u.jsx(tt,{disabled:A,children:"Cancel"}),u.jsx(ce,{disabled:!L,variant:B,onClick:()=>v(),children:O})]})]})})]})};export{Ty as default};
|