n8n-editor-ui 1.100.0 → 1.101.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 (134) hide show
  1. package/dist/assets/ActionDropdown-BmC0wfMx.css +172 -0
  2. package/dist/assets/ActionDropdown-BujIG0Jq.js +172 -0
  3. package/dist/assets/{AnimatedSpinner-CmnLqX1g.js → AnimatedSpinner-B5cpb6Fs.js} +3 -3
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-LialmjU-.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BPigGQTI.js} +1 -1
  5. package/dist/assets/AuthView-BOTPYtpM.js +242 -0
  6. package/dist/assets/AuthView-DZB9HITQ.css +450 -0
  7. package/dist/assets/{ChangePasswordView-F2YljaHC.js → ChangePasswordView-DbeC55bz.js} +4 -4
  8. package/dist/assets/CollectionParameter-CExdr4jd.js +4 -0
  9. package/dist/assets/{CredentialsView-_HiqTMnI.js → CredentialsView-DUh5K-2r.js} +16 -15
  10. package/dist/assets/{DemoFooter-BWGzoS_I.js → DemoFooter-BXPfbNJE.js} +7 -6
  11. package/dist/assets/EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CDDQIxv5.js +39 -0
  12. package/dist/assets/{EntityNotFound-Cy9wp8En.js → EntityNotFound-CBUuOOYw.js} +1 -1
  13. package/dist/assets/{EntityUnAuthorised-CqJIbUWK.js → EntityUnAuthorised-7xgN3ECo.js} +1 -1
  14. package/dist/assets/{ErrorView-Kpuz8zoT.js → ErrorView-BVfcsoOa.js} +4 -4
  15. package/dist/assets/{EvaluationsRootView-HfYQYHAD.js → EvaluationsRootView-BjrpKDj-.js} +2 -2
  16. package/dist/assets/{EvaluationsView-i9O4Pq6o.js → EvaluationsView-DdmFZCH-.js} +9 -9
  17. package/dist/assets/{ExecutionsTime-BDLkVZem.css → ExecutionsTime-kMSlccIr.css} +6 -6
  18. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-BHONBvt7.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ctx5Ybnr.js} +24 -19
  19. package/dist/assets/{ExecutionsView-BY23VFik.js → ExecutionsView-8BjGHy2I.js} +13 -12
  20. package/dist/assets/{ExecutionsView-ChOXAON3.css → ExecutionsView-DSsowKj4.css} +1 -1
  21. package/dist/assets/{FileSaver.min-CxOI-Vgx.js → FileSaver.min-C5wzcK59.js} +1 -1
  22. package/dist/assets/{FixedCollectionParameter-Dj0393fQ.js → FixedCollectionParameter-BrPQ5Vay.js} +1 -1
  23. package/dist/assets/{ForgotMyPasswordView-yMWlCT90.js → ForgotMyPasswordView-L0afefc1.js} +3 -3
  24. package/dist/assets/InfoAccordion-CEk3XG5b.js +146 -0
  25. package/dist/assets/InfoAccordion-dxudNqVC.css +168 -0
  26. package/dist/assets/{InsightsChartAverageRuntime-CAzHGVRl.js → InsightsChartAverageRuntime-BrwBWr_R.js} +4 -4
  27. package/dist/assets/{InsightsChartFailed-DQ9ntBQJ.js → InsightsChartFailed-ILKWvikG.js} +4 -4
  28. package/dist/assets/{InsightsChartFailureRate-DVZarv-u.js → InsightsChartFailureRate-D1AVYwU7.js} +4 -4
  29. package/dist/assets/{InsightsChartTimeSaved-CAhRkqgH.js → InsightsChartTimeSaved-D49Rwn6-.js} +4 -4
  30. package/dist/assets/{InsightsChartTotal-C60cS-Xa.js → InsightsChartTotal-Bs-pUgA3.js} +4 -4
  31. package/dist/assets/{InsightsDashboard-DM-I5QbW.js → InsightsDashboard-BIC4uZpW.js} +12 -12
  32. package/dist/assets/{InsightsPaywall-BLHoSCNL.js → InsightsPaywall-DmwFI-6e.js} +4 -4
  33. package/dist/assets/{InsightsSummary-JPw9kN4a.js → InsightsSummary-D9lEzWNT.js} +3 -3
  34. package/dist/assets/InsightsTableWorkflows-CC8t-sAL.js +3355 -0
  35. package/dist/assets/{Logo-C699HbA_.js → Logo-DNxOhbuV.js} +1 -1
  36. package/dist/assets/{LogsPanel-BWnaJuFj.js → LogsPanel-DvWnD7rJ.js} +21 -18
  37. package/dist/assets/{MainHeader-Ce0GAh6o.js → MainHeader-BVHIuVVT.js} +165 -22
  38. package/dist/assets/{MainHeader--6ITU977.css → MainHeader-DYYEm7nF.css} +202 -12
  39. package/dist/assets/{MainSidebar-CooH0xuY.js → MainSidebar-CEHr93uL.js} +305 -92
  40. package/dist/assets/{MainSidebar-DrjvHIqG.css → MainSidebar-DqrgzqvZ.css} +209 -48
  41. package/dist/assets/{NodeCreation-RKvezEeg.css → NodeCreation-32nlvQSy.css} +4 -24
  42. package/dist/assets/{NodeCreation-T5AfZVS1.js → NodeCreation-Bq5626Ha.js} +75 -81
  43. package/dist/assets/{NodeCreator-4g3-zQj6.js → NodeCreator-D7xT3ogw.js} +156 -42
  44. package/dist/assets/{NodeCreator-B1jJcOYT.css → NodeCreator-Dk0sNXFZ.css} +212 -0
  45. package/dist/assets/{NodeDetailsView-DWA1ZgwG.css → NodeDetailsView-BaIj2qAa.css} +241 -0
  46. package/dist/assets/{NodeDetailsView-BvClCeyF.js → NodeDetailsView-DB-5JPUD.js} +81 -56
  47. package/dist/assets/{NodeView-RurRbUaI.css → NodeView-DL8JxnMc.css} +516 -125
  48. package/dist/assets/{NodeView-DWCMsw1d.js → NodeView-DoR46iB5.js} +1393 -988
  49. package/dist/assets/{ProjectHeader-C7A20kgK.js → ProjectHeader-DSKKwiQ0.js} +14 -10
  50. package/dist/assets/{ProjectSettings-DVNR9FN4.js → ProjectSettings-C3sMIDHh.js} +366 -22
  51. package/dist/assets/{WorkflowActivator-C0R6Yly0.css → ProjectSettings-CCVXNK3G.css} +97 -43
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-D-uuE-zX.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-cnANEo9o.js} +2 -2
  53. package/dist/assets/{ResourcesListLayout-D0WMvHN_.js → ResourcesListLayout-BVbjqFbc.js} +349 -24
  54. package/dist/assets/{ResourcesListLayout-D6zDTXm4.css → ResourcesListLayout-uBbUHbxU.css} +8 -8
  55. package/dist/assets/{RunData-C-tqFRZO.js → RunData-DG20AzLo.js} +16 -15
  56. package/dist/assets/{RunDataJson-pe7NZQoH.js → RunDataJson-7okRLIES.js} +7 -6
  57. package/dist/assets/{RunDataJsonActions-3CT6wqXW.js → RunDataJsonActions-Qkg8HmUd.js} +2 -2
  58. package/dist/assets/{RunDataParsedAiContent-CGCVmkuV.js → RunDataParsedAiContent-DRO1Bjsh.js} +5 -4
  59. package/dist/assets/{RunDataSearch-jkQ60p9j.js → RunDataSearch-D5eQUWvi.js} +3 -3
  60. package/dist/assets/{RunDataTable-BqU63PyF.js → RunDataTable-CJmmTtEp.js} +115 -4
  61. package/dist/assets/{RunDataTable-CUxj7dHx.css → RunDataTable-CykHIwNT.css} +129 -0
  62. package/dist/assets/{SamlOnboarding-tGJha_9t.js → SamlOnboarding-ClxYfm5z.js} +3 -3
  63. package/dist/assets/{SettingsApiView-DkeogFEJ.js → SettingsApiView-Ds7FYVrN.js} +13 -13
  64. package/dist/assets/{SettingsCommunityNodesView-DdKQ7Jg5.js → SettingsCommunityNodesView-QKvLs6gi.js} +13 -13
  65. package/dist/assets/{SettingsExternalSecrets-CIvPLpaR.js → SettingsExternalSecrets-DGRdvsMy.js} +9 -9
  66. package/dist/assets/{SettingsLdapView-u9uiXIG8.js → SettingsLdapView-C_LJwixk.js} +6 -6
  67. package/dist/assets/{SettingsLogStreamingView-CQDEQGxK.js → SettingsLogStreamingView-CaEJvgJ9.js} +9 -9
  68. package/dist/assets/{SettingsPersonalView-ta7XbuCV.js → SettingsPersonalView-DlwXaGDs.js} +13 -12
  69. package/dist/assets/{SettingsSourceControl-DxbBCbMO.js → SettingsSourceControl-B6eULOfX.js} +23 -12
  70. package/dist/assets/{AuthView-jgkkdJYL.css → SettingsSourceControl-BBxJXbFC.css} +82 -32
  71. package/dist/assets/{SettingsSso-Bp4pf_0a.js → SettingsSso-5zcg-J4E.js} +11 -11
  72. package/dist/assets/{SettingsUsageAndPlan-D680YlPQ.js → SettingsUsageAndPlan-CMBvYdjo.js} +10 -10
  73. package/dist/assets/{SettingsUsageAndPlan-Bc3LLaWe.css → SettingsUsageAndPlan-D6TiPwUx.css} +3 -3
  74. package/dist/assets/{SettingsUsersView-DP2nppP6.js → SettingsUsersView-BL3TAhT8.js} +13 -12
  75. package/dist/assets/{SettingsView-BUpTI--W.js → SettingsView-BuDKhqwZ.js} +4 -4
  76. package/dist/assets/{SetupView-Bocro878.js → SetupView-DSaQcQDF.js} +3 -3
  77. package/dist/assets/{SetupWorkflowCredentialsButton-DODNIDNV.js → SetupWorkflowCredentialsButton-BWISZAxq.js} +2 -2
  78. package/dist/assets/{SetupWorkflowFromTemplateView-BLzrIJTt.js → SetupWorkflowFromTemplateView-CfDWCwoA.js} +6 -6
  79. package/dist/assets/{SigninView-2_f1aXTx.js → SigninView-BpjyswHb.js} +17 -20
  80. package/dist/assets/{SignoutView-oMETilwl.js → SignoutView-f_CoUl4S.js} +1 -1
  81. package/dist/assets/{SignupView-CYMsjH_L.js → SignupView-q3f9g3P9.js} +3 -3
  82. package/dist/assets/{SettingsSourceControl-DxshapuD.css → TableBase-Bf42_9Yp.css} +52 -67
  83. package/dist/assets/TableBase-DruQl-SO.js +28 -0
  84. package/dist/assets/{ProjectSettings-8tvaQJye.css → Tags-B0bIUnzf.css} +48 -39
  85. package/dist/assets/Tags-DbmKHzWo.js +95 -0
  86. package/dist/assets/{TemplateDetails-CmL1Gj71.js → TemplateDetails-DP_5pkzG.js} +17 -9
  87. package/dist/assets/{TemplateList-DpqrSF2u.js → TemplateList-y8Aumcsb.js} +6 -6
  88. package/dist/assets/{TemplatesCollectionView-DVlz-_MJ.js → TemplatesCollectionView-VdQpHtxs.js} +13 -12
  89. package/dist/assets/{TemplatesSearchView-CcToWnkG.js → TemplatesSearchView-BUcYRVEK.js} +16 -12
  90. package/dist/assets/{TemplatesView-CXH6dh9Y.js → TemplatesView-4DUEEEtD.js} +1 -1
  91. package/dist/assets/{TemplatesWorkflowView-DL9rIrAK.js → TemplatesWorkflowView--zUXMB8f.js} +12 -11
  92. package/dist/assets/{VariablesView-CX3umLhX.js → VariablesView-DoWb0Vtv.js} +7 -6
  93. package/dist/assets/{VariablesView-2BSJPXRB.css → VariablesView-Kog_9PMT.css} +8 -5
  94. package/dist/assets/{WorkerView-C5XLf-D-.js → WorkerView-D56d7XJA.js} +18 -18
  95. package/dist/assets/WorkflowActivator-BJPsIkXE.css +836 -0
  96. package/dist/assets/{WorkflowActivator-Bzz5eOg4.js → WorkflowActivator-CQxaDCfA.js} +313 -19
  97. package/dist/assets/{WorkflowExecutionsInfoAccordion-UVslt3c0.js → WorkflowExecutionsInfoAccordion-D9p_ZqmA.js} +6 -5
  98. package/dist/assets/{WorkflowExecutionsLandingPage-C1xNEQ3_.js → WorkflowExecutionsLandingPage-CymYth6K.js} +6 -5
  99. package/dist/assets/{WorkflowExecutionsPreview--Vn3C-sa.js → WorkflowExecutionsPreview-DRvf3WQC.js} +18 -18
  100. package/dist/assets/{WorkflowExecutionsView-_l8AgWIb.css → WorkflowExecutionsView-C_xuUSa8.css} +2 -2
  101. package/dist/assets/{WorkflowExecutionsView-B_Pvn_mZ.js → WorkflowExecutionsView-DxiIaUKV.js} +18 -15
  102. package/dist/assets/{WorkflowHistory-CQLQcsG4.js → WorkflowHistory-DBPIq2u7.js} +14 -13
  103. package/dist/assets/{WorkflowOnboardingView-DJZD6lcQ.js → WorkflowOnboardingView-D4QKSetf.js} +1 -1
  104. package/dist/assets/{WorkflowPreview-CAv2jWEf.js → WorkflowPreview-D3YRZjYi.js} +3 -3
  105. package/dist/assets/{WorkflowsView-9oLDmGMf.js → WorkflowsView-DPADmBVd.js} +37 -32
  106. package/dist/assets/{chartjs.utils-D3bkyfMC.js → chartjs.utils-Cou_ISuU.js} +2 -2
  107. package/dist/assets/{en-BUHUsdZz.js → en-DzZibgm_.js} +15 -1
  108. package/dist/assets/{global-link-actions-CudV1inR.js → global-link-actions-olwfH36z.js} +1 -1
  109. package/dist/assets/{import-curl-Q2R3Aa93.js → import-curl-DD21H3kK.js} +1 -1
  110. package/dist/assets/{index-ZImlcrmd.js → index-7S5ADieN.js} +177205 -181453
  111. package/dist/assets/{index-CeLskvTy.css → index-BzamKJpD.css} +2688 -5455
  112. package/dist/assets/{index-Cjj5DRsU.js → index-uJOu4Uio.js} +1 -1
  113. package/dist/assets/{pickBy-C61vriIY.js → pickBy-DPxZbMic.js} +1 -1
  114. package/dist/assets/{polyfills-deFGRMT9.js → polyfills-B8p9DdqU.js} +388 -1
  115. package/dist/assets/{templateActions-DgE3PfYi.js → templateActions-DJJfyIhq.js} +1 -1
  116. package/dist/assets/{typescript.worker-DIrCbxuR.js → typescript.worker-CUj0Nj-S.js} +39 -39
  117. package/dist/assets/{useBeforeUnload-CX6OL9lX.js → useBeforeUnload-DveXGtGN.js} +1 -1
  118. package/dist/assets/{useExecutionDebugging-Bw29Xcz_.js → useExecutionDebugging-DM4nhx6D.js} +1 -1
  119. package/dist/assets/{useExecutionHelpers-DfJOrkT9.js → useExecutionHelpers-BfF56crp.js} +1 -1
  120. package/dist/assets/{useImportCurlCommand-BtBYH8AF.js → useImportCurlCommand-BAgQhwtE.js} +11 -11
  121. package/dist/assets/{ProjectCardBadge-t3v64i1e.css → useKeybindings-BUK7Ngh6.css} +10 -31
  122. package/dist/assets/{useKeybindings-Dl2fatxs.js → useKeybindings-CV0VsjNP.js} +35 -1
  123. package/dist/assets/{useProjectPages-wyiRSAYY.js → useProjectPages-DgMGWOaO.js} +1 -1
  124. package/dist/assets/{usePushConnection-DbNbVMYT.js → usePushConnection-D8SE-itT.js} +3 -2
  125. package/dist/assets/{useWorkflowActivate-CnaSqjqM.js → useWorkflowActivate-BKz3N1SO.js} +1 -1
  126. package/dist/index.html +3 -3
  127. package/eslint.config.mjs +58 -0
  128. package/package.json +2 -1
  129. package/postcss.config.cjs +6 -0
  130. package/vite.config.mts +4 -0
  131. package/dist/assets/AuthView-BBEIdfYQ.js +0 -130
  132. package/dist/assets/CollectionParameter-_4aFNEaG.js +0 -4
  133. package/dist/assets/InsightsTableWorkflows-Cs0bf9Y9.js +0 -176
  134. package/dist/assets/ProjectCardBadge-saH09Hgi.js +0 -237
