n8n-editor-ui 1.72.1 → 1.73.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 (103) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-WpdLQ_Lc.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DfdMypiE.js} +1 -1
  2. package/dist/assets/{AuthView-BP3bsQpK.css → AuthView-CvfW_aKu.css} +5 -12
  3. package/dist/assets/{AuthView-xWm2P-0B.js → AuthView-ns622vck.js} +13 -39
  4. package/dist/assets/{CanvasChat-CpplEK_c.js → CanvasChat-CxcfSR2i.js} +3 -3
  5. package/dist/assets/{CanvasControls-CNOZvEmR.js → CanvasControls-pos7-QhU.js} +1 -1
  6. package/dist/assets/{ChangePasswordView-Bx4HKBs9.js → ChangePasswordView-Db0MLvV3.js} +3 -2
  7. package/dist/assets/CollectionParameter-DYy0fmgJ.js +4 -0
  8. package/dist/assets/{ConcurrentExecutionsHeader-dMskl4He.js → ConcurrentExecutionsHeader-D35VlIVA.js} +2 -2
  9. package/dist/assets/{CredentialsView-DYmrbOcr.js → CredentialsView-BV4NcyAR.js} +4 -5
  10. package/dist/assets/{ErrorView-DpKWfKAY.js → ErrorView-ClpY9Omy.js} +1 -1
  11. package/dist/assets/{ExecutionsView-a2Slm2v9.js → ExecutionsView-CqWfQ-OS.js} +5 -6
  12. package/dist/assets/{FileSaver.min-BiLlhrlQ.js → FileSaver.min-gIFS8BdZ.js} +1 -1
  13. package/dist/assets/FixedCollectionParameter-YwQknIIC.css +70 -0
  14. package/dist/assets/{FixedCollectionParameter-DMiADFki.js → FixedCollectionParameter-x6YwFDm3.js} +83 -95
  15. package/dist/assets/{ForgotMyPasswordView-RLODqWeW.js → ForgotMyPasswordView-BgI4UOal.js} +3 -2
  16. package/dist/assets/Logo-1JT6Fq4s.css +38 -0
  17. package/dist/assets/Logo-DkVmhuQi.js +121 -0
  18. package/dist/assets/{MainHeader-Bg4Jr0GW.css → MainHeader-B1mQLyCP.css} +10 -10
  19. package/dist/assets/{MainHeader-CZBWRbIF.js → MainHeader-DzT-lrog.js} +10 -10
  20. package/dist/assets/{MainSidebar-Cm-l0HUG.js → MainSidebar-5Pl77alo.js} +267 -43
  21. package/dist/assets/{MainSidebar-B_Q71vG8.css → MainSidebar-BQss-EVY.css} +53 -31
  22. package/dist/assets/{NodeCreation-Bycww9rf.js → NodeCreation-CuUKKWoi.js} +6 -11
  23. package/dist/assets/{NodeCreator-BrgHuvb2.js → NodeCreator-D7v1eC6a.js} +14 -28
  24. package/dist/assets/{NodeViewSwitcher-DngiUgY8.css → NodeViewSwitcher-D0jynVNt.css} +66 -54
  25. package/dist/assets/{NodeViewSwitcher-D5JjSNB2.js → NodeViewSwitcher-hKoOeK8j.js} +887 -6867
  26. package/dist/assets/{ProjectCardBadge-B6a5Tl_X.js → ProjectCardBadge-D7xb-Eyd.js} +1 -1
  27. package/dist/assets/ProjectHeader-CY9vPy_p.css +37 -0
  28. package/dist/assets/{ProjectHeader-CUoGk-wO.js → ProjectHeader-K-i88xtf.js} +98 -52
  29. package/dist/assets/{ProjectSettings-BSOa51jE.js → ProjectSettings-BO2wFmU7.js} +2 -3
  30. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-ouQuoTYp.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-a7Fc7Xy7.js} +1 -1
  31. package/dist/assets/{ResourcesListLayout-BKk7DIWo.js → ResourcesListLayout-CRrq5kQe.js} +1 -1
  32. package/dist/assets/{RunDataJson-D7Whxi5x.js → RunDataJson-DklR3U0f.js} +12 -12
  33. package/dist/assets/{RunDataJsonActions-hLh8-Su6.js → RunDataJsonActions-CHdDowSE.js} +3 -3
  34. package/dist/assets/{RunDataSearch-Ds3EGLA6.js → RunDataSearch-DWL0Lv8j.js} +1 -1
  35. package/dist/assets/{RunDataTable-atOC6vYW.js → RunDataTable-C-K-SFOI.js} +2 -2
  36. package/dist/assets/{SamlOnboarding-DuDPZUey.js → SamlOnboarding-CmE16j09.js} +3 -2
  37. package/dist/assets/{SettingsApiView-CFlbEwnS.js → SettingsApiView-Bm7VfYUo.js} +1 -1
  38. package/dist/assets/{SettingsCommunityNodesView-CJrxi3vi.js → SettingsCommunityNodesView-BvoqYDi6.js} +3 -3
  39. package/dist/assets/{SettingsExternalSecrets-BusSlBVI.js → SettingsExternalSecrets-_w5OFPo8.js} +1 -1
  40. package/dist/assets/{SettingsLdapView-BLPKhtjA.js → SettingsLdapView-TS7oUlks.js} +1 -1
  41. package/dist/assets/{SettingsLogStreamingView-DI9OYnte.js → SettingsLogStreamingView-CAarolrh.js} +1 -1
  42. package/dist/assets/{SettingsPersonalView-CwLPEQe5.js → SettingsPersonalView-Dms8_Ph5.js} +1 -1
  43. package/dist/assets/{SettingsSourceControl-BHiwsbh6.js → SettingsSourceControl-P9lNmLfg.js} +1 -1
  44. package/dist/assets/{SettingsSso-BUE-Dg9u.js → SettingsSso-ICCxzOQe.js} +1 -1
  45. package/dist/assets/{SettingsUsageAndPlan-g8SYxLIm.js → SettingsUsageAndPlan-BSEPUc4B.js} +1 -1
  46. package/dist/assets/{SettingsUsersView-DsjbsMkp.js → SettingsUsersView-BzekHfPV.js} +1 -1
  47. package/dist/assets/{SettingsView-BZqGq_NA.js → SettingsView-DupTDURU.js} +1 -1
  48. package/dist/assets/{SetupView-DKcifLmN.js → SetupView-Cq64VV9c.js} +3 -2
  49. package/dist/assets/{SetupWorkflowCredentialsButton-1FX7DWWs.js → SetupWorkflowCredentialsButton-LuQ_SEWx.js} +1 -1
  50. package/dist/assets/{SetupWorkflowFromTemplateView-BI8db6Bn.js → SetupWorkflowFromTemplateView-ClOfcHle.js} +3 -3
  51. package/dist/assets/{SigninView-DzDE1gJb.css → SigninView-BbpzRtoX.css} +7 -12
  52. package/dist/assets/{SigninView-DRl5Z9dU.js → SigninView-DM8DhinJ.js} +16 -15
  53. package/dist/assets/{SignoutView-CD6CNCd4.js → SignoutView-BK-qDL3I.js} +1 -1
  54. package/dist/assets/{SignupView-BUIFD8_L.js → SignupView-CWOVKxEj.js} +3 -2
  55. package/dist/assets/{TemplateDetails-BZy8nHAa.js → TemplateDetails-DUTNl1QK.js} +3 -3
  56. package/dist/assets/{TemplateList-DdYIfcdc.js → TemplateList-DYRBepI5.js} +1 -1
  57. package/dist/assets/{TemplatesCollectionView-a9gOg1oh.js → TemplatesCollectionView-BxG1bRhA.js} +5 -5
  58. package/dist/assets/{TemplatesSearchView-C_qp2w-Y.js → TemplatesSearchView-UBZQnh-e.js} +3 -3
  59. package/dist/assets/{TemplatesView-Srd2qTc6.js → TemplatesView-mU_A1pwb.js} +1 -1
  60. package/dist/assets/{TemplatesWorkflowView-CDkCoN9X.js → TemplatesWorkflowView-D5N-R1lr.js} +5 -5
  61. package/dist/assets/{TestDefinitionEditView-CgQpahO7.js → TestDefinitionEditView-CAgd51U-.js} +2 -2
  62. package/dist/assets/{TestDefinitionListView-BGJr2Okj.js → TestDefinitionListView-CKSy47GW.js} +2 -2
  63. package/dist/assets/{VariablesView-DBlZthPg.js → VariablesView-DPbCYxLS.js} +2 -2
  64. package/dist/assets/{WorkerView--FWlY_KA.js → WorkerView-CtrrcIx2.js} +4 -4
  65. package/dist/assets/{WorkflowActivator-BbpMhG1U.js → WorkflowActivator-BbwFaJ9a.js} +2 -2
  66. package/dist/assets/{WorkflowExecutionsInfoAccordion-DOpZ49kK.js → WorkflowExecutionsInfoAccordion-D-0JKX5I.js} +1 -1
  67. package/dist/assets/{WorkflowExecutionsLandingPage-CAbWLqG8.js → WorkflowExecutionsLandingPage-C9P1l_M7.js} +2 -2
  68. package/dist/assets/{WorkflowExecutionsPreview-CfUWIIgy.js → WorkflowExecutionsPreview-C05AfyP-.js} +5 -5
  69. package/dist/assets/{WorkflowExecutionsView-DrfZ7QK8.js → WorkflowExecutionsView-qXpp42wG.js} +5 -5
  70. package/dist/assets/{WorkflowHistory-eqsh1yXn.js → WorkflowHistory-CbBn3xYH.js} +3 -3
  71. package/dist/assets/{WorkflowOnboardingView-Kbe8c2_R.js → WorkflowOnboardingView-Cb8Efn6T.js} +1 -1
  72. package/dist/assets/{WorkflowPreview-DKTyMYfO.js → WorkflowPreview-DzTTLI8R.js} +1 -1
  73. package/dist/assets/{WorkflowsView-ClrcrpKc.js → WorkflowsView-BUM-Mmss.js} +6 -7
  74. package/dist/assets/{index-fCEqBD8K.js → index-DYxqsGB9.js} +26088 -15571
  75. package/dist/assets/{index-Bo70cRA3.css → index-LIwDUX8i.css} +298 -395
  76. package/dist/assets/{pushConnection.store-Kmly9nV5.js → pushConnection.store-BVUirLTG.js} +1 -1
  77. package/dist/assets/{templateActions-xeWyRgrU.js → templateActions-CXAWj8IS.js} +1 -1
  78. package/dist/assets/{testDefinition.store.ee-C9BPbACc.js → testDefinition.store.ee-D3IYMf-K.js} +1 -1
  79. package/dist/assets/{useBugReporting-CbgIVUCL.js → useBugReporting-C3NtP4ZZ.js} +1 -1
  80. package/dist/assets/{useExecutionDebugging-Cuf88DQE.js → useExecutionDebugging-BnF8o4vE.js} +1 -1
  81. package/dist/assets/{useExecutionHelpers-BIxUwlsh.js → useExecutionHelpers-7qmdZ0on.js} +1 -1
  82. package/dist/assets/{useNodeViewVersionSwitcher-Eg-dOWbq.js → useNodeViewVersionSwitcher-tFqgPPim.js} +1 -1
  83. package/dist/assets/{usePushConnection-D-iAKJiL.js → usePushConnection-FexDCcd7.js} +2 -2
  84. package/dist/assets/{useRunWorkflow-BXE6bWp2.js → useRunWorkflow-BPsvjsSm.js} +2 -2
  85. package/dist/assets/{useWorkflowActivate-D8cU5eJ_.js → useWorkflowActivate-CIqICdFm.js} +1 -1
  86. package/dist/index.html +2 -2
  87. package/package.json +1 -1
  88. package/vite.config.mts +2 -0
  89. package/dist/assets/CollectionParameter-IbNRc-rP.js +0 -4
  90. package/dist/assets/FixedCollectionParameter-CUxLKPYJ.css +0 -44
  91. package/dist/assets/ProjectHeader-CDl0NBcF.css +0 -21
  92. package/dist/assets/VirtualSchema-CIfwZj8N.css +0 -136
  93. package/dist/assets/VirtualSchema-DkiHWd9N.js +0 -378
  94. package/dist/assets/useGlobalEntityCreation-DGVSN-Im.js +0 -183
  95. package/dist/static/logo/channel/beta-dark.svg +0 -1
  96. package/dist/static/logo/channel/beta.svg +0 -1
  97. package/dist/static/logo/channel/dev-dark.svg +0 -1
  98. package/dist/static/logo/channel/dev.svg +0 -1
  99. package/dist/static/logo/channel/nightly-dark.svg +0 -1
  100. package/dist/static/logo/channel/nightly.svg +0 -1
  101. package/dist/static/logo/collapsed.svg +0 -1
  102. package/dist/static/logo/expanded-dark.svg +0 -1
  103. package/dist/static/logo/expanded.svg +0 -1
