n8n-editor-ui 1.72.1 → 1.74.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 (208) hide show
  1. package/LICENSE.md +5 -3
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-WpdLQ_Lc.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-PY1VH6GC.js} +1 -1
  3. package/dist/assets/AuthView-D4i2WDPk.css +408 -0
  4. package/dist/assets/{AuthView-xWm2P-0B.js → AuthView-uie-fWiu.js} +15 -41
  5. package/dist/assets/{CanvasChat-CpplEK_c.js → CanvasChat-DYVmFXF3.js} +30 -29
  6. package/dist/assets/CanvasChat-oFfeuF_m.css +2735 -0
  7. package/dist/assets/CanvasControls-DTjEPKS0.css +148 -0
  8. package/dist/assets/{CanvasControls-CNOZvEmR.js → CanvasControls-spvLWv9N.js} +4 -4
  9. package/dist/assets/{ChangePasswordView-Bx4HKBs9.js → ChangePasswordView-6vZq8sxX.js} +3 -2
  10. package/dist/assets/CollectionParameter-3PhAn_bn.js +4 -0
  11. package/dist/assets/{ConcurrentExecutionsHeader-dMskl4He.js → ConcurrentExecutionsHeader-B-QZJnPK.js} +11 -11
  12. package/dist/assets/ConcurrentExecutionsHeader-DETjSHgm.css +438 -0
  13. package/dist/assets/CredentialsView-DRWQyccW.css +294 -0
  14. package/dist/assets/{CredentialsView-DYmrbOcr.js → CredentialsView-DSO7I1Pu.js} +42 -15
  15. package/dist/assets/{ErrorView-DpKWfKAY.js → ErrorView-CqEmaujf.js} +4 -4
  16. package/dist/assets/ErrorView-DPS9icAS.css +144 -0
  17. package/dist/assets/{ExecutionsView-a2Slm2v9.js → ExecutionsView-BrFhmrtj.js} +35 -36
  18. package/dist/assets/ExecutionsView-C0P3HAAt.css +710 -0
  19. package/dist/assets/{FileSaver.min-BiLlhrlQ.js → FileSaver.min-D-tyM0om.js} +1 -1
  20. package/dist/assets/FixedCollectionParameter-DvdC-9QQ.css +192 -0
  21. package/dist/assets/{FixedCollectionParameter-DMiADFki.js → FixedCollectionParameter-piT_JOzg.js} +83 -95
  22. package/dist/assets/{ForgotMyPasswordView-RLODqWeW.js → ForgotMyPasswordView-BxkGrEro.js} +3 -2
  23. package/dist/assets/Logo-1eGohTKw.css +160 -0
  24. package/dist/assets/Logo-CSftxDSz.js +122 -0
  25. package/dist/assets/MainHeader-BIKp2Ncp.css +1449 -0
  26. package/dist/assets/{MainHeader-CZBWRbIF.js → MainHeader-BZymfqIP.js} +47 -27
  27. package/dist/assets/{MainSidebar-Cm-l0HUG.js → MainSidebar-CgMZ_6w4.js} +368 -62
  28. package/dist/assets/MainSidebar-Djaxwdmm.css +985 -0
  29. package/dist/assets/{NodeCreation-Bycww9rf.js → NodeCreation-CgxDWNxA.js} +12 -17
  30. package/dist/assets/NodeCreation-RKvezEeg.css +152 -0
  31. package/dist/assets/NodeCreator-DDiuO5S0.css +2493 -0
  32. package/dist/assets/{NodeCreator-BrgHuvb2.js → NodeCreator-Dht_F_jm.js} +111 -101
  33. package/dist/assets/NodeViewSwitcher-Cqiwo_8T.js +14837 -0
  34. package/dist/assets/NodeViewSwitcher-UPCWvuIo.css +6801 -0
  35. package/dist/assets/{ProjectCardBadge-B6a5Tl_X.js → ProjectCardBadge-13ZU1N6I.js} +9 -6
  36. package/dist/assets/ProjectCardBadge-CKGc0yDi.css +145 -0
  37. package/dist/assets/ProjectHeader-CQjB5wC7.css +285 -0
  38. package/dist/assets/ProjectHeader-DmZJgNYg.js +297 -0
  39. package/dist/assets/ProjectSettings-BgunHp-2.css +286 -0
  40. package/dist/assets/{ProjectSettings-BSOa51jE.js → ProjectSettings-C-9PYDi4.js} +87 -48
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-ouQuoTYp.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CDsd9G3A.js} +1 -1
  42. package/dist/assets/ResourcesListLayout-Dw1dU1aW.css +748 -0
  43. package/dist/assets/{ResourcesListLayout-BKk7DIWo.js → ResourcesListLayout-YaG3OmF5.js} +25 -21
  44. package/dist/assets/RunDataJson-BXTLuo7i.css +323 -0
  45. package/dist/assets/{RunDataJson-D7Whxi5x.js → RunDataJson-m0Pt_pnN.js} +19 -16
  46. package/dist/assets/RunDataJsonActions-DrgwFS0W.css +133 -0
  47. package/dist/assets/{RunDataJsonActions-hLh8-Su6.js → RunDataJsonActions-wvqwMtDM.js} +3 -4
  48. package/dist/assets/{RunDataSearch-Ds3EGLA6.js → RunDataSearch-Ph1eOlmY.js} +4 -4
  49. package/dist/assets/RunDataSearch-R6qtl0Jf.css +150 -0
  50. package/dist/assets/{RunDataTable-atOC6vYW.js → RunDataTable-B6Rwc79a.js} +28 -28
  51. package/dist/assets/RunDataTable-CX7gToH4.css +272 -0
  52. package/dist/assets/{SamlOnboarding-DuDPZUey.js → SamlOnboarding-Dxoo-GfH.js} +3 -2
  53. package/dist/assets/SettingsApiView-DJKJO7zM.css +145 -0
  54. package/dist/assets/{SettingsApiView-CFlbEwnS.js → SettingsApiView-EYzfTeVX.js} +6 -6
  55. package/dist/assets/SettingsCommunityNodesView-CAggjsaT.css +317 -0
  56. package/dist/assets/{SettingsCommunityNodesView-CJrxi3vi.js → SettingsCommunityNodesView-gze1Jvsy.js} +18 -17
  57. package/dist/assets/{SettingsExternalSecrets-BusSlBVI.js → SettingsExternalSecrets-DUqlfVPT.js} +7 -7
  58. package/dist/assets/SettingsExternalSecrets-d1KDgYYp.css +151 -0
  59. package/dist/assets/{SettingsLdapView-BLPKhtjA.js → SettingsLdapView-B5cZEX8X.js} +8 -8
  60. package/dist/assets/SettingsLdapView-Bx1eqk76.css +156 -0
  61. package/dist/assets/{SettingsLogStreamingView-DI9OYnte.js → SettingsLogStreamingView-C9hD8Kw5.js} +8 -8
  62. package/dist/assets/SettingsLogStreamingView-CflEMmu9.css +290 -0
  63. package/dist/assets/{SettingsPersonalView-CwLPEQe5.js → SettingsPersonalView-B__w674E.js} +9 -9
  64. package/dist/assets/SettingsPersonalView-CwV8ImYG.css +175 -0
  65. package/dist/assets/{SettingsSourceControl-BHiwsbh6.js → SettingsSourceControl-D7-NejQI.js} +12 -12
  66. package/dist/assets/SettingsSourceControl-DxshapuD.css +202 -0
  67. package/dist/assets/SettingsSso-BjoJZ2DU.css +163 -0
  68. package/dist/assets/{SettingsSso-BUE-Dg9u.js → SettingsSso-CipAZdaD.js} +7 -7
  69. package/dist/assets/SettingsUsageAndPlan-B5DEUrT3.css +333 -0
  70. package/dist/assets/{SettingsUsageAndPlan-g8SYxLIm.js → SettingsUsageAndPlan-DYszLgjl.js} +12 -12
  71. package/dist/assets/SettingsUsersView-By12E2li.css +143 -0
  72. package/dist/assets/{SettingsUsersView-DsjbsMkp.js → SettingsUsersView-lISm8ja6.js} +6 -6
  73. package/dist/assets/SettingsView-Bawwm19P.css +285 -0
  74. package/dist/assets/{SettingsView-BZqGq_NA.js → SettingsView-BmLKHjQH.js} +7 -7
  75. package/dist/assets/{SetupView-DKcifLmN.js → SetupView-CV1JkF06.js} +3 -2
  76. package/dist/assets/{SetupWorkflowCredentialsButton-1FX7DWWs.js → SetupWorkflowCredentialsButton-CaIbdi-K.js} +1 -1
  77. package/dist/assets/{SetupWorkflowFromTemplateView-BI8db6Bn.js → SetupWorkflowFromTemplateView-CP3UjRro.js} +8 -8
  78. package/dist/assets/SetupWorkflowFromTemplateView-ZPJL_m2F.css +148 -0
  79. package/dist/assets/{SigninView-DRl5Z9dU.js → SigninView-BQh1PPFq.js} +16 -15
  80. package/dist/assets/SigninView-D57wRRHz.css +150 -0
  81. package/dist/assets/{SignoutView-CD6CNCd4.js → SignoutView-BNOIvL04.js} +1 -1
  82. package/dist/assets/{SignupView-BUIFD8_L.js → SignupView-B5YAU3O1.js} +3 -2
  83. package/dist/assets/{TemplateDetails-BZy8nHAa.js → TemplateDetails-CYMlUxoE.js} +9 -9
  84. package/dist/assets/TemplateDetails-DyUqVhf2.css +265 -0
  85. package/dist/assets/TemplateList-DcOqRM10.css +480 -0
  86. package/dist/assets/{TemplateList-DdYIfcdc.js → TemplateList-Dg6kmgOf.js} +24 -24
  87. package/dist/assets/TemplatesCollectionView-2q1rzsOG.css +156 -0
  88. package/dist/assets/{TemplatesCollectionView-a9gOg1oh.js → TemplatesCollectionView-Du_Uh0KR.js} +12 -12
  89. package/dist/assets/{TemplatesSearchView-C_qp2w-Y.js → TemplatesSearchView-CaKdg0MP.js} +18 -18
  90. package/dist/assets/TemplatesSearchView-DETaMpDt.css +953 -0
  91. package/dist/assets/TemplatesView-Cyu28Dlo.css +285 -0
  92. package/dist/assets/{TemplatesView-Srd2qTc6.js → TemplatesView-DYqP0CKx.js} +8 -8
  93. package/dist/assets/{TemplatesWorkflowView-CDkCoN9X.js → TemplatesWorkflowView-CDxeo_E0.js} +13 -13
  94. package/dist/assets/TemplatesWorkflowView-DpIiJjJp.css +168 -0
  95. package/dist/assets/TestDefinitionEditView-DM4tV2LS.css +1267 -0
  96. package/dist/assets/{TestDefinitionEditView-CgQpahO7.js → TestDefinitionEditView-DmM-ldNH.js} +587 -197
  97. package/dist/assets/{TestDefinitionListView-BGJr2Okj.js → TestDefinitionListView-BBdTjle5.js} +96 -65
  98. package/dist/assets/TestDefinitionListView-BD5_O4Fx.css +567 -0
  99. package/dist/assets/{VariablesView-DBlZthPg.js → VariablesView-AVcocuJM.js} +8 -8
  100. package/dist/assets/VariablesView-D4pRzSuY.css +434 -0
  101. package/dist/assets/WorkerView-BrSoYcbf.css +977 -0
  102. package/dist/assets/{WorkerView--FWlY_KA.js → WorkerView-CRRYXfwj.js} +30 -177
  103. package/dist/assets/{WorkflowActivator-BbpMhG1U.js → WorkflowActivator-BFkp6wv-.js} +3 -3
  104. package/dist/assets/WorkflowActivator-DQhm5t0U.css +260 -0
  105. package/dist/assets/WorkflowExecutionsInfoAccordion-BBtwnPZQ.css +155 -0
  106. package/dist/assets/{WorkflowExecutionsInfoAccordion-DOpZ49kK.js → WorkflowExecutionsInfoAccordion-TkQ5A9AI.js} +3 -3
  107. package/dist/assets/{WorkflowExecutionsLandingPage-CAbWLqG8.js → WorkflowExecutionsLandingPage-B0OkjyM5.js} +5 -5
  108. package/dist/assets/WorkflowExecutionsLandingPage-Bm_hJMl4.css +145 -0
  109. package/dist/assets/{WorkflowExecutionsPreview-CfUWIIgy.js → WorkflowExecutionsPreview-2BLGw4QB.js} +37 -37
  110. package/dist/assets/WorkflowExecutionsPreview-CrGxxhLQ.css +537 -0
  111. package/dist/assets/{WorkflowExecutionsView-DrfZ7QK8.js → WorkflowExecutionsView-CYFvctKC.js} +35 -35
  112. package/dist/assets/WorkflowExecutionsView-DEqJNNDZ.css +676 -0
  113. package/dist/assets/WorkflowHistory-7Ad0Va7M.css +669 -0
  114. package/dist/assets/{WorkflowHistory-eqsh1yXn.js → WorkflowHistory-BG7M9CQl.js} +22 -22
  115. package/dist/assets/{WorkflowOnboardingView-Kbe8c2_R.js → WorkflowOnboardingView-srH4_STx.js} +1 -19
  116. package/dist/assets/{WorkflowPreview-DKTyMYfO.js → WorkflowPreview-BRSFWAwN.js} +8 -8
  117. package/dist/assets/WorkflowPreview-CIOAVgxK.css +162 -0
  118. package/dist/assets/{WorkflowsView-ClrcrpKc.js → WorkflowsView-C7_qBwr2.js} +29 -20
  119. package/dist/assets/WorkflowsView-DMIGjzPW.css +323 -0
  120. package/dist/assets/easyAiWorkflowUtils-DC1ZzurN.js +181 -0
  121. package/dist/assets/{index-fCEqBD8K.js → index-DWT5SiDA.js} +67756 -50700
  122. package/dist/assets/{index-Bo70cRA3.css → index-yFn1GhRA.css} +30918 -6705
  123. package/dist/assets/{pushConnection.store-Kmly9nV5.js → pushConnection.store-CVh3T0r7.js} +1 -1
  124. package/dist/assets/{templateActions-xeWyRgrU.js → templateActions-C_4ql9rG.js} +1 -1
  125. package/dist/assets/typescript.worker-H0DmdklC.js +213997 -0
  126. package/dist/assets/{useBugReporting-CbgIVUCL.js → useBugReporting-Bwqu07gb.js} +1 -1
  127. package/dist/assets/useCanvasOperations-BYRj4lO-.js +20950 -0
  128. package/dist/assets/useCanvasOperations-Byu1Z5ea.css +4144 -0
  129. package/dist/assets/{useExecutionDebugging-Cuf88DQE.js → useExecutionDebugging-D0ivUrRc.js} +1 -1
  130. package/dist/assets/{useExecutionHelpers-BIxUwlsh.js → useExecutionHelpers-Byigk2be.js} +1 -1
  131. package/dist/assets/{useNodeViewVersionSwitcher-Eg-dOWbq.js → useNodeViewVersionSwitcher-Btz9Y6kD.js} +1 -1
  132. package/dist/assets/usePinnedData-SqcH7oid.js +274 -0
  133. package/dist/assets/{usePushConnection-D-iAKJiL.js → usePushConnection-BKGZFebW.js} +11 -4
  134. package/dist/assets/{useRunWorkflow-BDl-2MsN.css → useRunWorkflow-DWoFsQdi.css} +406 -40
  135. package/dist/assets/{useRunWorkflow-BXE6bWp2.js → useRunWorkflow-YBTU5QVs.js} +31 -301
  136. package/dist/assets/{useWorkflowActivate-D8cU5eJ_.js → useWorkflowActivate-lML0rpsN.js} +1 -1
  137. package/dist/index.html +2 -2
  138. package/package.json +1 -1
  139. package/tsconfig.json +2 -1
  140. package/vite.config.mts +10 -1
  141. package/dist/assets/AuthView-BP3bsQpK.css +0 -49
  142. package/dist/assets/CanvasChat-DhkdJLy7.css +0 -661
  143. package/dist/assets/CanvasControls-BEOkwFDJ.css +0 -26
  144. package/dist/assets/CollectionParameter-IbNRc-rP.js +0 -4
  145. package/dist/assets/ConcurrentExecutionsHeader-ChCLnjVG.css +0 -72
  146. package/dist/assets/CredentialsView-CzforIh7.css +0 -36
  147. package/dist/assets/ErrorView-DZCz_7-d.css +0 -22
  148. package/dist/assets/ExecutionsView-CLxQdDnP.css +0 -217
  149. package/dist/assets/FixedCollectionParameter-CUxLKPYJ.css +0 -44
  150. package/dist/assets/MainHeader-Bg4Jr0GW.css +0 -224
  151. package/dist/assets/MainSidebar-B_Q71vG8.css +0 -223
  152. package/dist/assets/NodeCreation-DTNNkgVv.css +0 -30
  153. package/dist/assets/NodeCreator-BvqI_pdC.css +0 -522
  154. package/dist/assets/NodeViewSwitcher-D5JjSNB2.js +0 -41429
  155. package/dist/assets/NodeViewSwitcher-DngiUgY8.css +0 -3096
  156. package/dist/assets/ProjectCardBadge-DQvW5T7s.css +0 -20
  157. package/dist/assets/ProjectHeader-CDl0NBcF.css +0 -21
  158. package/dist/assets/ProjectHeader-CUoGk-wO.js +0 -233
  159. package/dist/assets/ProjectSettings-DZws5IzZ.css +0 -34
  160. package/dist/assets/ResourcesListLayout-NZz6R66g.css +0 -96
  161. package/dist/assets/RunDataJson-DW_khHj4.css +0 -79
  162. package/dist/assets/RunDataJsonActions-CoiM0oFP.css +0 -11
  163. package/dist/assets/RunDataSearch-B4q8H9Ex.css +0 -28
  164. package/dist/assets/RunDataTable-BOaG0Pms.css +0 -150
  165. package/dist/assets/SettingsApiView-DX3S-5pa.css +0 -23
  166. package/dist/assets/SettingsCommunityNodesView-kzxtAoLp.css +0 -73
  167. package/dist/assets/SettingsExternalSecrets-BnXyxlJd.css +0 -29
  168. package/dist/assets/SettingsLdapView-BPh_inzE.css +0 -34
  169. package/dist/assets/SettingsLogStreamingView-Uz298HNW.css +0 -46
  170. package/dist/assets/SettingsPersonalView-CqzRUitO.css +0 -53
  171. package/dist/assets/SettingsSourceControl-C7H8sLJN.css +0 -80
  172. package/dist/assets/SettingsSso-Be_ejj46.css +0 -41
  173. package/dist/assets/SettingsUsageAndPlan-C3fKPMTY.css +0 -89
  174. package/dist/assets/SettingsUsersView-C13eCMjh.css +0 -21
  175. package/dist/assets/SettingsView-o6uNYu0t.css +0 -41
  176. package/dist/assets/SetupWorkflowFromTemplateView-DjBcyMCl.css +0 -26
  177. package/dist/assets/SigninView-DzDE1gJb.css +0 -33
  178. package/dist/assets/TemplateDetails-p3M6A7jr.css +0 -21
  179. package/dist/assets/TemplateList-BR3bpDTv.css +0 -114
  180. package/dist/assets/TemplatesCollectionView-DJVlK4Bb.css +0 -34
  181. package/dist/assets/TemplatesSearchView-CFrHWGcY.css +0 -221
  182. package/dist/assets/TemplatesView-CBNZZ_X1.css +0 -41
  183. package/dist/assets/TemplatesWorkflowView-CVC0fbb6.css +0 -46
  184. package/dist/assets/TestDefinitionEditView-CVRXpJ4c.css +0 -220
  185. package/dist/assets/TestDefinitionListView-BJVxwUdb.css +0 -80
  186. package/dist/assets/VariablesView-BnGnRwcl.css +0 -182
  187. package/dist/assets/VirtualSchema-CIfwZj8N.css +0 -136
  188. package/dist/assets/VirtualSchema-DkiHWd9N.js +0 -378
  189. package/dist/assets/WorkerView-CvXMClDD.css +0 -123
  190. package/dist/assets/WorkflowActivator-DSBGQvK0.css +0 -16
  191. package/dist/assets/WorkflowExecutionsInfoAccordion-f5tIRAwu.css +0 -33
  192. package/dist/assets/WorkflowExecutionsLandingPage-BodEQ5Bq.css +0 -23
  193. package/dist/assets/WorkflowExecutionsPreview-C-e7WZrK.css +0 -171
  194. package/dist/assets/WorkflowExecutionsView-CFOgmzpK.css +0 -178
  195. package/dist/assets/WorkflowHistory-D0ufvWsH.css +0 -181
  196. package/dist/assets/WorkflowPreview-DuLM6rtd.css +0 -40
  197. package/dist/assets/WorkflowsView-D5fBzfD4.css +0 -65
  198. package/dist/assets/testDefinition.store.ee-C9BPbACc.js +0 -138
  199. package/dist/assets/useGlobalEntityCreation-DGVSN-Im.js +0 -183
  200. package/dist/static/logo/channel/beta-dark.svg +0 -1
  201. package/dist/static/logo/channel/beta.svg +0 -1
  202. package/dist/static/logo/channel/dev-dark.svg +0 -1
  203. package/dist/static/logo/channel/dev.svg +0 -1
  204. package/dist/static/logo/channel/nightly-dark.svg +0 -1
  205. package/dist/static/logo/channel/nightly.svg +0 -1
  206. package/dist/static/logo/collapsed.svg +0 -1
  207. package/dist/static/logo/expanded-dark.svg +0 -1
  208. package/dist/static/logo/expanded.svg +0 -1
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, aD as useLoadingService, K as useUIStore, a0 as useSourceControlStore, a as useToast, r as ref, q as computed, c as openBlock, h as createElementBlock, l as unref, n as normalizeClass, j as createBaseVNode, i as createVNode, k as createTextVNode, t as toDisplayString, w as withCtx, e as createBlock, f as createCommentVNode, B as normalizeStyle, g as useI18n, an as hasPermission, ah as SOURCE_CONTROL_PUSH_MODAL_KEY, y as nextTick, aE as sourceControlEventBus, aF as SOURCE_CONTROL_PULL_MODAL_KEY, m as resolveComponent, C as createEventBus, _ as _export_sfc, aG as get, R as defineStore, S as STORES, aH as useCloudPlanStore, Z as useRootStore, aI as useStorage, aJ as DateTime, ak as useTelemetry, a1 as useProjectsStore, F as Fragment, A as renderList, V as VIEWS, aK as sortByProperty, p as useSettingsStore, aL as useTemplatesStore, u as useUsersStore, aM as useVersionsStore, T as useWorkflowsStore, J as useDebounce, U as useRoute, b as useRouter, a5 as usePageRedirectionHelper, o as onMounted, x as onBeforeUnmount, E as onClickOutside, aN as N8nNavigationDropdown, aO as createSlots, aP as useExternalHooks, aQ as VERSIONS_MODAL_KEY, aR as ABOUT_MODAL_KEY } from "./index-fCEqBD8K.js";
2
- import { u as useBugReporting } from "./useBugReporting-CbgIVUCL.js";
3
- import { u as useGlobalEntityCreation } from "./useGlobalEntityCreation-DGVSN-Im.js";
1
+ import { d as defineComponent, aD as useLoadingService, K as useUIStore, a0 as useSourceControlStore, a as useToast, r as ref, q as computed, c as openBlock, h as createElementBlock, l as unref, n as normalizeClass, j as createBaseVNode, i as createVNode, k as createTextVNode, t as toDisplayString, w as withCtx, e as createBlock, f as createCommentVNode, B as normalizeStyle, g as useI18n, an as hasPermission, ah as SOURCE_CONTROL_PUSH_MODAL_KEY, y as nextTick, aE as sourceControlEventBus, aF as SOURCE_CONTROL_PULL_MODAL_KEY, m as resolveComponent, C as createEventBus, _ as _export_sfc, aG as get, R as defineStore, S as STORES, aH as useCloudPlanStore, Z as useRootStore, aI as useStorage, aJ as DateTime, ak as useTelemetry, p as useSettingsStore, a1 as useProjectsStore, b as useRouter, aK as sortByProperty, V as VIEWS, a5 as usePageRedirectionHelper, am as getResourcePermissions, F as Fragment, A as renderList, aL as useTemplatesStore, u as useUsersStore, aM as useVersionsStore, T as useWorkflowsStore, J as useDebounce, U as useRoute, o as onMounted, x as onBeforeUnmount, E as onClickOutside, aN as N8nLink, aO as N8nTooltip, aP as _sfc_main$5, aQ as N8nNavigationDropdown, aR as createSlots, aS as useExternalHooks, aT as VERSIONS_MODAL_KEY, aU as ABOUT_MODAL_KEY } from "./index-DWT5SiDA.js";
2
+ import { u as useBugReporting } from "./useBugReporting-Bwqu07gb.js";
3
+ import { L as Logo } from "./Logo-CSftxDSz.js";
4
4
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
5
5
  __name: "MainSidebarSourceControl",