@@ -1,5 +1,151 @@
1
- import { aL as get, d as defineComponent, aM as useLoadingService, J as useUIStore, a3 as useSourceControlStore, a4 as useProjectsStore, a as useToast, r as ref, x as computed, ad as hasPermission, ab as getResourcePermissions, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, D as normalizeStyle, n as normalizeClass, m as unref, k as createBaseVNode, j as createVNode, l as createTextVNode, t as toDisplayString, w as withCtx, c as useI18n, E as createEventBus, ar as SOURCE_CONTROL_PUSH_MODAL_KEY, aN as notifyUserAboutPullWorkFolderOutcome, aO as sourceControlEventBus, aP as SOURCE_CONTROL_PULL_MODAL_KEY, _ as _export_sfc, R as defineStore, aQ as useCloudPlanStore, a1 as useRootStore, aR as useStorage, aS as DateTime, X as STORES, am as useTelemetry, v as useSettingsStore, b as useRouter, aT as sortByProperty, V as VIEWS, aa as usePageRedirectionHelper, e as createBlock, F as Fragment, G as renderList, aU as useDebugInfo, aV as useTemplatesStore, u as useUsersStore, aW as useVersionsStore, T as useWorkflowsStore, I as useDebounce, U as useRoute, o as onMounted, aX as useExternalHooks, B as nextTick, z as onBeforeUnmount, aY as onClickOutside, aZ as N8nTooltip, a_ as N8nLink, a$ as _sfc_main$5, b0 as N8nNavigationDropdown, b1 as createSlots, b2 as VERSIONS_MODAL_KEY, b3 as ABOUT_MODAL_KEY } from "./index-ZImlcrmd.js";
2
- import { L as Logo } from "./Logo-C699HbA_.js";
1
+ import { d as defineComponent, r as ref, e as createBlock, g as openBlock, w as withCtx, j as createVNode, m as unref, aX as ElSubMenu, n as normalizeClass, i as createElementBlock, F as Fragment, y as renderList, aY as _sfc_main$6, aZ as ElMenuItem, f as createCommentVNode, l as createTextVNode, J as renderSlot, aW as N8nIcon, t as toDisplayString, D as mergeProps, a_ as withKeys, a$ as ElMenu, _ as _export_sfc, b0 as get, b1 as useLoadingService, S as useUIStore, ad as useSourceControlStore, ae as useProjectsStore, a as useToast, x as computed, an as hasPermission, al as getResourcePermissions, O as normalizeStyle, k as createBaseVNode, Z as N8nTooltip, q as N8nButton, c as useI18n, P as createEventBus, aC as SOURCE_CONTROL_PUSH_MODAL_KEY, b2 as notifyUserAboutPullWorkFolderOutcome, b3 as sourceControlEventBus, b4 as SOURCE_CONTROL_PULL_MODAL_KEY, a1 as defineStore, b5 as useCloudPlanStore, ab as useRootStore, b6 as useStorage, b7 as DateTime, a6 as STORES, ax as useTelemetry, v as useSettingsStore, b as useRouter, b8 as sortByProperty, V as VIEWS, ak as usePageRedirectionHelper, h as resolveComponent, b9 as N8nMenuItem, p as N8nText, ba as useDebugInfo, bb as useVersionsStore, a0 as N8nLink, bc as VERSIONS_MODAL_KEY, bd as useTemplatesStore, u as useUsersStore, a3 as useWorkflowsStore, R as useDebounce, a4 as useRoute, be as RELEASE_NOTES_URL, o as onMounted, bf as useExternalHooks, K as nextTick, I as onBeforeUnmount, bg as onClickOutside, $ as _sfc_main$7, bh as createSlots, z as N8nAvatar, bi as N8nMenu, bj as WHATS_NEW_MODAL_KEY, bk as ABOUT_MODAL_KEY } from "./index-7S5ADieN.js";
2
+ import { N as N8nActionDropdown } from "./ActionDropdown-BujIG0Jq.js";
3
+ import { L as Logo } from "./Logo-DNxOhbuV.js";
4
+ const ROOT_MENU_INDEX = "-1";
5
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
6
+ ...{
7
+ name: "N8nNavigationDropdown"
8
+ },
9
+ __name: "NavigationDropdown",
10
+ props: {
11
+ menu: {},
12
+ disabled: { type: Boolean },
13
+ teleport: { type: Boolean }
14
+ },
15
+ emits: ["itemClick", "select"],
16
+ setup(__props, { expose: __expose, emit: __emit }) {
17
+ const menuRef = ref(null);
18
+ const emit = __emit;
19
+ const close = () => {
20
+ menuRef.value?.close(ROOT_MENU_INDEX);
21
+ };
22
+ const menuTrigger = ref("click");
23
+ const onOpen = (index) => {
24
+ if (index !== ROOT_MENU_INDEX) return;
25
+ menuTrigger.value = "hover";
26
+ };
27
+ const onClose = (index) => {
28
+ if (index !== ROOT_MENU_INDEX) return;
29
+ menuTrigger.value = "click";
30
+ };
31
+ __expose({
32
+ close
33
+ });
34
+ return (_ctx, _cache) => {
35
+ return openBlock(), createBlock(unref(ElMenu), {
36
+ ref_key: "menuRef",
37
+ ref: menuRef,
38
+ mode: "horizontal",
39
+ "unique-opened": "",
40
+ "menu-trigger": menuTrigger.value,
41
+ ellipsis: false,
42
+ class: normalizeClass(_ctx.$style.dropdown),
43
+ onSelect: _cache[1] || (_cache[1] = ($event) => emit("select", $event)),
44
+ onKeyup: withKeys(close, ["escape"]),
45
+ onOpen,
46
+ onClose
47
+ }, {
48
+ default: withCtx(() => [
49
+ createVNode(unref(ElSubMenu), {
50
+ index: ROOT_MENU_INDEX,
51
+ class: normalizeClass(_ctx.$style.trigger),
52
+ "popper-offset": -10,
53
+ "popper-class": _ctx.$style.submenu,
54
+ disabled: _ctx.disabled,
55
+ teleported: _ctx.teleport
56
+ }, {
57
+ title: withCtx(() => [
58
+ renderSlot(_ctx.$slots, "default")
59
+ ]),
60
+ default: withCtx(() => [
61
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menu, (item) => {
62
+ return openBlock(), createElementBlock(Fragment, {
63
+ key: item.id
64
+ }, [
65
+ item.submenu ? (openBlock(), createBlock(unref(ElSubMenu), {
66
+ key: 0,
67
+ "popper-class": _ctx.$style.nestedSubmenu,
68
+ index: item.id,
69
+ "popper-offset": -10,
70
+ "data-test-id": "navigation-submenu"
71
+ }, {
72
+ title: withCtx(() => [
73
+ createTextVNode(toDisplayString(item.title), 1)
74
+ ]),
75
+ default: withCtx(() => [
76
+ (openBlock(true), createElementBlock(Fragment, null, renderList(item.submenu, (subitem) => {
77
+ return openBlock(), createBlock(unref(_sfc_main$6), {
78
+ key: subitem.id,
79
+ to: !subitem.disabled && subitem.route || void 0
80
+ }, {
81
+ default: withCtx(() => [
82
+ createVNode(unref(ElMenuItem), {
83
+ "data-test-id": "navigation-submenu-item",
84
+ index: subitem.id,
85
+ disabled: subitem.disabled,
86
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("itemClick", $event))
87
+ }, {
88
+ default: withCtx(() => [
89
+ subitem.icon ? (openBlock(), createBlock(unref(N8nIcon), {
90
+ key: 0,
91
+ icon: subitem.icon,
92
+ class: normalizeClass(_ctx.$style.submenu__icon)
93
+ }, null, 8, ["icon", "class"])) : createCommentVNode("", true),
94
+ createTextVNode(" " + toDisplayString(subitem.title) + " ", 1),
95
+ renderSlot(_ctx.$slots, `item.append.${item.id}`, mergeProps({ ref_for: true }, { item }))
96
+ ]),
97
+ _: 2
98
+ }, 1032, ["index", "disabled"])
99
+ ]),
100
+ _: 2
101
+ }, 1032, ["to"]);
102
+ }), 128))
103
+ ]),
104
+ _: 2
105
+ }, 1032, ["popper-class", "index"])) : (openBlock(), createBlock(unref(_sfc_main$6), {
106
+ key: 1,
107
+ to: !item.disabled && item.route || void 0
108
+ }, {
109
+ default: withCtx(() => [
110
+ createVNode(unref(ElMenuItem), {
111
+ index: item.id,
112
+ disabled: item.disabled,
113
+ "data-test-id": "navigation-menu-item"
114
+ }, {
115
+ default: withCtx(() => [
116
+ createTextVNode(toDisplayString(item.title) + " ", 1),
117
+ renderSlot(_ctx.$slots, `item.append.${item.id}`, mergeProps({ ref_for: true }, { item }))
118
+ ]),
119
+ _: 2
120
+ }, 1032, ["index", "disabled"])
121
+ ]),
122
+ _: 2
123
+ }, 1032, ["to"]))
124
+ ], 64);
125
+ }), 128))
126
+ ]),
127
+ _: 3
128
+ }, 8, ["class", "popper-class", "disabled", "teleported"])
129
+ ]),
130
+ _: 3
131
+ }, 8, ["menu-trigger", "class"]);
132
+ };
133
+ }
134
+ });
135
+ const dropdown = "_dropdown_1dr86_123";
136
+ const nestedSubmenu = "_nestedSubmenu_1dr86_140";
137
+ const submenu = "_submenu_1dr86_145";
138
+ const submenu__icon = "_submenu__icon_1dr86_173";
139
+ const style0$5 = {
140
+ dropdown,
141
+ nestedSubmenu,
142
+ submenu,
143
+ submenu__icon
144
+ };
145
+ const cssModules$5 = {
146
+ "$style": style0$5
147
+ };
148
+ const N8nNavigationDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$5]]);
3
149
  async function getBecomeCreatorCta(context) {
4
150
  const response = await get(context.baseUrl, "/cta/become-creator");
5
151
  return response;
@@ -82,9 +228,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
82
228
  }
