n8n-editor-ui 1.67.0 → 1.69.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 (98) hide show
  1. package/dist/assets/AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-RSY0bJ42.js +57 -0
  2. package/dist/assets/{AuthView-DmC24d7S.js → AuthView-CrxWnr-e.js} +1 -1
  3. package/dist/assets/CanvasChat-D1ZEiEqI.js +4167 -0
  4. package/dist/assets/CanvasChat-DKeWqqZz.css +730 -0
  5. package/dist/assets/{CanvasControls-BPXQqeeO.js → CanvasControls-C-GYIweg.js} +6 -5
  6. package/dist/assets/{ChangePasswordView-SC3n2vJc.js → ChangePasswordView-BcJsOCsw.js} +2 -2
  7. package/dist/assets/CollectionParameter-BCa4NW-h.js +4 -0
  8. package/dist/assets/{CredentialsView-B3m9CpEC.js → CredentialsView-C0lKel2q.js} +12 -28
  9. package/dist/assets/{ErrorView-D6M8WlVP.js → ErrorView-4g2OU1Dw.js} +5 -4
  10. package/dist/assets/{ExecutionsFilter-DlZH8tDW.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ce7AgzqR.js} +41 -41
  11. package/dist/assets/{ExecutionsView-DaHtYmF4.js → ExecutionsView-BjrC38YB.js} +28 -37
  12. package/dist/assets/{ExecutionsView-Dfy6JMwb.css → ExecutionsView-DlxsqdiC.css} +44 -38
  13. package/dist/assets/{FileSaver.min-DNytcjKT.js → FileSaver.min-Kzijnshy.js} +1 -1
  14. package/dist/assets/{FixedCollectionParameter-CypxYAFK.js → FixedCollectionParameter-BlCn1bdn.js} +1 -1
  15. package/dist/assets/{ForgotMyPasswordView-BJ6gd5CS.js → ForgotMyPasswordView-DM0y4hNn.js} +2 -2
  16. package/dist/assets/{MainHeader-D56WYRMG.css → MainHeader-CgL_r4xK.css} +78 -24
  17. package/dist/assets/{MainHeader-DniXcGMK.js → MainHeader-D1PkO9vp.js} +154 -45
  18. package/dist/assets/{MainSidebar-NwOfijmV.js → MainSidebar-CGlOacQQ.js} +63 -134
  19. package/dist/assets/{MainSidebar-BRYJRpOA.css → MainSidebar-DL53w2zU.css} +37 -21
  20. package/dist/assets/{NodeCreation-Ce1ct2i3.js → NodeCreation-yT3JgYis.js} +15 -11
  21. package/dist/assets/{NodeCreator-DMLTbzAt.js → NodeCreator-CeYHZgYz.js} +66 -64
  22. package/dist/assets/{NodeViewSwitcher-B9JUn3eY.js → NodeViewSwitcher-DJ9GWTwy.js} +2913 -2815
  23. package/dist/assets/{NodeViewSwitcher-CnP5aYyg.css → NodeViewSwitcher-s2TUlOvE.css} +136 -115
  24. package/dist/assets/{ProjectCardBadge-C3QU-WmO.js → ProjectCardBadge-dGORr1ye.js} +1 -1
  25. package/dist/assets/ProjectHeader-CFoxyI0_.js +216 -0
  26. package/dist/assets/ProjectHeader-CTK_rV3h.css +28 -0
  27. package/dist/assets/{ProjectSettings-BvcEg3hx.js → ProjectSettings-Bgl_JGoT.js} +27 -55
  28. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DlJOpf7N.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-BabWwsdK.js} +1 -1
  29. package/dist/assets/{ResourcesListLayout-Bc4__nvw.js → ResourcesListLayout-B1KB8fTB.js} +3 -46
  30. package/dist/assets/{ResourcesListLayout-Ci-K1bH3.css → ResourcesListLayout-BuxiQpsj.css} +8 -8
  31. package/dist/assets/{RunDataJson-ea5u1EeD.js → RunDataJson-BQRWHoEA.js} +12 -12
  32. package/dist/assets/{RunDataJsonActions-Dflnt8gK.js → RunDataJsonActions-BrABJ_1T.js} +3 -1
  33. package/dist/assets/{RunDataSearch-DKNVmEqa.js → RunDataSearch-kYhI-gst.js} +2 -2
  34. package/dist/assets/RunDataTable-BUXF-nH1.js +673 -0
  35. package/dist/assets/{RunDataTable-ZwoYenSI.css → RunDataTable-enskmmU4.css} +41 -35
  36. package/dist/assets/{SamlOnboarding-CPvGRYUg.js → SamlOnboarding-DI1aQpmq.js} +2 -2
  37. package/dist/assets/{SettingsApiView-BFj9fDL9.js → SettingsApiView-DfdFSKxW.js} +1 -1
  38. package/dist/assets/{SettingsCommunityNodesView-nJFDrtIR.js → SettingsCommunityNodesView-CFGZW601.js} +3 -3
  39. package/dist/assets/{SettingsExternalSecrets-0-mj45K-.js → SettingsExternalSecrets-CzMuyldc.js} +1 -1
  40. package/dist/assets/{SettingsLdapView-BhBxX72w.js → SettingsLdapView-B_aMpNa8.js} +1 -1
  41. package/dist/assets/{SettingsLogStreamingView-CmEJrEOv.js → SettingsLogStreamingView-ByHGVzc1.js} +1 -1
  42. package/dist/assets/{SettingsPersonalView-C__lC8Vv.js → SettingsPersonalView-BpmD5Kqd.js} +1 -1
  43. package/dist/assets/{SettingsSourceControl-CMoS5B5P.js → SettingsSourceControl-DeYPQUBX.js} +1 -1
  44. package/dist/assets/{SettingsSso-DJfrl1Rl.js → SettingsSso-1JSXMGCZ.js} +1 -1
  45. package/dist/assets/{SettingsUsageAndPlan-CWQ5uVrG.js → SettingsUsageAndPlan-CsUyzTgS.js} +1 -1
  46. package/dist/assets/{SettingsUsersView-Cvr6Digb.js → SettingsUsersView-iOvCX1d1.js} +1 -1
  47. package/dist/assets/{SettingsView-DtGga45F.js → SettingsView-WL2khukL.js} +1 -1
  48. package/dist/assets/{SetupView-DkJH96By.js → SetupView-CeWIEjRa.js} +2 -2
  49. package/dist/assets/{SetupWorkflowCredentialsButton-C1Jv_-V5.js → SetupWorkflowCredentialsButton-CqzxyhWQ.js} +1 -1
  50. package/dist/assets/{SetupWorkflowFromTemplateView-WSzVMgC4.js → SetupWorkflowFromTemplateView-HpPUcyfA.js} +3 -3
  51. package/dist/assets/{SigninView-xej8y-Vu.js → SigninView-DuDYUyp-.js} +2 -2
  52. package/dist/assets/{SignoutView-Dc8fBBIm.js → SignoutView-4gm8WRHv.js} +1 -1
  53. package/dist/assets/{SignupView-CKA28Xc8.js → SignupView-DjY8EclM.js} +2 -2
  54. package/dist/assets/{TemplateDetails-Pi49rFlS.js → TemplateDetails-CbfdJ3Zu.js} +2 -2
  55. package/dist/assets/{TemplateList-BncQL783.js → TemplateList-Cc_F6A58.js} +3 -2
  56. package/dist/assets/{TemplatesCollectionView-C9PKPo5y.js → TemplatesCollectionView-BcZLoIe4.js} +7 -7
  57. package/dist/assets/{TemplatesSearchView-65taIL-M.js → TemplatesSearchView-BMfAKWhL.js} +3 -3
  58. package/dist/assets/{TemplatesView-DkP9JWHk.js → TemplatesView-BP0ATqW_.js} +3 -2
  59. package/dist/assets/{TemplatesWorkflowView-B5uc0BtL.js → TemplatesWorkflowView-CPkYdvfj.js} +5 -5
  60. package/dist/assets/{VariablesView-DV1-KgmN.js → VariablesView-Bxnz2qAN.js} +12 -13
  61. package/dist/assets/{VariablesView-BPKo50HJ.css → VariablesView-meR15bnW.css} +18 -18
  62. package/dist/assets/{WorkerView-5P9lg6ew.js → WorkerView-DReO6N8w.js} +11 -10
  63. package/dist/assets/{WorkflowActivator-Dc_Un-Af.js → WorkflowActivator-B0RYBWDC.js} +2 -2
  64. package/dist/assets/{WorkflowExecutionsInfoAccordion-BLyC6lr5.js → WorkflowExecutionsInfoAccordion-DQl3QT6U.js} +7 -6
  65. package/dist/assets/{WorkflowExecutionsLandingPage-Dsa6Bgkn.js → WorkflowExecutionsLandingPage-B47g0omt.js} +2 -2
  66. package/dist/assets/{WorkflowExecutionsPreview-B_X-enUV.js → WorkflowExecutionsPreview-3ZPhGB00.js} +12 -11
  67. package/dist/assets/{WorkflowExecutionsView-Bkz3Sig-.js → WorkflowExecutionsView-C2F5tFjz.js} +18 -9
  68. package/dist/assets/{WorkflowExecutionsView-B8x2-iOd.css → WorkflowExecutionsView-CepgQyRt.css} +9 -1
  69. package/dist/assets/{WorkflowHistory-BiPMooAv.js → WorkflowHistory-tThywxbZ.js} +3 -3
  70. package/dist/assets/{WorkflowOnboardingView-XHuS6lCs.js → WorkflowOnboardingView-DJv_JU2k.js} +32 -1
  71. package/dist/assets/{WorkflowPreview-DxZKd23H.js → WorkflowPreview-DawY1Fi4.js} +1 -1
  72. package/dist/assets/{WorkflowsView-BBaLVqJs.js → WorkflowsView-DA1gqPuM.js} +16 -58
  73. package/dist/assets/buttons.esm-BOkmSohe.js +477 -0
  74. package/dist/assets/{index-7YFQEQmt.js → index-BcRlEQdt.js} +96643 -102180
  75. package/dist/assets/{index-BFH_KxyA.css → index-CSJeF569.css} +259 -726
  76. package/dist/assets/{pushConnection.store-DbprXL-x.js → pushConnection.store-C9cp1cmF.js} +1 -1
  77. package/dist/assets/{templateActions-QFQD8amJ.js → templateActions-BM1BlED1.js} +1 -1
  78. package/dist/assets/{useBugReporting-IgwBNdXI.js → useBugReporting-D4ibEI2f.js} +1 -1
  79. package/dist/assets/{useExecutionDebugging-CLORI_Ma.js → useExecutionDebugging-B9k8m7iG.js} +1 -1
  80. package/dist/assets/useExecutionHelpers-DYE5_K78.js +113 -0
  81. package/dist/assets/useGlobalEntityCreation-DtWHHZf8.js +168 -0
  82. package/dist/assets/{useNodeViewVersionSwitcher-CJLQ5lju.js → useNodeViewVersionSwitcher-CSLoLUvW.js} +1 -1
  83. package/dist/assets/{usePushConnection-DjPgTuLw.js → usePushConnection-BLi9GBVo.js} +63 -111
  84. package/dist/assets/{RunDataAi-x30tU8-0.css → useRunWorkflow-DH7ZzA8t.css} +97 -57
  85. package/dist/assets/useRunWorkflow-DOJBXbbW.js +3631 -0
  86. package/dist/assets/{useWorkflowActivate-D_gK841h.js → useWorkflowActivate-DmBELETa.js} +1 -1
  87. package/dist/index.html +2 -2
  88. package/package.json +1 -1
  89. package/dist/assets/AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DbabN_I2.js +0 -115
  90. package/dist/assets/CollectionParameter-Odk28FRT.js +0 -4
  91. package/dist/assets/ProjectTabs-DjoIePoM.css +0 -3
  92. package/dist/assets/ProjectTabs-Dve3xFj9.js +0 -88
  93. package/dist/assets/ResourceListHeader-B2sxe6HT.js +0 -66
  94. package/dist/assets/ResourceListHeader-DgE1VPUF.css +0 -19
  95. package/dist/assets/RunDataAi-BKu1beM6.js +0 -1539
  96. package/dist/assets/RunDataTable-DISLWxMc.js +0 -608
  97. package/dist/assets/dateFormatter-C53K7zEn.js +0 -21
  98. /package/dist/assets/{ExecutionsFilter-DVxRt-Pz.css → ExecutionsTime-DVxRt-Pz.css} +0 -0