@@ -0,0 +1,121 @@
1
+ import { c as openBlock, h as createElementBlock, j as createBaseVNode, d as defineComponent, q as computed, he as useTemplateRef, o as onMounted, hf as useFavicon, i as createVNode, n as normalizeClass, l as unref, e as createBlock, f as createCommentVNode, t as toDisplayString, aa as useCssModule, _ as _export_sfc } from "./index-DYxqsGB9.js";
2
+ const _hoisted_1$1 = {
3
+ xmlns: "http://www.w3.org/2000/svg",
4
+ width: "30",
5
+ height: "30"
6
+ };
7
+ function render$1(_ctx, _cache) {
8
+ return openBlock(), createElementBlock("svg", _hoisted_1$1, _cache[0] || (_cache[0] = [
9
+ createBaseVNode("path", {
10
+ fill: "#EA4B71",
11
+ "fill-rule": "evenodd",
12
+ d: "M27.2 16.4a3.2 3.2 0 0 1-3.1-2.4h-3.667a1.6 1.6 0 0 0-1.578 1.337l-.132.79A3.2 3.2 0 0 1 17.683 18a3.2 3.2 0 0 1 1.04 1.874l.132.789A1.6 1.6 0 0 0 20.433 22h.468a3.201 3.201 0 0 1 6.299.8 3.2 3.2 0 0 1-6.3.8h-.467a3.2 3.2 0 0 1-3.156-2.674l-.132-.789a1.6 1.6 0 0 0-1.578-1.337h-1.268a3.201 3.201 0 0 1-6.198 0H6.299A3.201 3.201 0 0 1 0 18a3.2 3.2 0 0 1 6.3-.8h1.8a3.201 3.201 0 0 1 6.2 0h1.267a1.6 1.6 0 0 0 1.578-1.337l.132-.79a3.2 3.2 0 0 1 3.156-2.673h3.668a3.201 3.201 0 0 1 6.299.8 3.2 3.2 0 0 1-3.2 3.2m0-1.6a1.6 1.6 0 1 0 0-3.2 1.6 1.6 0 0 0 0 3.2m-24 4.8a1.6 1.6 0 1 0 0-3.2 1.6 1.6 0 0 0 0 3.2m9.6-1.6a1.6 1.6 0 1 1-3.2 0 1.6 1.6 0 0 1 3.2 0m12.8 4.8a1.6 1.6 0 1 1-3.2 0 1.6 1.6 0 0 1 3.2 0",
13
+ "clip-rule": "evenodd"
14
+ }, null, -1)
15
+ ]));
16
+ }
17
+ const LogoIcon = { render: render$1 };
18
+ const _hoisted_1 = {
19
+ width: "26",
20
+ height: "30"
21
+ };
22
+ function render(_ctx, _cache) {
23
+ return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
24
+ createBaseVNode("g", { fill: "#101330" }, [
25
+ createBaseVNode("path", {
26
+ "fill-rule": "evenodd",
27
+ d: "M15.002 16.918v-.076c.558-.28 1.116-.762 1.116-1.716 0-1.372-1.13-2.198-2.69-2.198-1.598 0-2.74.877-2.74 2.224 0 .915.533 1.41 1.116 1.69v.076a2.16 2.16 0 0 0-1.42 2.059c0 1.385 1.141 2.351 3.032 2.351 1.89 0 2.994-.966 2.994-2.351a2.16 2.16 0 0 0-1.408-2.059m-1.587-2.82c.635 0 1.104.406 1.104 1.092s-.482 1.093-1.103 1.093c-.622 0-1.142-.407-1.142-1.093 0-.699.495-1.093 1.142-1.093m0 6.01c-.735 0-1.332-.47-1.332-1.27 0-.725.495-1.272 1.32-1.272.812 0 1.307.534 1.307 1.297 0 .775-.571 1.245-1.294 1.245",
28
+ "clip-rule": "evenodd"
29
+ }),
30
+ createBaseVNode("path", { d: "M18.367 21.2h1.624v-3.442c0-1.131.685-1.627 1.46-1.627.76 0 1.357.509 1.357 1.55v3.52h1.624V17.35c0-1.664-.964-2.63-2.474-2.63-.952 0-1.485.381-1.865.877h-.102l-.14-.75h-1.484zm-14.376 0H2.367v-6.352h1.485l.14.75h.1c.381-.496.914-.877 1.866-.877 1.51 0 2.474.966 2.474 2.63v3.85H6.808V17.68c0-1.041-.596-1.55-1.358-1.55-.774 0-1.459.496-1.459 1.627z" })
31
+ ], -1)
32
+ ]));
33
+ }
34
+ const LogoText = { render };
35
+ const _sfc_main = /* @__PURE__ */ defineComponent({
36
+ __name: "Logo",
37
+ props: {
38
+ location: {},
39
+ collapsed: { type: Boolean },
40
+ releaseChannel: {}
41
+ },
42
+ setup(__props) {
43
+ const props = __props;
44
+ const { location, releaseChannel } = props;
45
+ const showReleaseChannelTag = computed(() => {
46
+ if (releaseChannel === "stable") return false;
47
+ if (location === "authView") return true;
48
+ return !props.collapsed;
49
+ });
50
+ const showLogoText = computed(() => {
51
+ if (location === "authView") return true;
52
+ return !props.collapsed;
53
+ });
54
+ const $style = useCssModule();
55
+ const containerClasses = computed(() => {
56
+ if (location === "authView") {
57
+ return [$style.logoContainer, $style.authView];
58
+ }
59
+ return [
60
+ $style.logoContainer,
61
+ $style.sidebar,
62
+ props.collapsed ? $style.sidebarCollapsed : $style.sidebarExpanded
63
+ ];
64
+ });
65
+ const svg = useTemplateRef("logo");
66
+ onMounted(() => {
67
+ if (releaseChannel === "stable" || !("createObjectURL" in URL)) return;
68
+ const logoEl = svg.value.$el;
69
+ const logoColor = releaseChannel === "dev" ? "#838383" : "#E9984B";
70
+ logoEl.querySelector("path")?.setAttribute("fill", logoColor);
71
+ const blob = new Blob([logoEl.outerHTML], { type: "image/svg+xml" });
72
+ useFavicon(URL.createObjectURL(blob));
73
+ });
74
+ return (_ctx, _cache) => {
75
+ return openBlock(), createElementBlock("div", {
76
+ class: normalizeClass(containerClasses.value),
77
+ "data-test-id": "n8n-logo"
78
+ }, [
79
+ createVNode(unref(LogoIcon), {
80
+ class: normalizeClass(unref($style).logo),
81
+ ref: "logo"
82
+ }, null, 8, ["class"]),
83
+ showLogoText.value ? (openBlock(), createBlock(unref(LogoText), {
84
+ key: 0,
85
+ class: normalizeClass(unref($style).logoText)
86
+ }, null, 8, ["class"])) : createCommentVNode("", true),
87
+ showReleaseChannelTag.value ? (openBlock(), createElementBlock("div", {
88
+ key: 1,
89
+ size: "small",
90
+ round: "",
91
+ class: normalizeClass(unref($style).releaseChannelTag)
92
+ }, toDisplayString(unref(releaseChannel)), 3)) : createCommentVNode("", true)
93
+ ], 2);
94
+ };
95
+ }
96
+ });
97
+ const logoContainer = "_logoContainer_r87yw_1";
98
+ const logoText = "_logoText_r87yw_6";
99
+ const releaseChannelTag = "_releaseChannelTag_r87yw_13";
100
+ const authView = "_authView_r87yw_27";
101
+ const sidebar = "_sidebar_r87yw_32";
102
+ const sidebarExpanded = "_sidebarExpanded_r87yw_36";
103
+ const logo = "_logo_r87yw_1";
104
+ const sidebarCollapsed = "_sidebarCollapsed_r87yw_40";
105
+ const style0 = {
106
+ logoContainer,
107
+ logoText,
108
+ releaseChannelTag,
109
+ authView,
110
+ sidebar,
111
+ sidebarExpanded,
112
+ logo,
113
+ sidebarCollapsed
114
+ };
115
+ const cssModules = {
116
+ "$style": style0
117
+ };
118
+ const Logo = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
119
+ export {
120
+ Logo as L
121
+ };
@@ -77,17 +77,17 @@ input[disabled][data-v-87c6f53b] {
77
77
  opacity: 0.5;
78
78
  }._container_iuui0_1 {
79
79
  margin: 0 var(--spacing-4xs);
80
- }.name-container[data-v-7066a25f] {
80
+ }.name-container[data-v-8134859e] {
81
81
  margin-right: 20px;
82
82
  }