6
6
  props: {
@@ -28,6 +28,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
28
28
  loadingService.setLoadingText(i18n.baseText("settings.sourceControl.loading.checkingForChanges"));
29
29
  try {
30
30
  const status = await sourceControlStore.getAggregatedStatus();
31
+ if (!status.length) {
32
+ toast.showMessage({
33
+ title: "No changes to commit",
34
+ message: "Everything is up to date",
35
+ type: "info"
36
+ });
37
+ return;
38
+ }
31
39
  uiStore.openModalWithData({
32
40
  name: SOURCE_CONTROL_PUSH_MODAL_KEY,
33
41
  data: { eventBus, status }
@@ -172,11 +180,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
172
180
  };
173
181
  }
174
182
  });
175
- const sync = "_sync_15zv3_1";
176
- const isConnected = "_isConnected_15zv3_8";
177
- const collapsed$1 = "_collapsed_15zv3_12";
178
- const branchName = "_branchName_15zv3_22";
179
- const connected = "_connected_15zv3_32";
183
+ const sync = "_sync_fv3ov_123";
184
+ const isConnected = "_isConnected_fv3ov_130";
185
+ const collapsed$1 = "_collapsed_fv3ov_134";
186
+ const branchName = "_branchName_fv3ov_144";
187
+ const connected = "_connected_fv3ov_154";
180
188
  const style0$4 = {
181
189
  sync,
182
190
  isConnected,
@@ -188,9 +196,9 @@ const cssModules$4 = {
188
196
  "$style": style0$4
189
197
  };
190
198
  const __unplugin_components_3 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
191
- const notification = "_notification_197jx_8";
199
+ const notification = "_notification_1usal_130";
192
200
  const style0$3 = {
193
- "gift-icon": "_gift-icon_197jx_1",
201
+ "gift-icon": "_gift-icon_1usal_123",
194
202
  notification
195
203
  };
196
204
  const _sfc_main$3 = {};
@@ -319,11 +327,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
319
327
  };