@@ -1,5 +1,6 @@
1
- import { d as defineComponent, av as useLoadingService, K as useUIStore, a0 as useSourceControlStore, a as useToast, r as ref, p as computed, c as openBlock, h as createElementBlock, A 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, x as nextTick, aw as sourceControlEventBus, ax as SOURCE_CONTROL_PULL_MODAL_KEY, l as resolveComponent, C as createEventBus, _ as _export_sfc, ay as get, R as defineStore, S as STORES, az as useCloudPlanStore, Z as useRootStore, aA as useStorage, aB as DateTime, ak as useTelemetry, b as useRouter, a1 as useProjectsStore, a5 as usePageRedirectionHelper, o as onMounted, F as Fragment, z as renderList, V as VIEWS, aC as sortByProperty, m as useSettingsStore, aD as useTemplatesStore, u as useUsersStore, aE as useVersionsStore, T as useWorkflowsStore, J as useDebounce, U as useRoute, v as onBeforeUnmount, aF as createSlots, aG as useExternalHooks, aH as VERSIONS_MODAL_KEY, aI as ABOUT_MODAL_KEY } from "./index-7YFQEQmt.js";
2
- import { u as useBugReporting } from "./useBugReporting-IgwBNdXI.js";
1
+ import { d as defineComponent, aA 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, aB as sourceControlEventBus, aC as SOURCE_CONTROL_PULL_MODAL_KEY, m as resolveComponent, C as createEventBus, _ as _export_sfc, aD as get, R as defineStore, S as STORES, aE as useCloudPlanStore, Z as useRootStore, aF as useStorage, aG as DateTime, ak as useTelemetry, a1 as useProjectsStore, F as Fragment, A as renderList, V as VIEWS, aH as sortByProperty, p as useSettingsStore, aI as useTemplatesStore, u as useUsersStore, aJ 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, aK as N8nNavigationDropdown, aL as createSlots, aM as useExternalHooks, aN as VERSIONS_MODAL_KEY, aO as ABOUT_MODAL_KEY } from "./index-BcRlEQdt.js";
2
+ import { u as useBugReporting } from "./useBugReporting-D4ibEI2f.js";
3
+ import { u as useGlobalEntityCreation } from "./useGlobalEntityCreation-DtWHHZf8.js";
3
4
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4
5
  __name: "MainSidebarSourceControl",
