n8n-editor-ui 1.102.2 → 1.104.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 (131) hide show
  1. package/dist/assets/{ActionDropdown-CiegfqhB.js → ActionDropdown-Ct6XJ0cl.js} +1 -1
  2. package/dist/assets/{AnimatedSpinner-DZ7wHd_W.js → AnimatedSpinner-CIyQ3zKd.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BQoi5khn.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-xv6FYiyR.js} +1 -1
  4. package/dist/assets/{AuthView-K2y2JXyp.js → AuthView-dJdngoqx.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-D_EsQtLD.js → ChangePasswordView-C74U84q5.js} +3 -3
  6. package/dist/assets/CollectionParameter-DCn5Jtcj.js +4 -0
  7. package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CkASni2S.js +44 -0
  8. package/dist/assets/{CredentialsView-DvE9GnD7.js → CredentialsView-jouDB3H1.js} +8 -8
  9. package/dist/assets/{DemoFooter-kRP32xy4.js → DemoFooter-CHlbEpB-.js} +9 -8
  10. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-B6KKFEL7.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CbDihlsO.js} +1 -1
  11. package/dist/assets/{EntityNotFound-q_5k8QTh.js → EntityNotFound-Dtqj9thX.js} +1 -1
  12. package/dist/assets/{EntityUnAuthorised-DrFh2EVh.js → EntityUnAuthorised-BBsbc6du.js} +1 -1
  13. package/dist/assets/{ErrorView-CdyA4lBI.js → ErrorView-BN4Jm32q.js} +1 -1
  14. package/dist/assets/{EvaluationsRootView-DBi9hUxa.js → EvaluationsRootView-B70WfmnQ.js} +5 -3
  15. package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
  16. package/dist/assets/{EvaluationsView-VbCSsM2z.js → EvaluationsView-DQd7op3j.js} +53 -40
  17. package/dist/assets/{ExecutionsTime-DkME6I3E.css → ExecutionsTime-Bo7IOE5K.css} +6 -6
  18. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-v5SEEKlZ.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-C_2brmCr.js} +16 -16
  19. package/dist/assets/{ExecutionsView-sSmNa_LK.js → ExecutionsView-CKPZTnZV.js} +21 -18
  20. package/dist/assets/{FileSaver.min-BemkeU_7.js → FileSaver.min-BvxTURBB.js} +1 -1
  21. package/dist/assets/{FixedCollectionParameter-yzvCzSx6.js → FixedCollectionParameter-CA-CigeR.js} +1 -1
  22. package/dist/assets/{ForgotMyPasswordView-BKvBLqbr.js → ForgotMyPasswordView-YyVmo-nw.js} +3 -3
  23. package/dist/assets/{InfoAccordion--ZQQuSPX.js → InfoAccordion-BNmUe2V9.js} +1 -1
  24. package/dist/assets/{InsightsChartAverageRuntime-DGOGXDwW.js → InsightsChartAverageRuntime-C9sCNhzD.js} +5 -4
  25. package/dist/assets/{InsightsChartFailed-1vg5XpxV.js → InsightsChartFailed-DWA6YbZj.js} +5 -4
  26. package/dist/assets/{InsightsChartFailureRate-7nJvVi9O.js → InsightsChartFailureRate-CfknGtrr.js} +5 -4
  27. package/dist/assets/{InsightsChartTimeSaved-DKn1pZ2q.js → InsightsChartTimeSaved-DtLO9DJx.js} +5 -4
  28. package/dist/assets/{InsightsChartTotal-ByrPtNMJ.js → InsightsChartTotal-yX_QJ-44.js} +5 -4
  29. package/dist/assets/{InsightsDashboard-BwLnzxKC.js → InsightsDashboard-BlYvn96O.js} +19 -19
  30. package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
  31. package/dist/assets/{InsightsPaywall-8Xzv5tgi.js → InsightsPaywall-BCfIY_xn.js} +3 -3
  32. package/dist/assets/{InsightsSummary-CVMZ0AIR.js → InsightsSummary-OiO7efWD.js} +9 -4
  33. package/dist/assets/{InsightsTableWorkflows-DJhX6bQW.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
  34. package/dist/assets/{InsightsTableWorkflows-KGsV_wLS.js → InsightsTableWorkflows-pTl3m7wx.js} +80 -27
  35. package/dist/assets/{Logo-DFdhGUpH.js → Logo-8g4P9vyv.js} +1 -1
  36. package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
  37. package/dist/assets/{LogsPanel-DDzEUcu_.js → LogsPanel-so01MtIR.js} +23 -12
  38. package/dist/assets/{MainHeader-IUjqKc1i.js → MainHeader-CcUlKfHC.js} +20 -26
  39. package/dist/assets/{MainHeader-DYYEm7nF.css → MainHeader-qSHM1Rvp.css} +12 -12
  40. package/dist/assets/{MainSidebar-CaLHZgDB.css → MainSidebar-D74VZmM5.css} +7 -8
  41. package/dist/assets/{MainSidebar-BV-JzM27.js → MainSidebar-DOGhP_oY.js} +26 -25
  42. package/dist/assets/{N8nDataTableServer-Dq5Mwh9d.js → N8nDataTableServer-9HerjyzX.js} +39 -19
  43. package/dist/assets/{NodeCreation-DCV9QVeh.js → NodeCreation-CVbCKnet.js} +45 -21
  44. package/dist/assets/{NodeCreation-32nlvQSy.css → NodeCreation-CxN6JIS_.css} +9 -1
  45. package/dist/assets/{NodeCreator-C8jv1gta.js → NodeCreator-BOosPF8_.js} +114 -204
  46. package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
  47. package/dist/assets/{NodeDetailsView-D7qedYA0.js → NodeDetailsView-KFidngJi.js} +21 -16
  48. package/dist/assets/{NodeDetailsViewV2-BAkPjDo5.js → NodeDetailsViewV2-BL4KKqW-.js} +21 -16
  49. package/dist/assets/{NodeView-DKlyR0_C.js → NodeView-BzC6ELga.js} +2271 -686
  50. package/dist/assets/{NodeView-BbQy7Are.css → NodeView-G2qfXaOy.css} +766 -95
  51. package/dist/assets/{ProjectHeader-Co0EPo6y.js → ProjectHeader-B9-GdGvC.js} +2 -2
  52. package/dist/assets/{ProjectSettings-CUwuhSyu.js → ProjectSettings-CE4_geFa.js} +7 -5
  53. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DDVpVAyT.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bb8zUJvi.js} +1 -1
  54. package/dist/assets/{ResourcesListLayout-0KbQy3_m.js → ResourcesListLayout-ClTEnqVS.js} +3 -3
  55. package/dist/assets/{RunDataJson-T-LRvnsQ.js → RunDataJson-fXQKTIFD.js} +8 -9
  56. package/dist/assets/{RunDataJsonActions-C5tGgl2w.js → RunDataJsonActions-CMP1sUPZ.js} +1 -1
  57. package/dist/assets/RunDataParsedAiContent-CHK6Y4ET.js +298 -0
  58. package/dist/assets/{RunDataSearch-CsykTpQU.js → RunDataSearch-CAZGWZzz.js} +1 -1
  59. package/dist/assets/{RunDataTable-DS-hDrAF.js → RunDataTable-CeqmA-n3.js} +65 -56
  60. package/dist/assets/{RunDataTable-CTBtmQIs.css → RunDataTable-n918b-Qv.css} +55 -55
  61. package/dist/assets/{SamlOnboarding-Dr42BiUa.js → SamlOnboarding-BrdzPMSK.js} +3 -3
  62. package/dist/assets/{SettingsApiView-0TAqOns3.js → SettingsApiView-Cj2YYKAl.js} +5 -4
  63. package/dist/assets/{SettingsCommunityNodesView-BO5mZg81.js → SettingsCommunityNodesView-ChB--kZD.js} +4 -3
  64. package/dist/assets/{SettingsExternalSecrets-BmpYfnUN.js → SettingsExternalSecrets-BjghCvkE.js} +5 -3
  65. package/dist/assets/{SettingsLdapView-AdcIL_WB.js → SettingsLdapView-DIB1-nTk.js} +1 -1
  66. package/dist/assets/{SettingsLogStreamingView-DHAPBv4i.js → SettingsLogStreamingView-BOOGkcwK.js} +1 -1
  67. package/dist/assets/{SettingsPersonalView-D-sKTNF5.js → SettingsPersonalView-DaNZTNUy.js} +1 -1
  68. package/dist/assets/{SettingsSourceControl-D_jgIQPN.js → SettingsSourceControl-B5fQRT0V.js} +10 -8
  69. package/dist/assets/{SettingsSso-DpxORkrt.js → SettingsSso-CWX-T13W.js} +1 -1
  70. package/dist/assets/{SettingsUsageAndPlan-DWu4RW1N.js → SettingsUsageAndPlan-Cnnf9k6X.js} +15 -10
  71. package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
  72. package/dist/assets/{SettingsUsersView-r6-ZO8CO.js → SettingsUsersView-BLDi4lpv.js} +107 -44
  73. package/dist/assets/{SettingsUsersView-BuZbf1jq.css → SettingsUsersView-RQTdLxyb.css} +13 -6
  74. package/dist/assets/{SettingsView-DoZ4920P.js → SettingsView-Dtc8MEv6.js} +1 -1
  75. package/dist/assets/{SetupView-Ca70rhsh.js → SetupView-C4C-2Idz.js} +3 -3
  76. package/dist/assets/{SetupWorkflowCredentialsButton-ujybntOa.js → SetupWorkflowCredentialsButton-Pzrxag-k.js} +1 -1
  77. package/dist/assets/{SetupWorkflowFromTemplateView-KE6NTkHC.js → SetupWorkflowFromTemplateView-CRsZDYct.js} +3 -3
  78. package/dist/assets/{SigninView-_rmKLSpx.js → SigninView-COyoSAUi.js} +3 -3
  79. package/dist/assets/{SignoutView-DYPGyBsZ.js → SignoutView-B0t9kc5s.js} +1 -1
  80. package/dist/assets/{SignupView-BDSpYIB0.js → SignupView-BN8MCOnb.js} +3 -3
  81. package/dist/assets/{TableBase-Bz6zRvAL.js → TableBase-BmhIwPwZ.js} +1 -1
  82. package/dist/assets/{Tags-Doq3WsWA.js → Tags-DeTgaVsD.js} +1 -1
  83. package/dist/assets/{TemplateDetails-BzDS-0Fd.js → TemplateDetails-Bh-WSvQ-.js} +2 -2
  84. package/dist/assets/{TemplateList-D_XBHKQu.js → TemplateList-DxvJMjPE.js} +1 -1
  85. package/dist/assets/{TemplatesCollectionView-BvnC5QZ9.js → TemplatesCollectionView-BhilAS_8.js} +6 -6
  86. package/dist/assets/{TemplatesSearchView-CCsnhiD3.js → TemplatesSearchView-CWxnTQ8Z.js} +3 -3
  87. package/dist/assets/{TemplatesView-DbW9D41Q.js → TemplatesView-Co-FQLhr.js} +1 -1
  88. package/dist/assets/{TemplatesWorkflowView-CVFtBBcd.js → TemplatesWorkflowView-DAWgsT0T.js} +6 -6
  89. package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
  90. package/dist/assets/{TriggerPanel-CP3_UsCW.js → TriggerPanel-JaXhe1VW.js} +133 -1089
  91. package/dist/assets/{VariablesView-DIZkSQZ3.js → VariablesView-JnfEn1f-.js} +5 -5
  92. package/dist/assets/VueMarkdown-DDKnTMgT.js +1570 -0
  93. package/dist/assets/{WorkerView-DgXLi4d9.js → WorkerView-DZG4C_Qp.js} +6 -5
  94. package/dist/assets/{WorkflowActivator-f0lJXePV.js → WorkflowActivator-C8hP37n7.js} +2 -2
  95. package/dist/assets/{WorkflowExecutionsInfoAccordion-BFSae6PE.js → WorkflowExecutionsInfoAccordion-DCNvkxhh.js} +2 -2
  96. package/dist/assets/{WorkflowExecutionsLandingPage-Bb104kSO.js → WorkflowExecutionsLandingPage-DVp6SoPy.js} +3 -3
  97. package/dist/assets/{WorkflowExecutionsPreview-Do5Rp-8m.js → WorkflowExecutionsPreview-CKYWZWv1.js} +9 -7
  98. package/dist/assets/{WorkflowExecutionsView-BSv7OYhx.js → WorkflowExecutionsView-BIkweP3p.js} +8 -8
  99. package/dist/assets/{WorkflowHistory-CsEfwZK8.js → WorkflowHistory-C0LrWJW0.js} +6 -6
  100. package/dist/assets/{WorkflowOnboardingView-BOvx7CPi.js → WorkflowOnboardingView-CWMUgnLK.js} +1 -1
  101. package/dist/assets/{WorkflowPreview-BQ_GLS2J.js → WorkflowPreview-DmYMBSH3.js} +3 -1
  102. package/dist/assets/{WorkflowsView-DYxrTukw.js → WorkflowsView-jEphnf90.js} +125 -17
  103. package/dist/assets/aiTemplatesStarterCollection.store-oECEA5nR.js +794 -0
  104. package/dist/assets/{chartjs.utils-D8ESC4_p.js → chartjs.utils-CP28DnUQ.js} +2 -2
  105. package/dist/assets/{en-C2EOIYih.js → en-BX7CKkqE.js} +27 -6
  106. package/dist/assets/{global-link-actions-BIVeUMGo.js → global-link-actions-BjpAG7gt.js} +1 -1
  107. package/dist/assets/{import-curl-CjhdjoGU.js → import-curl-BD22LJ4z.js} +1 -1
  108. package/dist/assets/{index-COleXxZf.css → index-BWpYwmXd.css} +541 -1074
  109. package/dist/assets/{index-DAODXvFs.js → index-CjbtyS1n.js} +1 -1
  110. package/dist/assets/{index-B3p3789J.js → index-Cm5yBbby.js} +21381 -15752
  111. package/dist/assets/{pickBy-CaeaG_7P.js → pickBy-DA-1tKxT.js} +1 -1
  112. package/dist/assets/{templateActions-Ct4VGqHx.js → templateActions-D9IAsJ2m.js} +1 -1
  113. package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
  114. package/dist/assets/{useBeforeUnload-Yj83KQFp.js → useBeforeUnload-BR-V9Uaz.js} +1 -1
  115. package/dist/assets/{useExecutionDebugging-wUQ9K2sh.js → useExecutionDebugging-C8zR-uFJ.js} +1 -1
  116. package/dist/assets/{useExecutionHelpers-i07QEXws.js → useExecutionHelpers-DQcWcZ8o.js} +1 -1
  117. package/dist/assets/{useImportCurlCommand-Bs8VOC2z.js → useImportCurlCommand-B3-fEq8S.js} +9 -9
  118. package/dist/assets/{RunData-DuKNwYqe.css → useKeybindings-2A271Jke.css} +193 -62
  119. package/dist/assets/{RunData-CctCvWsu.js → useKeybindings-DetzdpXy.js} +288 -1696
  120. package/dist/assets/{useProjectPages-DHCwu3nX.js → useProjectPages-qXIMd_UF.js} +1 -1
  121. package/dist/assets/{usePushConnection-Iyy-883l.js → usePushConnection-Duvg6z8O.js} +10 -2
  122. package/dist/assets/{useWorkflowActivate-DpHXxGAq.js → useWorkflowActivate-BE4Ckf9k.js} +1 -1
  123. package/dist/index.html +3 -7
  124. package/eslint.config.mjs +1 -1
  125. package/index.html +1 -5
  126. package/package.json +1 -1
  127. package/vite.config.mts +23 -3
  128. package/dist/assets/CollectionParameter-DvyRKBx0.js +0 -4
  129. package/dist/assets/RunDataParsedAiContent-BILLIvVH.js +0 -148
  130. package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
  131. package/dist/assets/useKeybindings-ul7syjnB.js +0 -118