320
328
  }
321
329
  });
322
- const container = "_container_92ffs_1";
323
- const textAndCloseButton = "_textAndCloseButton_92ffs_9";
324
- const text = "_text_92ffs_9";
325
- const closeButton = "_closeButton_92ffs_22";
326
- const becomeCreatorButton = "_becomeCreatorButton_92ffs_35";
330
+ const container = "_container_19by7_123";
331
+ const textAndCloseButton = "_textAndCloseButton_19by7_131";
332
+ const text = "_text_19by7_131";
333
+ const closeButton = "_closeButton_19by7_144";
334
+ const becomeCreatorButton = "_becomeCreatorButton_19by7_157";
327
335
  const style0$2 = {
328
336
  container,
329
337
  textAndCloseButton,
@@ -335,12 +343,212 @@ const cssModules$2 = {
335
343
  "$style": style0$2
336
344
  };
337
345
  const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
346
+ const useGlobalEntityCreation = () => {
347
+ const CREATE_PROJECT_ID = "create-project";
348
+ const WORKFLOWS_MENU_ID = "workflow";
349
+ const CREDENTIALS_MENU_ID = "credential";
350
+ const settingsStore = useSettingsStore();
351
+ const cloudPlanStore = useCloudPlanStore();
352
+ const projectsStore = useProjectsStore();
353
+ const sourceControlStore = useSourceControlStore();
354
+ const router = useRouter();
355
+ const i18n = useI18n();
356
+ const toast = useToast();
357
+ const isCreatingProject = ref(false);
358
+ const displayProjects = computed(
359
+ () => sortByProperty(
360
+ "name",
361
+ projectsStore.myProjects.filter((p) => p.type === "team")
362
+ )
363
+ );
364
+ const disabledWorkflow = (scopes = []) => sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(scopes).workflow.create;
365
+ const disabledCredential = (scopes = []) => sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(scopes).credential.create;
366
+ const menu = computed(() => {
367
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
368
+ return [
369
+ {
370
+ id: "workflow",
371
+ title: "Workflow",
372
+ route: {
373
+ name: VIEWS.NEW_WORKFLOW,
374
+ query: {
375
+ projectId: projectsStore.personalProject?.id
376
+ }
377
+ }
378
+ },
379
+ {
380
+ id: "credential",
381
+ title: "Credential",
382
+ route: {
383
+ name: VIEWS.CREDENTIALS,
384
+ params: {
385
+ projectId: projectsStore.personalProject?.id,
386
+ credentialId: "create"
387
+ }
388
+ }
389
+ },
390
+ {
391
+ id: CREATE_PROJECT_ID,
392
+ title: "Project",
393
+ disabled: true
394
+ }
395
+ ];
396
+ }
397
+ return [
398
+ {
399
+ id: WORKFLOWS_MENU_ID,
400
+ title: "Workflow",
401
+ disabled: sourceControlStore.preferences.branchReadOnly,
402
+ ...!sourceControlStore.preferences.branchReadOnly && {
403
+ submenu: [
404
+ {
405
+ id: "workflow-title",
406
+ title: "Create in",
407
+ disabled: true
408
+ },
409
+ {
410
+ id: "workflow-personal",
411
+ title: i18n.baseText("projects.menu.personal"),
412
+ icon: "user",
413
+ disabled: disabledWorkflow(projectsStore.personalProject?.scopes),
414
+ route: {
415
+ name: VIEWS.NEW_WORKFLOW,
416
+ query: { projectId: projectsStore.personalProject?.id }
417
+ }
418
+ },
419
+ ...displayProjects.value.map((project) => ({
420
+ id: `workflow-${project.id}`,
421
+ title: project.name,
422
+ icon: "layer-group",
423
+ disabled: disabledWorkflow(project.scopes),
424
+ route: {
425
+ name: VIEWS.NEW_WORKFLOW,
426
+ query: { projectId: project.id }
427
+ }
428
+ }))
429
+ ]
430
+ }
431
+ },
432
+ {
433
+ id: CREDENTIALS_MENU_ID,
434
+ title: "Credential",
435
+ disabled: sourceControlStore.preferences.branchReadOnly,
436
+ ...!sourceControlStore.preferences.branchReadOnly && {
437
+ submenu: [
438
+ {
439
+ id: "credential-title",
440
+ title: "Create in",
441
+ disabled: true
442
+ },
443
+ {
444
+ id: "credential-personal",
445
+ title: i18n.baseText("projects.menu.personal"),
446
+ icon: "user",
447
+ disabled: disabledCredential(projectsStore.personalProject?.scopes),
448
+ route: {
449
+ name: VIEWS.PROJECTS_CREDENTIALS,
450
+ params: { projectId: projectsStore.personalProject?.id, credentialId: "create" }
451
+ }
452
+ },
453
+ ...displayProjects.value.map((project) => ({
454
+ id: `credential-${project.id}`,
455
+ title: project.name,
456
+ icon: "layer-group",
457
+ disabled: disabledCredential(project.scopes),
458
+ route: {
459
+ name: VIEWS.PROJECTS_CREDENTIALS,
460
+ params: { projectId: project.id, credentialId: "create" }
461
+ }
462
+ }))
463
+ ]
464
+ }
465
+ },
466
+ {
467
+ id: CREATE_PROJECT_ID,
468
+ title: "Project",
469
+ disabled: !projectsStore.canCreateProjects
470
+ }
471
+ ];
472
+ });
473
+ const createProject = async () => {
474
+ isCreatingProject.value = true;
475
+ try {
476
+ const newProject = await projectsStore.createProject({
477
+ name: i18n.baseText("projects.settings.newProjectName"),
478
+ icon: { type: "icon", value: "layer-group" }
479
+ });
480
+ await router.push({ name: VIEWS.PROJECT_SETTINGS, params: { projectId: newProject.id } });
481
+ toast.showMessage({
482
+ title: i18n.baseText("projects.settings.save.successful.title", {
483
+ interpolate: { projectName: newProject.name }
484
+ }),
485
+ type: "success"
486
+ });
487
+ } catch (error) {
488
+ toast.showError(error, i18n.baseText("projects.error.title"));
489
+ } finally {
490
+ isCreatingProject.value = false;
491
+ }
492
+ };
493
+ const handleSelect = (id) => {
494
+ if (id !== CREATE_PROJECT_ID) return;
495
+ if (projectsStore.canCreateProjects) {
496
+ void createProject();
497
+ return;
498
+ }
499
+ void usePageRedirectionHelper().goToUpgrade("rbac", "upgrade-rbac");
500
+ };
501
+ const projectsLimitReachedMessage = computed(() => {
502
+ if (settingsStore.isCloudDeployment) {
503
+ return i18n.baseText("projects.create.limitReached.cloud", {
504
+ adjustToNumber: projectsStore.teamProjectsLimit,
505
+ interpolate: {
506
+ planName: cloudPlanStore.currentPlanData?.displayName ?? "",
507
+ limit: projectsStore.teamProjectsLimit
508
+ }
509
+ });
510
+ }
511
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
512
+ return i18n.baseText("projects.create.limitReached.self");
513
+ }
514
+ return i18n.baseText("projects.create.limitReached", {
515
+ adjustToNumber: projectsStore.teamProjectsLimit,
516
+ interpolate: {
517
+ limit: projectsStore.teamProjectsLimit
518
+ }
519
+ });
520
+ });
521
+ const createProjectAppendSlotName = computed(() => `item.append.${CREATE_PROJECT_ID}`);
522
+ const createWorkflowsAppendSlotName = computed(() => `item.append.${WORKFLOWS_MENU_ID}`);
523
+ const createCredentialsAppendSlotName = computed(() => `item.append.${CREDENTIALS_MENU_ID}`);
524
+ const upgradeLabel = computed(() => {
525
+ if (settingsStore.isCloudDeployment) {
526
+ return i18n.baseText("generic.upgrade");
527
+ }
528
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
529
+ return i18n.baseText("generic.enterprise");
530
+ }
531
+ return i18n.baseText("generic.upgrade");
532
+ });
533
+ return {
534
+ menu,
535
+ handleSelect,
536
+ createProjectAppendSlotName,
537
+ createWorkflowsAppendSlotName,
538
+ createCredentialsAppendSlotName,
539
+ projectsLimitReachedMessage,
540
+ upgradeLabel,
541
+ createProject,
542
+ isCreatingProject,
543
+ displayProjects
544
+ };
545
+ };
338
546
  const _hoisted_1$1 = {
339
547
  key: 0,
340
548
  class: "mt-m mb-m"
341
549
  };