5
6
  props: {
@@ -339,7 +340,7 @@ const _hoisted_1$1 = {
339
340
  class: "mt-m mb-m"
340
341
  };
341
342
  const _hoisted_2$1 = {
342
- key: 4,
343
+ key: 3,
343
344
  class: "mb-m"
344
345
  };
345
346
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -350,28 +351,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
350
351
  },
351
352
  setup(__props) {
352
353
  const props = __props;
353
- const router = useRouter();
354
354
  const locale = useI18n();
355
- const toast = useToast();
356
355
  const projectsStore = useProjectsStore();
357
- const pageRedirectionHelper = usePageRedirectionHelper();
358
- const isCreatingProject = ref(false);
359
- const isComponentMounted = ref(false);
360
356
  const home = computed(() => ({
361
357
  id: "home",
362
- label: locale.baseText("projects.menu.home"),
358
+ label: locale.baseText("projects.menu.overview"),
363
359
  icon: "home",
364
360
  route: {
365
361
  to: { name: VIEWS.HOMEPAGE }
366
362
  }
367
363
  }));
368
- const addProject = computed(() => ({
369
- id: "addProject",
370
- label: locale.baseText("projects.menu.addProject"),
371
- icon: "plus",
372
- disabled: !isComponentMounted.value || isCreatingProject.value || !projectsStore.canCreateProjects,
373
- isLoading: isCreatingProject.value
374
- }));
375
364
  const getProjectMenuItem = (project) => ({
376
365
  id: project.id,
377
366
  label: project.name,
@@ -397,47 +386,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
397
386
  }
398
387
  };
399
388
  });
400
- const addProjectClicked = async () => {
401
- isCreatingProject.value = true;
402
- try {
403
- const newProject = await projectsStore.createProject({
404
- name: locale.baseText("projects.settings.newProjectName")
405
- });
406
- await router.push({ name: VIEWS.PROJECT_SETTINGS, params: { projectId: newProject.id } });
407
- toast.showMessage({
408
- title: locale.baseText("projects.settings.save.successful.title", {
409
- interpolate: { projectName: newProject.name ?? "" }
410
- }),
411
- type: "success"
412
- });
413
- } catch (error) {
414
- toast.showError(error, locale.baseText("projects.error.title"));
415
- } finally {
416
- isCreatingProject.value = false;
417
- }
418
- };
419
389
  const displayProjects = computed(
420
390
  () => sortByProperty(
421
391
  "name",
422
392
  projectsStore.myProjects.filter((p) => p.type === "team")
423
393
  )
424
394
  );