83
- .name-container[data-v-7066a25f] .el-input {
83
+ .name-container[data-v-8134859e] .el-input {
84
84
  padding: 0;
85
85
  }
86
- .name[data-v-7066a25f] {
86
+ .name[data-v-8134859e] {
87
87
  color: var(--color-text-dark);
88
88
  font-size: 15px;
89
89
  }
90
- .activator[data-v-7066a25f] {
90
+ .activator[data-v-8134859e] {
91
91
  color: var(--color-text-dark);
92
92
  font-weight: 400;
93
93
  font-size: 13px;
@@ -95,32 +95,32 @@ input[disabled][data-v-87c6f53b] {
95
95
  display: flex;
96
96
  align-items: center;
97
97
  }
98
- .activator > span[data-v-7066a25f] {
98
+ .activator > span[data-v-8134859e] {
99
99
  margin-right: 5px;
100
100
  }
101
- .add-tag[data-v-7066a25f] {
101
+ .add-tag[data-v-8134859e] {
102
102
  font-size: 12px;
103
103
  padding: 20px 0;
104
104
  color: var(--color-text-light);
105
105
  font-weight: 600;
106
106
  white-space: nowrap;
107
107
  }
108
- .add-tag[data-v-7066a25f]:hover {
108
+ .add-tag[data-v-8134859e]:hover {
109
109
  color: var(--color-primary);
110
110
  }
111
- .tags[data-v-7066a25f] {
111
+ .tags[data-v-8134859e] {
112
112
  display: flex;
113
113
  align-items: center;
114
114
  width: 100%;
115
115
  flex: 1;
116
116
  margin-right: 20px;
117
117
  }
118
- .tags-edit[data-v-7066a25f] {
118
+ .tags-edit[data-v-8134859e] {
119
119
  min-width: 100px;
120
120
  width: 100%;
121
121
  max-width: 460px;
122
122
  }
123
- .actions[data-v-7066a25f] {
123
+ .actions[data-v-8134859e] {
124
124
  display: flex;
125
125
  align-items: center;
126
126
  gap: var(--spacing-m);
@@ -1,11 +1,11 @@
1
- import { d as defineComponent, q as computed, c as openBlock, h as createElementBlock, s as renderSlot, v as shorten, r as ref, x as onBeforeUnmount, o as onMounted, y as nextTick, z as debounce, e as createBlock, w as withCtx, j as createBaseVNode, A as renderList, n as normalizeClass, k as createTextVNode, t as toDisplayString, l as unref, i as createVNode, F as Fragment, B as normalizeStyle, C as createEventBus, m as resolveComponent, _ as _export_sfc, D as useTagsStore, E as onClickOutside, G as withKeys, H as watch, I as withModifiers, J as useDebounce, K as useUIStore, L as getBannerRowHeight, N as BREAKPOINT_SM, O as BREAKPOINT_XL, P as BREAKPOINT_LG, Q as BREAKPOINT_MD, g as useI18n, V as VIEWS, R as defineStore, S as STORES, T as useWorkflowsStore, u as useUsersStore, U as useRoute, W as TIME, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, Y as useDocumentVisibility, f as createCommentVNode, Z as useRootStore, $ as useCanvasStore, p as useSettingsStore, a0 as useSourceControlStore, a1 as useProjectsStore, a2 as useNpsSurveyStore, b as useRouter, a as useToast, a3 as useDocumentTitle, a4 as useWorkflowHelpers, a5 as usePageRedirectionHelper, a6 as MAX_WORKFLOW_NAME_LENGTH, a7 as _sfc_main$f, a8 as EnterpriseEditionFeature, a9 as SaveButton, aa as useCssModule, ab as WORKFLOW_SHARE_MODAL_KEY, ac as nodeViewEventBus, ad as WORKFLOW_MENU_ACTIONS, ae as MODAL_CONFIRM, af as MODAL_CLOSE, ag as WORKFLOW_SETTINGS_MODAL_KEY, ah as SOURCE_CONTROL_PUSH_MODAL_KEY, ai as VALID_WORKFLOW_IMPORT_URL_REGEX, aj as DUPLICATE_MODAL_KEY, ak as useTelemetry, al as useMessage, am as getResourcePermissions, an as hasPermission, ao as MAIN_HEADER_TABS, ap as hyphenate, aq as h, ar as hasOwn, as as __vitePreload, at as useNDVStore, au as useExecutionsStore, av as usePostHog, aw as useLocalStorage, ax as onBeforeMount, ay as withDirectives, az as vShow, aA as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, aB as WORKFLOW_EVALUATION_EXPERIMENT, aC as STICKY_NODE_TYPE } from "./index-fCEqBD8K.js";
2
- import { _ as _sfc_main$g } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-ouQuoTYp.js";
3
- import { W as WorkflowActivator } from "./WorkflowActivator-BbpMhG1U.js";
4
- import { u as useBeforeUnload, a as useNodeViewVersionSwitcher } from "./useNodeViewVersionSwitcher-Eg-dOWbq.js";
5
- import { u as usePushConnectionStore } from "./pushConnection.store-Kmly9nV5.js";
6
- import { F as FileSaver_minExports } from "./FileSaver.min-BiLlhrlQ.js";
7
- import { u as usePushConnection } from "./usePushConnection-D-iAKJiL.js";
8
- import "./useWorkflowActivate-D8cU5eJ_.js";
1
+ import { d as defineComponent, q as computed, c as openBlock, h as createElementBlock, s as renderSlot, v as shorten, r as ref, x as onBeforeUnmount, o as onMounted, y as nextTick, z as debounce, e as createBlock, w as withCtx, j as createBaseVNode, A as renderList, F as Fragment, B as normalizeStyle, l as unref, C as createEventBus, m as resolveComponent, n as normalizeClass, k as createTextVNode, t as toDisplayString, i as createVNode, _ as _export_sfc, D as useTagsStore, E as onClickOutside, G as withKeys, H as watch, I as withModifiers, J as useDebounce, K as useUIStore, L as getBannerRowHeight, N as BREAKPOINT_SM, O as BREAKPOINT_XL, P as BREAKPOINT_LG, Q as BREAKPOINT_MD, g as useI18n, V as VIEWS, R as defineStore, S as STORES, T as useWorkflowsStore, u as useUsersStore, U as useRoute, W as TIME, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, Y as useDocumentVisibility, f as createCommentVNode, Z as useRootStore, $ as useCanvasStore, p as useSettingsStore, a0 as useSourceControlStore, a1 as useProjectsStore, a2 as useNpsSurveyStore, b as useRouter, a as useToast, a3 as useDocumentTitle, a4 as useWorkflowHelpers, a5 as usePageRedirectionHelper, a6 as MAX_WORKFLOW_NAME_LENGTH, a7 as _sfc_main$f, a8 as EnterpriseEditionFeature, a9 as SaveButton, aa as useCssModule, ab as WORKFLOW_SHARE_MODAL_KEY, ac as nodeViewEventBus, ad as WORKFLOW_MENU_ACTIONS, ae as MODAL_CONFIRM, af as MODAL_CLOSE, ag as WORKFLOW_SETTINGS_MODAL_KEY, ah as SOURCE_CONTROL_PUSH_MODAL_KEY, ai as VALID_WORKFLOW_IMPORT_URL_REGEX, aj as DUPLICATE_MODAL_KEY, ak as useTelemetry, al as useMessage, am as getResourcePermissions, an as hasPermission, ao as MAIN_HEADER_TABS, ap as hyphenate, aq as h, ar as hasOwn, as as __vitePreload, at as useNDVStore, au as useExecutionsStore, av as usePostHog, aw as useLocalStorage, ax as onBeforeMount, ay as withDirectives, az as vShow, aA as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, aB as WORKFLOW_EVALUATION_EXPERIMENT, aC as STICKY_NODE_TYPE } from "./index-DYxqsGB9.js";
2
+ import { _ as _sfc_main$g } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-a7Fc7Xy7.js";
3
+ import { W as WorkflowActivator } from "./WorkflowActivator-BbwFaJ9a.js";
4
+ import { u as useBeforeUnload, a as useNodeViewVersionSwitcher } from "./useNodeViewVersionSwitcher-tFqgPPim.js";
5
+ import { u as usePushConnectionStore } from "./pushConnection.store-BVUirLTG.js";
6
+ import { F as FileSaver_minExports } from "./FileSaver.min-gIFS8BdZ.js";
7
+ import { u as usePushConnection } from "./usePushConnection-FexDCcd7.js";
8
+ import "./useWorkflowActivate-CIqICdFm.js";
9
9
  const _hoisted_1$8 = ["title", "data-test-id"];
10
10
  const DEFAULT_WORKFLOW_NAME_LIMIT = 25;
11
11
  const WORKFLOW_NAME_END_COUNT_TO_KEEP = 4;
@@ -1259,7 +1259,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1259
1259
  if (!id || ["new", PLACEHOLDER_EMPTY_WORKFLOW_ID].includes(id)) {
1260
1260
  let toastTitle = locale.baseText("workflows.create.personal.toast.title");
1261
1261
  let toastText = locale.baseText("workflows.create.personal.toast.text");
1262
- if (projectsStore.currentProject) {
1262
+ if (projectsStore.currentProject && projectsStore.currentProject.id !== projectsStore.personalProject?.id) {
1263
1263
  toastTitle = locale.baseText("workflows.create.project.toast.title", {
1264
1264
  interpolate: { projectName: projectsStore.currentProject.name ?? "" }
1265
1265
  });
@@ -1498,7 +1498,7 @@ const style1 = {
1498
1498
  const cssModules$1 = {
1499
1499
  "$style": style1
1500
1500
  };
1501
- const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$1], ["__scopeId", "data-v-7066a25f"]]);
1501
+ const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$1], ["__scopeId", "data-v-8134859e"]]);
1502
1502
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1503
1503
  __name: "TabBar",
1504
1504
  props: {
@@ -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 N8nNavigationDropdown, aO as createSlots, aP as useExternalHooks, aQ as VERSIONS_MODAL_KEY, aR as ABOUT_MODAL_KEY } from "./index-DYxqsGB9.js";
2
+ import { u as useBugReporting } from "./useBugReporting-C3NtP4ZZ.js";
3
+ import { L as Logo } from "./Logo-DkVmhuQi.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 }
@@ -335,12 +343,199 @@ 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 settingsStore = useSettingsStore();
349
+ const cloudPlanStore = useCloudPlanStore();
350
+ const projectsStore = useProjectsStore();
351
+ const sourceControlStore = useSourceControlStore();
352
+ const router = useRouter();
353
+ const i18n = useI18n();
354
+ const toast = useToast();
355
+ const isCreatingProject = ref(false);
356
+ const displayProjects = computed(
357
+ () => sortByProperty(
358
+ "name",
359
+ projectsStore.myProjects.filter((p) => p.type === "team")
360
+ )
361
+ );
362
+ const disabledWorkflow = (scopes = []) => sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(scopes).workflow.create;
363
+ const disabledCredential = (scopes = []) => sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(scopes).credential.create;
364
+ const menu = computed(() => {
365
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
366
+ return [
367
+ {
368
+ id: "workflow",
369
+ title: "Workflow",
370
+ route: {
371
+ name: VIEWS.NEW_WORKFLOW,
372
+ query: {
373
+ projectId: projectsStore.personalProject?.id
374
+ }
375
+ }
376
+ },
377
+ {
378
+ id: "credential",
379
+ title: "Credential",
380
+ route: {
381
+ name: VIEWS.CREDENTIALS,
382
+ params: {
383
+ projectId: projectsStore.personalProject?.id,
384
+ credentialId: "create"
385
+ }
386
+ }
387
+ },
388
+ {
389
+ id: CREATE_PROJECT_ID,
390
+ title: "Project",
391
+ disabled: true
392
+ }
393
+ ];
394
+ }
395
+ return [
396
+ {
397
+ id: "workflow",
398
+ title: "Workflow",
399
+ submenu: [
400
+ {
401
+ id: "workflow-title",
402
+ title: "Create in",
403
+ disabled: true
404
+ },
405
+ {
406
+ id: "workflow-personal",
407
+ title: i18n.baseText("projects.menu.personal"),
408
+ icon: "user",
409
+ disabled: disabledWorkflow(projectsStore.personalProject?.scopes),
410
+ route: {
411
+ name: VIEWS.NEW_WORKFLOW,
412
+ query: { projectId: projectsStore.personalProject?.id }
413
+ }
414
+ },
415
+ ...displayProjects.value.map((project) => ({
416
+ id: `workflow-${project.id}`,
417
+ title: project.name,
418
+ icon: "layer-group",
419
+ disabled: disabledWorkflow(project.scopes),
420
+ route: {
421
+ name: VIEWS.NEW_WORKFLOW,
422
+ query: { projectId: project.id }
423
+ }
424
+ }))
425
+ ]
426
+ },
427
+ {
428
+ id: "credential",
429
+ title: "Credential",
430
+ submenu: [
431
+ {
432
+ id: "credential-title",
433
+ title: "Create in",
434
+ disabled: true
435
+ },
436
+ {
437
+ id: "credential-personal",
438
+ title: i18n.baseText("projects.menu.personal"),
439
+ icon: "user",
440
+ disabled: disabledCredential(projectsStore.personalProject?.scopes),
441
+ route: {
442
+ name: VIEWS.PROJECTS_CREDENTIALS,
443
+ params: { projectId: projectsStore.personalProject?.id, credentialId: "create" }
444
+ }
445
+ },
446
+ ...displayProjects.value.map((project) => ({
447
+ id: `credential-${project.id}`,
448
+ title: project.name,
449
+ icon: "layer-group",
450
+ disabled: disabledCredential(project.scopes),
451
+ route: {
452
+ name: VIEWS.PROJECTS_CREDENTIALS,
453
+ params: { projectId: project.id, credentialId: "create" }
454
+ }
455
+ }))
456
+ ]
457
+ },
458
+ {
459
+ id: CREATE_PROJECT_ID,
460
+ title: "Project",
461
+ disabled: !projectsStore.canCreateProjects
462
+ }
463
+ ];
464
+ });
465
+ const createProject = async () => {
466
+ isCreatingProject.value = true;
467
+ try {
468
+ const newProject = await projectsStore.createProject({
469
+ name: i18n.baseText("projects.settings.newProjectName")
470
+ });
471
+ await router.push({ name: VIEWS.PROJECT_SETTINGS, params: { projectId: newProject.id } });
472
+ toast.showMessage({
473
+ title: i18n.baseText("projects.settings.save.successful.title", {
474
+ interpolate: { projectName: newProject.name }
475
+ }),
476
+ type: "success"
477
+ });
478
+ } catch (error) {
479
+ toast.showError(error, i18n.baseText("projects.error.title"));
480
+ } finally {
481
+ isCreatingProject.value = false;
482
+ }
483
+ };
484
+ const handleSelect = (id) => {
485
+ if (id !== CREATE_PROJECT_ID) return;
486
+ if (projectsStore.canCreateProjects) {
487
+ void createProject();
488
+ return;
489
+ }
490
+ void usePageRedirectionHelper().goToUpgrade("rbac", "upgrade-rbac");
491
+ };
492
+ const projectsLimitReachedMessage = computed(() => {
493
+ if (settingsStore.isCloudDeployment) {
494
+ return i18n.baseText("projects.create.limitReached.cloud", {
495
+ adjustToNumber: projectsStore.teamProjectsLimit,
496
+ interpolate: {
497
+ planName: cloudPlanStore.currentPlanData?.displayName ?? "",
498
+ limit: projectsStore.teamProjectsLimit
499
+ }
500
+ });
501
+ }
502
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
503
+ return i18n.baseText("projects.create.limitReached.self");
504
+ }
505
+ return i18n.baseText("projects.create.limitReached", {
506
+ adjustToNumber: projectsStore.teamProjectsLimit,
507
+ interpolate: {
508
+ limit: projectsStore.teamProjectsLimit
509
+ }
510
+ });
511
+ });
512
+ const createProjectAppendSlotName = computed(() => `item.append.${CREATE_PROJECT_ID}`);
513
+ const upgradeLabel = computed(() => {
514
+ if (settingsStore.isCloudDeployment) {
515
+ return i18n.baseText("generic.upgrade");
516
+ }
517
+ if (!projectsStore.isTeamProjectFeatureEnabled) {
518
+ return i18n.baseText("generic.enterprise");
519
+ }
520
+ return i18n.baseText("generic.upgrade");
521
+ });
522
+ return {
523
+ menu,
524
+ handleSelect,
525
+ createProjectAppendSlotName,
526
+ projectsLimitReachedMessage,
527
+ upgradeLabel,
528
+ createProject,
529
+ isCreatingProject,
530
+ displayProjects
531
+ };
532
+ };
338
533
  const _hoisted_1$1 = {
339
534
  key: 0,
340
535
  class: "mt-m mb-m"
341
536
  };
342
- const _hoisted_2$1 = {
343
- key: 3,
537
+ const _hoisted_2 = {
538
+ key: 4,
344
539
  class: "mb-m"
345
540
  };
346
541
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -353,6 +548,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
353
548
  const props = __props;
354
549
  const locale = useI18n();
355
550
  const projectsStore = useProjectsStore();
551
+ const globalEntityCreation = useGlobalEntityCreation();
552
+ const isCreatingProject = computed(() => globalEntityCreation.isCreatingProject.value);
553
+ const displayProjects = computed(() => globalEntityCreation.displayProjects.value);
356
554
  const home = computed(() => ({
357
555
  id: "home",
358
556
  label: locale.baseText("projects.menu.overview"),
@@ -383,15 +581,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
383
581
  }
384
582
  }
385
583
  }));
386
- const displayProjects = computed(
387
- () => sortByProperty(
388
- "name",
389
- projectsStore.myProjects.filter((p) => p.type === "team")
390
- )
584
+ const showAddFirstProject = computed(
585
+ () => projectsStore.isTeamProjectFeatureEnabled && !displayProjects.value.length
391
586
  );
392
587
  return (_ctx, _cache) => {
393
588
  const _component_N8nMenuItem = resolveComponent("N8nMenuItem");
394
589
  const _component_ElMenu = resolveComponent("ElMenu");
590
+ const _component_N8nButton = resolveComponent("N8nButton");
395
591
  const _component_N8nText = resolveComponent("N8nText");
396
592
  return openBlock(), createElementBlock("div", {
397
593
  class: normalizeClass(_ctx.$style.projects)
@@ -414,12 +610,21 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
414
610
  unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_1$1)) : createCommentVNode("", true),
415
611
  !props.collapsed && unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createBlock(_component_N8nText, {
416
612
  key: 1,
417
- class: normalizeClass(_ctx.$style.projectsLabel),
613
+ class: normalizeClass([_ctx.$style.projectsLabel]),
418
614
  tag: "h3",
419
615
  bold: ""
420
616
  }, {
421
617
  default: withCtx(() => [
422
- createBaseVNode("span", null, toDisplayString(unref(locale).baseText("projects.menu.title")), 1)
618
+ createBaseVNode("span", null, toDisplayString(unref(locale).baseText("projects.menu.title")), 1),
619
+ unref(projectsStore).canCreateProjects ? (openBlock(), createBlock(_component_N8nButton, {
620
+ key: 0,
621
+ icon: "plus",
622
+ text: "",
623
+ "data-test-id": "project-plus-button",
624
+ disabled: isCreatingProject.value,
625
+ class: normalizeClass(_ctx.$style.plusBtn),
626
+ onClick: unref(globalEntityCreation).createProject
627
+ }, null, 8, ["disabled", "class", "onClick"])) : createCommentVNode("", true)
423
628
  ]),
424
629
  _: 1
425
630
  }, 8, ["class"])) : createCommentVNode("", true),
@@ -452,29 +657,51 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
452
657
  ]),
453
658
  _: 1
454
659
  }, 8, ["collapse", "class"])) : createCommentVNode("", true),
455
- unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_2$1)) : createCommentVNode("", true)
660
+ showAddFirstProject.value ? (openBlock(), createBlock(_component_N8nButton, {
661
+ key: 3,
662
+ class: normalizeClass([
663
+ _ctx.$style.addFirstProjectBtn,
664
+ {
665
+ [_ctx.$style.collapsed]: props.collapsed
666
+ }
667
+ ]),
668
+ disabled: isCreatingProject.value,
669
+ type: "tertiary",
670
+ icon: "plus",
671
+ "data-test-id": "add-first-project-button",
672
+ onClick: unref(globalEntityCreation).createProject
673
+ }, {
674
+ default: withCtx(() => [
675
+ createTextVNode(toDisplayString(unref(locale).baseText("projects.menu.addFirstProject")), 1)
676
+ ]),
677
+ _: 1
678
+ }, 8, ["class", "disabled", "onClick"])) : createCommentVNode("", true),
679
+ unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_2)) : createCommentVNode("", true)
456
680
  ], 2);