83
229
  }
84
230
  return (_ctx, _cache) => {
85
- const _component_n8n_icon = resolveComponent("n8n-icon");
86
- const _component_n8n_button = resolveComponent("n8n-button");
87
- const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
231
+ const _component_n8n_icon = N8nIcon;
232
+ const _component_n8n_button = N8nButton;
233
+ const _component_n8n_tooltip = N8nTooltip;
88
234
  return sourceControlAvailable.value ? (openBlock(), createElementBlock("div", {
89
235
  key: 0,
90
236
  class: normalizeClass({
@@ -178,30 +324,7 @@ const style0$4 = {
178
324
  const cssModules$4 = {
179
325
  "$style": style0$4
180
326
  };
181
- const __unplugin_components_3 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
182
- const notification = "_notification_1usal_130";
183
- const style0$3 = {
184
- "gift-icon": "_gift-icon_1usal_123",
185
- notification
186
- };
187
- const _sfc_main$3 = {};
188
- function _sfc_render(_ctx, _cache) {
189
- const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
190
- return openBlock(), createElementBlock("div", {
191
- class: normalizeClass(_ctx.$style["gift-icon"])
192
- }, [
193
- createVNode(_component_font_awesome_icon, { icon: "gift" }),
194
- createBaseVNode("div", {
195
- class: normalizeClass(_ctx.$style["notification"])
196
- }, _cache[0] || (_cache[0] = [
197
- createBaseVNode("div", null, null, -1)
198
- ]), 2)
199
- ], 2);
200
- }
201
- const cssModules$3 = {
202
- "$style": style0$3
203
- };
204
- const __unplugin_components_2 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render], ["__cssModules", cssModules$3]]);
327
+ const __unplugin_components_4 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
205
328
  const LOCAL_STORAGE_KEY = "N8N_BECOME_TEMPLATE_CREATOR_CTA_DISMISSED_AT";
206
329
  const RESHOW_DISMISSED_AFTER_DAYS = 30;
207
330
  const POLL_INTERVAL_IN_MS = 15 * 60 * 1e3;
@@ -257,7 +380,7 @@ function hasEnoughTimePassedSinceDismissal(dismissedAt) {
257
380
  });
258
381
  return reshowAtTime <= DateTime.now();
259
382
  }
260
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
383
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
261
384
  __name: "BecomeTemplateCreatorCta",
262
385
  setup(__props) {
263
386
  const i18n = useI18n();
@@ -267,8 +390,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
267
390
  telemetry.track("User clicked become creator CTA");
268
391
  };
269
392
  return (_ctx, _cache) => {
270
- const _component_n8n_icon = resolveComponent("n8n-icon");
271
- const _component_n8n_button = resolveComponent("n8n-button");
393
+ const _component_n8n_icon = N8nIcon;
394
+ const _component_n8n_button = N8nButton;
272
395
  return unref(store).showBecomeCreatorCta ? (openBlock(), createElementBlock("div", {
273
396
  key: 0,
274
397
  class: normalizeClass(_ctx.$style.container),
@@ -306,22 +429,22 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
306
429
  };
307
430
  }
308
431
  });
309
- const container = "_container_19by7_123";
432
+ const container$1 = "_container_19by7_123";
310
433
  const textAndCloseButton = "_textAndCloseButton_19by7_131";
311
434
  const text = "_text_19by7_131";
312
435
  const closeButton = "_closeButton_19by7_144";
313
436
  const becomeCreatorButton = "_becomeCreatorButton_19by7_157";
314
- const style0$2 = {
315
- container,
437
+ const style0$3 = {
438
+ container: container$1,
316
439
  textAndCloseButton,
317
440
  text,
318
441
  closeButton,
319
442
  becomeCreatorButton
320
443
  };
321
- const cssModules$2 = {
322
- "$style": style0$2
444
+ const cssModules$3 = {
445
+ "$style": style0$3
323
446
  };
324
- const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
447
+ const __unplugin_components_3 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
325
448
  const useGlobalEntityCreation = () => {
326
449
  const CREATE_PROJECT_ID = "create-project";
327
450
  const WORKFLOWS_MENU_ID = "workflow";
@@ -533,7 +656,7 @@ const _hoisted_2 = {
533
656
  key: 3,
534
657
  class: "mb-m"
535
658
  };
536
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
659
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
537
660
  __name: "ProjectNavigation",
538
661
  props: {
539
662
  collapsed: { type: Boolean },
@@ -566,7 +689,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
566
689
  }));
567
690
  const getProjectMenuItem = (project) => ({
568
691
  id: project.id,
569
- label: project.name,
692
+ label: project.name ?? "",
570
693
  icon: project.icon,
571
694
  route: {
572
695
  to: {
@@ -589,12 +712,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
589
712
  const showAddFirstProject = computed(
590
713
  () => projectsStore.isTeamProjectFeatureEnabled && !displayProjects.value.length
591
714
  );
715
+ const activeTabId = computed(() => {
716
+ return (Array.isArray(projectsStore.projectNavActiveId) ? projectsStore.projectNavActiveId[0] : projectsStore.projectNavActiveId) ?? void 0;
717
+ });
592
718
  return (_ctx, _cache) => {
593
- const _component_N8nMenuItem = resolveComponent("N8nMenuItem");
719
+ const _component_N8nMenuItem = N8nMenuItem;
594
720
  const _component_ElMenu = resolveComponent("ElMenu");
595
- const _component_N8nButton = resolveComponent("N8nButton");
596
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
597
- const _component_N8nText = resolveComponent("N8nText");
721
+ const _component_N8nButton = N8nButton;
722
+ const _component_N8nTooltip = N8nTooltip;
723
+ const _component_N8nText = N8nText;
598
724
  return openBlock(), createElementBlock("div", {
599
725
  class: normalizeClass(_ctx.$style.projects)
600
726
  }, [
@@ -606,7 +732,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
606
732
  createVNode(_component_N8nMenuItem, {
607
733
  item: home.value,
608
734
  compact: props.collapsed,
609
- "active-tab": unref(projectsStore).projectNavActiveId,
735
+ "active-tab": activeTabId.value,
610
736
  mode: "tabs",
611
737
  "data-test-id": "project-home-menu-item"
612
738
  }, null, 8, ["item", "compact", "active-tab"]),
@@ -614,7 +740,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
614
740
  key: 0,
615
741
  item: personalProject.value,
616
742
  compact: props.collapsed,
617
- "active-tab": unref(projectsStore).projectNavActiveId,
743
+ "active-tab": activeTabId.value,
618
744
  mode: "tabs",
619
745
  "data-test-id": "project-personal-menu-item"
620
746
  }, null, 8, ["item", "compact", "active-tab"])) : createCommentVNode("", true),
@@ -622,7 +748,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
622
748
  key: 1,
623
749
  item: shared.value,
624
750
  compact: props.collapsed,
625
- "active-tab": unref(projectsStore).projectNavActiveId,
751
+ "active-tab": activeTabId.value,
626
752
  mode: "tabs",
627
753
  "data-test-id": "project-shared-menu-item"
628
754
  }, null, 8, ["item", "compact", "active-tab"])) : createCommentVNode("", true)
@@ -673,7 +799,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
673
799
  }),
674
800
  item: getProjectMenuItem(project),
675
801
  compact: props.collapsed,
676
- "active-tab": unref(projectsStore).projectNavActiveId,
802
+ "active-tab": activeTabId.value,
677
803
  mode: "tabs",
678
804
  "data-test-id": "project-menu-item"
679
805
  }, null, 8, ["class", "item", "compact", "active-tab"]);