425
- const canCreateProjects = computed(
426
- () => projectsStore.hasPermissionToCreateProjects && projectsStore.isTeamProjectFeatureEnabled
427
- );
428
- const goToUpgrade = async () => {
429
- await pageRedirectionHelper.goToUpgrade("rbac", "upgrade-rbac");
430
- };
431
- onMounted(async () => {
432
- await nextTick();
433
- isComponentMounted.value = true;
434
- });
435
395
  return (_ctx, _cache) => {
436
396
  const _component_N8nMenuItem = resolveComponent("N8nMenuItem");
437
397
  const _component_ElMenu = resolveComponent("ElMenu");
438
398
  const _component_N8nText = resolveComponent("N8nText");
439
- const _component_i18n_t = resolveComponent("i18n-t");
440
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
441
399
  return openBlock(), createElementBlock("div", {
442
400
  class: normalizeClass(_ctx.$style.projects)
443
401
  }, [
@@ -497,51 +455,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
497
455
  ]),
498
456
  _: 1
499
457
  }, 8, ["collapse", "class"])) : createCommentVNode("", true),
500
- canCreateProjects.value ? (openBlock(), createBlock(_component_N8nTooltip, {
501
- key: 3,
502
- placement: "right",
503
- disabled: unref(projectsStore).canCreateProjects
504
- }, {
505
- content: withCtx(() => [
506
- createVNode(_component_i18n_t, { keypath: "projects.create.limitReached" }, {
507
- planName: withCtx(() => [
508
- createTextVNode(toDisplayString(props.planName), 1)
509
- ]),
510
- limit: withCtx(() => [
511
- createTextVNode(toDisplayString(unref(locale).baseText("projects.create.limit", {
512
- adjustToNumber: unref(projectsStore).teamProjectsLimit,
513
- interpolate: { num: String(unref(projectsStore).teamProjectsLimit) }
514
- })), 1)
515
- ]),
516
- link: withCtx(() => [
517
- createBaseVNode("a", {
518
- class: normalizeClass(_ctx.$style.upgradeLink),
519
- href: "#",
520
- onClick: goToUpgrade
521
- }, toDisplayString(unref(locale).baseText("projects.create.limitReached.link")), 3)
522
- ]),
523
- _: 1
524
- })
525
- ]),
526
- default: withCtx(() => [
527
- createVNode(_component_ElMenu, {
528
- collapse: props.collapsed,
529
- class: "pl-xs pr-xs mb-m"
530
- }, {
531
- default: withCtx(() => [
532
- createVNode(_component_N8nMenuItem, {
533
- item: addProject.value,
534
- compact: props.collapsed,
535
- "handle-select": addProjectClicked,
536
- mode: "tabs",
537
- "data-test-id": "add-project-menu-item"
538
- }, null, 8, ["item", "compact"])
539
- ]),
540
- _: 1
541
- }, 8, ["collapse"])
542
- ]),
543
- _: 1
544
- }, 8, ["disabled"])) : createCommentVNode("", true),
545
458
  unref(projectsStore).isTeamProjectFeatureEnabled ? (openBlock(), createElementBlock("hr", _hoisted_2$1)) : createCommentVNode("", true)
546
459
  ], 2);
547
460
  };