457
681
  };
458
682
  }
459
683
  });
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";
684
+ const projects = "_projects_1etb9_1";
685
+ const plusBtn = "_plusBtn_1etb9_8";
686
+ const projectItems = "_projectItems_1etb9_12";
687
+ const upgradeLink = "_upgradeLink_1etb9_18";
688
+ const collapsed = "_collapsed_1etb9_23";
689
+ const projectsLabel = "_projectsLabel_1etb9_27";
690
+ const addFirstProjectBtn = "_addFirstProjectBtn_1etb9_50";
465
691
  const style0$1 = {
466
692
  projects,
693
+ plusBtn,
467
694
  projectItems,
468
695
  upgradeLink,
469
696
  collapsed,
470
- projectsLabel
697
+ projectsLabel,
698
+ addFirstProjectBtn
471
699
  };
472
700
  const cssModules$1 = {
473
701
  "$style": style0$1
474
702
  };
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 = {
703
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-6e17621d"]]);
704
+ const _hoisted_1 = {
478
705
  class: "ml-3xs",
479
706
  "data-test-id": "main-sidebar-user-menu"
480
707
  };
@@ -610,9 +837,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
610
837
  ]);
611
838
  const createBtn = ref();
612
839
  const isCollapsed = computed(() => uiStore.sidebarMenuCollapsed);