342
- const _hoisted_2$1 = {
343
- key: 3,
550
+ const _hoisted_2 = {
551
+ key: 4,
344
552
  class: "mb-m"
345
553
  };
346
554
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -353,6 +561,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
353
561
  const props = __props;
354
562
  const locale = useI18n();
355
563
  const projectsStore = useProjectsStore();
564
+ const globalEntityCreation = useGlobalEntityCreation();
565
+ const isCreatingProject = computed(() => globalEntityCreation.isCreatingProject.value);
566
+ const displayProjects = computed(() => globalEntityCreation.displayProjects.value);
356
567
  const home = computed(() => ({
357
568
  id: "home",
358
569
  label: locale.baseText("projects.menu.overview"),
@@ -364,7 +575,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
364
575
  const getProjectMenuItem = (project) => ({
365
576
  id: project.id,
366
577
  label: project.name,
367
- icon: props.collapsed ? void 0 : "layer-group",
578
+ icon: project.icon,
368
579
  route: {
369
580
  to: {
370
581
  name: VIEWS.PROJECTS_WORKFLOWS,
@@ -375,7 +586,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
375
586
  const personalProject = computed(() => ({
376
587
  id: projectsStore.personalProject?.id ?? "",
377
588
  label: locale.baseText("projects.menu.personal"),
378
- icon: props.collapsed ? void 0 : "user",
589
+ icon: "user",
379
590
  route: {
380
591
  to: {
381
592
  name: VIEWS.PROJECTS_WORKFLOWS,
@@ -383,15 +594,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
383
594
  }
384
595
  }
385
596
  }));
386
- const displayProjects = computed(
387
- () => sortByProperty(
388
- "name",
389
- projectsStore.myProjects.filter((p) => p.type === "team")
390
- )
597
+ const showAddFirstProject = computed(
598
+ () => projectsStore.isTeamProjectFeatureEnabled && !displayProjects.value.length
391
599
  );
392
600
  return (_ctx, _cache) => {
393
601
  const _component_N8nMenuItem = resolveComponent("N8nMenuItem");
394
602
  const _component_ElMenu = resolveComponent("ElMenu");
603
+ const _component_N8nButton = resolveComponent("N8nButton");
395
604
  const _component_N8nText = resolveComponent("N8nText");
396
605
  return openBlock(), createElementBlock("div", {
397
606
  class: normalizeClass(_ctx.$style.projects)
@@ -414,12 +623,21 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
414
623
  unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_1$1)) : createCommentVNode("", true),
415
624
  !props.collapsed && unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createBlock(_component_N8nText, {
416
625
  key: 1,
417
- class: normalizeClass(_ctx.$style.projectsLabel),
626
+ class: normalizeClass([_ctx.$style.projectsLabel]),
418
627
  tag: "h3",
419
628
  bold: ""
420
629
  }, {
421
630
  default: withCtx(() => [
422
- createBaseVNode("span", null, toDisplayString(unref(locale).baseText("projects.menu.title")), 1)
631
+ createBaseVNode("span", null, toDisplayString(unref(locale).baseText("projects.menu.title")), 1),
632
+ unref(projectsStore).canCreateProjects ? (openBlock(), createBlock(_component_N8nButton, {
633
+ key: 0,
634
+ icon: "plus",
635
+ text: "",
636
+ "data-test-id": "project-plus-button",
637
+ disabled: isCreatingProject.value,
638
+ class: normalizeClass(_ctx.$style.plusBtn),
639
+ onClick: unref(globalEntityCreation).createProject
640
+ }, null, 8, ["disabled", "class", "onClick"])) : createCommentVNode("", true)
423
641
  ]),
424
642
  _: 1
425
643
  }, 8, ["class"])) : createCommentVNode("", true),
@@ -452,29 +670,51 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
452
670
  ]),
453
671
  _: 1
454
672
  }, 8, ["collapse", "class"])) : createCommentVNode("", true),
455
- unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_2$1)) : createCommentVNode("", true)
673
+ showAddFirstProject.value ? (openBlock(), createBlock(_component_N8nButton, {
674
+ key: 3,
675
+ class: normalizeClass([
676
+ _ctx.$style.addFirstProjectBtn,
677
+ {
678
+ [_ctx.$style.collapsed]: props.collapsed
679
+ }
680
+ ]),
681
+ disabled: isCreatingProject.value,
682
+ type: "secondary",
683
+ icon: "plus",
684
+ "data-test-id": "add-first-project-button",
685
+ onClick: unref(globalEntityCreation).createProject
686
+ }, {
687
+ default: withCtx(() => [
688
+ createTextVNode(toDisplayString(unref(locale).baseText("projects.menu.addFirstProject")), 1)
689
+ ]),
690
+ _: 1
691
+ }, 8, ["class", "disabled", "onClick"])) : createCommentVNode("", true),
692
+ unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_2)) : createCommentVNode("", true)
456
693
  ], 2);