@@ -1,4 +1,4 @@
1
- import { _ as _export_sfc, gZ as _sfc_main$1, d as defineComponent, ae as useSourceControlStore, al as usePageRedirectionHelper, a as useToast, ai as useDocumentTitle, b1 as useLoadingService, r as ref, x as computed, o as onMounted, c as useI18n, ee as reactive, O as resolveComponent, h as createElementBlock, g as openBlock, i as createVNode, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, j as createBaseVNode, f as createCommentVNode, di as N8nCallout, n as normalizeClass, fI as N8nFormInput, q as N8nButton, fQ as CopyInput, dq as N8nNotice, $ as N8nTooltip, fK as N8nCheckbox, eS as N8nActionBox, aA as useMessage, aB as MODAL_CONFIRM } from "./index-B3p3789J.js";
1
+ import { _ as _export_sfc, hl as _sfc_main$1, d as defineComponent, af as useSourceControlStore, am as usePageRedirectionHelper, a as useToast, aj as useDocumentTitle, b0 as useLoadingService, r as ref, x as computed, o as onMounted, c as useI18n, eI as reactive, h as createElementBlock, g as openBlock, i as createVNode, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, j as createBaseVNode, f as createCommentVNode, a1 as I18nT, dw as N8nCallout, n as normalizeClass, gD as N8nFormInput, q as N8nButton, gK as CopyInput, da as N8nNotice, $ as N8nTooltip, gF as N8nCheckbox, fQ as N8nActionBox, aB as useMessage, aC as MODAL_CONFIRM } from "./index-Cm5yBbby.js";
2
2
  const component = "_component_y1zn3_123";