613
- const logoPath = computed(
614
- () => basePath.value + (isCollapsed.value ? "static/logo/collapsed.svg" : uiStore.logo)
615
- );
616
840
  const hasVersionUpdates = computed(
617
841
  () => settingsStore.settings.releaseChannel === "stable" && versionsStore.hasVersionUpdates
618
842
  );
@@ -718,7 +942,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
718
942
  menu,
719
943
  handleSelect: handleMenuSelect,
720
944
  createProjectAppendSlotName,
721
- projectsLimitReachedMessage
945
+ projectsLimitReachedMessage,
946
+ upgradeLabel
722
947
  } = useGlobalEntityCreation();
723
948
  onClickOutside(createBtn, () => {
724
949
  createBtn.value?.close();
@@ -767,12 +992,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
767
992
  createBaseVNode("div", {
768
993
  class: normalizeClass(_ctx.$style.logo)
769
994
  }, [
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),
995
+ createVNode(Logo, {
996
+ location: "sidebar",
997
+ collapsed: isCollapsed.value,
998
+ "release-channel": unref(settingsStore).settings.releaseChannel
999
+ }, null, 8, ["collapsed", "release-channel"]),
776
1000
  createVNode(unref(N8nNavigationDropdown), {
777
1001
  ref_key: "createBtn",
778
1002
  ref: createBtn,
@@ -794,7 +1018,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
794
1018
  onClick: ($event) => unref(handleMenuSelect)(item.id)
795
1019
  }, {
796
1020
  default: withCtx(() => [
797
- createTextVNode(toDisplayString(unref(i18n).baseText("generic.upgrade")), 1)
1021
+ createTextVNode(toDisplayString(unref(upgradeLabel)), 1)
798
1022
  ]),
799
1023
  _: 2
800
1024
  }, 1032, ["onClick"])
@@ -862,7 +1086,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
862
1086
  ref: user,
863
1087
  class: normalizeClass(_ctx.$style.userArea)
864
1088
  }, [
865
- createBaseVNode("div", _hoisted_2, [
1089
+ createBaseVNode("div", _hoisted_1, [
866
1090
  createVNode(_component_ElDropdown, {
867
1091
  placement: "right-end",
868
1092
  trigger: "click",
@@ -939,15 +1163,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
939
1163
  };
940
1164
  }
941
1165
  });
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";
1166
+ const sideMenu = "_sideMenu_1adju_1";
1167
+ const logo = "_logo_1adju_10";
1168
+ const sideMenuCollapsed = "_sideMenuCollapsed_1adju_25";
1169
+ const sideMenuCollapseButton = "_sideMenuCollapseButton_1adju_34";
1170
+ const updates = "_updates_1adju_53";
1171
+ const expanded = "_expanded_1adju_66";
1172
+ const userArea = "_userArea_1adju_73";
1173
+ const userName = "_userName_1adju_80";
1174
+ const userActions = "_userActions_1adju_94";
951
1175
  const style0 = {
952
1176
  sideMenu,
953
1177
  logo,