@@ -721,7 +847,7 @@ const upgradeLink = "_upgradeLink_jcrfa_141";
721
847
  const collapsed = "_collapsed_jcrfa_146";
722
848
  const projectsLabel = "_projectsLabel_jcrfa_150";
723
849
  const addFirstProjectBtn = "_addFirstProjectBtn_jcrfa_173";
724
- const style0$1 = {
850
+ const style0$2 = {
725
851
  projects,
726
852
  plusBtn,
727
853
  projectItems,
@@ -730,10 +856,10 @@ const style0$1 = {
730
856
  projectsLabel,
731
857
  addFirstProjectBtn
732
858
  };
733
- const cssModules$1 = {
734
- "$style": style0$1
859
+ const cssModules$2 = {
860
+ "$style": style0$2
735
861
  };
736
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-7c9247d0"]]);
862
+ const __unplugin_components_2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2], ["__scopeId", "data-v-ff344eee"]]);
737
863
  const BASE_FORUM_URL = "https://github.com/n8n-io/n8n/issues/new?labels=bug-report";
738
864
  const REPORT_TEMPLATE = `
739
865
  <!-- Please follow the template below. Skip the questions that are not relevant to you. -->
@@ -769,6 +895,63 @@ ${debugInfo.generateDebugInfo({ skipSensitive: true, secondaryHeader: true })}}`
769
895
  getReportingURL