3
3
  const input = "_input_y1zn3_128";
4
4
  const style0$1 = {
@@ -181,7 +181,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
181
181
  };
182
182
  return (_ctx, _cache) => {
183
183
  const _component_n8n_heading = N8nHeading;
184
- const _component_i18n_t = resolveComponent("i18n-t");
185
184
  const _component_n8n_callout = N8nCallout;
186
185
  const _component_n8n_form_input = N8nFormInput;
187
186
  const _component_n8n_button = N8nButton;
@@ -207,9 +206,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
207
206
  class: "mt-2xl mb-l"
208
207
  }, {
209
208
  default: withCtx(() => [
210
- createVNode(_component_i18n_t, {
209
+ createVNode(unref(I18nT), {
211
210
  keypath: "settings.sourceControl.description",
212
- tag: "span"
211
+ tag: "span",
212
+ scope: "global"
213
213
  }, {
214
214
  link: withCtx(() => [
215
215
  createBaseVNode("a", {
@@ -317,9 +317,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
317
317
  class: "mt-s"
318
318
  }, {
319
319
  default: withCtx(() => [
320
- createVNode(_component_i18n_t, {
320
+ createVNode(unref(I18nT), {
321
321
  keypath: "settings.sourceControl.sshKeyDescription",
322
- tag: "span"
322
+ tag: "span",
323
+ scope: "global"
323
324
  }, {
324
325
  link: withCtx(() => [
325
326
  createBaseVNode("a", {
@@ -403,9 +404,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
403
404
  class: normalizeClass(_ctx.$style.readOnly)
404
405
  }, {
405
406
  default: withCtx(() => [
406
- createVNode(_component_i18n_t, {
407
+ createVNode(unref(I18nT), {
407
408
  keypath: "settings.sourceControl.protected",
408
- tag: "span"
409
+ tag: "span",
410
+ scope: "global"
409
411
  }, {
410
412
  bold: withCtx(() => [
411
413
  createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("settings.sourceControl.protected.bold")), 1)
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, ac as useRootStore, eQ as useSSOStore, a as useToast, ai as useDocumentTitle, al as usePageRedirectionHelper, x as computed, c as useI18n, r as ref, o as onMounted, O as resolveComponent, h as createElementBlock, g as openBlock, j as createBaseVNode, i as createVNode, f as createCommentVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, n as normalizeClass, eR as InfoTip, F as Fragment, y as renderList, e as createBlock, f2 as _sfc_main$1, bQ as withModifiers, f1 as N8nSelect, fQ as CopyInput, H as N8nRadioButtons, dH as N8nInput, $ as N8nTooltip, q as N8nButton, eS as N8nActionBox, aA as useMessage, aB as MODAL_CONFIRM, ay as useTelemetry, _ as _export_sfc } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, ad as useRootStore, fP as useSSOStore, a as useToast, aj as useDocumentTitle, am as usePageRedirectionHelper, x as computed, c as useI18n, r as ref, o as onMounted, O as resolveComponent, h as createElementBlock, g as openBlock, j as createBaseVNode, i as createVNode, f as createCommentVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, n as normalizeClass, er as InfoTip, F as Fragment, y as renderList, e as createBlock, cX as _sfc_main$1, bP as withModifiers, cW as N8nSelect, gK as CopyInput, H as N8nRadioButtons, dV as N8nInput, $ as N8nTooltip, q as N8nButton, fQ as N8nActionBox, aB as useMessage, aC as MODAL_CONFIRM, az as useTelemetry, _ as _export_sfc } from "./index-Cm5yBbby.js";
2
2
  const _hoisted_1 = { class: "pb-2xl" };
3
3
  const _hoisted_2 = {
4
4
  href: "https://docs.n8n.io/user-management/saml/",
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, fM as useUsageStore, a5 as useRoute, b as useRouter, T as useUIStore, u as useUsersStore, a as useToast, ai as useDocumentTitle, al as usePageRedirectionHelper, r as ref, x as computed, ao as hasPermission, am as getResourcePermissions, o as onMounted, fN as i18n, O as resolveComponent, h as createElementBlock, g as openBlock, i as createVNode, f as createCommentVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, e as createBlock, j as createBaseVNode, n as normalizeClass, $ as N8nTooltip, av as N8nBadge, q as N8nButton, dq as N8nNotice, p as N8nText, P as normalizeStyle, eR as InfoTip, bQ as withModifiers, dH as N8nInput, fO as COMMUNITY_PLUS_ENROLLMENT_MODAL, fP as telemetry, _ as _export_sfc } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, gH as useUsageStore, a6 as useRoute, b as useRouter, T as useUIStore, u as useUsersStore, a as useToast, aj as useDocumentTitle, am as usePageRedirectionHelper, r as ref, x as computed, ap as hasPermission, an as getResourcePermissions, o as onMounted, db as i18n, O as resolveComponent, h as createElementBlock, g as openBlock, i as createVNode, f as createCommentVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, e as createBlock, j as createBaseVNode, a1 as I18nT, n as normalizeClass, $ as N8nTooltip, aw as N8nBadge, q as N8nButton, da as N8nNotice, p as N8nText, P as normalizeStyle, er as InfoTip, bP as withModifiers, dV as N8nInput, gI as COMMUNITY_PLUS_ENROLLMENT_MODAL, gJ as telemetry, _ as _export_sfc } from "./index-Cm5yBbby.js";
2
2
  const _hoisted_1 = { class: "settings-usage-and-plan" };
3
3
  const _hoisted_2 = { key: 0 };
4
4
  const _hoisted_3 = { key: 0 };
@@ -133,7 +133,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
133
133
  };
134
134
  return (_ctx, _cache) => {
135
135
  const _component_n8n_heading = N8nHeading;
136
- const _component_i18n_t = resolveComponent("i18n-t");
137
136
  const _component_N8nBadge = N8nBadge;
138
137
  const _component_N8nTooltip = N8nTooltip;
139
138
  const _component_N8nButton = N8nButton;
@@ -159,9 +158,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
159
158
  size: "large"
160
159
  }, {
161
160
  default: withCtx(() => [
162
- createVNode(_component_i18n_t, {
161
+ createVNode(unref(I18nT), {
163
162
  keypath: "settings.usageAndPlan.description",
164
- tag: "span"
163
+ tag: "span",
164
+ scope: "global"
165
165
  }, {
166
166
  name: withCtx(() => [
167
167
  createTextVNode(toDisplayString(badgedPlanName.value.name ?? unref(usageStore).planName), 1)
@@ -177,9 +177,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
177
177
  }, [
178
178
  createVNode(_component_N8nTooltip, { placement: "top" }, {
179
179
  content: withCtx(() => [
180
- isCommunityEditionRegistered.value ? (openBlock(), createBlock(_component_i18n_t, {
180
+ isCommunityEditionRegistered.value ? (openBlock(), createBlock(unref(I18nT), {
181
181
  key: 0,
182
- keypath: "settings.usageAndPlan.license.communityRegistered.tooltip"
182
+ keypath: "settings.usageAndPlan.license.communityRegistered.tooltip",
183
+ scope: "global"
183
184
  })) : createCommentVNode("", true)
184
185
  ]),
185
186
  default: withCtx(() => [
@@ -202,7 +203,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
202
203
  theme: "warning"
203
204
  }, {
204
205
  default: withCtx(() => [
205
- createVNode(_component_i18n_t, { keypath: "settings.usageAndPlan.callOut" }, {
206
+ createVNode(unref(I18nT), {
207
+ keypath: "settings.usageAndPlan.callOut",
208
+ scope: "global"
209
+ }, {
206
210
  link: withCtx(() => [
207
211
  createVNode(_component_N8nButton, {
208
212
  class: "pl-0 pr-0",
@@ -240,10 +244,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
240
244
  style: normalizeStyle({ width: `${unref(usageStore).executionPercentage}%` })
241
245
  }, null, 6)
242
246
  ], 2)) : createCommentVNode("", true),
243
- createVNode(_component_i18n_t, {
247
+ createVNode(unref(I18nT), {
244
248
  tag: "span",
245
249
  class: normalizeClass(_ctx.$style.count),
246
- keypath: "settings.usageAndPlan.activeWorkflows.count"
250
+ keypath: "settings.usageAndPlan.activeWorkflows.count",
251
+ scope: "global"
247
252
  }, {
248
253
  count: withCtx(() => [
249
254
  createTextVNode(toDisplayString(unref(usageStore).activeWorkflowTriggersCount), 1)
@@ -372,7 +377,7 @@ const style0 = {
372
377
  const cssModules = {
373
378
  "$style": style0
374
379
  };
375
- const SettingsUsageAndPlan = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-74191f09"]]);
380
+ const SettingsUsageAndPlan = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-6aff6da3"]]);
376
381
  export {
377
382
  SettingsUsageAndPlan as default
378
383
  };
@@ -320,14 +320,14 @@ div[class*=info] > span > span:last-child {
320
320
  -------------------------- */
321
321
  /* BEM
322
322
  -------------------------- */
323
- .settings-usage-and-plan[data-v-74191f09] .el-dialog__wrapper {
323
+ .settings-usage-and-plan[data-v-6aff6da3] .el-dialog__wrapper {
324
324
  display: flex;
325
325
  align-items: center;
326
326
  justify-content: center;
327
327
  }
328
- .settings-usage-and-plan[data-v-74191f09] .el-dialog__wrapper .el-dialog {
328
+ .settings-usage-and-plan[data-v-6aff6da3] .el-dialog__wrapper .el-dialog {
329
329
  margin: 0;
330
330
  }
331
- .settings-usage-and-plan[data-v-74191f09] .el-dialog__wrapper .el-dialog .el-dialog__footer button {
331
+ .settings-usage-and-plan[data-v-6aff6da3] .el-dialog__wrapper .el-dialog .el-dialog__footer button {
332
332
  margin-left: var(--spacing-xs);
333
333
  }
@@ -1,8 +1,8 @@
1
- import { d as defineComponent, r as ref, eZ as ROLE, x as computed, O as resolveComponent, h as createElementBlock, g as openBlock, e as createBlock, w as withCtx, p as N8nText, n as normalizeClass, k as createTextVNode, t as toDisplayString, j as createBaseVNode, i as createVNode, l as unref, N as N8nIcon, _ as _export_sfc, c as useI18n, f as createCommentVNode, F as Fragment, y as renderList, $ as N8nTooltip, f6 as N8nActionToggle, cT as mergeModels, cU as useModel, ao as hasPermission, C as N8nUserInfo, bY as normalizeProps, bZ as guardReactiveProps, c4 as useClipboard, a as useToast, v as useSettingsStore, T as useUIStore, u as useUsersStore, eQ as useSSOStore, ai as useDocumentTitle, al as usePageRedirectionHelper, o as onMounted, ap as EnterpriseEditionFeature, f7 as USERS_LIST_SORT_OPTIONS, m as N8nHeading, eS as N8nActionBox, a1 as N8nLink, dq as N8nNotice, dH as N8nInput, q as N8nButton, f8 as INVITE_USER_MODAL_KEY, f9 as DELETE_USER_MODAL_KEY, fa as useDebounceFn } from "./index-B3p3789J.js";
2
- import { N as N8nDataTableServer } from "./N8nDataTableServer-Dq5Mwh9d.js";
3
- import { N as N8nActionDropdown } from "./ActionDropdown-CiegfqhB.js";
1
+ import { d as defineComponent, r as ref, fX as ROLE, x as computed, O as resolveComponent, h as createElementBlock, g as openBlock, e as createBlock, w as withCtx, p as N8nText, n as normalizeClass, k as createTextVNode, t as toDisplayString, j as createBaseVNode, i as createVNode, l as unref, N as N8nIcon, _ as _export_sfc, c as useI18n, f as createCommentVNode, F as Fragment, y as renderList, $ as N8nTooltip, g2 as N8nActionToggle, g3 as formatTimeAgo, cR as mergeModels, cS as useModel, ap as hasPermission, C as N8nUserInfo, bW as normalizeProps, bX as guardReactiveProps, c2 as useClipboard, a as useToast, v as useSettingsStore, T as useUIStore, u as useUsersStore, fP as useSSOStore, aj as useDocumentTitle, am as usePageRedirectionHelper, aq as EnterpriseEditionFeature, o as onMounted, g4 as USERS_LIST_SORT_OPTIONS, m as N8nHeading, fQ as N8nActionBox, a1 as I18nT, a2 as N8nLink, da as N8nNotice, aw as N8nBadge, dV as N8nInput, q as N8nButton, g5 as INVITE_USER_MODAL_KEY, g6 as DELETE_USER_MODAL_KEY, g7 as useDebounceFn } from "./index-Cm5yBbby.js";
2
+ import { N as N8nDataTableServer } from "./N8nDataTableServer-9HerjyzX.js";
3
+ import { N as N8nActionDropdown } from "./ActionDropdown-Ct6XJ0cl.js";
4
4
  const _hoisted_1$1 = { key: 1 };
5
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
5
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
6
6
  __name: "SettingsUsersRoleCell",
7
7
  props: {
8
8
  data: {},
@@ -111,8 +111,8 @@ const style0$2 = {
111
111
  const cssModules$2 = {
112
112
  "$style": style0$2
113
113
  };
114
- const SettingsUsersRoleCell = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$2]]);
115
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
114
+ const SettingsUsersRoleCell = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$2]]);
115
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
116
116
  __name: "SettingsUsersProjectsCell",
117
117
  props: {
118
118
  data: {}
@@ -188,8 +188,8 @@ const style0$1 = {
188
188
  const cssModules$1 = {
189
189
  "$style": style0$1
190
190
  };
191
- const SettingsUsersProjectsCell = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$1]]);
192
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
191
+ const SettingsUsersProjectsCell = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$1]]);
192
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
193
193
  __name: "SettingsUsersActionsCell",
194
194
  props: {
195
195
  data: {},
@@ -219,6 +219,22 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
219
219
  };
220
220
  }
221
221
  });
222
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
223
+ __name: "SettingsUsersLastActiveCell",
224
+ props: {
225
+ data: {}
226
+ },
227
+ setup(__props) {
228
+ const i18n = useI18n();
229
+ const props = __props;
230
+ const formattedDate = computed(
231
+ () => props.data.lastActiveAt ? formatTimeAgo(props.data.lastActiveAt) : i18n.baseText("generic.never")
232
+ );
233
+ return (_ctx, _cache) => {
234
+ return openBlock(), createElementBlock("span", null, toDisplayString(formattedDate.value), 1);
235
+ };
236
+ }
237
+ });
222
238
  const _hoisted_1 = { class: "pt-xs pb-xs" };
223
239
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
224
240
  __name: "SettingsUsersTable",
@@ -256,6 +272,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
256
272
  title: i18n.baseText("settings.users.table.header.accountType"),
257
273
  key: "role"
258
274
  },
275
+ {
276
+ title: i18n.baseText("settings.users.table.header.lastActive"),
277
+ key: "lastActiveAt",
278
+ value(row) {
279
+ return {
280
+ ...row,
281
+ // TODO: Fix N8nDataTableServer so it doesn't break sorting when `value` is of mixed type (for example, string or null)
282
+ lastActiveAt: row.lastActiveAt ?? ""
283
+ };
284
+ }
285
+ },
259
286
  {
260
287
  title: i18n.baseText("settings.users.table.header.2fa"),
261
288
  key: "mfaEnabled",
@@ -364,11 +391,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
364
391
  _: 2
365
392
  }, 1024))
366
393
  ]),
394
+ [`item.lastActiveAt`]: withCtx(({ item }) => [
395
+ createVNode(_sfc_main$2, { data: item }, null, 8, ["data"])
396
+ ]),
367
397
  [`item.projects`]: withCtx(({ item }) => [
368
398
  createVNode(SettingsUsersProjectsCell, { data: item }, null, 8, ["data"])
369
399
  ]),
370
400
  [`item.actions`]: withCtx(({ item }) => [
371
- createVNode(_sfc_main$2, {
401
+ createVNode(_sfc_main$3, {
372
402
  data: item,
373
403
  actions: filterActions(item),
374
404
  onAction: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("action", $event))
@@ -404,6 +434,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
404
434
  ]
405
435
  });
406
436
  const showUMSetupWarning = computed(() => hasPermission(["defaultUser"]));
437
+ const isEnforceMFAEnabled = computed(
438
+ () => settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.EnforceMFA]
439
+ );
407
440
  onMounted(async () => {
408
441
  documentTitle.set(i18n.baseText("settings.users"));
409
442
  if (!showUMSetupWarning.value) {
@@ -660,29 +693,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
660
693
  }
661
694
  }
662
695
  return (_ctx, _cache) => {
663
- const _component_n8n_heading = N8nHeading;
664
- const _component_n8n_action_box = N8nActionBox;
665
- const _component_n8n_link = N8nLink;
666
- const _component_i18n_t = resolveComponent("i18n-t");
667
- const _component_n8n_notice = N8nNotice;
668
- const _component_n8n_text = N8nText;
696
+ const _component_N8nText = N8nText;
697
+ const _component_N8nHeading = N8nHeading;
698
+ const _component_N8nActionBox = N8nActionBox;
699
+ const _component_N8nLink = N8nLink;
700
+ const _component_N8nNotice = N8nNotice;
701
+ const _component_N8nBadge = N8nBadge;
669
702
  const _component_el_switch = resolveComponent("el-switch");
670
703
  const _component_N8nTooltip = N8nTooltip;
671
704
  const _component_EnterpriseEdition = resolveComponent("EnterpriseEdition");
672
- const _component_n8n_icon = N8nIcon;
673
- const _component_n8n_input = N8nInput;
674
- const _component_n8n_button = N8nButton;
675
- const _component_n8n_tooltip = N8nTooltip;
705
+ const _component_N8nIcon = N8nIcon;
706
+ const _component_N8nInput = N8nInput;
707
+ const _component_N8nButton = N8nButton;
676
708
  return openBlock(), createElementBlock("div", {
677
709
  class: normalizeClass(_ctx.$style.container)
678
710
  }, [
679
- createVNode(_component_n8n_heading, {
711
+ createVNode(_component_N8nHeading, {
680
712
  tag: "h1",
681
713
  size: "2xlarge",
682
714
  class: "mb-xl"
683
715
  }, {
684
716
  default: withCtx(() => [
685
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.users")), 1)
717
+ createTextVNode(toDisplayString(unref(i18n).baseText("settings.users")) + " ", 1),
718
+ !showUMSetupWarning.value ? (openBlock(), createBlock(_component_N8nText, {
719
+ key: 0,
720
+ class: normalizeClass(_ctx.$style.userCount),
721
+ color: "text-light"
722
+ }, {
723
+ default: withCtx(() => [
724
+ createTextVNode(toDisplayString(unref(i18n).baseText("settings.users.count", {
725
+ interpolate: {
726
+ count: unref(usersStore).usersList.state.count
727
+ },
728
+ adjustToNumber: unref(usersStore).usersList.state.count
729
+ })), 1)
730
+ ]),
731
+ _: 1
732
+ }, 8, ["class"])) : createCommentVNode("", true)
686
733
  ]),
687
734
  _: 1
688
735
  }),
@@ -690,24 +737,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
690
737
  key: 0,
691
738
  class: normalizeClass(_ctx.$style.setupInfoContainer)
692
739
  }, [
693
- createVNode(_component_n8n_action_box, {
740
+ createVNode(_component_N8nActionBox, {
694
741
  heading: unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.title),
695
742
  description: unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.description),
696
743
  "button-text": unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.button),
697
744
  "onClick:button": goToUpgrade
698
745
  }, null, 8, ["heading", "description", "button-text"])
699
746
  ], 2)) : createCommentVNode("", true),
700
- !isAdvancedPermissionsEnabled.value ? (openBlock(), createBlock(_component_n8n_notice, { key: 1 }, {
747
+ !isAdvancedPermissionsEnabled.value ? (openBlock(), createBlock(_component_N8nNotice, { key: 1 }, {
701
748
  default: withCtx(() => [
702
- createVNode(_component_i18n_t, { keypath: "settings.users.advancedPermissions.warning" }, {
749
+ createVNode(unref(I18nT), {
750
+ keypath: "settings.users.advancedPermissions.warning",
751
+ scope: "global"
752
+ }, {
703
753
  link: withCtx(() => [
704
- createVNode(_component_n8n_link, {
754
+ createVNode(_component_N8nLink, {
705
755
  "data-test-id": "upgrade-permissions-link",
706
756
  size: "small",
707
757
  onClick: goToUpgradeAdvancedPermissions
708
758
  }, {
709
759
  default: withCtx(() => [
710
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.users.advancedPermissions.warning.link")), 1)
760
+ createTextVNode(toDisplayString(unref(i18n).baseText("generic.upgrade")), 1)
711
761
  ]),
712
762
  _: 1
713
763
  })
@@ -723,13 +773,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
723
773
  createBaseVNode("div", {
724
774
  class: normalizeClass(_ctx.$style.settingsContainerInfo)
725
775
  }, [
726
- createVNode(_component_n8n_text, { bold: true }, {
776
+ createVNode(_component_N8nText, { bold: true }, {
727
777
  default: withCtx(() => [
728
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.personal.mfa.enforce.title")), 1)
778
+ createTextVNode(toDisplayString(unref(i18n).baseText("settings.personal.mfa.enforce.title")) + " ", 1),
779
+ !isEnforceMFAEnabled.value ? (openBlock(), createBlock(_component_N8nBadge, {
780
+ key: 0,
781
+ class: "ml-4xs"
782
+ }, {
783
+ default: withCtx(() => [
784
+ createTextVNode(toDisplayString(unref(i18n).baseText("generic.upgrade")), 1)
785
+ ]),
786
+ _: 1
787
+ })) : createCommentVNode("", true)
729
788
  ]),
730
789
  _: 1
731
790
  }),
732
- createVNode(_component_n8n_text, {
791
+ createVNode(_component_N8nText, {
733
792
  size: "small",
734
793
  color: "text-light"
735
794
  }, {
@@ -748,9 +807,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
748
807
  fallback: withCtx(() => [
749
808
  createVNode(_component_N8nTooltip, null, {
750
809
  content: withCtx(() => [
751
- createVNode(_component_i18n_t, {
810
+ createVNode(unref(I18nT), {
752
811
  keypath: tooltipKey,
753
- tag: "span"
812
+ tag: "span",
813
+ scope: "global"
754
814
  }, {
755
815
  action: withCtx(() => [
756
816
  createBaseVNode("a", { onClick: goToUpgrade }, toDisplayString(unref(i18n).baseText("settings.personal.mfa.enforce.unlicensed_tooltip.link")), 1)
@@ -762,8 +822,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
762
822
  createVNode(_component_el_switch, {
763
823
  "model-value": unref(settingsStore).isMFAEnforced,
764
824
  size: "large",
765
- disabled: true,
766
- "onUpdate:modelValue": onUpdateMfaEnforced
825
+ disabled: true
767
826
  }, null, 8, ["model-value"])
768
827
  ]),
769
828
  _: 1
@@ -785,7 +844,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
785
844
  key: 2,
786
845
  class: normalizeClass(_ctx.$style.buttonContainer)
787
846
  }, [
788
- createVNode(_component_n8n_input, {
847
+ createVNode(_component_N8nInput, {
789
848
  class: normalizeClass(_ctx.$style.search),
790
849
  "model-value": search2.value,
791
850
  placeholder: unref(i18n).baseText("settings.users.search.placeholder"),
@@ -794,11 +853,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
794
853
  "onUpdate:modelValue": onSearch
795
854
  }, {
796
855
  prefix: withCtx(() => [
797
- createVNode(_component_n8n_icon, { icon: "search" })
856
+ createVNode(_component_N8nIcon, { icon: "search" })
798
857
  ]),
799
858
  _: 1
800
859
  }, 8, ["class", "model-value", "placeholder"]),
801
- createVNode(_component_n8n_tooltip, {
860
+ createVNode(_component_N8nTooltip, {
802
861
  disabled: !unref(ssoStore).isSamlLoginEnabled
803
862
  }, {
804
863
  content: withCtx(() => [
@@ -806,7 +865,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
806
865
  ]),
807
866
  default: withCtx(() => [
808
867
  createBaseVNode("div", null, [
809
- createVNode(_component_n8n_button, {
868
+ createVNode(_component_N8nButton, {
810
869
  disabled: unref(ssoStore).isSamlLoginEnabled || !unref(usersStore).usersLimitNotReached,
811
870
  label: unref(i18n).baseText("settings.users.invite"),
812
871
  size: "large",
@@ -838,19 +897,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
838
897
  };
839
898
  }
840
899
  });
841
- const buttonContainer = "_buttonContainer_iin51_123";
842
- const search = "_search_iin51_130";
843
- const setupInfoContainer = "_setupInfoContainer_iin51_134";
844
- const settingsContainer = "_settingsContainer_iin51_138";
845
- const settingsContainerInfo = "_settingsContainerInfo_iin51_149";
846
- const settingsContainerAction = "_settingsContainerAction_iin51_158";
900
+ const userCount = "_userCount_1dht1_123";
901
+ const buttonContainer = "_buttonContainer_1dht1_128";
902
+ const search = "_search_1dht1_135";
903
+ const setupInfoContainer = "_setupInfoContainer_1dht1_139";
904
+ const settingsContainer = "_settingsContainer_1dht1_143";
905
+ const settingsContainerInfo = "_settingsContainerInfo_1dht1_154";
906
+ const settingsContainerAction = "_settingsContainerAction_1dht1_163";
907
+ const container = "_container_1dht1_171";
847
908
  const style0 = {
909
+ userCount,
848
910
  buttonContainer,
849
911
  search,
850
912
  setupInfoContainer,
851
913
  settingsContainer,
852
914
  settingsContainerInfo,
853
- settingsContainerAction
915
+ settingsContainerAction,
916
+ container
854
917
  };
855
918
  const cssModules = {
856
919
  "$style": style0
@@ -407,19 +407,23 @@
407
407
  -------------------------- */
408
408
  /* BEM
409
409
  -------------------------- */
410
- ._buttonContainer_iin51_123 {
410
+ ._userCount_1dht1_123 {
411
+ display: block;
412
+ padding: var(--spacing-3xs) 0 0;
413
+ }
414
+ ._buttonContainer_1dht1_128 {
411
415
  display: flex;
412
416
  justify-content: space-between;
413
417
  gap: var(--spacing-s);
414
418
  margin: 0 0 var(--spacing-s);
415
419
  }
416
- ._search_iin51_130 {
420
+ ._search_1dht1_135 {
417
421
  max-width: 300px;
418
422
  }
419
- ._setupInfoContainer_iin51_134 {
423
+ ._setupInfoContainer_1dht1_139 {
420
424
  max-width: 728px;
421
425
  }
422
- ._settingsContainer_iin51_138 {
426
+ ._settingsContainer_1dht1_143 {
423
427
  display: flex;
424
428
  align-items: center;
425
429
  padding-left: var(--spacing-s);
@@ -429,7 +433,7 @@
429
433
  border-radius: 4px;
430
434
  border: 1px solid var(--Colors-Foreground---color-foreground-base, #d9dee8);
431
435
  }
432
- ._settingsContainerInfo_iin51_149 {
436
+ ._settingsContainerInfo_1dht1_154 {
433
437
  display: flex;
434
438
  padding: 8px 0px;
435
439
  flex-direction: column;
@@ -437,10 +441,13 @@
437
441
  align-items: flex-start;
438
442
  gap: 1px;
439
443
  }
440
- ._settingsContainerAction_iin51_158 {
444
+ ._settingsContainerAction_1dht1_163 {
441
445
  display: flex;
442
446
  padding: 20px 16px 20px 248px;
443
447
  justify-content: flex-end;
444
448
  align-items: center;
445
449
  flex-shrink: 0;
450
+ }
451
+ ._container_1dht1_171 {
452
+ padding-bottom: 20px;
446
453
  }
@@ -1,4 +1,4 @@
1
- import { ao as hasPermission, d as defineComponent, b as useRouter, a5 as useRoute, ac as useRootStore, v as useSettingsStore, T as useUIStore, x as computed, V as VIEWS, c as useI18n, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, bi as N8nMenu, w as withCtx, j as createBaseVNode, a1 as N8nLink, l as unref, bk as ABOUT_MODAL_KEY, k as createTextVNode, t as toDisplayString, N as N8nIcon, m as N8nHeading, _ as _export_sfc, r as ref, o as onMounted, O as resolveComponent, D as mergeProps, eN as isRouteLocationRaw } from "./index-B3p3789J.js";
1
+ import { ap as hasPermission, d as defineComponent, b as useRouter, a6 as useRoute, ad as useRootStore, v as useSettingsStore, T as useUIStore, x as computed, V as VIEWS, c as useI18n, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, bh as N8nMenu, w as withCtx, j as createBaseVNode, a2 as N8nLink, l as unref, bj as ABOUT_MODAL_KEY, k as createTextVNode, t as toDisplayString, N as N8nIcon, m as N8nHeading, _ as _export_sfc, r as ref, o as onMounted, O as resolveComponent, D as mergeProps, fM as isRouteLocationRaw } from "./index-Cm5yBbby.js";
2
2
  function useUserHelpers(router, route) {
3
3
  const canUserAccessRouteByName = (name) => {
4
4
  const resolvedRoute = router.resolve({ name });
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, v as useSettingsStore, u as useUsersStore, a as useToast, b as useRouter, r as ref, ee as reactive, c as useI18n, e as createBlock, g as openBlock, V as VIEWS } from "./index-B3p3789J.js";
2
- import { A as AuthView } from "./AuthView-K2y2JXyp.js";
3
- import "./Logo-DFdhGUpH.js";
1
+ import { d as defineComponent, v as useSettingsStore, u as useUsersStore, a as useToast, b as useRouter, r as ref, eI as reactive, c as useI18n, e as createBlock, g as openBlock, V as VIEWS } from "./index-Cm5yBbby.js";
2
+ import { A as AuthView } from "./AuthView-dJdngoqx.js";
3
+ import "./Logo-8g4P9vyv.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "SetupView",
6
6
  setup(__props) {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, a4 as useWorkflowsStore, bI as useNodeTypesStore, T as useUIStore, x as computed, il as doesNodeHaveAllCredentialsFilled, aa as watch, I as onBeforeUnmount, im as SETUP_CREDENTIALS_MODAL_KEY, e as createBlock, f as createCommentVNode, g as openBlock, l as unref, c as useI18n, q as N8nButton } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, a5 as useWorkflowsStore, bH as useNodeTypesStore, T as useUIStore, x as computed, iN as doesNodeHaveAllCredentialsFilled, ab as watch, I as onBeforeUnmount, iO as SETUP_CREDENTIALS_MODAL_KEY, e as createBlock, f as createCommentVNode, g as openBlock, l as unref, c as useI18n, q as N8nButton } from "./index-Cm5yBbby.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "SetupWorkflowCredentialsButton",
4
4
  setup(__props) {
@@ -1,6 +1,6 @@
1
- import { a2 as defineStore, r as ref, bd as useTemplatesStore, bI as useNodeTypesStore, dg as useCredentialsStore, ac as useRootStore, a4 as useWorkflowsStore, x as computed, fy as useCredentialSetupState, bf as useExternalHooks, ay as useTelemetry, V as VIEWS, ex as tryToParseNumber, d as defineComponent, a5 as useRoute, b as useRouter, aa as watch, o as onMounted, e as createBlock, g as openBlock, w as withCtx, j as createBaseVNode, n as normalizeClass, fz as AppsRequiringCredsNotice, l as unref, eF as N8nLoading, h as createElementBlock, F as Fragment, y as renderList, fA as SetupTemplateFormStep, i as createVNode, a1 as N8nLink, k as createTextVNode, t as toDisplayString, c as useI18n, $ as N8nTooltip, q as N8nButton, m as N8nHeading, _ as _export_sfc } from "./index-B3p3789J.js";
2
- import { c as createWorkflowFromTemplate } from "./templateActions-Ct4VGqHx.js";
3
- import { T as TemplatesView } from "./TemplatesView-DbW9D41Q.js";
1
+ import { a3 as defineStore, r as ref, bc as useTemplatesStore, bH as useNodeTypesStore, du as useCredentialsStore, ad as useRootStore, a5 as useWorkflowsStore, x as computed, gt as useCredentialSetupState, be as useExternalHooks, az as useTelemetry, V as VIEWS, e_ as tryToParseNumber, d as defineComponent, a6 as useRoute, b as useRouter, ab as watch, o as onMounted, e as createBlock, g as openBlock, w as withCtx, j as createBaseVNode, n as normalizeClass, gu as AppsRequiringCredsNotice, l as unref, fE as N8nLoading, h as createElementBlock, F as Fragment, y as renderList, gv as SetupTemplateFormStep, i as createVNode, a2 as N8nLink, k as createTextVNode, t as toDisplayString, c as useI18n, $ as N8nTooltip, q as N8nButton, m as N8nHeading, _ as _export_sfc } from "./index-Cm5yBbby.js";
2
+ import { c as createWorkflowFromTemplate } from "./templateActions-D9IAsJ2m.js";
3
+ import { T as TemplatesView } from "./TemplatesView-Co-FQLhr.js";
4
4
  const useSetupTemplateStore = defineStore("setupTemplate", () => {
5
5
  const templateId = ref("");
6
6
  const isLoading = ref(true);
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, r as ref, fp as toRefs, v as useSettingsStore, o as onMounted, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, l as unref, w as withCtx, j as createBaseVNode, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, e as createBlock, f as createCommentVNode, eU as N8nFormInputs, p as N8nText, q as N8nButton, s as N8nCard, fq as MFA_FORM, M as MFA_AUTHENTICATION_CODE_INPUT_MAX_LENGTH, fr as MFA_AUTHENTICATION_RECOVERY_CODE_INPUT_MAX_LENGTH, fs as mfaEventBus, _ as _export_sfc, u as useUsersStore, eQ as useSSOStore, a5 as useRoute, b as useRouter, a as useToast, x as computed, ee as reactive, V as VIEWS, ay as useTelemetry, ft as MFA_AUTHENTICATION_REQUIRED_ERROR_CODE } from "./index-B3p3789J.js";
2
- import { A as AuthView } from "./AuthView-K2y2JXyp.js";
3
- import { L as Logo } from "./Logo-DFdhGUpH.js";
1
+ import { d as defineComponent, r as ref, gk as toRefs, v as useSettingsStore, o as onMounted, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, l as unref, w as withCtx, j as createBaseVNode, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, e as createBlock, f as createCommentVNode, fS as N8nFormInputs, p as N8nText, q as N8nButton, s as N8nCard, gl as MFA_FORM, M as MFA_AUTHENTICATION_CODE_INPUT_MAX_LENGTH, gm as MFA_AUTHENTICATION_RECOVERY_CODE_INPUT_MAX_LENGTH, gn as mfaEventBus, _ as _export_sfc, u as useUsersStore, fP as useSSOStore, a6 as useRoute, b as useRouter, a as useToast, x as computed, eI as reactive, V as VIEWS, az as useTelemetry, go as MFA_AUTHENTICATION_REQUIRED_ERROR_CODE } from "./index-Cm5yBbby.js";
2
+ import { A as AuthView } from "./AuthView-dJdngoqx.js";
3
+ import { L as Logo } from "./Logo-8g4P9vyv.js";
4
4
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5
5
  __name: "MfaView",
6
6
  props: {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, u as useUsersStore, a as useToast, b as useRouter, o as onMounted, h as createElementBlock, g as openBlock, V as VIEWS, c as useI18n } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, u as useUsersStore, a as useToast, b as useRouter, o as onMounted, h as createElementBlock, g as openBlock, V as VIEWS, c as useI18n } from "./index-Cm5yBbby.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "SignoutView",
4
4
  setup(__props) {
@@ -1,6 +1,6 @@
1
- import { A as AuthView } from "./AuthView-K2y2JXyp.js";
2
- import { d as defineComponent, u as useUsersStore, a as useToast, b as useRouter, a5 as useRoute, c as useI18n, r as ref, x as computed, o as onMounted, V as VIEWS, e as createBlock, g as openBlock } from "./index-B3p3789J.js";
3
- import "./Logo-DFdhGUpH.js";
1
+ import { A as AuthView } from "./AuthView-dJdngoqx.js";
2
+ import { d as defineComponent, u as useUsersStore, a as useToast, b as useRouter, a6 as useRoute, c as useI18n, r as ref, x as computed, o as onMounted, V as VIEWS, e as createBlock, g as openBlock } from "./index-Cm5yBbby.js";
3
+ import "./Logo-8g4P9vyv.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "SignupView",
6
6
  setup(__props) {
@@ -1,4 +1,4 @@
1
- import { _ as _export_sfc, h as createElementBlock, g as openBlock, j as createBaseVNode, J as renderSlot, n as normalizeClass } from "./index-B3p3789J.js";
1
+ import { _ as _export_sfc, h as createElementBlock, g as openBlock, j as createBaseVNode, J as renderSlot, n as normalizeClass } from "./index-Cm5yBbby.js";
2
2
  const n8nTableScroll = "_n8nTableScroll_28kfv_123";
3
3
  const n8nTable = "_n8nTable_28kfv_123";
4
4
  const style0 = {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, D as mergeProps, J as renderSlot, t as toDisplayString, _ as _export_sfc, r as ref, x as computed, n as normalizeClass, e as createBlock, f as createCommentVNode, F as Fragment, y as renderList, l as unref, a1 as N8nLink, bQ as withModifiers, w as withCtx, k as createTextVNode, gI as useI18n } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, D as mergeProps, J as renderSlot, t as toDisplayString, _ as _export_sfc, r as ref, x as computed, n as normalizeClass, e as createBlock, f as createCommentVNode, F as Fragment, y as renderList, l as unref, a2 as N8nLink, bP as withModifiers, w as withCtx, k as createTextVNode, h4 as useI18n } from "./index-Cm5yBbby.js";
2
2
  const _hoisted_1 = { key: 1 };
3
3
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4
4
  ...{ name: "N8nTag" },
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, m as N8nHeading, J as renderSlot, _ as _export_sfc, b as useRouter, bd as useTemplatesStore, x as computed, e as createBlock, f as createCommentVNode, eF as N8nLoading, F as Fragment, y as renderList, bR as _sfc_main$2, l as unref, fv as filterTemplateNodes, c as useI18n, p as N8nText, fw as _sfc_main$3, fx as abbreviateNumber } from "./index-B3p3789J.js";
2
- import { T as Tags } from "./Tags-Doq3WsWA.js";
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, m as N8nHeading, J as renderSlot, _ as _export_sfc, b as useRouter, bc as useTemplatesStore, x as computed, e as createBlock, f as createCommentVNode, fE as N8nLoading, F as Fragment, y as renderList, bQ as _sfc_main$2, l as unref, gq as filterTemplateNodes, c as useI18n, p as N8nText, gr as _sfc_main$3, gs as abbreviateNumber } from "./index-Cm5yBbby.js";
2
+ import { T as Tags } from "./Tags-DeTgaVsD.js";
3
3
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4
4
  __name: "TemplateDetailsBlock",
5
5
  props: {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, x as computed, fv as filterTemplateNodes, h as createElementBlock, g as openBlock, n as normalizeClass, f as createCommentVNode, F as Fragment, y as renderList, i as createVNode, bR as _sfc_main$3, t as toDisplayString, _ as _export_sfc, eF as N8nLoading, w as withCtx, k as createTextVNode, m as N8nHeading, e as createBlock, N as N8nIcon, l as unref, fx as abbreviateNumber, p as N8nText, fw as _sfc_main$4, c as useI18n, q as N8nButton, bQ as withModifiers, r as ref, o as onMounted, I as onBeforeUnmount, j as createBaseVNode } from "./index-B3p3789J.js";
1
+ import { d as defineComponent, x as computed, gq as filterTemplateNodes, h as createElementBlock, g as openBlock, n as normalizeClass, f as createCommentVNode, F as Fragment, y as renderList, i as createVNode, bQ as _sfc_main$3, t as toDisplayString, _ as _export_sfc, fE as N8nLoading, w as withCtx, k as createTextVNode, m as N8nHeading, e as createBlock, N as N8nIcon, l as unref, gs as abbreviateNumber, p as N8nText, gr as _sfc_main$4, c as useI18n, q as N8nButton, bP as withModifiers, r as ref, o as onMounted, I as onBeforeUnmount, j as createBaseVNode } from "./index-Cm5yBbby.js";
2
2
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3
3
  __name: "NodeList",
4
4
  props: {