n8n-editor-ui 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/data/node-popularity.json +0 -4
  2. package/dist/assets/{AddDataTableModal-Dz0DDl2J.js → AddDataTableModal-C07v9Nxn.js} +18 -19
  3. package/dist/assets/{AgentEditorModal-BucPtfuf.js → AgentEditorModal-BrtNn_I9.js} +51 -62
  4. package/dist/assets/{AgentEditorModal-CzlIqORm.css → AgentEditorModal-CnYw6elM.css} +7 -13
  5. package/dist/assets/{Alert-0hwMnhqx.js → Alert-CjCTAWnZ.js} +1 -1
  6. package/dist/assets/{AnnotationTagsDropdown.ee-FwAi0jQL.js → AnnotationTagsDropdown.ee-BLpUZufe.js} +2 -2
  7. package/dist/assets/{AuthView-DpssdaNh.js → AuthView-CqAePJa9.js} +5 -5
  8. package/dist/assets/BottomMenu-CRVyIu-B.css +474 -0
  9. package/dist/assets/BottomMenu-Cej7gwr4.js +547 -0
  10. package/dist/assets/{ChangePasswordView-DBihzMqB.js → ChangePasswordView-BuzmSLJ8.js} +15 -15
  11. package/dist/assets/{ChatAgentAvatar-BK95BHUo.css → ChatAgentAvatar-B68ZZ295.css} +18 -9
  12. package/dist/assets/{ChatAgentAvatar-DDaNlXcV.js → ChatAgentAvatar-CwpeLqqo.js} +17 -16
  13. package/dist/assets/{ChatSidebarOpener-B4_hEzpT.js → ChatLayout-Baw4DF5I.js} +9 -28
  14. package/dist/assets/{ChatPersonalAgentsView-DhQsTHJ3.js → ChatPersonalAgentsView-B9Pt0vxY.js} +29 -34
  15. package/dist/assets/ChatPersonalAgentsView-BiiyFIRl.css +159 -0
  16. package/dist/assets/ChatSidebar-Cmc2-HvU.js +526 -0
  17. package/dist/assets/{ChatSidebar-D0f-W0S9.css → ChatSidebar-DcNxY7Pt.css} +61 -336
  18. package/dist/assets/{ChatView-B1O45V-1.js → ChatView-C2ezV2fz.js} +121 -142
  19. package/dist/assets/{ChatView-mTIZIDr3.css → ChatView-DZODCD2o.css} +4 -4
  20. package/dist/assets/{ChatWorkflowAgentsView-U76sjiCh.js → ChatWorkflowAgentsView-DBmwl58I.js} +22 -23
  21. package/dist/assets/CollectionParameter-DvlRV-HR.js +50 -0
  22. package/dist/assets/{CommunityNodeUpdateInfo-DaqlFCWs.js → CommunityNodeUpdateInfo-DjXh6DHu.js} +8 -8
  23. package/dist/assets/{CopyInput-DjkkoSUR.js → CopyInput-D-Z7pmxS.js} +4 -4
  24. package/dist/assets/{CredentialIcon-B5mFnPOM.js → CredentialIcon-ClX-2bGh.js} +3 -3
  25. package/dist/assets/{CredentialPicker-DmA-dFkP.js → CredentialPicker-CrCc144c.js} +5 -6
  26. package/dist/assets/{CredentialSelectorModal-CVKa8AAF.js → CredentialSelectorModal-Da2na5my.js} +18 -20
  27. package/dist/assets/{CredentialsView-B2WvyZTw.js → CredentialsView-CqNF_Gka.js} +34 -37
  28. package/dist/assets/{DataTableActions-CGYkW0Ge.js → DataTableActions-D0ibHSoF.js} +5 -6
  29. package/dist/assets/{DataTableDetailsView-B-_rx-9L.js → DataTableDetailsView-BRY9rVV1.js} +22 -24
  30. package/dist/assets/{DataTableView-K-cZEOKP.js → DataTableView-D4ujwn7I.js} +31 -34
  31. package/dist/assets/DemoFooter-fhB0ZsZi.js +63 -0
  32. package/dist/assets/{Draggable-D6WWA0zM.js → Draggable-Bs1jTk_8.js} +1 -1
  33. package/dist/assets/{EmptySharedSectionActionBox-CR6VISbw.js → EmptySharedSectionActionBox-BBB3j3rf.js} +4 -4
  34. package/dist/assets/{EnterpriseEdition.ee-CZml4Gcj.js → EnterpriseEdition.ee-_BSL-rxT.js} +1 -1
  35. package/dist/assets/{EntityNotFound-5i3KSEDe.js → EntityNotFound-8qJnYCXt.js} +7 -7
  36. package/dist/assets/{EntityUnAuthorised-DHAtMGRv.js → EntityUnAuthorised-CYu0UXzr.js} +7 -7
  37. package/dist/assets/{ErrorView-CxNhrbRr.js → ErrorView-CrDo6qHL.js} +9 -9
  38. package/dist/assets/{EvaluationsRootView-DFRtR5a2.js → EvaluationsRootView-C_7tPZ3q.js} +36 -36
  39. package/dist/assets/{EvaluationsView-DDnL-VtS.js → EvaluationsView-DTmT_Mjm.js} +21 -21
  40. package/dist/assets/{ExecutionsTime-CNz8UC7l.css → ExecutionsTime-CMAp2_xF.css} +24 -21
  41. package/dist/assets/{ExecutionsTime-Bll0yiJm.js → ExecutionsTime-ncZBFujs.js} +37 -28
  42. package/dist/assets/{ExecutionsView-8Y-vd0QZ.js → ExecutionsView-DKx5PCwr.js} +34 -37
  43. package/dist/assets/{ExternalSecretsProviderConnectionSwitch.ee-BWWuVEWG.js → ExternalSecretsProviderConnectionSwitch.ee-DQZ57stj.js} +4 -4
  44. package/dist/assets/{FixedCollectionParameter-CsPQJVNL.js → FixedCollectionParameter-BJZ0eM-5.js} +45 -53
  45. package/dist/assets/{ForgotMyPasswordView-DXGbw-EL.js → ForgotMyPasswordView-D_k_YvIG.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-C9pPsgT2.js → InsightsDashboard--1f1U32C.js} +32 -34
  52. package/dist/assets/{InsightsPaywall-fDfWjnVB.js → InsightsPaywall-DwtdewB6.js} +15 -16
  53. package/dist/assets/{InsightsSummary-Bjy-SY3W.js → InsightsSummary-DWzL1ePo.js} +8 -8
  54. package/dist/assets/{InsightsTableWorkflows-CAslapaK.js → InsightsTableWorkflows-CHoJdUEl.js} +18 -18
  55. package/dist/assets/{ItemsRenderer-CuTgDOI7.js → ItemsRenderer-Bju44b_S.js} +10 -10
  56. package/dist/assets/{ItemsRenderer-Cr6c6uYy.css → ItemsRenderer-DkobJF9f.css} +4 -2
  57. package/dist/assets/{KeyboardShortcutTooltip-BSbSC7ko.js → KeyboardShortcutTooltip-srIzApSu.js} +1 -1
  58. package/dist/assets/{LogsPanel-BVg_Ph6Z.js → LogsPanel-C9nCXiIh.js} +24 -25
  59. package/dist/assets/LogsPanel-z0W4CHve.js +50 -0
  60. package/dist/assets/MCPConnectWorkflowsModal-CR5hRPTJ.js +301 -0
  61. package/dist/assets/MCPConnectWorkflowsModal-CS2q8ice.css +275 -0
  62. package/dist/assets/{MainHeader-DJA_Afhq.css → MainHeader-CSaAWCWj.css} +13 -13
  63. package/dist/assets/{MainHeader-CfOHJ5AX.js → MainHeader-Dtf7ohow.js} +97 -101
  64. package/dist/assets/{MainSidebar-bwCkn71q.css → MainSidebar-CEsQ8o1Y.css} +84 -304
  65. package/dist/assets/{MainSidebar-BLoE9rZO.js → MainSidebar-_37xftBv.js} +222 -694
  66. package/dist/assets/{MigrationRuleDetail-CmcZ36s9.js → MigrationRuleDetail-CCO__jC7.js} +20 -20
  67. package/dist/assets/{MigrationRules-Cf4vXtX8.js → MigrationRules-B0SPwFyT.js} +12 -12
  68. package/dist/assets/{Modal-BkPSKUmM.js → Modal-DrkMFWe3.js} +4 -4
  69. package/dist/assets/{ModelByIdSelectorModal-BoLoyNu7.js → ModelByIdSelectorModal-CoQLLeXk.js} +17 -18
  70. package/dist/assets/{NDVEmptyState-ClE3eiVz.js → NDVEmptyState-DKrc1TFh.js} +1 -1
  71. package/dist/assets/{NodeCreation-DFfRX0DY.js → NodeCreation-k3pkIHZY.js} +41 -49
  72. package/dist/assets/{NodeCreator-CO64k-3G.js → NodeCreator-B6D9_1wn.js} +47 -50
  73. package/dist/assets/{NodeCreator-C-ckvxD7.css → NodeCreator-OSIpRI6S.css} +25 -25
  74. package/dist/assets/{NodeDetailsView-BURiqx95.js → NodeDetailsView-DfMYS7Pz.js} +60 -68
  75. package/dist/assets/{NodeDetailsViewV2-XUrXwnja.js → NodeDetailsViewV2-DOCw_zWY.js} +61 -69
  76. package/dist/assets/{ModalDrawer-B-12esvU.css → NodeIcon-BDxr0f30.css} +5 -6
  77. package/dist/assets/{NodeIcon-CWyPkrTk.js → NodeIcon-DL6ucXJC.js} +4 -4
  78. package/dist/assets/{NodeSettings-CcYkiMI8.js → NodeSettings-CS2iUNwL.js} +17 -17
  79. package/dist/assets/{NodeView-BPGoqSQJ.js → NodeView-0XOeMCB7.js} +111 -106
  80. package/dist/assets/{OAuthConsentView-kdX_7fls.js → OAuthConsentView-WGFrtRYZ.js} +14 -14
  81. package/dist/assets/{ParameterInputList-CXEjv4Ky.css → ParameterInputList-0YoVowEI.css} +10 -7
  82. package/dist/assets/{ParameterInputList-DdA16d29.js → ParameterInputList-DTEJwrQm.js} +59 -56
  83. package/dist/assets/{PrebuiltAgentTemplatesView-CwoV26I0.js → PrebuiltAgentTemplatesView-CJ6VJ0XJ.js} +17 -19
  84. package/dist/assets/{ProjectBreadcrumb-3cTfM8kZ.js → ProjectBreadcrumb-FtcudW_2.js} +4 -4
  85. package/dist/assets/{ProjectCardBadge-DWmYy--A.js → ProjectCardBadge-C42B_oyx.js} +5 -5
  86. package/dist/assets/{ProjectHeader-CzeJhu2I.js → ProjectHeader-UBLuSGFT.js} +8 -8
  87. package/dist/assets/{ProjectIcon-Biy_-Ssg.js → ProjectIcon-CEp8nyYM.js} +1 -1
  88. package/dist/assets/{ProjectRoleView-D6dn38TT.js → ProjectRoleView-BQvsQqjp.js} +15 -16
  89. package/dist/assets/{ProjectRolesView-BljI8SKN.js → ProjectRolesView-CksItD9m.js} +16 -19
  90. package/dist/assets/{ProjectSettings-Cu6igv0N.js → ProjectSettings-DUSQ3i-j.js} +26 -28
  91. package/dist/assets/{ProjectSharing-YZRwVLxy.js → ProjectSharing-DcKfaqUD.js} +5 -5
  92. package/dist/assets/{ProjectVariables-ClTl8P4L.js → ProjectVariables-BEwMAsZl.js} +32 -35
  93. package/dist/assets/{ProviderSettingsModal-Bw0f0MFf.js → ProviderSettingsModal-D9LOoiTP.js} +21 -23
  94. package/dist/assets/{PushConnectionTracker-ClSwVP7t.js → PushConnectionTracker-CYhR1yeo.js} +3 -3
  95. package/dist/assets/{ResolversView-BC_8K9SU.js → ResolversView-MhtoNdHP.js} +15 -17
  96. package/dist/assets/{ResourceFiltersDropdown-BACE5ZTX.css → ResourceFiltersDropdown-Cma1Lj9J.css} +12 -9
  97. package/dist/assets/{ResourceFiltersDropdown-1x0v8WL5.js → ResourceFiltersDropdown-DJG8zh1q.js} +18 -18
  98. package/dist/assets/{ResourcesListLayout-DeXcgSE7.js → ResourcesListLayout-CBYWFTvd.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-CzijJVcS.js → RunDataJson-hUd8I9Iw.js} +14 -14
  102. package/dist/assets/{RunDataJsonActions-F_lYqidD.js → RunDataJsonActions-mj5kInPr.js} +15 -15
  103. package/dist/assets/{RunDataParsedAiContent-rfF9dj2q.js → RunDataParsedAiContent-DQYrKUHo.js} +8 -8
  104. package/dist/assets/RunDataParsedAiContent-DhKdg7Ux.js +24 -0
  105. package/dist/assets/{RunDataSearch-sHgYw75e.js → RunDataSearch-BanmtjON.js} +10 -10
  106. package/dist/assets/{RunDataTable-CcVCz6KL.js → RunDataTable-CLw-U45I.js} +18 -18
  107. package/dist/assets/{SamlOnboarding-_E1uKrqU.js → SamlOnboarding-CL7FFqOA.js} +15 -15
  108. package/dist/assets/{SaveButton-CKB6EQNE.js → SaveButton-DdOVpjST.js} +3 -3
  109. package/dist/assets/{SelectedItemsInfo-BvVqSABb.js → SelectedItemsInfo-DBuH5w0D.js} +2 -2
  110. package/dist/assets/{SettingsApiView-BTIamHhf.js → SettingsApiView-C0aDHviI.js} +17 -20
  111. package/dist/assets/{SettingsChatHubView-CcI8QRBj.js → SettingsChatHubView-xXbgxwbM.js} +19 -19
  112. package/dist/assets/{SettingsCommunityNodesView-DnxcG1WB.js → SettingsCommunityNodesView-BAxes_Db.js} +29 -36
  113. package/dist/assets/{SettingsExternalSecrets-CZeypg03.js → SettingsExternalSecrets-B6jdgfB7.js} +17 -18
  114. package/dist/assets/{SettingsLdapView-BocG9o4_.js → SettingsLdapView-CR2IAnRQ.js} +19 -22
  115. package/dist/assets/{SettingsLogStreamingView-Cb0TLdGI.js → SettingsLogStreamingView-DSRc5q9w.js} +17 -20
  116. package/dist/assets/{SettingsMCPView-B61X_NPm.js → SettingsMCPView-C7HQFidB.js} +136 -164
  117. package/dist/assets/{SettingsMCPView-CuJwNWhp.css → SettingsMCPView-DIdodQTu.css} +28 -41
  118. package/dist/assets/{SettingsPersonalView-DwALyVrM.js → SettingsPersonalView-DOH_Ml9N.js} +15 -16
  119. package/dist/assets/{SettingsSourceControl-o8jjZB6R.js → SettingsSourceControl-DH0mZaa0.js} +19 -21
  120. package/dist/assets/{SettingsSso-CWlyF0Ul.js → SettingsSso-CrWkteb1.js} +21 -24
  121. package/dist/assets/{SettingsUsageAndPlan-qLBre8L1.js → SettingsUsageAndPlan-DQzF59ve.js} +17 -19
  122. package/dist/assets/{SettingsUsersView-IoXkRrA3.js → SettingsUsersView-BZrQxtA7.js} +22 -25
  123. package/dist/assets/{SettingsView-BRggCZxl.js → SettingsView-LDjLlP2V.js} +14 -14
  124. package/dist/assets/{SetupTemplateFormStep-B16Nen7u.js → SetupTemplateFormStep-CwgC9pY3.js} +7 -7
  125. package/dist/assets/{SetupView-B_3dlp0F.js → SetupView-wJeD4wwM.js} +15 -15
  126. package/dist/assets/{SetupWorkflowCredentialsButton-DbpL-wd-.js → SetupWorkflowCredentialsButton-kVNSvjYZ.js} +14 -14
  127. package/dist/assets/{SetupWorkflowFromTemplateView-DtkJ3dhT.js → SetupWorkflowFromTemplateView-CBTduGfH.js} +21 -25
  128. package/dist/assets/{SeverityTag-Bdpvd3O4.js → SeverityTag-CuF3dVKd.js} +2 -2
  129. package/dist/assets/{SigninView-D0mRO95G.js → SigninView-DjWIkUJe.js} +16 -16
  130. package/dist/assets/{SignoutView-D-cEDvGt.js → SignoutView-CP6UttCg.js} +8 -8
  131. package/dist/assets/{SignupView-BGUF0a3y.js → SignupView-DKWZNap-.js} +15 -15
  132. package/dist/assets/{SkeletonAgentCard-BqWJHS47.js → SkeletonAgentCard-DcV1dSF-.js} +8 -8
  133. package/dist/assets/{TagsDropdown-CKHFeXgu.js → TagsDropdown-CuT_jHbX.js} +3 -3
  134. package/dist/assets/{TemplateCard-C1F6Sjp3.js → TemplateCard-DY1aPA-a.js} +6 -7
  135. package/dist/assets/{TemplateDetails-ByaDkPHZ.js → TemplateDetails-Cstu-YNP.js} +6 -7
  136. package/dist/assets/{TemplateList-IOK3RSuN.js → TemplateList-BfBs1Bpa.js} +5 -5
  137. package/dist/assets/{TemplatesCollectionView-CpjEgT9v.js → TemplatesCollectionView-DgKv-274.js} +22 -24
  138. package/dist/assets/{TemplatesSearchView-Ddpn7Bwp.js → TemplatesSearchView-BgdaZIha.js} +19 -21
  139. package/dist/assets/{TemplatesView-DRX4MxqG.js → TemplatesView-HPIEGoX2.js} +3 -3
  140. package/dist/assets/{TemplatesWorkflowView-DOl8Qqi3.js → TemplatesWorkflowView-3-fxkWIH.js} +23 -25
  141. package/dist/assets/{TestRunDetailView-TQvUYMub.js → TestRunDetailView-D9tH7Ptp.js} +19 -19
  142. package/dist/assets/{TimeAgo-DxwwBGgJ.js → TimeAgo-BpAJIqal.js} +3 -3
  143. package/dist/assets/{ToolsSelectorModal-D0Uim3wr.js → ToolsSelectorModal-DSyXV7Ag.js} +17 -18
  144. package/dist/assets/{TriggerPanel-Bkka_-zL.js → TriggerPanel-DDzH4j34.js} +18 -19
  145. package/dist/assets/{VirtualSchema-498CQIM4.js → VirtualSchema-BN0NQDyh.js} +15 -16
  146. package/dist/assets/VirtualSchema-rizWsPXH.js +35 -0
  147. package/dist/assets/{VueMarkdown-Cpmboohi.js → VueMarkdown-D7yo0t2n.js} +1 -1
  148. package/dist/assets/{WorkerView-D0MGMP-3.js → WorkerView-DeYRT0mS.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-CQk3zJa2.js → WorkflowActivator-Cj1x_nLm.js} +13 -11
  152. package/dist/assets/{WorkflowExecutionsInfoAccordion-DrB1HwtD.js → WorkflowExecutionsInfoAccordion-DOW8-lUO.js} +11 -15
  153. package/dist/assets/{WorkflowExecutionsLandingPage-wZsE1MEB.js → WorkflowExecutionsLandingPage-D-k97H81.js} +19 -33
  154. package/dist/assets/{WorkflowExecutionsPreview-DhEx7EQF.js → WorkflowExecutionsPreview-bwSmtqxL.js} +22 -25
  155. package/dist/assets/{WorkflowExecutionsView-CDFxKpEl.js → WorkflowExecutionsView-BoJYR4A-.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-_npGuIvZ.js → WorkflowHistory-DDwFxfgs.js} +329 -273
  159. package/dist/assets/WorkflowLocation-6rp_-CuW.css +164 -0
  160. package/dist/assets/WorkflowLocation-BcPFmw0j.js +164 -0
  161. package/dist/assets/{WorkflowOnboardingView-DJmpaFOM.js → WorkflowOnboardingView-CQjMFn6h.js} +8 -10
  162. package/dist/assets/{WorkflowPreview-CVFW6eRL.js → WorkflowPreview-C2LPnLG1.js} +4 -4
  163. package/dist/assets/{WorkflowTagsDropdown-Dp6YkEZ3.js → WorkflowTagsDropdown-ChfpozQB.js} +2 -2
  164. package/dist/assets/{WorkflowsView-B068TUtp.js → WorkflowsView-C3nCkxzz.js} +65 -84
  165. package/dist/assets/{_MapCache-BXj4WgHo.js → _MapCache-0zNxISSG.js} +78 -8
  166. package/dist/assets/{_baseOrderBy-GjkKJVvF.js → _baseOrderBy-CesQfsb9.js} +4 -4
  167. package/dist/assets/{_initCloneObject-GPxNDW5O.js → _initCloneObject-DrYdt_vX.js} +2 -2
  168. package/dist/assets/{aiTemplatesStarterCollection.store-Ca9czXOC.js → aiTemplatesStarterCollection.store-Bz4IH9Sr.js} +5 -5
  169. package/dist/assets/{apiKeys.store-D60Aub0Q.js → apiKeys.store-W8uXGfoe.js} +2 -2
  170. package/dist/assets/{assistant.store-C0GxcpwT.js → assistant.store-Cn9sEjYD.js} +6 -6
  171. package/dist/assets/{auth.eventBus-BD50qglP.js → auth.eventBus-D9L5FHI4.js} +1 -1
  172. package/dist/assets/{banners.store-COEGRZB2.js → banners.store-CRNqMmnn.js} +4 -4
  173. package/dist/assets/{builder.store--AJ05qsa.js → builder.store-YujiPssa.js} +5772 -157
  174. package/dist/assets/{chartjs.utils-BuKhcKwM.js → chartjs.utils-CoNBCTXc.js} +3 -3
  175. package/dist/assets/{chat.store-DwNzDu7-.js → chat.store-YbHxxnni.js} +124 -88
  176. package/dist/assets/{chatPanel.store-DcSNy2dM.js → chatPanel.store-DmxMXfyE.js} +17 -11
  177. package/dist/assets/{col-D5wesaQA.js → col-oSGwUVsR.js} +1 -2
  178. package/dist/assets/{constants-B6Jp7SZD.js → constants-D52YoOSp.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-DjA0BZm0.js → dataTable.store-CUsh5p9b.js} +3 -3
  182. package/dist/assets/{date-picker-ZPBpyB3m.js → date-picker-DeUybCvv.js} +2 -2
  183. package/dist/assets/{dateFormatter-DqsBbNBt.js → dateFormatter-DzJiM44k.js} +2 -2
  184. package/dist/assets/{dialog-DJAwPy6j.js → dialog-C4MrWHj5.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-CE1pFRXt.js → evaluation.constants-0Qe9Ioy2.js} +3 -3
  190. package/dist/assets/{executions.store-Di5hWapE.js → executions.store-Dodf4hZt.js} +2 -2
  191. package/dist/assets/{externalSecrets.ee.store-DRAvYvQH.js → externalSecrets.ee.store-CRomIb5E.js} +3 -3
  192. package/dist/assets/{folders.store-CHmc_cIa.js → folders.store-Bld2a-oS.js} +3 -3
  193. package/dist/assets/{index-BPWWnUZx.js → index-BFbfC2Dj.js} +478 -172
  194. package/dist/assets/{index-BkLJ6ICr.css → index-Bl6XoGDE.css} +155 -24
  195. package/dist/assets/{insights.constants-B7y0cvTb.js → insights.constants-C8GITe6H.js} +1 -1
  196. package/dist/assets/{insights.store-CUBXm-KC.js → insights.store-CwovPTtG.js} +5 -5
  197. package/dist/assets/{insights.utils-Dc4VSauh.js → insights.utils-BjffJfoC.js} +4 -4
  198. package/dist/assets/{isEmpty-B9tt1d3-.js → isEmpty-OfTBXDAe.js} +26 -27
  199. package/dist/assets/{languageModules-CLe6cIYW.js → languageModules-D_uyjb6R.js} +1 -1
  200. package/dist/assets/{logStreaming.store-Cv3Kx61Q.js → logStreaming.store-fF1gjMD8.js} +2 -2
  201. package/dist/assets/mcp.constants-DQPD3Ntp.js +10 -0
  202. package/dist/assets/{mcp.store-BY003P3O.js → mcp.store-CaNRXC4L.js} +14 -3
  203. package/dist/assets/{merge-BfSiz1ty.js → merge-BmWPLD5Q.js} +1 -1
  204. package/dist/assets/{nodeCreator.store-CPxLvRpA.js → nodeCreator.store-CnQC3Thy.js} +11 -16
  205. package/dist/assets/{nodeIcon-CwI12n1T.js → nodeIcon-Bcr-G7rB.js} +3 -3
  206. package/dist/assets/{nodeTransforms-E21OvGFn.js → nodeTransforms-DK79e95H.js} +2 -2
  207. package/dist/assets/{orderBy-BD202wCl.js → orderBy-YGC4g6w9.js} +2 -2
  208. package/dist/assets/{personalizedTemplatesV3.store-Bzf1Cn2b.js → personalizedTemplatesV3.store-BKxUzmKZ.js} +3 -5
  209. package/dist/assets/{pickBy-DhNfLbj0.js → pickBy-BnWwuV2u.js} +2 -2
  210. package/dist/assets/{radio-_dKLhwOP.js → radio-DyB--77Q.js} +1 -2
  211. package/dist/assets/{readyToRun.store-2jju4pRU.js → readyToRun.store-BRvUlRSD.js} +6 -7
  212. package/dist/assets/{readyToRunWorkflows.store-Bx_siYQA.js → readyToRunWorkflows.store-BNsVPNB9.js} +5 -6
  213. package/dist/assets/{roles.store-CfxqweOK.js → roles.store-pbRRxt0E.js} +3 -3
  214. package/dist/assets/{router-WNnUej-x.js → router-nTea-Urj.js} +111 -90
  215. package/dist/assets/{sanitize-html-Cft-jOcY.js → sanitize-html-Cc45ZKm8.js} +1 -1
  216. package/dist/assets/{schemaPreview.store-Do_fvTej.js → schemaPreview.store-D6CQiOeI.js} +3 -3
  217. package/dist/assets/{semver-CJFCetEf.js → semver-CrR9VADA.js} +2 -2
  218. package/dist/assets/{sourceControl.eventBus-Cvxq2KVt.js → sourceControl.eventBus-KIeXsiU7.js} +1 -1
  219. package/dist/assets/{src-DS0bffpn.css → src-CWWagUhy.css} +729 -81
  220. package/dist/assets/{src-RwnQoRPP.js → src-DTY1hJHs.js} +1675 -3573
  221. package/dist/assets/{sso.store-BfZ0zC0E.js → sso.store-Di00dtDC.js} +2 -2
  222. package/dist/assets/{table-8YZ1ENjX.js → table-VmuGzK7A.js} +3 -3
  223. package/dist/assets/{templateActions-Cs0Obyiy.js → templateActions-DIWkQgOn.js} +5 -5
  224. package/dist/assets/{templateTransforms-wuELQNpD.js → templateTransforms-BYfEDiSK.js} +1 -1
  225. package/dist/assets/{truncate-BmR9EyjG.js → truncate-ByNK2lRy.js} +2266 -27
  226. package/dist/assets/{uniqBy-DbOFAEPx.js → uniqBy-CJFaA-UD.js} +1 -1
  227. package/dist/assets/{usage.store-BQa0qHOj.js → usage.store-BY4g7MNp.js} +2 -2
  228. package/dist/assets/{useActions-CMJSyR7r.js → useActions-CBZGt3Kf.js} +4 -4
  229. package/dist/assets/{useBeforeUnload-DpKXUfN8.js → useBeforeUnload-CQAM_lAW.js} +3 -3
  230. package/dist/assets/{useCanvasMapping-BqapVTrs.js → useCanvasMapping-C0deX2fv.js} +35 -32
  231. package/dist/assets/{useCanvasOperations-Biw6mnUM.js → useCanvasOperations-BQyHvbXi.js} +140 -28
  232. package/dist/assets/{useClipboard-DvY5RseI.js → useClipboard-CqFyEHaX.js} +2 -2
  233. package/dist/assets/{useCommandBar-UBYl6Lds.js → useCommandBar-I9Rh00u6.js} +26 -30
  234. package/dist/assets/{useCredentialResolvers-PAhMLRo2.js → useCredentialResolvers-CaMKldsZ.js} +4 -5
  235. package/dist/assets/{useCustomAgent-BRGYGAAN.js → useCustomAgent-DLwpqJcm.js} +25 -15
  236. package/dist/assets/{useDebounce-Cisb25yt.js → useDebounce-DGSOfe85.js} +2 -2
  237. package/dist/assets/{useExecutionData-OVx1QXVF.js → useExecutionData-BocEX1BJ.js} +1 -1
  238. package/dist/assets/{useExecutionDebugging-B8KvDhkA.js → useExecutionDebugging-CsWzUsUi.js} +6 -7
  239. package/dist/assets/{useExecutionHelpers-DkOSl_iJ.js → useExecutionHelpers-BWgzEc86.js} +5 -5
  240. package/dist/assets/{useImportCurlCommand-3YGPoLWh.js → useImportCurlCommand-DGIgJik0.js} +9 -9
  241. package/dist/assets/{useKeybindings-BcvGBvra.js → useKeybindings-DD-ZZkmj.js} +4 -4
  242. package/dist/assets/{useLogsTreeExpand-CbLhbpHd.js → useLogsTreeExpand-BQmkJc3D.js} +13 -13
  243. package/dist/assets/{useMcp-1Dma_uQx.js → useMcp-CtPU_6al.js} +2 -2
  244. package/dist/assets/{usePageRedirectionHelper-D0ob2A1J.js → usePageRedirectionHelper-TzgTKFxt.js} +3 -4
  245. package/dist/assets/{usePinnedData-B3-uxBtk.js → usePinnedData-Dztv0dCp.js} +4 -4
  246. package/dist/assets/{usePushConnection-BA2hhsGP.js → usePushConnection-Ce3EppRV.js} +12 -13
  247. package/dist/assets/{useRecentResources-C_Rg8cei.js → useRecentResources-fniP3oOE.js} +9 -8
  248. package/dist/assets/{useRunWorkflow-nBr2MJkO.js → useRunWorkflow-CJgkc0Iq.js} +9 -10
  249. package/dist/assets/{useSettingsItems-B7GpfNq3.js → useSettingsItems-Ds8JJZE_.js} +4 -4
  250. package/dist/assets/{useTelemetryContext-DHoBfjOQ.js → useTelemetryContext-Ds7-s6ZC.js} +1 -1
  251. package/dist/assets/{useWorkflowActivate-B3DYQS1P.js → useWorkflowActivate-DocAQ9u8.js} +7 -8
  252. package/dist/assets/{useWorkflowsCache-BNSc43ak.js → useWorkflowsCache-BXhjK2ZF.js} +1 -1
  253. package/dist/assets/{userRoleProvisioning.store-DAStBpkv.js → userRoleProvisioning.store-DNmA1ftX.js} +2 -2
  254. package/dist/assets/utils-C2GPI2gK.js +54 -0
  255. package/dist/assets/{versions.store-BIIVPCEy.js → versions.store-qQUmfjg3.js} +3 -3
  256. package/dist/index.html +109 -119
  257. package/package.json +1 -1
  258. package/dist/assets/ChatSidebar-DW6c9Blv.js +0 -555
  259. package/dist/assets/CollectionParameter-Ci_0m1Vk.js +0 -58
  260. package/dist/assets/DemoFooter-DuvjbD1c.js +0 -71
  261. package/dist/assets/FileSaver.min--9uV1QmK.js +0 -72
  262. package/dist/assets/LogsPanel-DZfIzuWL.js +0 -58
  263. package/dist/assets/ModalDrawer-DJsD4EIc.js +0 -277
  264. package/dist/assets/NodeIcon-eaW3atZy.css +0 -125
  265. package/dist/assets/RunDataParsedAiContent-DuwV5rNK.js +0 -24
  266. package/dist/assets/VirtualSchema-B-AQEHOc.js +0 -42
  267. package/dist/assets/cloudPlan.store-Dad6qPdn.js +0 -185
  268. package/dist/assets/en-BD3FHSTF.js +0 -2
  269. package/dist/assets/focusPanel.store-C5r79FXL.js +0 -208
  270. package/dist/assets/mcp.constants-svQUbNx5.js +0 -8
  271. package/dist/assets/npsSurvey.store-DF2xZcCA.js +0 -98
  272. package/dist/assets/overlay-Bil1NnPh.js +0 -165
  273. package/dist/assets/templates.store-C3DEfML8.js +0 -3915
  274. package/dist/assets/useChatHubSidebarState-CZrP-mNo.js +0 -29
  275. package/dist/assets/useMessage-DIJ5qCTv.js +0 -610
  276. package/dist/assets/useWorkflowSaving-B1uc1ePR.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-B6Jp7SZD.js";