770
896
  };
771
897
  }
898
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
899
+ __name: "VersionUpdateCTA",
900
+ setup(__props) {
901
+ const i18n = useI18n();
902
+ const versionsStore = useVersionsStore();
903
+ const uiStore = useUIStore();
904
+ const pageRedirectionHelper = usePageRedirectionHelper();
905
+ const telemetry = useTelemetry();
906
+ const openUpdatesPanel = () => {
907
+ uiStore.openModal(VERSIONS_MODAL_KEY);
908
+ };
909
+ const onUpdateClick = async () => {
910
+ telemetry.track("User clicked on update button", {
911
+ source: "main-sidebar"
912
+ });
913
+ await pageRedirectionHelper.goToVersions();
914
+ };
915
+ return (_ctx, _cache) => {
916
+ return openBlock(), createElementBlock("div", {
917
+ class: normalizeClass(_ctx.$style.container)
918
+ }, [
919
+ createVNode(unref(N8nLink), {
920
+ size: "small",
921
+ theme: "text",
922
+ "data-test-id": "version-update-next-versions-link",
923
+ onClick: openUpdatesPanel
924
+ }, {
925
+ default: withCtx(() => [
926
+ createTextVNode(toDisplayString(unref(i18n).baseText("whatsNew.versionsBehind", {
927
+ interpolate: {
928
+ count: unref(versionsStore).nextVersions.length > 99 ? "99+" : unref(versionsStore).nextVersions.length
929
+ }
930
+ })), 1)
931
+ ]),
932
+ _: 1
933
+ }),
934
+ createVNode(unref(N8nButton), {
935
+ class: normalizeClass(_ctx.$style.button),
936
+ label: unref(i18n).baseText("whatsNew.update"),
937
+ "data-test-id": "version-update-cta-button",
938
+ size: "mini",
939
+ onClick: onUpdateClick
940
+ }, null, 8, ["class", "label"])
941
+ ], 2);
942
+ };
943
+ }
944
+ });
945
+ const container = "_container_1hqs4_123";
946
+ const button = "_button_1hqs4_136";
947
+ const style0$1 = {
948
+ container,
949
+ button
950
+ };
951
+ const cssModules$1 = {
952
+ "$style": style0$1
953
+ };
954
+ const VersionUpdateCTA = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
772
955
  const _hoisted_1 = {
773
956
  class: "ml-3xs",
774
957
  "data-test-id": "main-sidebar-user-menu"
@@ -807,6 +990,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
807
990
  label: i18n.baseText("auth.signout")
808
991
  }