457
694
  };
458
695
  }
459
696
  });
460
- const projects = "_projects_6p5d2_1";
461
- const projectItems = "_projectItems_6p5d2_9";
462
- const upgradeLink = "_upgradeLink_6p5d2_15";
463
- const collapsed = "_collapsed_6p5d2_20";
464
- const projectsLabel = "_projectsLabel_6p5d2_24";
697
+ const projects = "_projects_b221a_123";
698
+ const plusBtn = "_plusBtn_b221a_130";
699
+ const projectItems = "_projectItems_b221a_134";
700
+ const upgradeLink = "_upgradeLink_b221a_140";
701
+ const collapsed = "_collapsed_b221a_145";
702
+ const projectsLabel = "_projectsLabel_b221a_149";
703
+ const addFirstProjectBtn = "_addFirstProjectBtn_b221a_172";
465
704
  const style0$1 = {
466
705
  projects,
706
+ plusBtn,
467
707
  projectItems,
468
708
  upgradeLink,
469
709
  collapsed,
470
- projectsLabel
710
+ projectsLabel,
711
+ addFirstProjectBtn
471
712
  };
472
713
  const cssModules$1 = {
473
714
  "$style": style0$1
474
715
  };
475
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-6cb5f5b7"]]);
476
- const _hoisted_1 = ["src"];
477
- const _hoisted_2 = {
716
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-3d3b6488"]]);
717
+ const _hoisted_1 = {
478
718
  class: "ml-3xs",
479
719
  "data-test-id": "main-sidebar-user-menu"
480
720
  };
@@ -490,6 +730,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
490
730
  const usersStore = useUsersStore();
491
731
  const versionsStore = useVersionsStore();
492
732
  const workflowsStore = useWorkflowsStore();
733
+ const sourceControlStore = useSourceControlStore();
493
734
  const { callDebounced } = useDebounce();
494
735
  const externalHooks = useExternalHooks();
495
736
  const i18n = useI18n();
@@ -610,9 +851,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
610
851
  ]);