2
+ import { Oi as require__baseUniq, _i as require__baseIteratee } from "./constants-D52YoOSp.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--AJ05qsa.js";
3
- import { k as defineStore, r as useRootStore } from "./_baseOrderBy-GjkKJVvF.js";
2
+ import { Cs as renewLicense, Ss as registerCommunityEdition, bs as activateLicenseKey, hs as useSettingsStore, ws as requestLicenseTrial, xs as getLicense } from "./builder.store-YujiPssa.js";
3
+ import { k as defineStore, r as useRootStore } from "./_baseOrderBy-CesQfsb9.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--AJ05qsa.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-B6Jp7SZD.js";
5
- import { t as useNodeCreatorStore } from "./nodeCreator.store-CPxLvRpA.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-YujiPssa.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-D52YoOSp.js";
5
+ import { t as useNodeCreatorStore } from "./nodeCreator.store-CnQC3Thy.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--AJ05qsa.js";
4
- import { Vo as VIEWS } from "./constants-B6Jp7SZD.js";
2
+ import { _t as useI18n } from "./_MapCache-0zNxISSG.js";
3
+ import { gr as useCanvasStore, oa as useUIStore } from "./builder.store-YujiPssa.js";
4
+ import { Ro as VIEWS } from "./constants-D52YoOSp.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-RwnQoRPP.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-DTY1hJHs.js";
5
5
  import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