809
992
  ]);
993
+ const showWhatsNewNotification = computed(
994
+ () => versionsStore.hasVersionUpdates || versionsStore.whatsNewArticles.some(
995
+ (article) => !versionsStore.isWhatsNewArticleRead(article.id)
996
+ )
997
+ );
810
998
  const mainMenuItems = computed(() => [
811
999
  {
812
1000
  id: "cloud-admin",
@@ -911,14 +1099,50 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
911
1099
  position: "bottom"
912
1100
  }
913
1101
  ]
1102
+ },
1103
+ {
1104
+ id: "whats-new",
1105
+ icon: "bell",
1106
+ notification: showWhatsNewNotification.value,
1107
+ label: i18n.baseText("mainSidebar.whatsNew"),
1108
+ position: "bottom",
1109
+ available: versionsStore.hasVersionUpdates || versionsStore.whatsNewArticles.length > 0,
1110
+ children: [
1111
+ ...versionsStore.whatsNewArticles.map(
1112
+ (article) => ({
1113
+ id: `whats-new-article-${article.id}`,
1114
+ label: article.title,
1115
+ size: "small",
1116
+ customIconSize: "small",
1117
+ icon: {
1118
+ type: "emoji",
1119
+ value: "•",
1120
+ color: !versionsStore.isWhatsNewArticleRead(article.id) ? "primary" : "text-light"
1121
+ }
1122
+ })
1123
+ ),
1124
+ {
1125
+ id: "full-changelog",
1126
+ icon: "external-link-alt",
1127
+ label: i18n.baseText("mainSidebar.whatsNew.fullChangelog"),
1128
+ link: {
1129
+ href: RELEASE_NOTES_URL,
1130
+ target: "_blank"
1131
+ },
1132
+ size: "small",
1133
+ customIconSize: "small"
1134
+ },
1135
+ {
1136
+ id: "version-upgrade-cta",
1137
+ component: VersionUpdateCTA,
1138
+ available: versionsStore.hasVersionUpdates,
1139
+ props: {}
1140
+ }
1141
+ ]
914
1142
  }