611
852
  const createBtn = ref();
612
853
  const isCollapsed = computed(() => uiStore.sidebarMenuCollapsed);
613
- const logoPath = computed(
614
- () => basePath.value + (isCollapsed.value ? "static/logo/collapsed.svg" : uiStore.logo)
615
- );
616
854
  const hasVersionUpdates = computed(
617
855
  () => settingsStore.settings.releaseChannel === "stable" && versionsStore.hasVersionUpdates
618
856
  );
@@ -718,16 +956,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
718
956
  menu,
719
957
  handleSelect: handleMenuSelect,
720
958
  createProjectAppendSlotName,
721
- projectsLimitReachedMessage
959
+ createWorkflowsAppendSlotName,
960
+ createCredentialsAppendSlotName,
961
+ projectsLimitReachedMessage,
962
+ upgradeLabel
722
963
  } = useGlobalEntityCreation();
723
964
  onClickOutside(createBtn, () => {
724
965
  createBtn.value?.close();
725
966
  });
726
967
  return (_ctx, _cache) => {
727
968
  const _component_N8nIcon = resolveComponent("N8nIcon");
728
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
969
+ const _component_i18n_t = resolveComponent("i18n-t");
729
970
  const _component_N8nButton = resolveComponent("N8nButton");
730
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
731
971
  const _component_ProjectNavigation = __unplugin_components_0;
732
972
  const _component_BecomeTemplateCreatorCta = __unplugin_components_1;
733
973
  const _component_GiftNotificationIcon = __unplugin_components_2;
@@ -767,12 +1007,44 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
767
1007
  createBaseVNode("div", {
768
1008
  class: normalizeClass(_ctx.$style.logo)
769
1009
  }, [
770
- createBaseVNode("img", {
771
- src: logoPath.value,
772
- "data-test-id": "n8n-logo",
773
- class: normalizeClass(_ctx.$style.icon),
774
- alt: "n8n"
775
- }, null, 10, _hoisted_1),
1010
+ createVNode(Logo, {
1011
+ location: "sidebar",
1012
+ collapsed: isCollapsed.value,
1013
+ "release-channel": unref(settingsStore).settings.releaseChannel
1014
+ }, {
1015
+ default: withCtx(() => [
1016
+ unref(sourceControlStore).preferences.branchReadOnly && !isCollapsed.value ? (openBlock(), createBlock(unref(N8nTooltip), {
1017
+ key: 0,
1018
+ placement: "bottom"
1019
+ }, {
1020
+ content: withCtx(() => [
1021
+ createVNode(_component_i18n_t, { keypath: "readOnlyEnv.tooltip" }, {
1022
+ link: withCtx(() => [
1023
+ createVNode(unref(N8nLink), {
1024
+ to: "https://docs.n8n.io/source-control-environments/setup/#step-4-connect-n8n-and-configure-your-instance",
1025
+ size: "small"
1026
+ }, {
1027
+ default: withCtx(() => [
1028
+ createTextVNode(toDisplayString(unref(i18n).baseText("readOnlyEnv.tooltip.link")), 1)
1029
+ ]),
1030
+ _: 1
1031
+ })
1032
+ ]),
1033
+ _: 1
1034
+ })
1035
+ ]),
1036
+ default: withCtx(() => [
1037
+ createVNode(_component_N8nIcon, {
1038
+ icon: "lock",
1039
+ size: "xsmall",
1040
+ class: normalizeClass(_ctx.$style.readOnlyEnvironmentIcon)
1041
+ }, null, 8, ["class"])
1042
+ ]),
1043
+ _: 1
1044
+ })) : createCommentVNode("", true)
1045
+ ]),
1046
+ _: 1
1047
+ }, 8, ["collapsed", "release-channel"]),
776
1048
  createVNode(unref(N8nNavigationDropdown), {
777
1049
  ref_key: "createBtn",
778
1050
  ref: createBtn,
@@ -780,8 +1052,40 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
780
1052
  menu: unref(menu),
781
1053
  onSelect: unref(handleMenuSelect)
782
1054
  }, {
1055
+ [unref(createWorkflowsAppendSlotName)]: withCtx(() => [
1056
+ unref(sourceControlStore).preferences.branchReadOnly ? (openBlock(), createBlock(unref(N8nTooltip), {
1057
+ key: 0,
1058
+ placement: "right",
1059
+ content: unref(i18n).baseText("readOnlyEnv.cantAdd.workflow")
1060
+ }, {
1061
+ default: withCtx(() => [
1062
+ createVNode(_component_N8nIcon, {
1063
+ style: { "margin-left": "auto", "margin-right": "5px" },
1064
+ icon: "lock",
1065
+ size: "xsmall"
1066
+ })
1067
+ ]),
1068
+ _: 1
1069
+ }, 8, ["content"])) : createCommentVNode("", true)
1070
+ ]),
1071
+ [unref(createCredentialsAppendSlotName)]: withCtx(() => [
1072
+ unref(sourceControlStore).preferences.branchReadOnly ? (openBlock(), createBlock(unref(N8nTooltip), {
1073
+ key: 0,
1074
+ placement: "right",
1075
+ content: unref(i18n).baseText("readOnlyEnv.cantAdd.credential")
1076
+ }, {
1077
+ default: withCtx(() => [
1078
+ createVNode(_component_N8nIcon, {
1079
+ style: { "margin-left": "auto", "margin-right": "5px" },
1080
+ icon: "lock",
1081
+ size: "xsmall"
1082
+ })
1083
+ ]),
1084
+ _: 1
1085
+ }, 8, ["content"])) : createCommentVNode("", true)
1086
+ ]),
783
1087
  [unref(createProjectAppendSlotName)]: withCtx(({ item }) => [
784
- item.disabled ? (openBlock(), createBlock(_component_N8nTooltip, {
1088
+ item.disabled ? (openBlock(), createBlock(unref(N8nTooltip), {
785
1089
  key: 0,
786
1090
  placement: "right",
787
1091
  content: unref(projectsLimitReachedMessage)
@@ -794,7 +1098,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
794
1098
  onClick: ($event) => unref(handleMenuSelect)(item.id)
795
1099
  }, {
796
1100
  default: withCtx(() => [
797
- createTextVNode(toDisplayString(unref(i18n).baseText("generic.upgrade")), 1)
1101
+ createTextVNode(toDisplayString(unref(upgradeLabel)), 1)
798
1102
  ]),
799
1103
  _: 2
800
1104
  }, 1032, ["onClick"])
@@ -803,7 +1107,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
803
1107
  }, 1032, ["content"])) : createCommentVNode("", true)
804
1108
  ]),
805
1109
  default: withCtx(() => [
806
- createVNode(_component_N8nIconButton, {
1110
+ createVNode(unref(_sfc_main$5), {
807
1111
  icon: "plus",
808
1112
  type: "secondary",
809
1113
  outline: ""
@@ -862,7 +1166,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
862
1166
  ref: user,
863
1167
  class: normalizeClass(_ctx.$style.userArea)
864
1168
  }, [
865
- createBaseVNode("div", _hoisted_2, [
1169
+ createBaseVNode("div", _hoisted_1, [
866
1170
  createVNode(_component_ElDropdown, {
867
1171
  placement: "right-end",
868
1172
  trigger: "click",
@@ -939,15 +1243,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
939
1243
  };
940
1244
  }
941
1245
  });
942
- const sideMenu = "_sideMenu_15e4m_1";
943
- const logo = "_logo_15e4m_10";
944
- const sideMenuCollapsed = "_sideMenuCollapsed_15e4m_25";
945
- const sideMenuCollapseButton = "_sideMenuCollapseButton_15e4m_37";
946
- const updates = "_updates_15e4m_56";
947
- const expanded = "_expanded_15e4m_69";
948
- const userArea = "_userArea_15e4m_76";
949
- const userName = "_userName_15e4m_83";
950
- const userActions = "_userActions_15e4m_97";
1246
+ const sideMenu = "_sideMenu_1wc6y_123";
1247
+ const logo = "_logo_1wc6y_132";
1248
+ const sideMenuCollapsed = "_sideMenuCollapsed_1wc6y_147";
1249
+ const sideMenuCollapseButton = "_sideMenuCollapseButton_1wc6y_156";
1250
+ const updates = "_updates_1wc6y_175";
1251
+ const expanded = "_expanded_1wc6y_188";
1252
+ const userArea = "_userArea_1wc6y_195";
1253
+ const userName = "_userName_1wc6y_202";
1254
+ const userActions = "_userActions_1wc6y_216";
1255
+ const readOnlyEnvironmentIcon = "_readOnlyEnvironmentIcon_1wc6y_228";
951
1256
  const style0 = {
952
1257
  sideMenu,
953
1258
  logo,
@@ -957,7 +1262,8 @@ const style0 = {
957
1262
  expanded,
958
1263
  userArea,
959
1264
  userName,
960
- userActions
1265
+ userActions,
1266
+ readOnlyEnvironmentIcon
961
1267
  };
962
1268
  const cssModules = {
963
1269
  "$style": style0