n8n-editor-ui 2.1.2 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/data/node-popularity.json +0 -4
  2. package/dist/assets/{AddDataTableModal-Biub-zeV.js → AddDataTableModal-DdQPndvj.js} +18 -19
  3. package/dist/assets/{AgentEditorModal-PXvmwyMd.js → AgentEditorModal-13IKfi65.js} +51 -62
  4. package/dist/assets/{AgentEditorModal-CzlIqORm.css → AgentEditorModal-CnYw6elM.css} +7 -13
  5. package/dist/assets/{Alert-ThpSN7C0.js → Alert-DOlbYzaP.js} +1 -1
  6. package/dist/assets/{AnnotationTagsDropdown.ee-CgUQtuOy.js → AnnotationTagsDropdown.ee-BV5N0QpC.js} +2 -2
  7. package/dist/assets/{AuthView-CIGxT6Xf.js → AuthView-XL99nUn8.js} +5 -5
  8. package/dist/assets/BottomMenu-CRVyIu-B.css +474 -0
  9. package/dist/assets/BottomMenu-Urdm-sib.js +547 -0
  10. package/dist/assets/{ChangePasswordView-BGSyBBl2.js → ChangePasswordView-BE2ZGJcQ.js} +15 -15
  11. package/dist/assets/{ChatAgentAvatar-BK95BHUo.css → ChatAgentAvatar-B68ZZ295.css} +18 -9
  12. package/dist/assets/{ChatAgentAvatar-BLpWC-zL.js → ChatAgentAvatar-DWOQygP6.js} +17 -16
  13. package/dist/assets/{ChatSidebarOpener-ctovVEcz.js → ChatLayout--VoBX0db.js} +9 -28
  14. package/dist/assets/ChatPersonalAgentsView-BiiyFIRl.css +159 -0
  15. package/dist/assets/{ChatPersonalAgentsView-Bd73mT2L.js → ChatPersonalAgentsView-C0AZXJ21.js} +29 -34
  16. package/dist/assets/ChatSidebar-C7kpSeSL.js +526 -0
  17. package/dist/assets/{ChatSidebar-D0f-W0S9.css → ChatSidebar-DcNxY7Pt.css} +61 -336
  18. package/dist/assets/{ChatView-k5Ib5T23.js → ChatView-DPBUfiCx.js} +121 -142
  19. package/dist/assets/{ChatView-mTIZIDr3.css → ChatView-DZODCD2o.css} +4 -4
  20. package/dist/assets/{ChatWorkflowAgentsView-CPOcTSK4.js → ChatWorkflowAgentsView-CPDjKGeW.js} +22 -23
  21. package/dist/assets/CollectionParameter-PHj-nQX_.js +50 -0
  22. package/dist/assets/{CommunityNodeUpdateInfo-Dy0ilmZE.js → CommunityNodeUpdateInfo-C8_mLrZ5.js} +8 -8
  23. package/dist/assets/{CopyInput-B2aUDGPW.js → CopyInput-D4IqeIwh.js} +4 -4
  24. package/dist/assets/{CredentialIcon-BGZoAL3d.js → CredentialIcon-uhIIYjQ5.js} +3 -3
  25. package/dist/assets/{CredentialPicker-BtKDHFRq.js → CredentialPicker-CHj_u87Q.js} +5 -6
  26. package/dist/assets/{CredentialSelectorModal-DkyFq-Pq.js → CredentialSelectorModal-BgjG3ACX.js} +18 -20
  27. package/dist/assets/{CredentialsView-xnKf-zG4.js → CredentialsView-GgHi3Nwa.js} +34 -37
  28. package/dist/assets/{DataTableActions-B5aTsXib.js → DataTableActions-D8jtOheL.js} +5 -6
  29. package/dist/assets/{DataTableDetailsView-C6okqjS-.js → DataTableDetailsView-BQKJhJRx.js} +22 -24
  30. package/dist/assets/{DataTableView-BM78mbgY.js → DataTableView-CRpaR8O2.js} +31 -34
  31. package/dist/assets/DemoFooter-Cxu0hnvC.js +63 -0
  32. package/dist/assets/{Draggable-DveKAuxg.js → Draggable-CeRLORdu.js} +1 -1
  33. package/dist/assets/{EmptySharedSectionActionBox-SKlYZNuX.js → EmptySharedSectionActionBox-WNc5syUl.js} +4 -4
  34. package/dist/assets/{EnterpriseEdition.ee-BQiXZvAd.js → EnterpriseEdition.ee-D0ixqMOk.js} +1 -1
  35. package/dist/assets/{EntityNotFound-ByhfFutM.js → EntityNotFound-CuNhWBrZ.js} +7 -7
  36. package/dist/assets/{EntityUnAuthorised-Ab8M--6A.js → EntityUnAuthorised-ProWKTPU.js} +7 -7
  37. package/dist/assets/{ErrorView-Csvm001D.js → ErrorView-jBBYrV1n.js} +9 -9
  38. package/dist/assets/{EvaluationsRootView-B6-VDQXl.js → EvaluationsRootView-D70Tp2Up.js} +36 -36
  39. package/dist/assets/{EvaluationsView-D8teiZoa.js → EvaluationsView-DPKBS6PJ.js} +21 -21
  40. package/dist/assets/{ExecutionsTime-CNz8UC7l.css → ExecutionsTime-CMAp2_xF.css} +24 -21
  41. package/dist/assets/{ExecutionsTime-CLQBgXgq.js → ExecutionsTime-CQneihIO.js} +37 -28
  42. package/dist/assets/{ExecutionsView-B6W7-w3K.js → ExecutionsView-Vg6JvFFQ.js} +34 -37
  43. package/dist/assets/{ExternalSecretsProviderConnectionSwitch.ee-DcLHCwv3.js → ExternalSecretsProviderConnectionSwitch.ee-B9I0rKT4.js} +4 -4
  44. package/dist/assets/{FixedCollectionParameter-ozilaYrN.js → FixedCollectionParameter-Dgp7H09p.js} +45 -53
  45. package/dist/assets/{ForgotMyPasswordView-Bnk-XG6Z.js → ForgotMyPasswordView-DqcF_Z2q.js} +15 -15
  46. package/dist/assets/{InsightsChartAverageRuntime-Bm0c6_UE.js → InsightsChartAverageRuntime-Cljk8p2A.js} +10 -10
  47. package/dist/assets/{InsightsChartFailed-D6TI96gu.js → InsightsChartFailed-DTmTcxHp.js} +8 -8
  48. package/dist/assets/{InsightsChartFailureRate-BXjbwEEr.js → InsightsChartFailureRate-BKL-1iTZ.js} +10 -10
  49. package/dist/assets/{InsightsChartTimeSaved-BPUaaTg8.js → InsightsChartTimeSaved-CIxYU033.js} +10 -10
  50. package/dist/assets/{InsightsChartTotal-D3aCqsFD.js → InsightsChartTotal-_2DLJIdR.js} +8 -8
  51. package/dist/assets/{InsightsDashboard-KVEJC5l2.js → InsightsDashboard-CiJyVecp.js} +32 -34
  52. package/dist/assets/{InsightsPaywall-BrnS_pKR.js → InsightsPaywall-CINaGtwo.js} +15 -16
  53. package/dist/assets/{InsightsSummary-Da08_DCk.js → InsightsSummary-CgA8vOKu.js} +8 -8
  54. package/dist/assets/{InsightsTableWorkflows-CjXv0hN6.js → InsightsTableWorkflows-YYoh5C57.js} +18 -18
  55. package/dist/assets/{ItemsRenderer-B3028vj7.js → ItemsRenderer-Bkvm6ylT.js} +10 -10
  56. package/dist/assets/{ItemsRenderer-Cr6c6uYy.css → ItemsRenderer-DkobJF9f.css} +4 -2
  57. package/dist/assets/{KeyboardShortcutTooltip-vWNBozVo.js → KeyboardShortcutTooltip-BErFISFN.js} +1 -1
  58. package/dist/assets/LogsPanel-1rVp7yTV.js +50 -0
  59. package/dist/assets/{LogsPanel-DxQFRme8.js → LogsPanel-wqHn7duZ.js} +24 -25
  60. package/dist/assets/MCPConnectWorkflowsModal-CS2q8ice.css +275 -0
  61. package/dist/assets/MCPConnectWorkflowsModal-zndEVWiT.js +301 -0
  62. package/dist/assets/{MainHeader-DJA_Afhq.css → MainHeader-CSaAWCWj.css} +13 -13
  63. package/dist/assets/{MainHeader-Di9xKi5B.js → MainHeader-S9F1mef-.js} +97 -101
  64. package/dist/assets/{MainSidebar-bwCkn71q.css → MainSidebar-CEsQ8o1Y.css} +84 -304
  65. package/dist/assets/{MainSidebar-DIa4RZxf.js → MainSidebar-nlRQuq4m.js} +222 -694
  66. package/dist/assets/{MigrationRuleDetail-mcU4VyTt.js → MigrationRuleDetail-MPJH8woH.js} +20 -20
  67. package/dist/assets/{MigrationRules-2g39kC1H.js → MigrationRules-CXWOU2h7.js} +12 -12
  68. package/dist/assets/{Modal-DGPQBa8T.js → Modal-Bx0XYuv8.js} +4 -4
  69. package/dist/assets/{ModelByIdSelectorModal-CzcpDw87.js → ModelByIdSelectorModal-BI7ckDXC.js} +17 -18
  70. package/dist/assets/{NDVEmptyState-BeXJvhnF.js → NDVEmptyState-YMeX60Ni.js} +1 -1
  71. package/dist/assets/{NodeCreation-Br8ljRfC.js → NodeCreation-BaNMWutd.js} +41 -49
  72. package/dist/assets/{NodeCreator-fSrstn2P.js → NodeCreator-C852UqEf.js} +47 -50
  73. package/dist/assets/{NodeCreator-C-ckvxD7.css → NodeCreator-OSIpRI6S.css} +25 -25
  74. package/dist/assets/{NodeDetailsView-HXe2ZuYh.js → NodeDetailsView-GXMPg1-K.js} +60 -68
  75. package/dist/assets/{NodeDetailsViewV2-C3W-2c0t.js → NodeDetailsViewV2-DCnVXlNg.js} +61 -69
  76. package/dist/assets/{NodeIcon-eaW3atZy.css → NodeIcon-BDxr0f30.css} +5 -2
  77. package/dist/assets/{NodeIcon-CWvzhRQM.js → NodeIcon-UuZXMI3b.js} +4 -4
  78. package/dist/assets/{NodeSettings-Br6GFKCU.js → NodeSettings-sGW3h0b4.js} +17 -17
  79. package/dist/assets/{NodeView-BLDOwZvQ.js → NodeView-i2FqlrZg.js} +111 -106
  80. package/dist/assets/{OAuthConsentView-C13weyO_.js → OAuthConsentView-BCnyFvFE.js} +14 -14
  81. package/dist/assets/{ParameterInputList-CXEjv4Ky.css → ParameterInputList-0YoVowEI.css} +10 -7
  82. package/dist/assets/{ParameterInputList-BUU1q_EZ.js → ParameterInputList-Br9nDZxe.js} +59 -56
  83. package/dist/assets/{PrebuiltAgentTemplatesView-D9w4f2e0.js → PrebuiltAgentTemplatesView-CKUzZatm.js} +17 -19
  84. package/dist/assets/{ProjectBreadcrumb-8JDiuLL3.js → ProjectBreadcrumb-ByT1IATl.js} +4 -4
  85. package/dist/assets/{ProjectCardBadge-CcHOiONP.js → ProjectCardBadge-DjNmgRAP.js} +5 -5
  86. package/dist/assets/{ProjectHeader-D4bO6fjq.js → ProjectHeader-Cl-v-GMx.js} +8 -8
  87. package/dist/assets/{ProjectIcon-DQILIjYR.js → ProjectIcon-CVhr6466.js} +1 -1
  88. package/dist/assets/{ProjectRoleView-UeSNgqSq.js → ProjectRoleView-3D060erL.js} +15 -16
  89. package/dist/assets/{ProjectRolesView-DhXb0x1i.js → ProjectRolesView-DvZkoFBe.js} +16 -19
  90. package/dist/assets/{ProjectSettings-CUnoqyPE.js → ProjectSettings-0C6lnj8u.js} +26 -28
  91. package/dist/assets/{ProjectSharing-utuPX2PB.js → ProjectSharing-CtOlIYg8.js} +5 -5
  92. package/dist/assets/{ProjectVariables-djh1rIms.js → ProjectVariables-COktFANb.js} +32 -35
  93. package/dist/assets/{ProviderSettingsModal-CazzGyiO.js → ProviderSettingsModal-B-btuOfV.js} +21 -23
  94. package/dist/assets/{PushConnectionTracker-Dpvr4Zz3.js → PushConnectionTracker-C4wioF1a.js} +3 -3
  95. package/dist/assets/{ResolversView-BdV4DSqj.js → ResolversView-qWEf4KSk.js} +15 -17
  96. package/dist/assets/{ResourceFiltersDropdown-W30MKKtt.js → ResourceFiltersDropdown-BikLhLzy.js} +18 -18
  97. package/dist/assets/{ResourceFiltersDropdown-BACE5ZTX.css → ResourceFiltersDropdown-Cma1Lj9J.css} +12 -9
  98. package/dist/assets/{ResourcesListLayout-DqSGTRQL.js → ResourcesListLayout-DjbDZ485.js} +9 -9
  99. package/dist/assets/{RunDataHtml-DhjduYN-.js → RunDataHtml-B4A7gRBL.js} +3 -3
  100. package/dist/assets/{RunDataHtml-_b8v7-9v.js → RunDataHtml-CkjC7YuF.js} +1 -1
  101. package/dist/assets/{RunDataJson-Ber6Oi12.js → RunDataJson-xNt8TeT7.js} +14 -14
  102. package/dist/assets/{RunDataJsonActions-Bf98jdLe.js → RunDataJsonActions-ZnTJFjPn.js} +15 -15
  103. package/dist/assets/{RunDataParsedAiContent-DL7QTmP_.js → RunDataParsedAiContent-BCJUkbqC.js} +8 -8
  104. package/dist/assets/RunDataParsedAiContent-DqRKhrSB.js +24 -0
  105. package/dist/assets/{RunDataSearch-jh-3G-0I.js → RunDataSearch-BAwHZr-P.js} +10 -10
  106. package/dist/assets/{RunDataTable-BVL7OKID.js → RunDataTable-YYViC6gq.js} +18 -18
  107. package/dist/assets/{SamlOnboarding-D_thSH33.js → SamlOnboarding-C5Tr3Slo.js} +15 -15
  108. package/dist/assets/{SaveButton-DooLZseO.js → SaveButton-92mEEoEP.js} +3 -3
  109. package/dist/assets/{SelectedItemsInfo-DDt5oazC.js → SelectedItemsInfo-DzkrxhPo.js} +2 -2
  110. package/dist/assets/{SettingsApiView-BBxKUUm2.js → SettingsApiView-CJyqNNAX.js} +17 -20
  111. package/dist/assets/{SettingsChatHubView-DVgdfxN7.js → SettingsChatHubView-DpdcfBor.js} +19 -19
  112. package/dist/assets/{SettingsCommunityNodesView-BRFN63n0.js → SettingsCommunityNodesView-BCvCmXWC.js} +29 -36
  113. package/dist/assets/{SettingsExternalSecrets-C0x7V0VC.js → SettingsExternalSecrets-CtuNjOHB.js} +17 -18
  114. package/dist/assets/{SettingsLdapView-Bwoo1o2k.js → SettingsLdapView-CB2PN4XF.js} +19 -22
  115. package/dist/assets/{SettingsLogStreamingView-BgwdyH0h.js → SettingsLogStreamingView-BkeGZzXU.js} +17 -20
  116. package/dist/assets/{SettingsMCPView-DzdHfN6P.js → SettingsMCPView-CfaP3OAo.js} +136 -164
  117. package/dist/assets/{SettingsMCPView-CuJwNWhp.css → SettingsMCPView-DIdodQTu.css} +28 -41
  118. package/dist/assets/{SettingsPersonalView-CnMsk8M2.js → SettingsPersonalView-DqyIIYiM.js} +15 -16
  119. package/dist/assets/{SettingsSourceControl-DKRbSwDj.js → SettingsSourceControl-DTKvyQ-E.js} +19 -21
  120. package/dist/assets/{SettingsSso-DD32GRf1.js → SettingsSso-BqSa2kyP.js} +21 -24
  121. package/dist/assets/{SettingsUsageAndPlan-lZYIpXMj.js → SettingsUsageAndPlan-DjxRwtnH.js} +17 -19
  122. package/dist/assets/{SettingsUsersView-BP2U2tD2.js → SettingsUsersView-DTtMD45S.js} +22 -25
  123. package/dist/assets/{SettingsView-BRsk0Vjq.js → SettingsView-LehjcLhP.js} +14 -14
  124. package/dist/assets/{SetupTemplateFormStep-DcmVXD3a.js → SetupTemplateFormStep-DH5EaAC-.js} +7 -7
  125. package/dist/assets/{SetupView-DBFUYVtm.js → SetupView-CNpqI-Mm.js} +15 -15
  126. package/dist/assets/{SetupWorkflowCredentialsButton-ChlRSbhd.js → SetupWorkflowCredentialsButton-Cd6MsYCC.js} +14 -14
  127. package/dist/assets/{SetupWorkflowFromTemplateView-CER9J7DP.js → SetupWorkflowFromTemplateView-CKYEo2_N.js} +21 -25
  128. package/dist/assets/{SeverityTag-CkJev9WS.js → SeverityTag-CjL6aCgr.js} +2 -2
  129. package/dist/assets/{SigninView-CWdvHULD.js → SigninView-BFhXhQy_.js} +16 -16
  130. package/dist/assets/{SignoutView-fvJJZx5p.js → SignoutView-C5Rqj0rG.js} +8 -8
  131. package/dist/assets/{SignupView-SNgWdNtE.js → SignupView-pkWEAwT4.js} +15 -15
  132. package/dist/assets/{SkeletonAgentCard-DQhrFpBG.js → SkeletonAgentCard-CFbUHoJ_.js} +8 -8
  133. package/dist/assets/{TagsDropdown-RP7eXKHF.js → TagsDropdown-Ckp4w5RZ.js} +3 -3
  134. package/dist/assets/{TemplateCard-DbQ8Ekek.js → TemplateCard-CVIt847s.js} +6 -7
  135. package/dist/assets/{TemplateDetails-BlnoU2XX.js → TemplateDetails-CU_WdmN6.js} +6 -7
  136. package/dist/assets/{TemplateList-EUHRRcHT.js → TemplateList-CI2Xi3Nr.js} +5 -5
  137. package/dist/assets/{TemplatesCollectionView-CShXKKou.js → TemplatesCollectionView-9nTVlhmd.js} +22 -24
  138. package/dist/assets/{TemplatesSearchView-JPvTJqrT.js → TemplatesSearchView-5sECuF70.js} +19 -21
  139. package/dist/assets/{TemplatesView-CkSiPY6S.js → TemplatesView-BwDvsLzl.js} +3 -3
  140. package/dist/assets/{TemplatesWorkflowView-mGRivOAH.js → TemplatesWorkflowView-BUJF5y7g.js} +23 -25
  141. package/dist/assets/{TestRunDetailView-d89WWvUc.js → TestRunDetailView-CpbEtZB0.js} +19 -19
  142. package/dist/assets/{TimeAgo-BgFYQmEV.js → TimeAgo-wOp8Jlnz.js} +3 -3
  143. package/dist/assets/{ToolsSelectorModal-BBdpzWrV.js → ToolsSelectorModal-B4Id-oqD.js} +17 -18
  144. package/dist/assets/{TriggerPanel-Ccr_a4aS.js → TriggerPanel-ClTWEUV8.js} +18 -19
  145. package/dist/assets/VirtualSchema-Bf4iCl-D.js +35 -0
  146. package/dist/assets/{VirtualSchema-Ccpa4B_2.js → VirtualSchema-CnYo2buH.js} +15 -16
  147. package/dist/assets/{VueMarkdown-wTXGt3en.js → VueMarkdown-DQtBIjcr.js} +1 -1
  148. package/dist/assets/{WorkerView-CjTDGSi1.js → WorkerView-BFEeByTA.js} +34 -41
  149. package/dist/assets/{WorkflowActivationErrorMessage-CQe9ZG_g.js → WorkflowActivationErrorMessage-D9ktIWO1.js} +1 -1
  150. package/dist/assets/{WorkflowActivator-xCBwqG20.css → WorkflowActivator-BGcCOUCH.css} +2 -2
  151. package/dist/assets/{WorkflowActivator-B4F8t0yo.js → WorkflowActivator-Bxd-bB8P.js} +13 -11
  152. package/dist/assets/{WorkflowExecutionsInfoAccordion-Cx2nzSuB.js → WorkflowExecutionsInfoAccordion-BbBvNiqB.js} +11 -15
  153. package/dist/assets/{WorkflowExecutionsLandingPage-DEJ2PbWE.js → WorkflowExecutionsLandingPage-C9EEWnxX.js} +19 -33
  154. package/dist/assets/{WorkflowExecutionsPreview-BMGRACSR.js → WorkflowExecutionsPreview-bL404UdF.js} +22 -25
  155. package/dist/assets/{WorkflowExecutionsView-Bqx9k5c-.js → WorkflowExecutionsView-Bpxaw8Vh.js} +50 -46
  156. package/dist/assets/{WorkflowExecutionsView-J4lWGYW8.css → WorkflowExecutionsView-DzHhxp4K.css} +2 -2
  157. package/dist/assets/{WorkflowHistory-D3BhOWlD.css → WorkflowHistory-BBHdNsOb.css} +147 -98
  158. package/dist/assets/{WorkflowHistory-DmtAM9fi.js → WorkflowHistory-CORp6hCd.js} +329 -273
  159. package/dist/assets/WorkflowLocation-6rp_-CuW.css +164 -0
  160. package/dist/assets/WorkflowLocation-tnhpuBX7.js +164 -0
  161. package/dist/assets/{WorkflowOnboardingView-CIrmsRw4.js → WorkflowOnboardingView-BEawbzt-.js} +8 -10
  162. package/dist/assets/{WorkflowPreview-CYlgo0kD.js → WorkflowPreview-CEDUFgeD.js} +4 -4
  163. package/dist/assets/{WorkflowTagsDropdown-BsjxBGVH.js → WorkflowTagsDropdown-XEtouCaM.js} +2 -2
  164. package/dist/assets/{WorkflowsView-D-Je3mdl.js → WorkflowsView-ClQilsPp.js} +65 -84
  165. package/dist/assets/{_MapCache-BXj4WgHo.js → _MapCache-0zNxISSG.js} +78 -8
  166. package/dist/assets/{_baseOrderBy-ZGuD_-iy.js → _baseOrderBy-xWA0TcWm.js} +4 -4
  167. package/dist/assets/{_initCloneObject-DCLKwsUi.js → _initCloneObject-DZFc-F-b.js} +2 -2
  168. package/dist/assets/{aiTemplatesStarterCollection.store-NYOrgNlj.js → aiTemplatesStarterCollection.store-zMePNJbZ.js} +5 -5
  169. package/dist/assets/{apiKeys.store-DOf4JeD0.js → apiKeys.store-BzgIQpBj.js} +2 -2
  170. package/dist/assets/{assistant.store-Dy9VDomp.js → assistant.store-B5OR1Bze.js} +6 -6
  171. package/dist/assets/{auth.eventBus-Pqv7Rxfm.js → auth.eventBus-D3nU98SE.js} +1 -1
  172. package/dist/assets/{banners.store-Rf3We1Q7.js → banners.store-B7CxzJ2_.js} +4 -4
  173. package/dist/assets/{builder.store-D_RDTxxI.js → builder.store-DoNE5iKP.js} +5772 -157
  174. package/dist/assets/{chartjs.utils-BuKhcKwM.js → chartjs.utils-CoNBCTXc.js} +3 -3
  175. package/dist/assets/{chat.store-D4DOVQYU.js → chat.store-YIaykMtq.js} +124 -88
  176. package/dist/assets/{chatPanel.store-D3DaHq1z.js → chatPanel.store-zWZ0Jjvi.js} +17 -11
  177. package/dist/assets/{col-ebWyVZHF.js → col-Cj8t34XN.js} +1 -2
  178. package/dist/assets/{constants-DPB1SWiX.js → constants-BiRoCM0c.js} +13 -13
  179. package/dist/assets/{constants-qk3hx0l8.js → constants-DLTaaipl.js} +2 -1
  180. package/dist/assets/{core-CiWhevuy.js → core-BbiIkN91.js} +1 -1
  181. package/dist/assets/{dataTable.store-BL0mLkMg.js → dataTable.store-BXKAnmr0.js} +3 -3
  182. package/dist/assets/{date-picker-tQf2dntC.js → date-picker-CNwAHb3n.js} +2 -2
  183. package/dist/assets/{dateFormatter-DqsBbNBt.js → dateFormatter-DzJiM44k.js} +2 -2
  184. package/dist/assets/{dialog-jh_mITmm.js → dialog-Bot5nr0N.js} +3 -3
  185. package/dist/assets/{dist-JIm44DPf.js → dist-DP_8je0B.js} +1 -1
  186. package/dist/assets/{en-b3uD8cvU.js → en-CF30SCh2.js} +11 -1
  187. package/dist/assets/en-DyO2pPiC.js +2 -0
  188. package/dist/assets/{es-BskBLtZB.js → es-DlTgUi2w.js} +1 -1
  189. package/dist/assets/{evaluation.constants-iqEXbNEl.js → evaluation.constants-QH_qT6UD.js} +3 -3
  190. package/dist/assets/{executions.store-D8Pn4Xih.js → executions.store-O0Cs6kyK.js} +2 -2
  191. package/dist/assets/{externalSecrets.ee.store-BDrodR7I.js → externalSecrets.ee.store-D1gmVgZF.js} +3 -3
  192. package/dist/assets/{folders.store-D8nKs5-U.js → folders.store-vVDyrOf9.js} +3 -3
  193. package/dist/assets/{index-BkLJ6ICr.css → index-Bl6XoGDE.css} +155 -24
  194. package/dist/assets/{index-DvVzFVr2.js → index-D6qelrIy.js} +478 -172
  195. package/dist/assets/{insights.constants-B7y0cvTb.js → insights.constants-C8GITe6H.js} +1 -1
  196. package/dist/assets/{insights.store-6LgiVo3h.js → insights.store-CEm0oAQ1.js} +5 -5
  197. package/dist/assets/{insights.utils-Dc4VSauh.js → insights.utils-BjffJfoC.js} +4 -4
  198. package/dist/assets/{isEmpty-GqdrxwqC.js → isEmpty-DCuynolj.js} +26 -27
  199. package/dist/assets/{languageModules-CLe6cIYW.js → languageModules-D_uyjb6R.js} +1 -1
  200. package/dist/assets/{logStreaming.store-I5_7h6od.js → logStreaming.store-rSlN8vmt.js} +2 -2
  201. package/dist/assets/mcp.constants-DQPD3Ntp.js +10 -0
  202. package/dist/assets/{mcp.store-BiAizQEG.js → mcp.store-NBibfYnt.js} +14 -3
  203. package/dist/assets/{merge-BfSiz1ty.js → merge-BmWPLD5Q.js} +1 -1
  204. package/dist/assets/{nodeCreator.store-CzS_snY4.js → nodeCreator.store-C5ZiFH88.js} +11 -16
  205. package/dist/assets/{nodeIcon-B3eU2X78.js → nodeIcon-CPowiQry.js} +3 -3
  206. package/dist/assets/{nodeTransforms-DQR-xCjB.js → nodeTransforms-B7ZrYsoY.js} +2 -2
  207. package/dist/assets/{orderBy-CKjuXXf2.js → orderBy-C7nKLQm8.js} +2 -2
  208. package/dist/assets/{personalizedTemplatesV3.store-uBVFSjod.js → personalizedTemplatesV3.store-C-6ck-eG.js} +3 -5
  209. package/dist/assets/{pickBy-DWwTL0iT.js → pickBy-CegO_wl5.js} +2 -2
  210. package/dist/assets/{radio-CHTjuYB5.js → radio-BQbSXowV.js} +1 -2
  211. package/dist/assets/{readyToRun.store-CoBaUeeQ.js → readyToRun.store-B87q35Mr.js} +6 -7
  212. package/dist/assets/{readyToRunWorkflows.store-CP3ZQHOV.js → readyToRunWorkflows.store-DYQM88iU.js} +5 -6
  213. package/dist/assets/{roles.store-Cc8yV7SO.js → roles.store-D6uYJEc8.js} +3 -3
  214. package/dist/assets/{router-DqNrjUQe.js → router-BeB9V_IR.js} +111 -90
  215. package/dist/assets/{sanitize-html-Cft-jOcY.js → sanitize-html-Cc45ZKm8.js} +1 -1
  216. package/dist/assets/{schemaPreview.store-CEyVQQFy.js → schemaPreview.store-C7il53qQ.js} +3 -3
  217. package/dist/assets/{semver-D94dSx-h.js → semver-DQ1spAwG.js} +2 -2
  218. package/dist/assets/{sourceControl.eventBus-dh45B_eQ.js → sourceControl.eventBus-C4ZTxfD6.js} +1 -1
  219. package/dist/assets/{src-DS0bffpn.css → src-CWWagUhy.css} +729 -81
  220. package/dist/assets/{src-D5Ea_YL1.js → src-Czua7QS4.js} +1675 -3573
  221. package/dist/assets/{sso.store-BhQFxFCm.js → sso.store-XplLjdjE.js} +2 -2
  222. package/dist/assets/{table-C-rs8-jl.js → table-BaJV0PMz.js} +3 -3
  223. package/dist/assets/{templateActions-Diym8ovq.js → templateActions-CnKsqyQX.js} +5 -5
  224. package/dist/assets/{templateTransforms-CKqUjP17.js → templateTransforms-tCNgggoI.js} +1 -1
  225. package/dist/assets/{truncate-Dmdv43Z9.js → truncate-4AS2exV3.js} +2266 -27
  226. package/dist/assets/{uniqBy-MFjFW8tb.js → uniqBy-DYX8cQbP.js} +1 -1
  227. package/dist/assets/{usage.store-DhJeF5yr.js → usage.store---1xT3dr.js} +2 -2
  228. package/dist/assets/{useActions-dKafQbOS.js → useActions-SqyZSpq8.js} +4 -4
  229. package/dist/assets/{useBeforeUnload-Bmlb3xCA.js → useBeforeUnload-Frc3kJwY.js} +3 -3
  230. package/dist/assets/{useCanvasMapping-B63N62Et.js → useCanvasMapping-ckk9p3Z_.js} +35 -32
  231. package/dist/assets/{useCanvasOperations-CfQ4z3tY.js → useCanvasOperations-B0_VkwYO.js} +140 -28
  232. package/dist/assets/{useClipboard-C_mhEUZu.js → useClipboard-aAhMBccX.js} +2 -2
  233. package/dist/assets/{useCommandBar-DaWt4vV_.js → useCommandBar-B-FM_q4D.js} +26 -30
  234. package/dist/assets/{useCredentialResolvers--QtS2m8P.js → useCredentialResolvers-BUdqGvmz.js} +4 -5
  235. package/dist/assets/{useCustomAgent-CfCSJQhK.js → useCustomAgent-CpSjLLmx.js} +25 -15
  236. package/dist/assets/{useDebounce-ChdrGmRj.js → useDebounce-BT72iAmz.js} +2 -2
  237. package/dist/assets/{useExecutionData-CW_KIDkd.js → useExecutionData-CcJxqQ4P.js} +1 -1
  238. package/dist/assets/{useExecutionDebugging-wiVN69Tq.js → useExecutionDebugging-CtsTTYUP.js} +6 -7
  239. package/dist/assets/{useExecutionHelpers-BuuqwS9p.js → useExecutionHelpers-BT28_NgQ.js} +5 -5
  240. package/dist/assets/{useImportCurlCommand-13VIaPBb.js → useImportCurlCommand-iPI3t0bK.js} +9 -9
  241. package/dist/assets/{useKeybindings-Dy748tLi.js → useKeybindings-CdqRqeMq.js} +4 -4
  242. package/dist/assets/{useLogsTreeExpand-BEKrkc6w.js → useLogsTreeExpand-U4aHj0YH.js} +13 -13
  243. package/dist/assets/{useMcp-DybYgWvO.js → useMcp-DqpgReET.js} +2 -2
  244. package/dist/assets/{usePageRedirectionHelper-BniqTqk7.js → usePageRedirectionHelper-WQFPPEkJ.js} +3 -4
  245. package/dist/assets/{usePinnedData-oATErInx.js → usePinnedData-DY18UrR8.js} +4 -4
  246. package/dist/assets/{usePushConnection-BucLZJhS.js → usePushConnection-DLXKs6Pl.js} +12 -13
  247. package/dist/assets/{useRecentResources-Cswwj5RH.js → useRecentResources-Dmyse5sV.js} +9 -8
  248. package/dist/assets/{useRunWorkflow-CtXYGwm0.js → useRunWorkflow-qvHcKYK-.js} +9 -10
  249. package/dist/assets/{useSettingsItems-Lsuyk-2F.js → useSettingsItems-BnPf2JrE.js} +4 -4
  250. package/dist/assets/{useTelemetryContext-TG-yqBI_.js → useTelemetryContext-k7tFigHj.js} +1 -1
  251. package/dist/assets/{useWorkflowActivate-Dzfi3i8Q.js → useWorkflowActivate-B8Z7d2ST.js} +7 -8
  252. package/dist/assets/{useWorkflowsCache-CUuFvP-s.js → useWorkflowsCache-Bph0PnSk.js} +1 -1
  253. package/dist/assets/{userRoleProvisioning.store-D4bBWYXg.js → userRoleProvisioning.store-DD9VUV4g.js} +2 -2
  254. package/dist/assets/utils-C2GPI2gK.js +54 -0
  255. package/dist/assets/{versions.store-UoNOsj3D.js → versions.store-BTPqbzUV.js} +3 -3
  256. package/dist/index.html +109 -119
  257. package/package.json +1 -1
  258. package/dist/assets/ChatSidebar-FcoKSroN.js +0 -555
  259. package/dist/assets/CollectionParameter-BdVkYonk.js +0 -58
  260. package/dist/assets/DemoFooter-BCrcY2ep.js +0 -71
  261. package/dist/assets/FileSaver.min--9uV1QmK.js +0 -72
  262. package/dist/assets/LogsPanel-Bl6S94ba.js +0 -58
  263. package/dist/assets/ModalDrawer-B-12esvU.css +0 -129
  264. package/dist/assets/ModalDrawer-CHxulsmc.js +0 -277
  265. package/dist/assets/RunDataParsedAiContent-Brtftd8W.js +0 -24
  266. package/dist/assets/VirtualSchema-wYsuagJ2.js +0 -42
  267. package/dist/assets/cloudPlan.store-Ck9BLZl3.js +0 -185
  268. package/dist/assets/en-BD3FHSTF.js +0 -2
  269. package/dist/assets/focusPanel.store-Cr5ipnc8.js +0 -208
  270. package/dist/assets/mcp.constants-svQUbNx5.js +0 -8
  271. package/dist/assets/npsSurvey.store-CjDE24yH.js +0 -98
  272. package/dist/assets/overlay-DBShc2HG.js +0 -165
  273. package/dist/assets/templates.store-DW5zmCkZ.js +0 -3915
  274. package/dist/assets/useChatHubSidebarState-Dp-DKjJx.js +0 -29
  275. package/dist/assets/useMessage-D9ClyiWR.js +0 -610
  276. package/dist/assets/useWorkflowSaving-BZmOLOu-.js +0 -229
  277. package/dist/assets/utils-BLHsa_NJ.js +0 -18
  278. /package/dist/assets/{AnimatedSpinner-g6zev3_N.js → AnimatedSpinner-wiGFgffA.js} +0 -0
  279. /package/dist/assets/{CalendarDate-B-JEhNYg.js → CalendarDate-zWqgZMlk.js} +0 -0
  280. /package/dist/assets/{ChatFile-8ik4bOn3.js → ChatFile-cnNK8Kf8.js} +0 -0
  281. /package/dist/assets/{ChatSidebarOpener-CxM-3LAt.css → ChatLayout-CxM-3LAt.css} +0 -0
  282. /package/dist/assets/{ChatPersonalAgentsView-BBfu-g98.css → ChatWorkflowAgentsView-BBfu-g98.css} +0 -0
  283. /package/dist/assets/{PageViewLayout-B889Bfwc.js → PageViewLayout-BHSzOio1.js} +0 -0
  284. /package/dist/assets/{TextWithHighlights-C4QSPTGM.js → TextWithHighlights-DjzuDrgO.js} +0 -0
  285. /package/dist/assets/{buttons.esm-CZxEX89d.js → buttons.esm-CT4flsfB.js} +0 -0
  286. /package/dist/assets/{chart-BxWK2ZOo.js → chart-CE3HWIkr.js} +0 -0
  287. /package/dist/assets/{core-CXk6RNMV.js → core-6W4wWNc1.js} +0 -0
  288. /package/dist/assets/{dateformat-hG8NERse.js → dateformat-CM9k0--B.js} +0 -0
  289. /package/dist/assets/{exports-CdZcr9ah.js → exports-hpMZaOPT.js} +0 -0
  290. /package/dist/assets/{fileUtils-D3GQ2UWQ.js → fileUtils-D_SiS8no.js} +0 -0
  291. /package/dist/assets/{path-browserify-BgjP7RyT.js → path-browserify-BtCDmZ3_.js} +0 -0
  292. /package/dist/assets/{retry-CMAFrhVi.js → retry-dP46utx2.js} +0 -0
  293. /package/dist/assets/{smartDecimal-Bi50OE4b.js → smartDecimal-DK6-_VSq.js} +0 -0
  294. /package/dist/assets/{sortByProperty-DAqnDMg7.js → sortByProperty-CV1aCzkS.js} +0 -0
  295. /package/dist/assets/{useIntersectionObserver-BZ6Jqnr3.js → useIntersectionObserver-DXKoRNFj.js} +0 -0
  296. /package/dist/assets/{vue-0rlD32wK.js → vue-Dg_43WEg.js} +0 -0
  297. /package/dist/assets/{vue-json-pretty-B9qWbmOF.js → vue-json-pretty-DGKuDe33.js} +0 -0
  298. /package/dist/assets/{xml-DSIt30t0.js → xml-B6veOr9z.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { t as __commonJSMin } from "./chunk-6z4oVpB-.js";
2
- import { bi as require__baseIteratee, ji as require__baseUniq } from "./constants-DPB1SWiX.js";
2
+ import { Oi as require__baseUniq, _i as require__baseIteratee } from "./constants-BiRoCM0c.js";
3
3
  var require_uniqBy = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4
4
  var baseIteratee = require__baseIteratee(), baseUniq = require__baseUniq();
5
5
  function uniqBy(array, iteratee) {
@@ -1,6 +1,6 @@
1
1
  import { C as computed, Pt as reactive } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
- import { $o as useSettingsStore, cs as registerCommunityEdition, ls as renewLicense, os as activateLicenseKey, ss as getLicense, us as requestLicenseTrial } from "./builder.store-D_RDTxxI.js";
3
- import { k as defineStore, r as useRootStore } from "./_baseOrderBy-ZGuD_-iy.js";
2
+ import { Cs as renewLicense, Ss as registerCommunityEdition, bs as activateLicenseKey, hs as useSettingsStore, ws as requestLicenseTrial, xs as getLicense } from "./builder.store-DoNE5iKP.js";
3
+ import { k as defineStore, r as useRootStore } from "./_baseOrderBy-xWA0TcWm.js";
4
4
  var DEFAULT_PLAN_NAME = "Community";
5
5
  var DEFAULT_STATE = {
6
6
  loading: true,
@@ -1,8 +1,8 @@
1
1
  import { C as computed } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
- import { gt as useI18n } from "./_MapCache-BXj4WgHo.js";
3
- import { An as injectWorkflowState, Ft as sortNodeCreateElements, Lt as transformNodeType, T as PUSH_NODES_OFFSET, _t as useNodeTypesStore, er as useCanvasStore, i as useExternalHooks, v as useWorkflowsStore } from "./builder.store-D_RDTxxI.js";
4
- import { $a as CHAIN_LLM_LANGCHAIN_NODE_TYPE, $n as SCHEDULE_TRIGGER_NODE_TYPE, Bn as NO_OP_NODE_TYPE, Dn as MANUAL_TRIGGER_NODE_TYPE, Hn as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, Jn as QA_CHAIN_NODE_TYPE, Ka as NodeConnectionTypes, Mt as TRIGGER_NODE_CREATOR_VIEW, Nt as AGENT_NODE_TYPE, Un as OPEN_AI_NODE_TYPE, Vn as OPEN_AI_ASSISTANT_NODE_TYPE, Vt as CHAT_TRIGGER_NODE_TYPE, et as AI_CATEGORY_LANGUAGE_MODELS, or as SPLIT_IN_BATCHES_NODE_TYPE, ur as STICKY_NODE_TYPE, vr as WEBHOOK_NODE_TYPE, wt as NODE_CREATOR_OPEN_SOURCES, zt as BASIC_CHAIN_NODE_TYPE } from "./constants-DPB1SWiX.js";
5
- import { t as useNodeCreatorStore } from "./nodeCreator.store-CzS_snY4.js";
2
+ import { _t as useI18n } from "./_MapCache-0zNxISSG.js";
3
+ import { $t as transformNodeType, B as PUSH_NODES_OFFSET, Kn as injectWorkflowState, N as useWorkflowsStore, Nt as useNodeTypesStore, Zt as sortNodeCreateElements, b as useExternalHooks, gr as useCanvasStore } from "./builder.store-DoNE5iKP.js";
4
+ import { At as TRIGGER_NODE_CREATOR_VIEW, Bn as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, Kn as QA_CHAIN_NODE_TYPE, Lt as BASIC_CHAIN_NODE_TYPE, Q as AI_CATEGORY_LANGUAGE_MODELS, Rn as NO_OP_NODE_TYPE, St as NODE_CREATOR_OPEN_SOURCES, Tn as MANUAL_TRIGGER_NODE_TYPE, Ua as NodeConnectionTypes, Vn as OPEN_AI_NODE_TYPE, Xa as CHAIN_LLM_LANGCHAIN_NODE_TYPE, Zn as SCHEDULE_TRIGGER_NODE_TYPE, hr as WEBHOOK_NODE_TYPE, ir as SPLIT_IN_BATCHES_NODE_TYPE, jt as AGENT_NODE_TYPE, sr as STICKY_NODE_TYPE, zn as OPEN_AI_ASSISTANT_NODE_TYPE, zt as CHAT_TRIGGER_NODE_TYPE } from "./constants-BiRoCM0c.js";
5
+ import { t as useNodeCreatorStore } from "./nodeCreator.store-C5ZiFH88.js";
6
6
  const useActions = () => {
7
7
  const workflowState = injectWorkflowState();
8
8
  const nodeCreatorStore = useNodeCreatorStore();
@@ -1,7 +1,7 @@
1
1
  import { C as computed, It as ref } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
- import { gt as useI18n } from "./_MapCache-BXj4WgHo.js";
3
- import { Wi as useUIStore, er as useCanvasStore } from "./builder.store-D_RDTxxI.js";
4
- import { Vo as VIEWS } from "./constants-DPB1SWiX.js";
2
+ import { _t as useI18n } from "./_MapCache-0zNxISSG.js";
3
+ import { gr as useCanvasStore, oa as useUIStore } from "./builder.store-DoNE5iKP.js";
4
+ import { Ro as VIEWS } from "./constants-BiRoCM0c.js";
5
5
  function useBeforeUnload({ route }) {
6
6
  const uiStore = useUIStore();
7
7
  const canvasStore = useCanvasStore();
@@ -1,24 +1,23 @@
1
1
  import { o as __toESM, t as __commonJSMin } from "./chunk-6z4oVpB-.js";
2
2
  import { C as computed, Cn as toDisplayString, D as createElementBlock, E as createCommentVNode, G as nextTick, Gt as unref, I as guardReactiveProps, It as ref, J as onBeforeUnmount, L as h, M as createVNode, P as defineComponent, Pt as reactive, Q as onUnmounted, T as createBlock, U as mergeModels, Vt as toRef, W as mergeProps, Z as onMounted, _ as Fragment, _t as watch, at as renderSlot, b as Teleport, bn as normalizeStyle, bt as withCtx, c as useCssModule, ct as resolveDynamicComponent, et as openBlock, ft as useModel, h as withModifiers, it as renderList, j as createTextVNode, k as createSlots, n as Transition, nt as provide, p as vShow, pt as useSlots, ut as useAttrs, vn as normalizeClass, vt as watchEffect, w as createBaseVNode, xt as withDirectives, y as Suspense, yn as normalizeProps, z as inject } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
3
- import { _ as onKeyDown, _t as I18nT, gt as useI18n, it as useThrottleFn, ot as watchOnce, st as watchThrottled, y as onKeyUp } from "./_MapCache-BXj4WgHo.js";
4
- import { Gn as N8nIcon_default, Hn as N8nText_default, O as N8nPopover_default, S as N8nSticky_default, Un as N8nButton_default, ct as useDeviceSupport, ht as N8nTooltip_default, mt as N8nLink_default, ot as N8nActionDropdown_default, xt as N8nIconButton_default } from "./src-D5Ea_YL1.js";
3
+ import { _ as onKeyDown, _t as useI18n, at as useThrottleFn, ct as watchThrottled, st as watchOnce, vt as I18nT, y as onKeyUp } from "./_MapCache-0zNxISSG.js";
4
+ import { D as N8nPopover_default, S as N8nSticky_default, Sn as N8nButton_default, ct as useDeviceSupport, ht as N8nTooltip_default, mt as N8nLink_default, ot as N8nActionDropdown_default, wn as N8nIcon_default, xn as N8nText_default, xt as N8nIconButton_default } from "./src-Czua7QS4.js";
5
5
  import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
6
- import { T as createEventBus, n as truncateBeforeLast, v as useRoute, y as useRouter } from "./truncate-Dmdv43Z9.js";
7
- import { D as TitledList_default } from "./ParameterInputList-BUU1q_EZ.js";
8
- import { $ as useGetPointerPosition, $o as useSettingsStore, An as injectWorkflowState, B as Position, Bi as globalLinkActionsEventBus, Dn as environments_store_default, Dr as isValidNodeConnectionType, E as calculateNodeSize, Fn as useSourceControlStore, G as _sfc_main$f, H as _sfc_main$1, I as updateViewportToContainNodes, J as getBoundsofRects, K as clamp, L as MarkerType, Li as nodeViewEventBus, Mr as CanvasNodeDirtiness, Nr as CanvasNodeRenderType, Pr as useHistoryStore, Q as isMacOs, R as NodeId, S as DEFAULT_NODE_SIZE, T as PUSH_NODES_OFFSET, U as _sfc_main$3, V as _sfc_main$4, W as _sfc_main$d, Wi as useUIStore, X as getRectOfNodes, Y as getConnectedEdges, Yo as v4_default, Z as getSmoothStepPath, _ as useNDVStore, _t as useNodeTypesStore, at as isChatNode, b as CONFIGURATION_NODE_RADIUS, et as useVueFlow, j as getMousePosition, jr as CanvasConnectionMode, ki as isPresent, kn as useNodeHelpers, l as isOutsideSelected, li as getTriggerNodeServiceName, n as useToast, p as useTelemetry, q as getBezierPath, r as useStyles, tt as wheelDelta, u as sanitizeHtml, v as useWorkflowsStore, w as GRID_SIZE, z as PanelPosition } from "./builder.store-D_RDTxxI.js";
9
- import { Ka as NodeConnectionTypes, L as CUSTOM_API_CALL_KEY, Oa as isCommunityPackageName, Tc as CANVAS_EXECUTION_DATA_THROTTLE_DURATION, Vo as VIEWS, Vt as CHAT_TRIGGER_NODE_TYPE, Xo as EXPERIMENT_TEMPLATES_DATA_QUALITY_KEY, _o as WEBHOOK_NODE_TYPE, _r as WAIT_NODE_TYPE, bs as WORKFLOW_EXTRACTION_NAME_MODAL_KEY, da as isNodeWithWorkflowSelector, dn as FORM_NODE_TYPE, ea as getNodeInputs, go as WAIT_INDEFINITELY, hi as parseExtractableSubgraphSelection, ic as ExpressionLocalResolveContextSymbol, io as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, ir as SIMULATE_TRIGGER_NODE_TYPE, jo as getResourcePermissions, mi as buildAdjacencyList, nc as CanvasNodeHandleKey, po as SEND_AND_WAIT_OPERATION, qi as mapConnectionsByDestination, qn as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, rc as CanvasNodeKey, rr as SIMULATE_NODE_TYPE, sa as getSubworkflowId, ta as getNodeOutputs, tc as CanvasKey, ua as isExecutable, ur as STICKY_NODE_TYPE, vo as require_isEqual, wt as NODE_CREATOR_OPEN_SOURCES, yi as extractReferencesInNodeExpressions, zn as NOT_DUPLICATABLE_NODE_TYPES } from "./constants-DPB1SWiX.js";
10
- import { t as useChatPanelStore } from "./chatPanel.store-D3DaHq1z.js";
11
- import { a as useTemplatesDataQualityStore, i as trackTemplatesClick, n as TemplateClickSource, r as isExtraTemplateLinksExperimentEnabled, t as useTemplatesStore } from "./templates.store-DW5zmCkZ.js";
12
- import { r as useNodeDirtiness, t as useRunWorkflow } from "./useRunWorkflow-CtXYGwm0.js";
13
- import { t as usePinnedData } from "./usePinnedData-oATErInx.js";
14
- import { c as mapLegacyEndpointsToCanvasConnectionPort, i as insertSpacersBetweenEndpoints, l as parseCanvasConnectionHandleString, n as checkOverlap, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-CzS_snY4.js";
15
- import { t as getNodeIconSource } from "./nodeIcon-B3eU2X78.js";
16
- import { a as useLogsStore, i as useExperimentalNdvStore, t as useCanvasOperations } from "./useCanvasOperations-CfQ4z3tY.js";
17
- import { t as NodeIcon_default } from "./NodeIcon-CWvzhRQM.js";
18
- import { t as KeyboardShortcutTooltip_default } from "./KeyboardShortcutTooltip-vWNBozVo.js";
19
- import { t as useTelemetryContext } from "./useTelemetryContext-TG-yqBI_.js";
20
- import { t as NodeSettings_default } from "./NodeSettings-Br6GFKCU.js";
21
- import { t as useKeybindings } from "./useKeybindings-Dy748tLi.js";
6
+ import { T as createEventBus, n as truncateBeforeLast, v as useRoute, y as useRouter } from "./truncate-4AS2exV3.js";
7
+ import { $ as MarkerType, $i as nodeViewEventBus, B as PUSH_NODES_OFFSET, E as sanitizeHtml, F as CONFIGURATION_NODE_RADIUS, Gi as isPresent, Gn as useNodeHelpers, Jr as CanvasNodeDirtiness, Kn as injectWorkflowState, L as DEFAULT_NODE_SIZE, M as useNDVStore, N as useWorkflowsStore, Nt as useNodeTypesStore, O as useTelemetry, Q as updateViewportToContainNodes, T as isOutsideSelected, Ti as getTriggerNodeServiceName, Un as environments_store_default, Ur as isValidNodeConnectionType, V as calculateNodeSize, Xr as useHistoryStore, Yr as CanvasNodeRenderType, Zn as useSourceControlStore, _t as wheelDelta, at as _sfc_main$3, c as useTemplatesStore, ct as clamp, d as trackTemplatesClick, ds as v4_default, dt as getConnectedEdges, et as NodeId, f as useTemplatesDataQualityStore, ft as getRectOfNodes, gt as useVueFlow, hs as useSettingsStore, ht as useGetPointerPosition, it as _sfc_main$1, l as TemplateClickSource, lt as getBezierPath, mt as isMacOs, na as globalLinkActionsEventBus, nt as Position, oa as useUIStore, ot as _sfc_main$d, pt as getSmoothStepPath, q as getMousePosition, qr as CanvasConnectionMode, rt as _sfc_main$4, st as _sfc_main$f, tt as PanelPosition, u as isExtraTemplateLinksExperimentEnabled, ut as getBoundsofRects, v as useToast, xt as isChatNode, y as useStyles, z as GRID_SIZE } from "./builder.store-DoNE5iKP.js";
8
+ import { D as TitledList_default } from "./ParameterInputList-Br9nDZxe.js";
9
+ import { $s as ExpressionLocalResolveContextSymbol, F as CUSTOM_API_CALL_KEY, Gn as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, Ko as EXPERIMENT_TEMPLATES_DATA_QUALITY_KEY, Ln as NOT_DUPLICATABLE_NODE_TYPES, Oo as getResourcePermissions, Qi as getNodeOutputs, Qs as CanvasNodeKey, Ro as VIEWS, St as NODE_CREATOR_OPEN_SOURCES, Ta as isCommunityPackageName, Ua as NodeConnectionTypes, Wi as mapConnectionsByDestination, Xs as CanvasKey, Zi as getNodeInputs, Zs as CanvasNodeHandleKey, bc as CANVAS_EXECUTION_DATA_THROTTLE_DURATION, ca as isNodeWithWorkflowSelector, di as buildAdjacencyList, fi as parseExtractableSubgraphSelection, gi as extractReferencesInNodeExpressions, gs as WORKFLOW_EXTRACTION_NAME_MODAL_KEY, ho as require_isEqual, ia as getSubworkflowId, ln as FORM_NODE_TYPE, mo as WEBHOOK_NODE_TYPE, mr as WAIT_NODE_TYPE, nr as SIMULATE_TRIGGER_NODE_TYPE, po as WAIT_INDEFINITELY, sa as isExecutable, sr as STICKY_NODE_TYPE, to as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, tr as SIMULATE_NODE_TYPE, uo as SEND_AND_WAIT_OPERATION, zt as CHAT_TRIGGER_NODE_TYPE } from "./constants-BiRoCM0c.js";
10
+ import { t as useChatPanelStore } from "./chatPanel.store-zWZ0Jjvi.js";
11
+ import { r as useNodeDirtiness, t as useRunWorkflow } from "./useRunWorkflow-qvHcKYK-.js";
12
+ import { t as usePinnedData } from "./usePinnedData-DY18UrR8.js";
13
+ import { c as mapLegacyEndpointsToCanvasConnectionPort, i as insertSpacersBetweenEndpoints, l as parseCanvasConnectionHandleString, n as checkOverlap, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-C5ZiFH88.js";
14
+ import { t as getNodeIconSource } from "./nodeIcon-CPowiQry.js";
15
+ import { a as useLogsStore, i as useExperimentalNdvStore, t as useCanvasOperations } from "./useCanvasOperations-B0_VkwYO.js";
16
+ import { t as NodeIcon_default } from "./NodeIcon-UuZXMI3b.js";
17
+ import { t as KeyboardShortcutTooltip_default } from "./KeyboardShortcutTooltip-BErFISFN.js";
18
+ import { t as useTelemetryContext } from "./useTelemetryContext-k7tFigHj.js";
19
+ import { t as NodeSettings_default } from "./NodeSettings-sGW3h0b4.js";
20
+ import { t as useKeybindings } from "./useKeybindings-CdqRqeMq.js";
22
21
  var CanvasRunWorkflowButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
23
22
  __name: "CanvasRunWorkflowButton",
24
23
  props: {
@@ -634,6 +633,13 @@ var CanvasNodeStatusIcons_vue_vue_type_script_setup_true_lang_default = /* @__PU
634
633
  __props.spinnerScrim ? $style.spinnerScrim : "",
635
634
  __props.spinnerLayout === "absolute" ? $style.absoluteSpinner : ""
636
635
  ]);
636
+ const groupedExecutionErrors = computed(() => {
637
+ const errorCounts = executionErrors.value.reduce((acc, error$1) => {
638
+ acc[error$1] = (acc[error$1] || 0) + 1;
639
+ return acc;
640
+ }, {});
641
+ return Object.entries(errorCounts).map(([error$1, count$1]) => count$1 > 1 ? `${error$1} (x${count$1})` : error$1);
642
+ });
637
643
  return (_ctx, _cache) => {
638
644
  return unref(isNotInstalledCommunityNode) && !isDemoRoute.value ? (openBlock(), createElementBlock("div", {
639
645
  key: 0,
@@ -665,7 +671,7 @@ var CanvasNodeStatusIcons_vue_vue_type_script_setup_true_lang_default = /* @__PU
665
671
  }, {
666
672
  content: withCtx(() => [createVNode(TitledList_default, {
667
673
  title: `${unref(i18n).baseText("node.issues")}:`,
668
- items: unref(executionErrors)
674
+ items: groupedExecutionErrors.value
669
675
  }, null, 8, ["title", "items"])]),
670
676
  default: withCtx(() => [createVNode(unref(N8nIcon_default), {
671
677
  icon: "node-execution-error",
@@ -786,27 +792,24 @@ var CanvasNodeStickyColorSelector_vue_vue_type_script_setup_true_lang_default =
786
792
  });
787
793
  return (_ctx, _cache) => {
788
794
  return openBlock(), createBlock(unref(N8nPopover_default), {
789
- visible: isPopoverVisible.value,
790
- "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => isPopoverVisible.value = $event),
791
- effect: "dark",
792
- trigger: "click",
793
- placement: "top",
794
- "popper-class": _ctx.$style.popover,
795
- "popper-style": { width: "208px" },
796
- teleported: true,
795
+ open: isPopoverVisible.value,
796
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => isPopoverVisible.value = $event),
797
+ side: "top",
798
+ width: "208px",
799
+ "content-class": _ctx.$style.popover,
800
+ "enable-scrolling": false,
797
801
  onBeforeEnter: onMouseEnter,
798
802
  onAfterLeave: onMouseLeave
799
803
  }, {
800
- reference: withCtx(() => [createBaseVNode("div", {
804
+ trigger: withCtx(() => [createBaseVNode("div", {
801
805
  class: normalizeClass(_ctx.$style.option),
802
806
  "data-test-id": "change-sticky-color",
803
- title: unref(i18n).baseText("node.changeColor"),
804
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"]))
807
+ title: unref(i18n).baseText("node.changeColor")
805
808
  }, [createVNode(unref(N8nIcon_default), {
806
809
  size: "small",
807
810
  icon: "palette"
808
811
  })], 10, _hoisted_1$16)]),
809
- default: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.content) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(colors.value, (color$2) => {
812
+ content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.content) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(colors.value, (color$2) => {
810
813
  return openBlock(), createElementBlock("div", {
811
814
  key: color$2,
812
815
  "data-test-id": "color",
@@ -819,7 +822,7 @@ var CanvasNodeStickyColorSelector_vue_vue_type_script_setup_true_lang_default =
819
822
  }, null, 10, _hoisted_2$6);
820
823
  }), 128))], 2)]),
821
824
  _: 1
822
- }, 8, ["visible", "popper-class"]);
825
+ }, 8, ["open", "content-class"]);
823
826
  };
824
827
  }
825
828
  });
@@ -1,17 +1,15 @@
1
1
  import { o as __toESM, t as __commonJSMin } from "./chunk-6z4oVpB-.js";
2
2
  import { C as computed, G as nextTick, It as ref, zt as shallowRef } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
3
- import { gt as useI18n, j as useLocalStorage } from "./_MapCache-BXj4WgHo.js";
4
- import { T as createEventBus, v as useRoute, y as useRouter } from "./truncate-Dmdv43Z9.js";
5
- import { $o as useSettingsStore, An as injectWorkflowState, Br as MoveNodeCommand, C as DEFAULT_VIEWPORT_BOUNDARIES, D as generateOffsets, Dr as isValidNodeConnectionType, Fr as AddConnectionCommand, Hr as RemoveNodeCommand, Ir as AddNodeCommand, M as getNewNodePosition, Nr as CanvasNodeRenderType, P as getNodesGroupSize, Pi as tryToParseNumber, Pn as useProjectsStore, Pr as useHistoryStore, S as DEFAULT_NODE_SIZE, Sn as useWorkflowHelpers, T as PUSH_NODES_OFFSET, Tn as useTagsStore, Ur as RenameNodeCommand, Vr as RemoveConnectionCommand, Wi as useUIStore, Wr as ReplaceNodeParametersCommand, Yo as v4_default, _ as useNDVStore, _t as useNodeTypesStore, an as useDataSchema, at as isChatNode, en as useCredentialsStore, er as useCanvasStore, g as usePostHog, i as useExternalHooks, jn as useWorkflowState, jr as CanvasConnectionMode, ki as isPresent, kn as useNodeHelpers, n as useToast, p as useTelemetry, pt as getExecutionErrorToastConfiguration, v as useWorkflowsStore, w as GRID_SIZE, x as CONFIGURATION_NODE_SIZE, y as CONFIGURABLE_NODE_SIZE } from "./builder.store-D_RDTxxI.js";
6
- import { $i as getConnectionTypes, Bs as LOCAL_STORAGE_LOGS_SYNC_SELECTION, Da as deepCopy, Ka as NodeConnectionTypes, Ls as LOCAL_STORAGE_LOGS_PANEL_DETAILS_PANEL, Oa as isCommunityPackageName, Rs as LOCAL_STORAGE_LOGS_PANEL_DETAILS_PANEL_SUB_NODE, Si as require_cloneDeep, Vo as VIEWS, Xi as generateNodesGraph, dc as CANVAS_ZOOMED_VIEW_EXPERIMENT, ea as getNodeInputs, fn as FORM_TRIGGER_NODE_TYPE, gr as UPDATE_WEBHOOK_ID_NODE_TYPES, hc as NDV_IN_FOCUS_PANEL_EXPERIMENT, ji as require__baseUniq, kn as MCP_TRIGGER_NODE_TYPE, na as getNodeParameters, sa as getSubworkflowId, ta as getNodeOutputs, ur as STICKY_NODE_TYPE, vr as WEBHOOK_NODE_TYPE, wc as EnterpriseEditionFeature, zs as LOCAL_STORAGE_LOGS_PANEL_OPEN } from "./constants-DPB1SWiX.js";
7
- import { k as defineStore, r as useRootStore } from "./_baseOrderBy-ZGuD_-iy.js";
8
- import { t as useTemplatesStore } from "./templates.store-DW5zmCkZ.js";
9
- import { t as useFocusPanelStore } from "./focusPanel.store-Cr5ipnc8.js";
10
- import { t as useExecutionsStore } from "./executions.store-D8Pn4Xih.js";
11
- import { t as usePinnedData } from "./usePinnedData-oATErInx.js";
12
- import { a as mapCanvasConnectionToLegacyConnection, l as parseCanvasConnectionHandleString, o as mapLegacyConnectionToCanvasConnection, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-CzS_snY4.js";
13
- import { t as useClipboard } from "./useClipboard-C_mhEUZu.js";
14
- import { t as useFoldersStore } from "./folders.store-D8nKs5-U.js";
3
+ import { M as useLocalStorage, _t as useI18n } from "./_MapCache-0zNxISSG.js";
4
+ import { T as createEventBus, v as useRoute, y as useRouter } from "./truncate-4AS2exV3.js";
5
+ import { B as PUSH_NODES_OFFSET, Gi as isPresent, Gn as useNodeHelpers, H as doRectsOverlap, I as CONFIGURATION_NODE_SIZE, J as getNewNodePosition, Kn as injectWorkflowState, L as DEFAULT_NODE_SIZE, M as useNDVStore, N as useWorkflowsStore, Nt as useNodeTypesStore, O as useTelemetry, P as CONFIGURABLE_NODE_SIZE, Qr as AddNodeCommand, R as DEFAULT_VIEWPORT_BOUNDARIES, Rn as useWorkflowHelpers, U as generateOffsets, Ur as isValidNodeConnectionType, Vn as useTagsStore, X as getNodesGroupSize, Xi as tryToParseNumber, Xn as useProjectsStore, Xr as useHistoryStore, Yr as CanvasNodeRenderType, Zr as AddConnectionCommand, ai as RenameNodeCommand, b as useExternalHooks, c as useTemplatesStore, ds as v4_default, gn as useCredentialsStore, gr as useCanvasStore, hs as useSettingsStore, ii as RemoveNodeCommand, j as usePostHog, kt as getExecutionErrorToastConfiguration, ni as MoveNodeCommand, oa as useUIStore, oi as ReplaceNodeParametersCommand, qn as useWorkflowState, qr as CanvasConnectionMode, r as useFocusPanelStore, ri as RemoveConnectionCommand, v as useToast, xn as useDataSchema, xt as isChatNode, z as GRID_SIZE } from "./builder.store-DoNE5iKP.js";
6
+ import { $i as getNodeParameters, Dn as MCP_TRIGGER_NODE_TYPE, Fs as LOCAL_STORAGE_LOGS_SYNC_SELECTION, Ms as LOCAL_STORAGE_LOGS_PANEL_DETAILS_PANEL, Ns as LOCAL_STORAGE_LOGS_PANEL_DETAILS_PANEL_SUB_NODE, Oi as require__baseUniq, Ps as LOCAL_STORAGE_LOGS_PANEL_OPEN, Qi as getNodeOutputs, Ro as VIEWS, Ta as isCommunityPackageName, Ua as NodeConnectionTypes, Xi as getConnectionTypes, Zi as getNodeInputs, hr as WEBHOOK_NODE_TYPE, ia as getSubworkflowId, oc as CANVAS_ZOOMED_VIEW_EXPERIMENT, pr as UPDATE_WEBHOOK_ID_NODE_TYPES, qi as generateNodesGraph, sr as STICKY_NODE_TYPE, uc as NDV_IN_FOCUS_PANEL_EXPERIMENT, un as FORM_TRIGGER_NODE_TYPE, wa as deepCopy, yc as EnterpriseEditionFeature, yi as require_cloneDeep } from "./constants-BiRoCM0c.js";
7
+ import { k as defineStore, r as useRootStore } from "./_baseOrderBy-xWA0TcWm.js";
8
+ import { t as useExecutionsStore } from "./executions.store-O0Cs6kyK.js";
9
+ import { t as usePinnedData } from "./usePinnedData-DY18UrR8.js";
10
+ import { a as mapCanvasConnectionToLegacyConnection, l as parseCanvasConnectionHandleString, o as mapLegacyConnectionToCanvasConnection, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-C5ZiFH88.js";
11
+ import { t as useClipboard } from "./useClipboard-aAhMBccX.js";
12
+ import { t as useFoldersStore } from "./folders.store-vVDyrOf9.js";
15
13
  function useUniqueNodeName() {
16
14
  function numberSuffixedNames() {
17
15
  return useNodeTypesStore().allNodeTypes.reduce((acc, nodeType) => {
@@ -854,7 +852,17 @@ function useCanvasOperations() {
854
852
  const lastInteractedWithNodeScopedInputTypes = (lastInteractedWithNodeInputTypes || []).filter((input) => input !== NodeConnectionTypes.Main);
855
853
  const lastInteractedWithNodeMainOutputs = getConnectionTypes(getNodeOutputs(editableWorkflowObject.value, lastInteractedWithNodeObject, lastInteractedWithNodeTypeDescription)).filter((output) => output === NodeConnectionTypes.Main);
856
854
  let yOffset = 0;
857
- if (lastInteractedWithNodeConnection) shiftDownstreamNodesPosition(lastInteractedWithNode.name, PUSH_NODES_OFFSET, { trackHistory: true });
855
+ if (lastInteractedWithNodeConnection) {
856
+ let isNewNodeConfigurable = false;
857
+ if (typeof nodeTypeDescription.inputs === "string") isNewNodeConfigurable = true;
858
+ else if (Array.isArray(nodeTypeDescription.inputs)) isNewNodeConfigurable = getConnectionTypes(nodeTypeDescription.inputs).filter((input) => input !== NodeConnectionTypes.Main).length > 0;
859
+ const newNodeSize = isNewNodeConfigurable ? CONFIGURABLE_NODE_SIZE : DEFAULT_NODE_SIZE;
860
+ const shiftMargin = PUSH_NODES_OFFSET + (isNewNodeConfigurable ? CONFIGURABLE_NODE_SIZE[0] - DEFAULT_NODE_SIZE[0] : 0);
861
+ shiftDownstreamNodesPosition(lastInteractedWithNode.name, shiftMargin, {
862
+ trackHistory: true,
863
+ nodeSize: newNodeSize
864
+ });
865
+ }
858
866
  if (lastInteractedWithNodeMainOutputs.length > 1) yOffset = generateOffsets(lastInteractedWithNodeMainOutputs.length, DEFAULT_NODE_SIZE[1], 16)[connectionIndex];
859
867
  let outputs = [];
860
868
  try {
@@ -873,6 +881,10 @@ function useCanvasOperations() {
873
881
  let pushOffset = PUSH_NODES_OFFSET;
874
882
  if (lastInteractedWithNodeInputTypes.find((input) => input !== NodeConnectionTypes.Main)) pushOffset += 140;
875
883
  position = [lastInteractedWithNode.position[0] + pushOffset, lastInteractedWithNode.position[1] + yOffset];
884
+ if (lastInteractedWithNodeConnection) {
885
+ const adjustedY = getYPositionForStickyOverlap(position, nodeSize);
886
+ if (adjustedY !== null) position = [position[0], adjustedY];
887
+ }
876
888
  }
877
889
  }
878
890
  }
@@ -895,17 +907,113 @@ function useCanvasOperations() {
895
907
  "@n8n/n8n-nodes-langchain.mcpTrigger"
896
908
  ].includes(node.type) && node.parameters.path === "") node.parameters.path = node.webhookId;
897
909
  }
898
- function shiftDownstreamNodesPosition(sourceNodeName, margin, { trackHistory = false }) {
899
- const sourceNode = workflowsStore.nodesByName[sourceNodeName];
900
- const checkNodes = workflowHelpers.getConnectedNodes("downstream", editableWorkflowObject.value, sourceNodeName);
901
- for (const nodeName of checkNodes) {
902
- const node = workflowsStore.nodesByName[nodeName];
903
- if (!node || !sourceNode || node.position[0] < sourceNode.position[0]) continue;
904
- updateNodePosition(node.id, {
905
- x: node.position[0] + margin,
906
- y: node.position[1]
907
- }, { trackHistory });
910
+ function getNodeRect(node) {
911
+ if (node.type === "n8n-nodes-base.stickyNote") return {
912
+ x: node.position[0],
913
+ y: node.position[1],
914
+ width: node.parameters.width || DEFAULT_NODE_SIZE[0],
915
+ height: node.parameters.height || DEFAULT_NODE_SIZE[1]
916
+ };
917
+ return {
918
+ x: node.position[0],
919
+ y: node.position[1],
920
+ width: DEFAULT_NODE_SIZE[0],
921
+ height: DEFAULT_NODE_SIZE[1]
922
+ };
923
+ }
924
+ function hasSpaceForInsertion(insertPosition, nodeSize, nodesToCheck) {
925
+ const insertRect = {
926
+ x: insertPosition[0],
927
+ y: insertPosition[1],
928
+ width: nodeSize[0] + 16,
929
+ height: nodeSize[1]
930
+ };
931
+ for (const node of nodesToCheck) {
932
+ if (node.type === "n8n-nodes-base.stickyNote") continue;
933
+ if (doRectsOverlap(insertRect, getNodeRect(node))) return false;
934
+ }
935
+ return true;
936
+ }
937
+ function getNodesToShift(insertPosition, sourceNodeName) {
938
+ const allNodes = Object.values(workflowsStore.nodesByName);
939
+ const insertX = insertPosition[0];
940
+ const insertY = insertPosition[1];
941
+ const yTolerance = DEFAULT_NODE_SIZE[1] * 2;
942
+ const initialCandidates = allNodes.filter((node) => {
943
+ if (node.type === "n8n-nodes-base.stickyNote") return false;
944
+ if (node.name === sourceNodeName) return false;
945
+ const isSimilarY = Math.abs(node.position[1] - insertY) <= yTolerance;
946
+ const overlapsOrIsToTheRight = node.position[0] + DEFAULT_NODE_SIZE[0] > insertX || node.position[0] >= insertX;
947
+ return isSimilarY && overlapsOrIsToTheRight;
948
+ });
949
+ const candidateNames = new Set(initialCandidates.map((n) => n.name));
950
+ for (const candidate of initialCandidates) workflowHelpers.getConnectedNodes("downstream", editableWorkflowObject.value, candidate.name).forEach((name) => candidateNames.add(name));
951
+ const regularNodesToMove = allNodes.filter((node) => {
952
+ if (node.type === "n8n-nodes-base.stickyNote") return false;
953
+ return candidateNames.has(node.name);
954
+ });
955
+ const stickiesToStretch = [];
956
+ const stickiesToMove = [];
957
+ const stickyNodes = allNodes.filter((node) => node.type === STICKY_NODE_TYPE);
958
+ const affectedMinY = Math.min(insertY, ...regularNodesToMove.map((n) => n.position[1]));
959
+ const affectedMaxY = Math.max(insertY + DEFAULT_NODE_SIZE[1], ...regularNodesToMove.map((n) => n.position[1] + DEFAULT_NODE_SIZE[1]));
960
+ for (const sticky of stickyNodes) {
961
+ const stickyRect = getNodeRect(sticky);
962
+ const stickyLeftEdge = sticky.position[0];
963
+ const stickyRightEdge = stickyLeftEdge + stickyRect.width;
964
+ const stickyTop = sticky.position[1];
965
+ const overlapsVertically = !(stickyTop + stickyRect.height <= affectedMinY || stickyTop >= affectedMaxY);
966
+ if (stickyLeftEdge >= insertX && overlapsVertically) stickiesToMove.push(sticky);
967
+ else if (stickyLeftEdge < insertX && stickyRightEdge >= insertX && overlapsVertically) stickiesToStretch.push(sticky);
968
+ }
969
+ return {
970
+ nodesToMove: [...regularNodesToMove, ...stickiesToMove],
971
+ stickiesToStretch
972
+ };
973
+ }
974
+ function getYPositionForStickyOverlap(insertPosition, nodeSize) {
975
+ const allNodes = Object.values(workflowsStore.nodesByName);
976
+ const stickyNodes = allNodes.filter((node) => node.type === STICKY_NODE_TYPE);
977
+ const regularNodes = allNodes.filter((node) => node.type !== STICKY_NODE_TYPE);
978
+ const insertRect = {
979
+ x: insertPosition[0],
980
+ y: insertPosition[1],
981
+ width: nodeSize[0] + 16,
982
+ height: nodeSize[1]
983
+ };
984
+ for (const node of regularNodes) if (doRectsOverlap(insertRect, getNodeRect(node))) return null;
985
+ for (const sticky of stickyNodes) {
986
+ const stickyRect = getNodeRect(sticky);
987
+ if (doRectsOverlap(insertRect, stickyRect)) {
988
+ const stickyContentTop = sticky.position[1] + 40;
989
+ const centeredY = stickyContentTop + (sticky.position[1] + stickyRect.height - 16 - stickyContentTop - nodeSize[1]) / 2;
990
+ return Math.round(centeredY / 16) * 16;
991
+ }
908
992
  }
993
+ return null;
994
+ }
995
+ function stretchStickyNote(sticky, stretchAmount, { trackHistory = false }) {
996
+ const newWidth = (sticky.parameters.width || DEFAULT_NODE_SIZE[0]) + stretchAmount;
997
+ const newParameters = {
998
+ ...sticky.parameters,
999
+ width: newWidth
1000
+ };
1001
+ replaceNodeParameters(sticky.id, sticky.parameters, newParameters, {
1002
+ trackHistory,
1003
+ trackBulk: false
1004
+ });
1005
+ }
1006
+ function shiftDownstreamNodesPosition(sourceNodeName, margin, { trackHistory = false, nodeSize = DEFAULT_NODE_SIZE }) {
1007
+ const sourceNode = workflowsStore.nodesByName[sourceNodeName];
1008
+ if (!sourceNode) return;
1009
+ const insertPosition = [sourceNode.position[0] + PUSH_NODES_OFFSET, sourceNode.position[1]];
1010
+ if (hasSpaceForInsertion(insertPosition, nodeSize, Object.values(workflowsStore.nodesByName).filter((n) => n.name !== sourceNodeName && n.type !== "n8n-nodes-base.stickyNote"))) return;
1011
+ const { nodesToMove, stickiesToStretch } = getNodesToShift(insertPosition, sourceNodeName);
1012
+ for (const node of nodesToMove) updateNodePosition(node.id, {
1013
+ x: node.position[0] + margin,
1014
+ y: node.position[1]
1015
+ }, { trackHistory });
1016
+ for (const sticky of stickiesToStretch) stretchStickyNote(sticky, margin, { trackHistory });
909
1017
  }
910
1018
  function createConnection(connection, { trackHistory = false, keepPristine = false } = {}) {
911
1019
  const sourceNode = workflowsStore.getNodeById(connection.source);
@@ -1090,6 +1198,8 @@ function useCanvasOperations() {
1090
1198
  });
1091
1199
  workflowsStore.setNodes(data.nodes);
1092
1200
  workflowsStore.setConnections(data.connections);
1201
+ workflowState.setWorkflowProperty("createdAt", data.createdAt);
1202
+ workflowState.setWorkflowProperty("updatedAt", data.updatedAt);
1093
1203
  }
1094
1204
  const initializeUnknownNodes = (nodes) => {
1095
1205
  nodes.forEach((node) => {
@@ -1113,7 +1223,7 @@ function useCanvasOperations() {
1113
1223
  }
1114
1224
  }
1115
1225
  }
1116
- async function addImportedNodesToWorkflow(data, { trackBulk = true, trackHistory = false, viewport = DEFAULT_VIEWPORT_BOUNDARIES } = {}) {
1226
+ async function addImportedNodesToWorkflow(data, { trackBulk = true, trackHistory = false, viewport = DEFAULT_VIEWPORT_BOUNDARIES, setStateDirty = true } = {}) {
1117
1227
  const nodeNameTable = {};
1118
1228
  const newNodeNames = new Set((data.nodes ?? []).map((node) => node.name));
1119
1229
  if (!data.nodes) throw new Error(i18n.baseText("nodeView.noNodesGivenToAdd"));
@@ -1194,13 +1304,13 @@ function useCanvasOperations() {
1194
1304
  trackHistory
1195
1305
  });
1196
1306
  if (trackBulk && trackHistory) historyStore.stopRecordingUndo();
1197
- uiStore.stateIsDirty = true;
1307
+ uiStore.stateIsDirty = setStateDirty;
1198
1308
  return {
1199
1309
  nodes: Object.values(tempWorkflow.nodes),
1200
1310
  connections: tempWorkflow.connectionsBySourceNode
1201
1311
  };
1202
1312
  }
1203
- async function importWorkflowData(workflowData, source, { importTags = true, trackBulk = true, trackHistory = true, viewport, regenerateIds = true, trackEvents = true } = {}) {
1313
+ async function importWorkflowData(workflowData, source, { importTags = true, trackBulk = true, trackHistory = true, viewport, regenerateIds = true, trackEvents = true, setStateDirty = true } = {}) {
1204
1314
  uiStore.resetLastInteractedWith();
1205
1315
  if (!workflowData.hasOwnProperty("nodes") || !workflowData.hasOwnProperty("connections")) return {};
1206
1316
  try {
@@ -1259,12 +1369,13 @@ function useCanvasOperations() {
1259
1369
  await addImportedNodesToWorkflow(workflowData, {
1260
1370
  trackBulk,
1261
1371
  trackHistory,
1262
- viewport
1372
+ viewport,
1373
+ setStateDirty
1263
1374
  });
1264
1375
  if (importTags && settingsStore.areTagsEnabled && Array.isArray(workflowData.tags)) await importWorkflowTags(workflowData);
1265
1376
  if (workflowData.name) workflowState.setWorkflowName({
1266
1377
  newName: workflowData.name,
1267
- setStateDirty: true
1378
+ setStateDirty
1268
1379
  });
1269
1380
  return workflowData;
1270
1381
  } catch (error) {
@@ -1545,6 +1656,7 @@ function useCanvasOperations() {
1545
1656
  name: data.name,
1546
1657
  workflow: data.workflow
1547
1658
  });
1659
+ if (typeof route.params.name === "string") workflowState.setWorkflowId(route.params.name);
1548
1660
  uiStore.stateIsDirty = true;
1549
1661
  canvasStore.stopLoading();
1550
1662
  externalHooks.run("template.open", {
@@ -1,6 +1,6 @@
1
1
  import { It as ref, J as onBeforeUnmount, Z as onMounted, z as inject } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
- import { S as useClipboard, it as useThrottleFn } from "./_MapCache-BXj4WgHo.js";
3
- import { ac as PopOutWindowKey } from "./constants-DPB1SWiX.js";
2
+ import { S as useClipboard, at as useThrottleFn } from "./_MapCache-0zNxISSG.js";
3
+ import { ec as PopOutWindowKey } from "./constants-BiRoCM0c.js";
4
4
  function useClipboard$1({ onPaste: onPasteFn = () => {} } = {}) {
5
5
  const { copy, copied, isSupported, text } = useClipboard({
6
6
  navigator: inject(PopOutWindowKey, ref())?.value?.navigator ?? window.navigator,
@@ -1,31 +1,27 @@
1
1
  import { o as __toESM } from "./chunk-6z4oVpB-.js";
2
2
  import { C as computed, Cn as toDisplayString, D as createElementBlock, E as createCommentVNode, Gt as unref, It as ref, M as createVNode, P as defineComponent, T as createBlock, et as openBlock, j as createTextVNode, vn as normalizeClass, w as createBaseVNode } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
3
- import { gt as useI18n } from "./_MapCache-BXj4WgHo.js";
4
- import { Gn as N8nIcon_default, Kn as updatedIconSet, ct as useDeviceSupport, st as N8nKeyboardShortcut_default } from "./src-D5Ea_YL1.js";
3
+ import { _t as useI18n } from "./_MapCache-0zNxISSG.js";
4
+ import { Tn as updatedIconSet, ct as useDeviceSupport, st as N8nKeyboardShortcut_default, wn as N8nIcon_default } from "./src-Czua7QS4.js";
5
5
  import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
6
- import { v as useRoute, y as useRouter } from "./truncate-Dmdv43Z9.js";
7
- import { t as useMessage } from "./useMessage-D9ClyiWR.js";
8
- import { $o as useSettingsStore, Fn as useSourceControlStore, In as ProjectTypes, Li as nodeViewEventBus, Pn as useProjectsStore, Sn as useWorkflowHelpers, Tn as useTagsStore, Wi as useUIStore, _t as useNodeTypesStore, en as useCredentialsStore, g as usePostHog, n as useToast, p as useTelemetry, ut as executionRetryMessage, v as useWorkflowsStore, vt as useActionsGenerator } from "./builder.store-D_RDTxxI.js";
9
- import { Ho as ABOUT_MODAL_KEY, Ir as DATA_TABLE_VIEW, Jr as PROJECT_DATA_TABLES, Ts as WORKFLOW_SETTINGS_MODAL_KEY, Vo as VIEWS, Yo as DUPLICATE_MODAL_KEY, fc as COMMAND_BAR_EXPERIMENT, hs as WHATS_NEW_MODAL_KEY, jo as getResourcePermissions, jr as DATA_TABLE_DETAILS, ns as IMPORT_WORKFLOW_URL_MODAL_KEY, sn as EXECUTE_WORKFLOW_NODE_TYPE, ss as MODAL_CONFIRM, wc as EnterpriseEditionFeature, xa as isResourceLocatorValue } from "./constants-DPB1SWiX.js";
10
- import { r as useRootStore } from "./_baseOrderBy-ZGuD_-iy.js";
11
- import { n as require_debounce } from "./useDebounce-ChdrGmRj.js";
12
- import { t as useCloudPlanStore } from "./cloudPlan.store-Ck9BLZl3.js";
13
- import { t as useWorkflowSaving } from "./useWorkflowSaving-BZmOLOu-.js";
14
- import { t as useExecutionsStore } from "./executions.store-D8Pn4Xih.js";
15
- import { t as useRunWorkflow } from "./useRunWorkflow-CtXYGwm0.js";
16
- import { r as canvasEventBus, t as useCanvasOperations } from "./useCanvasOperations-CfQ4z3tY.js";
17
- import { t as useFoldersStore } from "./folders.store-D8nKs5-U.js";
18
- import { t as NodeIcon_default } from "./NodeIcon-CWvzhRQM.js";
19
- import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-BniqTqk7.js";
20
- import { t as useDataTableStore } from "./dataTable.store-BL0mLkMg.js";
21
- import { t as require_uniqBy } from "./uniqBy-MFjFW8tb.js";
22
- import { n as isIconOrEmoji, t as ProjectIcon_default } from "./ProjectIcon-DQILIjYR.js";
23
- import { t as CredentialIcon_default } from "./CredentialIcon-BGZoAL3d.js";
24
- import { t as require_FileSaver_min } from "./FileSaver.min--9uV1QmK.js";
25
- import { t as sortByProperty } from "./sortByProperty-DAqnDMg7.js";
26
- import { a as CHAT_PERSONAL_AGENTS_VIEW, l as CHAT_VIEW, n as CHAT_CONVERSATION_VIEW, p as providerDisplayNames, u as CHAT_WORKFLOW_AGENTS_VIEW } from "./constants-qk3hx0l8.js";
27
- import { t as useRecentResources } from "./useRecentResources-Cswwj5RH.js";
28
- import { f as stringifyModel, l as isLlmProvider, s as getAgentRoute, t as useChatStore } from "./chat.store-D4DOVQYU.js";
6
+ import { v as useRoute, y as useRouter } from "./truncate-4AS2exV3.js";
7
+ import { $i as nodeViewEventBus, Et as executionRetryMessage, N as useWorkflowsStore, Nt as useNodeTypesStore, O as useTelemetry, Pt as useActionsGenerator, Qn as ProjectTypes, Rn as useWorkflowHelpers, Vn as useTagsStore, Xn as useProjectsStore, Zn as useSourceControlStore, _ as require_FileSaver_min, gn as useCredentialsStore, hs as useSettingsStore, j as usePostHog, m as useMessage, n as useWorkflowSaving, oa as useUIStore, p as useCloudPlanStore, v as useToast } from "./builder.store-DoNE5iKP.js";
8
+ import { Go as DUPLICATE_MODAL_KEY, Gr as PROJECT_DATA_TABLES, Nr as DATA_TABLE_VIEW, Oo as getResourcePermissions, Or as DATA_TABLE_DETAILS, Qo as IMPORT_WORKFLOW_URL_MODAL_KEY, Ro as VIEWS, an as EXECUTE_WORKFLOW_NODE_TYPE, ds as WHATS_NEW_MODAL_KEY, rs as MODAL_CONFIRM, sc as COMMAND_BAR_EXPERIMENT, va as isResourceLocatorValue, xs as WORKFLOW_SETTINGS_MODAL_KEY, yc as EnterpriseEditionFeature, zo as ABOUT_MODAL_KEY } from "./constants-BiRoCM0c.js";
9
+ import { r as useRootStore } from "./_baseOrderBy-xWA0TcWm.js";
10
+ import { n as require_debounce } from "./useDebounce-BT72iAmz.js";
11
+ import { t as useExecutionsStore } from "./executions.store-O0Cs6kyK.js";
12
+ import { t as useRunWorkflow } from "./useRunWorkflow-qvHcKYK-.js";
13
+ import { r as canvasEventBus, t as useCanvasOperations } from "./useCanvasOperations-B0_VkwYO.js";
14
+ import { t as useFoldersStore } from "./folders.store-vVDyrOf9.js";
15
+ import { t as NodeIcon_default } from "./NodeIcon-UuZXMI3b.js";
16
+ import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-WQFPPEkJ.js";
17
+ import { t as useDataTableStore } from "./dataTable.store-BXKAnmr0.js";
18
+ import { t as require_uniqBy } from "./uniqBy-DYX8cQbP.js";
19
+ import { n as isIconOrEmoji, t as ProjectIcon_default } from "./ProjectIcon-CVhr6466.js";
20
+ import { t as CredentialIcon_default } from "./CredentialIcon-uhIIYjQ5.js";
21
+ import { t as sortByProperty } from "./sortByProperty-CV1aCzkS.js";
22
+ import { a as CHAT_PERSONAL_AGENTS_VIEW, d as CHAT_WORKFLOW_AGENTS_VIEW, m as providerDisplayNames, n as CHAT_CONVERSATION_VIEW, u as CHAT_VIEW } from "./constants-DLTaaipl.js";
23
+ import { t as useRecentResources } from "./useRecentResources-Dmyse5sV.js";
24
+ import { f as stringifyModel, l as isLlmProvider, s as getAgentRoute, t as useChatStore } from "./chat.store-YIaykMtq.js";
29
25
  function useDebugInfo() {
30
26
  const settingsStore = useSettingsStore();
31
27
  const rootStore = useRootStore();
@@ -182,7 +178,7 @@ function useNodeCommands(options) {
182
178
  const isReadOnly = computed(() => sourceControlStore.preferences.branchReadOnly);
183
179
  const isArchived = computed(() => workflowsStore.workflow.isArchived);
184
180
  const workflowPermissions = computed(() => getResourcePermissions(workflowsStore.workflow.scopes).workflow);
185
- const hasPermission = (permission) => workflowPermissions.value[permission] === true && !isReadOnly.value && !isArchived.value || workflowsStore.isNewWorkflow;
181
+ const hasPermission = (permission) => workflowPermissions.value[permission] === true && !isReadOnly.value && !isArchived.value || !workflowsStore.isWorkflowSaved[workflowsStore.workflowId];
186
182
  const mergedNodes = computed(() => {
187
183
  const httpOnlyCredentials = credentialsStore.httpOnlyCredentialTypes;
188
184
  const nodeTypes = nodeTypesStore.visibleNodeTypes;
@@ -340,7 +336,7 @@ function useWorkflowCommands() {
340
336
  const isWorkflowSaving = computed(() => uiStore.isActionActive.workflowSaving);
341
337
  const isArchived = computed(() => workflowsStore.workflow.isArchived);
342
338
  const workflowPermissions = computed(() => getResourcePermissions(workflowsStore.workflow.scopes).workflow);
343
- const hasPermission = (permission) => workflowPermissions.value[permission] === true && !isReadOnly.value || workflowsStore.isNewWorkflow;
339
+ const hasPermission = (permission) => workflowPermissions.value[permission] === true && !isReadOnly.value || !workflowsStore.isWorkflowSaved[workflowsStore.workflowId];
344
340
  const credentialCommands = computed(() => {
345
341
  const credentials = (0, import_uniqBy.default)(editableWorkflow.value.nodes.map((node) => Object.values(node.credentials ?? {})).flat(), (cred) => cred.id);
346
342
  if (credentials.length === 0) return [];
@@ -2133,7 +2129,7 @@ function useChatHubCommands(options) {
2133
2129
  },
2134
2130
  icon: {
2135
2131
  component: N8nIcon_default,
2136
- props: { icon: "square-pen" }
2132
+ props: { icon: "plus" }
2137
2133
  },
2138
2134
  keywords: [
2139
2135
  i18n.baseText("commandBar.chat.new"),
@@ -2149,7 +2145,7 @@ function useChatHubCommands(options) {
2149
2145
  children: newSessionWithCommands.value,
2150
2146
  icon: {
2151
2147
  component: N8nIcon_default,
2152
- props: { icon: "robot" }
2148
+ props: { icon: "message-square-plus" }
2153
2149
  },
2154
2150
  keywords: [
2155
2151
  i18n.baseText("commandBar.chat.new"),
@@ -2167,7 +2163,7 @@ function useChatHubCommands(options) {
2167
2163
  icon: {
2168
2164
  component: N8nIcon_default,
2169
2165
  props: {
2170
- icon: "layers",
2166
+ icon: "message-square",
2171
2167
  color: "text-light"
2172
2168
  }
2173
2169
  }
@@ -1,9 +1,8 @@
1
1
  import { It as ref } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
- import { gt as useI18n } from "./_MapCache-BXj4WgHo.js";
3
- import { t as useMessage } from "./useMessage-D9ClyiWR.js";
4
- import { $s as getCredentialResolvers, Qs as getCredentialResolverTypes, Wi as useUIStore, Xs as deleteCredentialResolver, n as useToast } from "./builder.store-D_RDTxxI.js";
5
- import { Jo as CREDENTIAL_RESOLVER_EDIT_MODAL_KEY, ss as MODAL_CONFIRM } from "./constants-DPB1SWiX.js";
6
- import { r as useRootStore } from "./_baseOrderBy-ZGuD_-iy.js";
2
+ import { _t as useI18n } from "./_MapCache-0zNxISSG.js";
3
+ import { cc as deleteCredentialResolver, dc as getCredentialResolvers, m as useMessage, oa as useUIStore, uc as getCredentialResolverTypes, v as useToast } from "./builder.store-DoNE5iKP.js";
4
+ import { Wo as CREDENTIAL_RESOLVER_EDIT_MODAL_KEY, rs as MODAL_CONFIRM } from "./constants-BiRoCM0c.js";
5
+ import { r as useRootStore } from "./_baseOrderBy-xWA0TcWm.js";
7
6
  function useCredentialResolvers() {
8
7
  const rootStore = useRootStore();
9
8
  const uiStore = useUIStore();