6
- import { T as createEventBus, b as useRouter, n as truncateBeforeLast, y as useRoute } from "./truncate-BmR9EyjG.js";
7
- import { D as TitledList_default } from "./ParameterInputList-DdA16d29.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--AJ05qsa.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-B6Jp7SZD.js";
10
- import { t as useChatPanelStore } from "./chatPanel.store-DcSNy2dM.js";
11
- import { a as useTemplatesDataQualityStore, i as trackTemplatesClick, n as TemplateClickSource, r as isExtraTemplateLinksExperimentEnabled, t as useTemplatesStore } from "./templates.store-C3DEfML8.js";
12
- import { r as useNodeDirtiness, t as useRunWorkflow } from "./useRunWorkflow-nBr2MJkO.js";
13
- import { t as usePinnedData } from "./usePinnedData-B3-uxBtk.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-CPxLvRpA.js";
15
- import { t as getNodeIconSource } from "./nodeIcon-CwI12n1T.js";
16
- import { a as useLogsStore, i as useExperimentalNdvStore, t as useCanvasOperations } from "./useCanvasOperations-Biw6mnUM.js";
17
- import { t as NodeIcon_default } from "./NodeIcon-CWyPkrTk.js";
18
- import { t as KeyboardShortcutTooltip_default } from "./KeyboardShortcutTooltip-BSbSC7ko.js";
19
- import { t as useTelemetryContext } from "./useTelemetryContext-DHoBfjOQ.js";
20
- import { t as NodeSettings_default } from "./NodeSettings-CcYkiMI8.js";
21
- import { t as useKeybindings } from "./useKeybindings-BcvGBvra.js";
6
+ import { T as createEventBus, b as useRouter, n as truncateBeforeLast, y as useRoute } from "./truncate-ByNK2lRy.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-YujiPssa.js";
8
+ import { D as TitledList_default } from "./ParameterInputList-DTEJwrQm.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-D52YoOSp.js";
10
+ import { t as useChatPanelStore } from "./chatPanel.store-DmxMXfyE.js";
11
+ import { r as useNodeDirtiness, t as useRunWorkflow } from "./useRunWorkflow-CJgkc0Iq.js";
12
+ import { t as usePinnedData } from "./usePinnedData-Dztv0dCp.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-CnQC3Thy.js";
14
+ import { t as getNodeIconSource } from "./nodeIcon-Bcr-G7rB.js";
15
+ import { a as useLogsStore, i as useExperimentalNdvStore, t as useCanvasOperations } from "./useCanvasOperations-BQyHvbXi.js";
16
+ import { t as NodeIcon_default } from "./NodeIcon-DL6ucXJC.js";
17
+ import { t as KeyboardShortcutTooltip_default } from "./KeyboardShortcutTooltip-srIzApSu.js";
18
+ import { t as useTelemetryContext } from "./useTelemetryContext-Ds7-s6ZC.js";
19
+ import { t as NodeSettings_default } from "./NodeSettings-CS2iUNwL.js";
20
+ import { t as useKeybindings } from "./useKeybindings-DD-ZZkmj.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, b as useRouter, y as useRoute } from "./truncate-BmR9EyjG.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--AJ05qsa.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-B6Jp7SZD.js";
7
- import { k as defineStore, r as useRootStore } from "./_baseOrderBy-GjkKJVvF.js";
8
- import { t as useTemplatesStore } from "./templates.store-C3DEfML8.js";
9
- import { t as useFocusPanelStore } from "./focusPanel.store-C5r79FXL.js";
10
- import { t as useExecutionsStore } from "./executions.store-Di5hWapE.js";
11
- import { t as usePinnedData } from "./usePinnedData-B3-uxBtk.js";
12
- import { a as mapCanvasConnectionToLegacyConnection, l as parseCanvasConnectionHandleString, o as mapLegacyConnectionToCanvasConnection, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-CPxLvRpA.js";
13
- import { t as useClipboard } from "./useClipboard-DvY5RseI.js";
14
- import { t as useFoldersStore } from "./folders.store-CHmc_cIa.js";
3
+ import { M as useLocalStorage, _t as useI18n } from "./_MapCache-0zNxISSG.js";
4
+ import { T as createEventBus, b as useRouter, y as useRoute } from "./truncate-ByNK2lRy.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-YujiPssa.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-D52YoOSp.js";
7
+ import { k as defineStore, r as useRootStore } from "./_baseOrderBy-CesQfsb9.js";
8
+ import { t as useExecutionsStore } from "./executions.store-Dodf4hZt.js";
9
+ import { t as usePinnedData } from "./usePinnedData-Dztv0dCp.js";
10
+ import { a as mapCanvasConnectionToLegacyConnection, l as parseCanvasConnectionHandleString, o as mapLegacyConnectionToCanvasConnection, r as createCanvasConnectionHandleString, s as mapLegacyConnectionsToCanvasConnections, t as useNodeCreatorStore } from "./nodeCreator.store-CnQC3Thy.js";
11
+ import { t as useClipboard } from "./useClipboard-CqFyEHaX.js";
12
+ import { t as useFoldersStore } from "./folders.store-Bld2a-oS.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-B6Jp7SZD.js";
2
+ import { S as useClipboard, at as useThrottleFn } from "./_MapCache-0zNxISSG.js";
3
+ import { ec as PopOutWindowKey } from "./constants-D52YoOSp.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-RwnQoRPP.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-DTY1hJHs.js";
5
5
  import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
6
- import { b as useRouter, y as useRoute } from "./truncate-BmR9EyjG.js";
7
- import { t as useMessage } from "./useMessage-DIJ5qCTv.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--AJ05qsa.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-B6Jp7SZD.js";
10
- import { r as useRootStore } from "./_baseOrderBy-GjkKJVvF.js";
11
- import { n as require_debounce } from "./useDebounce-Cisb25yt.js";
12
- import { t as useCloudPlanStore } from "./cloudPlan.store-Dad6qPdn.js";
13
- import { t as useWorkflowSaving } from "./useWorkflowSaving-B1uc1ePR.js";
14
- import { t as useExecutionsStore } from "./executions.store-Di5hWapE.js";
15
- import { t as useRunWorkflow } from "./useRunWorkflow-nBr2MJkO.js";
16
- import { r as canvasEventBus, t as useCanvasOperations } from "./useCanvasOperations-Biw6mnUM.js";
17
- import { t as useFoldersStore } from "./folders.store-CHmc_cIa.js";
18
- import { t as NodeIcon_default } from "./NodeIcon-CWyPkrTk.js";
19
- import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-D0ob2A1J.js";
20
- import { t as useDataTableStore } from "./dataTable.store-DjA0BZm0.js";
21
- import { t as require_uniqBy } from "./uniqBy-DbOFAEPx.js";
22
- import { n as isIconOrEmoji, t as ProjectIcon_default } from "./ProjectIcon-Biy_-Ssg.js";
23
- import { t as CredentialIcon_default } from "./CredentialIcon-B5mFnPOM.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-C_Rg8cei.js";
28
- import { f as stringifyModel, l as isLlmProvider, s as getAgentRoute, t as useChatStore } from "./chat.store-DwNzDu7-.js";
6
+ import { b as useRouter, y as useRoute } from "./truncate-ByNK2lRy.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-YujiPssa.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-D52YoOSp.js";
9
+ import { r as useRootStore } from "./_baseOrderBy-CesQfsb9.js";
10
+ import { n as require_debounce } from "./useDebounce-DGSOfe85.js";
11
+ import { t as useExecutionsStore } from "./executions.store-Dodf4hZt.js";
12
+ import { t as useRunWorkflow } from "./useRunWorkflow-CJgkc0Iq.js";
13
+ import { r as canvasEventBus, t as useCanvasOperations } from "./useCanvasOperations-BQyHvbXi.js";
14
+ import { t as useFoldersStore } from "./folders.store-Bld2a-oS.js";
15
+ import { t as NodeIcon_default } from "./NodeIcon-DL6ucXJC.js";
16
+ import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-TzgTKFxt.js";
17
+ import { t as useDataTableStore } from "./dataTable.store-CUsh5p9b.js";
18
+ import { t as require_uniqBy } from "./uniqBy-CJFaA-UD.js";
19
+ import { n as isIconOrEmoji, t as ProjectIcon_default } from "./ProjectIcon-CEp8nyYM.js";
20
+ import { t as CredentialIcon_default } from "./CredentialIcon-ClX-2bGh.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-fniP3oOE.js";
24
+ import { f as stringifyModel, l as isLlmProvider, s as getAgentRoute, t as useChatStore } from "./chat.store-YbHxxnni.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-DIJ5qCTv.js";
4
- import { $s as getCredentialResolvers, Qs as getCredentialResolverTypes, Wi as useUIStore, Xs as deleteCredentialResolver, n as useToast } from "./builder.store--AJ05qsa.js";
5
- import { Jo as CREDENTIAL_RESOLVER_EDIT_MODAL_KEY, ss as MODAL_CONFIRM } from "./constants-B6Jp7SZD.js";
6
- import { r as useRootStore } from "./_baseOrderBy-GjkKJVvF.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-YujiPssa.js";
4
+ import { Wo as CREDENTIAL_RESOLVER_EDIT_MODAL_KEY, rs as MODAL_CONFIRM } from "./constants-D52YoOSp.js";
5
+ import { r as useRootStore } from "./_baseOrderBy-CesQfsb9.js";
7
6
  function useCredentialResolvers() {
8
7
  const rootStore = useRootStore();
9
8
  const uiStore = useUIStore();