@@ -562,7 +475,7 @@ const style0$1 = {
562
475
  const cssModules$1 = {
563
476
  "$style": style0$1
564
477
  };
565
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-f0b80637"]]);
478
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-6cb5f5b7"]]);
566
479
  const _hoisted_1 = ["src"];
567
480
  const _hoisted_2 = {
568
481
  class: "ml-3xs",
@@ -582,7 +495,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
582
495
  const workflowsStore = useWorkflowsStore();
583
496
  const { callDebounced } = useDebounce();
584
497
  const externalHooks = useExternalHooks();
585
- const locale = useI18n();
498
+ const i18n = useI18n();
586
499
  useRoute();
587
500
  const router = useRouter();
588
501
  const telemetry = useTelemetry();
@@ -594,11 +507,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
594
507
  const userMenuItems = ref([
595
508
  {
596
509
  id: "settings",
597
- label: locale.baseText("settings")
510
+ label: i18n.baseText("settings")
598
511
  },
599
512
  {
600
513
  id: "logout",
601
- label: locale.baseText("auth.signout")
514
+ label: i18n.baseText("auth.signout")
602
515
  }
603
516
  ]);
604
517
  const mainMenuItems = computed(() => [
@@ -613,7 +526,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
613
526
  // Link to in-app templates, available if custom templates are enabled
614
527
  id: "templates",
615
528
  icon: "box-open",
616
- label: locale.baseText("mainSidebar.templates"),
529
+ label: i18n.baseText("mainSidebar.templates"),
617
530
  position: "bottom",
618
531
  available: settingsStore.isTemplatesEnabled && templatesStore.hasCustomTemplatesHost,
619
532
  route: { to: { name: VIEWS.TEMPLATES } }
@@ -622,7 +535,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
622
535
  // Link to website templates, available if custom templates are not enabled
623
536
  id: "templates",
624
537
  icon: "box-open",
625
- label: locale.baseText("mainSidebar.templates"),
538
+ label: i18n.baseText("mainSidebar.templates"),
626
539
  position: "bottom",
627
540
  available: settingsStore.isTemplatesEnabled && !templatesStore.hasCustomTemplatesHost,
628
541
  link: {
@@ -633,28 +546,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
633
546
  {
634
547
  id: "variables",
635
548
  icon: "variable",
636
- label: locale.baseText("mainSidebar.variables"),
549
+ label: i18n.baseText("mainSidebar.variables"),
637
550
  customIconSize: "medium",
638
551
  position: "bottom",
639
552
  route: { to: { name: VIEWS.VARIABLES } }
640
553
  },
641
- {
642
- id: "executions",
643
- icon: "tasks",
644
- label: locale.baseText("mainSidebar.executions"),
645
- position: "bottom",
646
- route: { to: { name: VIEWS.EXECUTIONS } }
647
- },
648
554
  {
649
555
  id: "help",
650
556
  icon: "question",
651
- label: locale.baseText("mainSidebar.help"),
557
+ label: i18n.baseText("mainSidebar.help"),
652
558
  position: "bottom",
653
559
  children: [
654
560
  {
655
561
  id: "quickstart",
656
562
  icon: "video",
657
- label: locale.baseText("mainSidebar.helpMenuItems.quickstart"),
563
+ label: i18n.baseText("mainSidebar.helpMenuItems.quickstart"),
658
564
  link: {
659
565
  href: "https://www.youtube.com/watch?v=1MwSoB0gnM4",
660
566
  target: "_blank"
@@ -663,7 +569,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
663
569
  {
664
570
  id: "docs",
665
571
  icon: "book",
666
- label: locale.baseText("mainSidebar.helpMenuItems.documentation"),
572
+ label: i18n.baseText("mainSidebar.helpMenuItems.documentation"),
667
573
  link: {
668
574
  href: "https://docs.n8n.io?utm_source=n8n_app&utm_medium=app_sidebar",
669
575
  target: "_blank"
@@ -672,7 +578,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
672
578
  {
673
579
  id: "forum",
674
580
  icon: "users",
675
- label: locale.baseText("mainSidebar.helpMenuItems.forum"),
581
+ label: i18n.baseText("mainSidebar.helpMenuItems.forum"),
676
582
  link: {
677
583
  href: "https://community.n8n.io?utm_source=n8n_app&utm_medium=app_sidebar",
678
584
  target: "_blank"
@@ -681,7 +587,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
681
587
  {
682
588
  id: "examples",
683
589
  icon: "graduation-cap",
684
- label: locale.baseText("mainSidebar.helpMenuItems.course"),
590
+ label: i18n.baseText("mainSidebar.helpMenuItems.course"),
685
591
  link: {
686
592
  href: "https://docs.n8n.io/courses/",
687
593
  target: "_blank"
@@ -690,7 +596,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
690
596
  {
691
597
  id: "report-bug",
692
598
  icon: "bug",
693
- label: locale.baseText("mainSidebar.helpMenuItems.reportBug"),
599
+ label: i18n.baseText("mainSidebar.helpMenuItems.reportBug"),
694
600
  link: {
695
601
  href: getReportingURL(),
696
602
  target: "_blank"
@@ -699,12 +605,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
699
605
  {
700
606
  id: "about",
701
607
  icon: "info",
702
- label: locale.baseText("mainSidebar.aboutN8n"),
608
+ label: i18n.baseText("mainSidebar.aboutN8n"),
703
609
  position: "bottom"
704
610
  }
705
611
  ]
706
612
  }
707
613
  ]);
614
+ const createBtn = ref();
708
615
  const isCollapsed = computed(() => uiStore.sidebarMenuCollapsed);
709
616
  const logoPath = computed(
710
617
  () => basePath.value + (isCollapsed.value ? "static/logo/collapsed.svg" : uiStore.logo)
@@ -811,8 +718,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
811
718
  fullyExpanded.value = !isCollapsed.value;
812
719
  }
813
720
  };
721
+ const { menu, handleSelect: handleMenuSelect } = useGlobalEntityCreation();
722
+ onClickOutside(createBtn, () => {
723
+ var _a;
724
+ (_a = createBtn.value) == null ? void 0 : _a.close();
725
+ });
814
726
  return (_ctx, _cache) => {
815
727
  const _component_n8n_icon = resolveComponent("n8n-icon");
728
+ const _component_N8nIconButton = resolveComponent("N8nIconButton");
816
729
  const _component_ProjectNavigation = __unplugin_components_0;
817
730
  const _component_BecomeTemplateCreatorCta = __unplugin_components_1;
818
731
  const _component_GiftNotificationIcon = __unplugin_components_2;
@@ -849,6 +762,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
849
762
  class: "mr-5xs"
850
763
  }))
851
764
  ], 2),
765
+ createBaseVNode("div", {
766
+ class: normalizeClass(_ctx.$style.logo)
767
+ }, [
768
+ createBaseVNode("img", {
769
+ src: logoPath.value,
770
+ "data-test-id": "n8n-logo",
771
+ class: normalizeClass(_ctx.$style.icon),
772
+ alt: "n8n"
773
+ }, null, 10, _hoisted_1),
774
+ createVNode(unref(N8nNavigationDropdown), {
775
+ ref_key: "createBtn",
776
+ ref: createBtn,
777
+ "data-test-id": "universal-add",
778
+ menu: unref(menu),
779
+ onSelect: unref(handleMenuSelect)
780
+ }, {
781
+ default: withCtx(() => [
782
+ createVNode(_component_N8nIconButton, {
783
+ icon: "plus",
784
+ type: "secondary",
785
+ outline: ""
786
+ })
787
+ ]),
788
+ _: 1
789
+ }, 8, ["menu", "onSelect"])
790
+ ], 2),
852
791
  createVNode(_component_n8n_menu, {
853
792
  items: mainMenuItems.value,
854
793
  collapsed: isCollapsed.value,
@@ -857,16 +796,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
857
796
  header: withCtx(() => {
858
797
  var _a;
859
798
  return [
860
- createBaseVNode("div", {
861
- class: normalizeClass(_ctx.$style.logo)
862
- }, [
863
- createBaseVNode("img", {
864
- src: logoPath.value,
865
- "data-test-id": "n8n-logo",
866
- class: normalizeClass(_ctx.$style.icon),
867
- alt: "n8n"
868
- }, null, 10, _hoisted_1)
869
- ], 2),
870
799
  createVNode(_component_ProjectNavigation, {
871
800
  collapsed: isCollapsed.value,
872
801
  "plan-name": (_a = unref(cloudPlanStore).currentPlanData) == null ? void 0 : _a.displayName
@@ -941,13 +870,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
941
870
  default: withCtx(() => [
942
871
  createVNode(_component_el_dropdown_item, { command: "settings" }, {
943
872
  default: withCtx(() => [
944
- createTextVNode(toDisplayString(_ctx.$locale.baseText("settings")), 1)
873
+ createTextVNode(toDisplayString(unref(i18n).baseText("settings")), 1)
945
874
  ]),
946
875
  _: 1
947
876
  }),
948
877
  createVNode(_component_el_dropdown_item, { command: "logout" }, {
949
878
  default: withCtx(() => [
950
- createTextVNode(toDisplayString(_ctx.$locale.baseText("auth.signout")), 1)
879
+ createTextVNode(toDisplayString(unref(i18n).baseText("auth.signout")), 1)
951
880
  ]),
952
881
  _: 1
953
882
  })
@@ -995,15 +924,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
995
924
  };
996
925
  }
997
926
  });
998
- const sideMenu = "_sideMenu_1qnza_1";
999
- const logo = "_logo_1qnza_8";
1000
- const sideMenuCollapsed = "_sideMenuCollapsed_1qnza_19";
1001
- const sideMenuCollapseButton = "_sideMenuCollapseButton_1qnza_26";
1002
- const updates = "_updates_1qnza_45";
1003
- const expanded = "_expanded_1qnza_58";
1004
- const userArea = "_userArea_1qnza_65";
1005
- const userName = "_userName_1qnza_72";
1006
- const userActions = "_userActions_1qnza_86";
927
+ const sideMenu = "_sideMenu_15e4m_1";
928
+ const logo = "_logo_15e4m_10";
929
+ const sideMenuCollapsed = "_sideMenuCollapsed_15e4m_25";
930
+ const sideMenuCollapseButton = "_sideMenuCollapseButton_15e4m_37";
931
+ const updates = "_updates_15e4m_56";
932
+ const expanded = "_expanded_15e4m_69";
933
+ const userArea = "_userArea_15e4m_76";
934
+ const userName = "_userName_15e4m_83";
935
+ const userActions = "_userActions_15e4m_97";
1007
936
  const style0 = {
1008
937
  sideMenu,
1009
938
  logo,
@@ -140,21 +140,26 @@
140
140
  -webkit-box-sizing: border-box;
141
141
  box-sizing: border-box;
142
142
  color: var(--color-text-base);
143
- }.home[data-v-f0b80637] {
143
+ }.home[data-v-6cb5f5b7] {
144
144
  padding: 0 var(--spacing-xs);
145
145
  }
146
- .home[data-v-f0b80637] .el-menu-item {
146
+ .home[data-v-6cb5f5b7] .el-menu-item {
147
147
  padding: var(--spacing-m) var(--spacing-xs) !important;
148
- }._sideMenu_1qnza_1 {
148
+ }._sideMenu_15e4m_1 {
149
149
  position: relative;
150
150
  height: 100%;
151
151
  border-right: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
152
152
  -webkit-transition: width 150ms ease-in-out;
153
153
  transition: width 150ms ease-in-out;
154
154
  width: 200px;
155
+ padding-top: 54px;
156
+ background-color: var(--menu-background, var(--color-background-xlight));
155
157
  }
156
- ._sideMenu_1qnza_1 ._logo_1qnza_8 {
157
- height: calc(var(--header-height) * 1px);
158
+ ._sideMenu_15e4m_1 ._logo_15e4m_10 {
159
+ position: absolute;
160
+ top: 0;
161
+ left: 0;
162
+ width: 100%;
158
163
  display: -webkit-box;
159
164
  display: -ms-flexbox;
160
165
  display: flex;
@@ -162,19 +167,30 @@
162
167
  -ms-flex-align: center;
163
168
  align-items: center;
164
169
  padding: var(--spacing-xs);
170
+ -webkit-box-pack: justify;
171
+ -ms-flex-pack: justify;
172
+ justify-content: space-between;
165
173
  }
166
- ._sideMenu_1qnza_1 ._logo_1qnza_8 img {
174
+ ._sideMenu_15e4m_1 ._logo_15e4m_10 img {
167
175
  position: relative;
168
176
  left: 1px;
169
177
  height: 20px;
170
178
  }
171
- ._sideMenu_1qnza_1._sideMenuCollapsed_1qnza_19 {
179
+ ._sideMenu_15e4m_1._sideMenuCollapsed_15e4m_25 {
172
180
  width: 65px;
181
+ padding-top: 90px;
182
+ }
183
+ ._sideMenu_15e4m_1._sideMenuCollapsed_15e4m_25 ._logo_15e4m_10 {
184
+ -webkit-box-orient: vertical;
185
+ -webkit-box-direction: normal;
186
+ -ms-flex-direction: column;
187
+ flex-direction: column;
188
+ gap: 16px;
173
189
  }
174
- ._sideMenu_1qnza_1._sideMenuCollapsed_1qnza_19 ._logo_1qnza_8 img {
190
+ ._sideMenu_15e4m_1._sideMenuCollapsed_15e4m_25 ._logo_15e4m_10 img {
175
191
  left: 0;
176
192
  }
177
- ._sideMenuCollapseButton_1qnza_26 {
193
+ ._sideMenuCollapseButton_15e4m_37 {
178
194
  position: absolute;
179
195
  right: -10px;
180
196
  top: 50%;
@@ -195,10 +211,10 @@
195
211
  border: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
196
212
  border-radius: 50%;
197
213
  }
198
- ._sideMenuCollapseButton_1qnza_26:hover {
214
+ ._sideMenuCollapseButton_15e4m_37:hover {
199
215
  color: var(--color-primary-shade-1);
200
216
  }
201
- ._updates_1qnza_45 {
217
+ ._updates_15e4m_56 {
202
218
  display: -webkit-box;
203
219
  display: -ms-flexbox;
204
220
  display: flex;
@@ -209,19 +225,19 @@
209
225
  padding: var(--spacing-2xs) var(--spacing-l);
210
226
  margin: var(--spacing-2xs) 0 0;
211
227
  }
212
- ._updates_1qnza_45 svg {
228
+ ._updates_15e4m_56 svg {
213
229
  color: var(--color-text-base) !important;
214
230
  }
215
- ._updates_1qnza_45 span {
231
+ ._updates_15e4m_56 span {
216
232
  display: none;
217
233
  }
218
- ._updates_1qnza_45 span._expanded_1qnza_58 {
234
+ ._updates_15e4m_56 span._expanded_15e4m_69 {
219
235
  display: initial;
220
236
  }
221
- ._updates_1qnza_45:hover, ._updates_1qnza_45:hover svg {
237
+ ._updates_15e4m_56:hover, ._updates_15e4m_56:hover svg {
222
238
  color: var(--color-text-dark) !important;
223
239
  }
224
- ._userArea_1qnza_65 {
240
+ ._userArea_15e4m_76 {
225
241
  display: -webkit-box;
226
242
  display: -ms-flexbox;
227
243
  display: flex;
@@ -232,24 +248,24 @@
232
248
  height: 60px;
233
249
  border-top: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
234
250
  }
235
- ._userArea_1qnza_65 ._userName_1qnza_72 {
251
+ ._userArea_15e4m_76 ._userName_15e4m_83 {
236
252
  display: none;
237
253
  overflow: hidden;
238
254
  width: 100px;
239
255
  white-space: nowrap;
240
256
  text-overflow: ellipsis;
241
257
  }
242
- ._userArea_1qnza_65 ._userName_1qnza_72._expanded_1qnza_58 {
258
+ ._userArea_15e4m_76 ._userName_15e4m_83._expanded_15e4m_69 {
243
259
  display: initial;
244
260
  }
245
- ._userArea_1qnza_65 ._userName_1qnza_72 span {
261
+ ._userArea_15e4m_76 ._userName_15e4m_83 span {
246
262
  overflow: hidden;
247
263
  text-overflow: ellipsis;
248
264
  }
249
- ._userArea_1qnza_65 ._userActions_1qnza_86 {
265
+ ._userArea_15e4m_76 ._userActions_15e4m_97 {
250
266
  display: none;
251
267
  }
252
- ._userArea_1qnza_65 ._userActions_1qnza_86._expanded_1qnza_58 {
268
+ ._userArea_15e4m_76 ._userActions_15e4m_97._expanded_15e4m_69 {
253
269
  display: initial;
254
270
  }
255
271
  @media screen and (max-height: 470px) {
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreator-DMLTbzAt.js","assets/index-7YFQEQmt.js","assets/index-BFH_KxyA.css","assets/NodeViewSwitcher-B9JUn3eY.js","assets/RunDataAi-BKu1beM6.js","assets/RunDataAi-x30tU8-0.css","assets/FileSaver.min-DNytcjKT.js","assets/dateFormatter-C53K7zEn.js","assets/useWorkflowActivate-D_gK841h.js","assets/pushConnection.store-DbprXL-x.js","assets/useExecutionDebugging-CLORI_Ma.js","assets/useNodeViewVersionSwitcher-CJLQ5lju.js","assets/useBugReporting-IgwBNdXI.js","assets/NodeViewSwitcher-CnP5aYyg.css","assets/NodeCreator-CvOLgSO_.css"])))=>i.map(i=>d[i]);
2
- import { c_ as useNodeTypesStore, g0 as NODE_CREATOR_OPEN_SOURCES, p as computed, g as useI18n, ds as MANUAL_TRIGGER_NODE_TYPE, j6 as CHAIN_LLM_LANGCHAIN_NODE_TYPE, d9 as NodeConnectionType, de as CHAT_TRIGGER_NODE_TYPE, j7 as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, j8 as OPEN_AI_NODE_TYPE, fR as SPLIT_IN_BATCHES_NODE_TYPE, eO as NO_OP_NODE_TYPE, T as useWorkflowsStore, aG as useExternalHooks, dt as WEBHOOK_NODE_TYPE, ft as SCHEDULE_TRIGGER_NODE_TYPE, au as STICKY_NODE_TYPE, fv as MANUAL_CHAT_TRIGGER_NODE_TYPE, $ as useCanvasStore, fg as AI_CATEGORY_LANGUAGE_MODELS, fr as TRIGGER_NODE_CREATOR_VIEW, j9 as QA_CHAIN_NODE_TYPE, ja as AGENT_NODE_TYPE, jb as BASIC_CHAIN_NODE_TYPE, jc as OPEN_AI_ASSISTANT_NODE_TYPE, d as defineComponent, K as useUIStore, r as ref, jd as useThrottleFn, o as onMounted, v as onBeforeUnmount, l as resolveComponent, c as openBlock, h as createElementBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, g5 as KeyboardShortcutTooltip, f as createCommentVNode, e as createBlock, A as unref, aT as Suspense, F as Fragment, bd as defineAsyncComponent, en as __vitePreload, je as getMidCanvasPosition, jf as DEFAULT_STICKY_WIDTH, jg as DEFAULT_STICKY_HEIGHT, _ as _export_sfc } from "./index-7YFQEQmt.js";
3
- import { u as useNodeCreatorStore, t as transformNodeType, s as sortNodeCreateElements } from "./NodeViewSwitcher-B9JUn3eY.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreator-CeYHZgYz.js","assets/index-BcRlEQdt.js","assets/index-CSJeF569.css","assets/NodeViewSwitcher-DJ9GWTwy.js","assets/useRunWorkflow-DOJBXbbW.js","assets/useExecutionHelpers-DYE5_K78.js","assets/useRunWorkflow-DH7ZzA8t.css","assets/FileSaver.min-Kzijnshy.js","assets/useWorkflowActivate-DmBELETa.js","assets/pushConnection.store-C9cp1cmF.js","assets/useExecutionDebugging-B9k8m7iG.js","assets/useNodeViewVersionSwitcher-CSLoLUvW.js","assets/useBugReporting-D4ibEI2f.js","assets/NodeViewSwitcher-s2TUlOvE.css","assets/NodeCreator-CvOLgSO_.css"])))=>i.map(i=>d[i]);
2
+ import { bh as useNodeTypesStore, gk as NODE_CREATOR_OPEN_SOURCES, q as computed, g as useI18n, dL as MANUAL_TRIGGER_NODE_TYPE, jt as CHAIN_LLM_LANGCHAIN_NODE_TYPE, ba as NodeConnectionType, b0 as CHAT_TRIGGER_NODE_TYPE, ju as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, jv as OPEN_AI_NODE_TYPE, gb as SPLIT_IN_BATCHES_NODE_TYPE, fd as NO_OP_NODE_TYPE, T as useWorkflowsStore, aM as useExternalHooks, dM as WEBHOOK_NODE_TYPE, fQ as SCHEDULE_TRIGGER_NODE_TYPE, az as STICKY_NODE_TYPE, $ as useCanvasStore, fD as AI_CATEGORY_LANGUAGE_MODELS, fO as TRIGGER_NODE_CREATOR_VIEW, jw as QA_CHAIN_NODE_TYPE, jx as AGENT_NODE_TYPE, jy as BASIC_CHAIN_NODE_TYPE, jz as OPEN_AI_ASSISTANT_NODE_TYPE, d as defineComponent, K as useUIStore, r as ref, jA as useThrottleFn, o as onMounted, x as onBeforeUnmount, m as resolveComponent, c as openBlock, h as createElementBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, l as unref, gp as KeyboardShortcutTooltip, f as createCommentVNode, e as createBlock, bu as Suspense, F as Fragment, bQ as defineAsyncComponent, as as __vitePreload, jB as getMidCanvasPosition, jC as DEFAULT_STICKY_WIDTH, jD as DEFAULT_STICKY_HEIGHT, _ as _export_sfc } from "./index-BcRlEQdt.js";
3
+ import { u as useNodeCreatorStore, t as transformNodeType, s as sortNodeCreateElements } from "./NodeViewSwitcher-DJ9GWTwy.js";
4
4
  const useActions = () => {
5
5
  const nodeCreatorStore = useNodeCreatorStore();
6
6
  const nodeTypesStore = useNodeTypesStore();
@@ -114,7 +114,6 @@ const useActions = () => {
114
114
  return !isSingleNodeOpenSource && !hasTrigger && !workflowContainsTrigger && isTriggerPanel && !onlyStickyNodes;
115
115
  }
116
116
  function shouldPrependChatTrigger(addedNodes) {
117
- const { allNodes } = useWorkflowsStore();
118
117
  const COMPATIBLE_CHAT_NODES = [
119
118
  QA_CHAIN_NODE_TYPE,
120
119
  AGENT_NODE_TYPE,
@@ -122,11 +121,15 @@ const useActions = () => {
122
121
  OPEN_AI_ASSISTANT_NODE_TYPE,
123
122
  OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE
124
123
  ];
125
- const isChatTriggerMissing = allNodes.find(
126
- (node) => [MANUAL_CHAT_TRIGGER_NODE_TYPE, CHAT_TRIGGER_NODE_TYPE].includes(node.type)
127
- ) === void 0;
128
124
  const isCompatibleNode = addedNodes.some((node) => COMPATIBLE_CHAT_NODES.includes(node.type));
129
- return isCompatibleNode && isChatTriggerMissing;
125
+ if (!isCompatibleNode) return false;
126
+ const { allNodes, getNodeTypes } = useWorkflowsStore();
127
+ const { getByNameAndVersion } = getNodeTypes();
128
+ const shouldAddChatTrigger = allNodes.every((node) => {
129
+ const nodeType = getByNameAndVersion(node.type, node.typeVersion);
130
+ return !nodeType.description.group.includes("trigger") || node.type === MANUAL_TRIGGER_NODE_TYPE;
131
+ });
132
+ return shouldAddChatTrigger;
130
133
  }
131
134
  function shouldPrependLLMChain(addedNodes) {
132
135
  const canvasHasAINodes = useCanvasStore().aiNodes.length > 0;
@@ -246,11 +249,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
246
249
  emits: ["addNodes", "toggleNodeCreator"],
247
250
  setup(__props, { emit: __emit }) {
248
251
  const LazyNodeCreator = defineAsyncComponent(
249
- async () => await __vitePreload(() => import("./NodeCreator-DMLTbzAt.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]) : void 0)
252
+ async () => await __vitePreload(() => import("./NodeCreator-CeYHZgYz.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]) : void 0)
250
253
  );
251
254
  const props = __props;
252
255
  const emit = __emit;
253
256
  const uiStore = useUIStore();
257
+ const i18n = useI18n();
254
258
  const { getAddedNodesAndConnections } = useActions();
255
259
  const wrapperRef = ref();
256
260
  const wrapperBoundingRect = ref();
@@ -310,7 +314,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
310
314
  "data-test-id": "node-creator-plus-button"
311
315
  }, [
312
316
  createVNode(KeyboardShortcutTooltip, {
313
- label: _ctx.$locale.baseText("nodeView.openNodesPanel"),
317
+ label: unref(i18n).baseText("nodeView.openNodesPanel"),
314
318
  shortcut: { keys: ["Tab"] },
315
319
  placement: "left"
316
320
  }, {
@@ -331,7 +335,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
331
335
  onClick: addStickyNote
332
336
  }, [
333
337
  createVNode(KeyboardShortcutTooltip, {
334
- label: _ctx.$locale.baseText("nodeView.addStickyHint"),
338
+ label: unref(i18n).baseText("nodeView.addStickyHint"),
335
339
  shortcut: { keys: ["s"], shiftKey: true },
336
340
  placement: "left"
337
341
  }, {