915
1143
  ]);
916
1144
  const createBtn = ref();
917
1145
  const isCollapsed = computed(() => uiStore.sidebarMenuCollapsed);
918
- const hasVersionUpdates = computed(
919
- () => settingsStore.settings.releaseChannel === "stable" && versionsStore.hasVersionUpdates
920
- );
921
- const nextVersions = computed(() => versionsStore.nextVersions);
922
1146
  const showUserArea = computed(() => hasPermission(["authenticated"]));
923
1147
  const userIsTrialing = computed(() => cloudPlanStore.userIsTrialing);
924
1148
  onMounted(async () => {
@@ -938,7 +1162,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
938
1162
  });
939
1163
  const trackTemplatesClick = () => {
940
1164
  telemetry.track("User clicked on templates", {
941
- role: usersStore.currentUserCloudInfo?.role,
1165
+ role: cloudPlanStore.currentUserCloudInfo?.role,
942
1166
  active_workflow_count: workflowsStore.activeWorkflows.length
943
1167
  });
944
1168
  };
@@ -971,9 +1195,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
971
1195
  fullyExpanded.value = !isCollapsed.value;
972
1196
  }
973
1197
  };
974
- const openUpdatesPanel = () => {
975
- uiStore.openModal(VERSIONS_MODAL_KEY);
976
- };
977
1198
  const handleSelect = (key) => {
978
1199
  switch (key) {
979
1200
  case "templates":
@@ -999,6 +1220,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
999
1220
  }
1000
1221
  case "insights":
1001
1222
  telemetry.track("User clicked insights link from side menu");
1223
+ default:
1224
+ if (key.startsWith("whats-new-article-")) {
1225
+ const articleId = Number(key.replace("whats-new-article-", ""));
1226
+ telemetry.track("User clicked on what's new section", {
1227
+ article_id: articleId
1228
+ });
1229
+ uiStore.openModalWithData({
1230
+ name: WHATS_NEW_MODAL_KEY,
1231
+ data: {
1232
+ articleId
1233
+ }
1234
+ });
1235
+ }
1236
+ break;
1002
1237
  }
1003
1238
  };
1004
1239
  function onResize() {
@@ -1028,20 +1263,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1028
1263
  createBtn.value?.close();
1029
1264
  });
1030
1265
  return (_ctx, _cache) => {
1031
- const _component_N8nIcon = resolveComponent("N8nIcon");
1266
+ const _component_N8nIcon = N8nIcon;
1032
1267
  const _component_i18n_t = resolveComponent("i18n-t");
1033
- const _component_N8nButton = resolveComponent("N8nButton");
1034
- const _component_ProjectNavigation = __unplugin_components_0;
1035
- const _component_BecomeTemplateCreatorCta = __unplugin_components_1;
1036
- const _component_GiftNotificationIcon = __unplugin_components_2;
1037
- const _component_N8nText = resolveComponent("N8nText");
1038
- const _component_MainSidebarSourceControl = __unplugin_components_3;
1039
- const _component_N8nAvatar = resolveComponent("N8nAvatar");
1268
+ const _component_N8nButton = N8nButton;
1269
+ const _component_ProjectNavigation = __unplugin_components_2;
1270
+ const _component_BecomeTemplateCreatorCta = __unplugin_components_3;
1271
+ const _component_MainSidebarSourceControl = __unplugin_components_4;
1272
+ const _component_N8nAvatar = N8nAvatar;
1040
1273
  const _component_ElDropdownItem = resolveComponent("ElDropdownItem");
1041
1274
  const _component_ElDropdownMenu = resolveComponent("ElDropdownMenu");
1042
1275
  const _component_ElDropdown = resolveComponent("ElDropdown");
1043
- const _component_N8nActionDropdown = resolveComponent("N8nActionDropdown");
1044
- const _component_N8nMenu = resolveComponent("N8nMenu");
1276
+ const _component_N8nText = N8nText;
1277
+ const _component_N8nActionDropdown = N8nActionDropdown;
1278
+ const _component_N8nMenu = N8nMenu;
1045
1279
  return openBlock(), createElementBlock("div", {
1046
1280
  id: "side-menu",
1047
1281
  class: normalizeClass({
@@ -1190,7 +1424,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1190
1424
  }, 1032, ["content"])) : createCommentVNode("", true)
1191
1425
  ]),
1192
1426
  default: withCtx(() => [
1193
- createVNode(unref(_sfc_main$5), {
1427
+ createVNode(unref(_sfc_main$7), {
1194
1428
  icon: "plus",
1195
1429
  type: "secondary",
1196
1430
  outline: ""
@@ -1215,27 +1449,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1215
1449
  ]),
1216
1450
  menuSuffix: withCtx(() => [
1217
1451
  createBaseVNode("div", null, [
1218
- hasVersionUpdates.value ? (openBlock(), createElementBlock("div", {
1219
- key: 0,
1220
- "data-test-id": "version-updates-panel-button",
1221
- class: normalizeClass(_ctx.$style.updates),
1222
- onClick: openUpdatesPanel
1223
- }, [
1224
- createBaseVNode("div", {
1225
- class: normalizeClass(_ctx.$style.giftContainer)
1226
- }, [
1227
- createVNode(_component_GiftNotificationIcon)
1228
- ], 2),
1229
- createVNode(_component_N8nText, {
1230
- class: normalizeClass({ ["ml-xs"]: true, [_ctx.$style.expanded]: fullyExpanded.value }),
1231
- color: "text-base"
1232
- }, {
1233
- default: withCtx(() => [
1234
- createTextVNode(toDisplayString(nextVersions.value.length > 99 ? "99+" : nextVersions.value.length) + " update" + toDisplayString(nextVersions.value.length > 1 ? "s" : ""), 1)
1235
- ]),
1236
- _: 1
1237
- }, 8, ["class"])
1238
- ], 2)) : createCommentVNode("", true),
1239
1452
  createVNode(_component_MainSidebarSourceControl, { "is-collapsed": isCollapsed.value }, null, 8, ["is-collapsed"])
1240
1453
  ])
1241
1454
  ]),