n8n-editor-ui 1.103.1 → 1.104.1

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 (127) hide show
  1. package/dist/assets/{ActionDropdown-BhU4vCrE.js → ActionDropdown-DkHCqhLi.js} +1 -1
  2. package/dist/assets/{AnimatedSpinner-Du5eXSIY.js → AnimatedSpinner-D6j3zAN7.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DEQTwSbx.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CeptN1qB.js} +1 -1
  4. package/dist/assets/{AuthView-BJ-YTYTN.js → AuthView-DdzGr3if.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-B-OkU_yr.js → ChangePasswordView-CLbLuldY.js} +3 -3
  6. package/dist/assets/CollectionParameter-C3JIvBsy.js +4 -0
  7. package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DwQ0BmLY.js +44 -0
  8. package/dist/assets/{CredentialsView-BjUZvEdd.js → CredentialsView-Cbm8N2D-.js} +8 -8
  9. package/dist/assets/{DemoFooter-9WRPL1Nd.js → DemoFooter-DlHqx3Wb.js} +9 -8
  10. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Zaxt4S.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dymz7mm-.js} +1 -1
  11. package/dist/assets/{EntityNotFound-DvAk0XOf.js → EntityNotFound-CmBDOsai.js} +1 -1
  12. package/dist/assets/{EntityUnAuthorised-BTLaJBAA.js → EntityUnAuthorised-CNPmvmZu.js} +1 -1
  13. package/dist/assets/{ErrorView-KDDRlAEN.js → ErrorView-BqgIhqko.js} +1 -1
  14. package/dist/assets/{EvaluationsRootView-BViIGqmh.js → EvaluationsRootView-B6RDbMu9.js} +5 -3
  15. package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
  16. package/dist/assets/{EvaluationsView-BY0HmUSo.js → EvaluationsView-nr07_JFX.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-Dz1TldYs.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ci1SWv1r.js} +15 -12
  19. package/dist/assets/{ExecutionsView-z5GL4TFM.js → ExecutionsView-L8QB4qb-.js} +21 -18
  20. package/dist/assets/{FileSaver.min-BRpMoNCX.js → FileSaver.min-CiFUM_59.js} +1 -1
  21. package/dist/assets/{FixedCollectionParameter-BW_7bc6a.js → FixedCollectionParameter-BMsoLNRT.js} +1 -1
  22. package/dist/assets/{ForgotMyPasswordView-C3yPX8Sm.js → ForgotMyPasswordView-BYKQXHHe.js} +3 -3
  23. package/dist/assets/{InfoAccordion-B3ebdljQ.js → InfoAccordion-DN17_QNh.js} +1 -1
  24. package/dist/assets/{InsightsChartAverageRuntime-B07vNUKi.js → InsightsChartAverageRuntime-DX6MWomC.js} +5 -4
  25. package/dist/assets/{InsightsChartFailed-vwVIlrMM.js → InsightsChartFailed-D1ITW7ip.js} +5 -4
  26. package/dist/assets/{InsightsChartFailureRate-3R9NR__K.js → InsightsChartFailureRate-DsoCFhrx.js} +5 -4
  27. package/dist/assets/{InsightsChartTimeSaved-0XAZRsQL.js → InsightsChartTimeSaved-Cwb0-EZ1.js} +5 -4
  28. package/dist/assets/{InsightsChartTotal-QtHpPQPx.js → InsightsChartTotal-B-SjjDG4.js} +5 -4
  29. package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
  30. package/dist/assets/{InsightsDashboard-jAR8co6U.js → InsightsDashboard-DEaMMGfn.js} +19 -19
  31. package/dist/assets/{InsightsPaywall-CqlSj87d.js → InsightsPaywall-BsiLaxNd.js} +3 -3
  32. package/dist/assets/{InsightsSummary-1EyHgtD2.js → InsightsSummary-hBcY77J_.js} +9 -4
  33. package/dist/assets/{InsightsTableWorkflows-RGpSnp7n.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
  34. package/dist/assets/{InsightsTableWorkflows-CMfER3Lz.js → InsightsTableWorkflows-D9vFPmUm.js} +80 -26
  35. package/dist/assets/{Logo-BAbynr3J.js → Logo-D-nqGbZ-.js} +1 -1
  36. package/dist/assets/{LogsPanel-C4P2jfja.js → LogsPanel-D0QGW50a.js} +16 -11
  37. package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
  38. package/dist/assets/{MainHeader-2VAdoAN3.js → MainHeader-QpSmh7DV.js} +17 -16
  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-ChT_fvtq.js → MainSidebar-Dndr9Vcx.js} +26 -25
  42. package/dist/assets/{N8nDataTableServer-CUJVgPuN.js → N8nDataTableServer-B4Gq_Urn.js} +20 -10
  43. package/dist/assets/{NodeCreation-B0_VqZl0.js → NodeCreation-CRGHu2mV.js} +11 -9
  44. package/dist/assets/{NodeCreator-Dudc-sld.js → NodeCreator-BvleRmX-.js} +114 -197
  45. package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
  46. package/dist/assets/{NodeDetailsView-D3jGDk45.js → NodeDetailsView-xvbRzTfv.js} +21 -16
  47. package/dist/assets/{NodeDetailsViewV2-B0iyvHRQ.js → NodeDetailsViewV2-CBY4UJcE.js} +21 -16
  48. package/dist/assets/{NodeView-CX3GlUP1.js → NodeView-Dm74W6kN.js} +2068 -746
  49. package/dist/assets/{NodeView-hst6fesm.css → NodeView-G2qfXaOy.css} +755 -71
  50. package/dist/assets/{ProjectHeader-CBBQ32Nc.js → ProjectHeader-0NxiEwQl.js} +2 -2
  51. package/dist/assets/{ProjectSettings-D7CCWy0v.js → ProjectSettings-ClM6Y9uS.js} +7 -5
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-aTaPuBRW.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-D5JeFl_d.js} +1 -1
  53. package/dist/assets/{ResourcesListLayout-CR6jD0wL.js → ResourcesListLayout-BRro9C-1.js} +3 -3
  54. package/dist/assets/{RunDataJson-PZfvyEtF.js → RunDataJson-12Py20Rs.js} +6 -7
  55. package/dist/assets/{RunDataJsonActions-BmrxonyU.js → RunDataJsonActions-BGl8YYU0.js} +1 -1
  56. package/dist/assets/{RunDataParsedAiContent-b0irqoyM.js → RunDataParsedAiContent-DYz5OPxJ.js} +2 -2
  57. package/dist/assets/{RunDataSearch-DS17rPDS.js → RunDataSearch-NmwtxOjZ.js} +1 -1
  58. package/dist/assets/{RunDataTable-DgBV9mGl.js → RunDataTable-DJu8Ut0r.js} +17 -17
  59. package/dist/assets/{SamlOnboarding-COuXHYGq.js → SamlOnboarding-B5vqtns9.js} +3 -3
  60. package/dist/assets/{SettingsApiView-Bjmx5RKa.js → SettingsApiView-DmOvPlm6.js} +5 -4
  61. package/dist/assets/{SettingsCommunityNodesView-JkmQWaRv.js → SettingsCommunityNodesView-DEgzWHlF.js} +4 -3
  62. package/dist/assets/{SettingsExternalSecrets-unJLQHhU.js → SettingsExternalSecrets-4VNCsQKo.js} +5 -3
  63. package/dist/assets/{SettingsLdapView-DvZbXhb2.js → SettingsLdapView-BSQe5yy-.js} +1 -1
  64. package/dist/assets/{SettingsLogStreamingView-DT_BpBbv.js → SettingsLogStreamingView-Y-ve-MUB.js} +1 -1
  65. package/dist/assets/{SettingsPersonalView-D0VCYPEd.js → SettingsPersonalView-DTWO2GIc.js} +1 -1
  66. package/dist/assets/{SettingsSourceControl-CatnTfFf.js → SettingsSourceControl-D14mBzgS.js} +10 -8
  67. package/dist/assets/{SettingsSso-CxWN7WTJ.js → SettingsSso-Beon1K6u.js} +1 -1
  68. package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
  69. package/dist/assets/{SettingsUsageAndPlan-BMsLzUeh.js → SettingsUsageAndPlan-hc6EFbHM.js} +15 -10
  70. package/dist/assets/{SettingsUsersView-hbKTH9np.js → SettingsUsersView-CIzwxl6-.js} +105 -44
  71. package/dist/assets/{SettingsUsersView-B81cHl3f.css → SettingsUsersView-RQTdLxyb.css} +11 -7
  72. package/dist/assets/{SettingsView-C3FWxmaD.js → SettingsView-Bv-AL-MH.js} +1 -1
  73. package/dist/assets/{SetupView-DdjBoiKa.js → SetupView-BCKg0AbF.js} +3 -3
  74. package/dist/assets/{SetupWorkflowCredentialsButton-BX8a8Tuq.js → SetupWorkflowCredentialsButton-djsoNbvZ.js} +1 -1
  75. package/dist/assets/{SetupWorkflowFromTemplateView-D9BTRma8.js → SetupWorkflowFromTemplateView-CZhYUSco.js} +3 -3
  76. package/dist/assets/{SigninView-D8iOgwLO.js → SigninView-BPl0jjB0.js} +3 -3
  77. package/dist/assets/{SignoutView-DXt0Sdaq.js → SignoutView-BHPz3HFX.js} +1 -1
  78. package/dist/assets/{SignupView-D6pEOFGY.js → SignupView-Cel8_b46.js} +3 -3
  79. package/dist/assets/{TableBase-6tpR_KYY.js → TableBase-BIT7ArUw.js} +1 -1
  80. package/dist/assets/{Tags-3OtmQZg1.js → Tags-CQIEP_IZ.js} +1 -1
  81. package/dist/assets/{TemplateDetails-Bvec_Syb.js → TemplateDetails-B8u34j2l.js} +2 -2
  82. package/dist/assets/{TemplateList-B0_W0uvx.js → TemplateList-BJSJYiHs.js} +1 -1
  83. package/dist/assets/{TemplatesCollectionView-ChXD8R-e.js → TemplatesCollectionView-BCAAV1n9.js} +6 -6
  84. package/dist/assets/{TemplatesSearchView-B_cMlFlv.js → TemplatesSearchView-CXOrNnyk.js} +3 -3
  85. package/dist/assets/{TemplatesView-CziYbcJq.js → TemplatesView-1HunP4nN.js} +1 -1
  86. package/dist/assets/{TemplatesWorkflowView-Hb4zWBu5.js → TemplatesWorkflowView-0enp4pR7.js} +6 -6
  87. package/dist/assets/{TriggerPanel-BsmQ9v2s.js → TriggerPanel-B-Jt4r3F.js} +133 -981
  88. package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
  89. package/dist/assets/{VariablesView-WOzl2JBK.js → VariablesView-mSWZzDyf.js} +5 -5
  90. package/dist/assets/VueMarkdown-Dxf59_T_.js +1570 -0
  91. package/dist/assets/{WorkerView-C0gI6gbP.js → WorkerView-DbqNyqok.js} +6 -5
  92. package/dist/assets/{WorkflowActivator-B96_pQnb.js → WorkflowActivator-C33REd8m.js} +2 -2
  93. package/dist/assets/{WorkflowExecutionsInfoAccordion-DFCLkh95.js → WorkflowExecutionsInfoAccordion-CCe9jbiT.js} +2 -2
  94. package/dist/assets/{WorkflowExecutionsLandingPage-B3aM2Zsk.js → WorkflowExecutionsLandingPage-DMXVsIHS.js} +3 -3
  95. package/dist/assets/{WorkflowExecutionsPreview-D6oMyJtk.js → WorkflowExecutionsPreview-Dit3_l9q.js} +5 -5
  96. package/dist/assets/{WorkflowExecutionsView-BiKDjD1D.js → WorkflowExecutionsView-BwLTPvQ7.js} +8 -8
  97. package/dist/assets/{WorkflowHistory-CgxAK62K.js → WorkflowHistory-BgNzJgze.js} +6 -6
  98. package/dist/assets/{WorkflowOnboardingView-tKN781CD.js → WorkflowOnboardingView-Bnvmd6lJ.js} +1 -1
  99. package/dist/assets/{WorkflowPreview-CDgvgZcr.js → WorkflowPreview-DIDMhnNP.js} +1 -1
  100. package/dist/assets/{WorkflowsView-zxJZKrLk.js → WorkflowsView-DxtULRby.js} +125 -17
  101. package/dist/assets/aiTemplatesStarterCollection.store-DrHWcqtc.js +795 -0
  102. package/dist/assets/{chartjs.utils-EXdTT15A.js → chartjs.utils-DQHNgzzp.js} +2 -2
  103. package/dist/assets/{en-FjyeYndD.js → en-BX7CKkqE.js} +22 -6
  104. package/dist/assets/{global-link-actions-NNtNk_7A.js → global-link-actions-DzXrk-LO.js} +1 -1
  105. package/dist/assets/{import-curl-DcVVML3m.js → import-curl-BrVSOGQW.js} +1 -1
  106. package/dist/assets/{index-C6LoGNAx.css → index-BWpYwmXd.css} +548 -948
  107. package/dist/assets/{index-BEC9W_3K.js → index-BmZCxv8-.js} +48318 -42852
  108. package/dist/assets/{index-CFNl0R-J.js → index-x7t8iCsI.js} +1 -1
  109. package/dist/assets/{pickBy-BXP1QU1C.js → pickBy-oHD63WOf.js} +1 -1
  110. package/dist/assets/{templateActions-DWb-SuCl.js → templateActions-_QLqrCsm.js} +1 -1
  111. package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
  112. package/dist/assets/{useBeforeUnload-uH0nIAM3.js → useBeforeUnload-CBmJdmlS.js} +1 -1
  113. package/dist/assets/{useExecutionDebugging-bE32iQtx.js → useExecutionDebugging-B22Oj62X.js} +1 -1
  114. package/dist/assets/{useExecutionHelpers-CXZC4OGe.js → useExecutionHelpers-C6meisqx.js} +1 -1
  115. package/dist/assets/{useImportCurlCommand-Bxi0W0ub.js → useImportCurlCommand-CCUM_iVn.js} +9 -9
  116. package/dist/assets/{RunData-D0dKnadD.css → useKeybindings-2A271Jke.css} +134 -2
  117. package/dist/assets/{RunData-CY2AnQ-5.js → useKeybindings-CcHEvN6i.js} +223 -1644
  118. package/dist/assets/{useProjectPages-BKkEKuqG.js → useProjectPages-CrI3xlbd.js} +1 -1
  119. package/dist/assets/{usePushConnection-TyXi_EKD.js → usePushConnection-EYkv1Xyg.js} +10 -2
  120. package/dist/assets/{useWorkflowActivate-BRxfn_zV.js → useWorkflowActivate-BiorS_mB.js} +1 -1
  121. package/dist/index.html +3 -7
  122. package/index.html +1 -5
  123. package/package.json +1 -1
  124. package/vite.config.mts +23 -3
  125. package/dist/assets/CollectionParameter-BHthTTpD.js +0 -4
  126. package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
  127. package/dist/assets/useKeybindings-D5pwrTFM.js +0 -188
@@ -1,8 +1,9 @@
1
- import { d as defineComponent, r as ref, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, f as createCommentVNode, i as createVNode, N as N8nIcon, p as N8nText, w as withCtx, J as renderSlot, _ as _export_sfc, e as createBlock, F as Fragment, y as renderList, t as toDisplayString, k as createTextVNode, l as unref, c as useI18n, c2 as useClipboard, a as useToast, x as computed, b6 as sortByProperty, o as onMounted, I as onBeforeUnmount, s as N8nCard, m as N8nHeading, b as useRouter, ai as useDocumentTitle, ac as useRootStore, a3 as usePushConnectionStore, ay as useTelemetry, aR as onBeforeMount, eV as _sfc_main$8, v as useSettingsStore, al as usePageRedirectionHelper, f7 as N8nActionBox } from "./index-BEC9W_3K.js";
2
- import { _ as _sfc_main$7 } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-aTaPuBRW.js";
3
- import { a as useOrchestrationStore, W as WORKER_HISTORY_LENGTH, u as usePushConnection } from "./usePushConnection-TyXi_EKD.js";
4
- import { C as Chart } from "./index-CFNl0R-J.js";
5
- import "./global-link-actions-NNtNk_7A.js";
1
+ import { d as defineComponent, r as ref, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, f as createCommentVNode, i as createVNode, N as N8nIcon, p as N8nText, w as withCtx, J as renderSlot, _ as _export_sfc, e as createBlock, F as Fragment, y as renderList, t as toDisplayString, k as createTextVNode, l as unref, c as useI18n, c2 as useClipboard, a as useToast, x as computed, b7 as sortByProperty, o as onMounted, I as onBeforeUnmount, s as N8nCard, m as N8nHeading, b as useRouter, aj as useDocumentTitle, ad as useRootStore, a4 as usePushConnectionStore, az as useTelemetry, aS as onBeforeMount, fx as _sfc_main$8, v as useSettingsStore, am as usePageRedirectionHelper, fQ as N8nActionBox } from "./index-BmZCxv8-.js";
2
+ import { _ as _sfc_main$7 } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-D5JeFl_d.js";
3
+ import { a as useOrchestrationStore, W as WORKER_HISTORY_LENGTH, u as usePushConnection } from "./usePushConnection-EYkv1Xyg.js";
4
+ import { C as Chart } from "./index-x7t8iCsI.js";
5
+ import "./global-link-actions-DzXrk-LO.js";
6
+ import "./aiTemplatesStarterCollection.store-DrHWcqtc.js";
6
7
  function averageWorkerLoadFromLoads(loads) {
7
8
  return loads.reduce((prev, curr) => prev + curr, 0) / loads.length;
8
9
  }
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, r as ref, x as computed, aa as watch, h as createElementBlock, g as openBlock, n as normalizeClass, J as renderSlot, j as createBaseVNode, f as createCommentVNode, t as toDisplayString, e as createBlock, i as createVNode, l as unref, fn as N8nActionToggle, w as withCtx, p as N8nText, k as createTextVNode, $ as N8nTooltip, eW as N8nLoading, F as Fragment, y as renderList, bO as withModifiers, a1 as N8nLink, _ as _export_sfc, aq as ProjectTypes, gh as isIconOrEmoji, c as useI18n, gi as ProjectIcon, af as useProjectsStore, ag as useFoldersStore, I as onBeforeUnmount, bf as createSlots, a as useToast, T as useUIStore, ak as useWorkflowHelpers, a4 as useWorkflowsStore, de as useCredentialsStore, gj as getActivatableTriggerNodes, gk as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, O as resolveComponent, c4 as resolveDirective, aS as withDirectives, N as N8nIcon, df as OPEN_AI_API_CREDENTIAL_TYPE, gl as WORKFLOW_ACTIVATION_CONFLICTING_WEBHOOK_MODAL_KEY, aK as h } from "./index-BEC9W_3K.js";
2
- import { u as useWorkflowActivate } from "./useWorkflowActivate-BRxfn_zV.js";
1
+ import { d as defineComponent, r as ref, x as computed, ab as watch, h as createElementBlock, g as openBlock, n as normalizeClass, J as renderSlot, j as createBaseVNode, f as createCommentVNode, t as toDisplayString, e as createBlock, i as createVNode, l as unref, g2 as N8nActionToggle, w as withCtx, p as N8nText, k as createTextVNode, $ as N8nTooltip, fE as N8nLoading, F as Fragment, y as renderList, bP as withModifiers, a2 as N8nLink, _ as _export_sfc, ar as ProjectTypes, gU as isIconOrEmoji, c as useI18n, gV as ProjectIcon, ag as useProjectsStore, ah as useFoldersStore, I as onBeforeUnmount, bg as createSlots, a as useToast, T as useUIStore, al as useWorkflowHelpers, a5 as useWorkflowsStore, du as useCredentialsStore, gW as getActivatableTriggerNodes, gX as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, O as resolveComponent, c4 as resolveDirective, aT as withDirectives, N as N8nIcon, dv as OPEN_AI_API_CREDENTIAL_TYPE, gY as WORKFLOW_ACTIVATION_CONFLICTING_WEBHOOK_MODAL_KEY, aL as h } from "./index-BmZCxv8-.js";
2
+ import { u as useWorkflowActivate } from "./useWorkflowActivate-BiorS_mB.js";
3
3
  const _hoisted_1$2 = { "data-test-id": "hidden-items-tooltip" };
4
4
  const _hoisted_2$1 = ["title", "data-resourceid", "onClick", "onMouseenter", "onMouseup"];
5
5
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, b as useRouter, aj as useWorkflowSaving, v as useSettingsStore, T as useUIStore, a4 as useWorkflowsStore, ah as useNpsSurveyStore, r as ref, x as computed, c as useI18n, dt as deepCopy, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, aa as watch, o as onMounted, e as createBlock, g as openBlock, w as withCtx, j as createBaseVNode, k as createTextVNode, i as createVNode, t as toDisplayString, l as unref, $ as N8nTooltip, a1 as N8nLink, bO as withModifiers, n as normalizeClass, aC as WORKFLOW_SETTINGS_MODAL_KEY, _ as _export_sfc } from "./index-BEC9W_3K.js";
2
- import { N as N8nInfoAccordion } from "./InfoAccordion-B3ebdljQ.js";
1
+ import { d as defineComponent, b as useRouter, ak as useWorkflowSaving, v as useSettingsStore, T as useUIStore, a5 as useWorkflowsStore, ai as useNpsSurveyStore, r as ref, x as computed, c as useI18n, dF as deepCopy, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, ab as watch, o as onMounted, e as createBlock, g as openBlock, w as withCtx, j as createBaseVNode, k as createTextVNode, i as createVNode, t as toDisplayString, l as unref, $ as N8nTooltip, a2 as N8nLink, bP as withModifiers, n as normalizeClass, aD as WORKFLOW_SETTINGS_MODAL_KEY, _ as _export_sfc } from "./index-BmZCxv8-.js";
2
+ import { N as N8nInfoAccordion } from "./InfoAccordion-DN17_QNh.js";
3
3
  const _hoisted_1 = { class: "mt-2xs" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "WorkflowExecutionsInfoAccordion",
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, b as useRouter, a5 as useRoute, T as useUIStore, a4 as useWorkflowsStore, x as computed, h as createElementBlock, g as openBlock, f as createCommentVNode, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, m as N8nHeading, p as N8nText, q as N8nButton, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, _ as _export_sfc } from "./index-BEC9W_3K.js";
2
- import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-DFCLkh95.js";
3
- import "./InfoAccordion-B3ebdljQ.js";
1
+ import { d as defineComponent, b as useRouter, a6 as useRoute, T as useUIStore, a5 as useWorkflowsStore, x as computed, h as createElementBlock, g as openBlock, f as createCommentVNode, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, m as N8nHeading, p as N8nText, q as N8nButton, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, _ as _export_sfc } from "./index-BmZCxv8-.js";
2
+ import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-CCe9jbiT.js";
3
+ import "./InfoAccordion-DN17_QNh.js";
4
4
  const _hoisted_1 = {
5
5
  key: 0,
6
6
  "data-test-id": "workflow-execution-no-trigger-content"
@@ -1,8 +1,8 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, a0 as _sfc_main$4, _ as _export_sfc, a4 as useWorkflowsStore, a5 as useRoute, r as ref, x as computed, am as getResourcePermissions, c4 as resolveDirective, e as createBlock, f as createCommentVNode, l as unref, E as ElDropdown, w as withCtx, q as N8nButton, c as useI18n, av as N8nBadge, k as createTextVNode, t as toDisplayString, j as createBaseVNode, m as N8nHeading, F as Fragment, y as renderList, p as N8nText, aS as withDirectives, a as useToast, aN as useExecutionsStore, O as resolveComponent, Q as createEventBus, ay as useTelemetry, v as useSettingsStore, ap as EnterpriseEditionFeature, eV as _sfc_main$6, e$ as RouterLink, V as VIEWS, A as ElDropdownMenu, B as ElDropdownItem, aA as useMessage, aB as MODAL_CONFIRM } from "./index-BEC9W_3K.js";
2
- import { _ as _sfc_main$5 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DEQTwSbx.js";
3
- import { W as WorkflowPreview } from "./WorkflowPreview-CDgvgZcr.js";
4
- import { u as useExecutionDebugging } from "./useExecutionDebugging-bE32iQtx.js";
5
- import { u as useExecutionHelpers } from "./useExecutionHelpers-CXZC4OGe.js";
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, a0 as _sfc_main$4, _ as _export_sfc, a5 as useWorkflowsStore, a6 as useRoute, r as ref, x as computed, an as getResourcePermissions, c4 as resolveDirective, e as createBlock, f as createCommentVNode, l as unref, E as ElDropdown, w as withCtx, q as N8nButton, c as useI18n, aw as N8nBadge, k as createTextVNode, t as toDisplayString, j as createBaseVNode, m as N8nHeading, F as Fragment, y as renderList, p as N8nText, aT as withDirectives, a as useToast, aO as useExecutionsStore, O as resolveComponent, Q as createEventBus, az as useTelemetry, v as useSettingsStore, aq as EnterpriseEditionFeature, fx as _sfc_main$6, fJ as RouterLink, V as VIEWS, A as ElDropdownMenu, B as ElDropdownItem, aB as useMessage, aC as MODAL_CONFIRM } from "./index-BmZCxv8-.js";
2
+ import { _ as _sfc_main$5 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CeptN1qB.js";
3
+ import { W as WorkflowPreview } from "./WorkflowPreview-DIDMhnNP.js";
4
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-B22Oj62X.js";
5
+ import { u as useExecutionHelpers } from "./useExecutionHelpers-C6meisqx.js";
6
6
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
7
7
  __name: "VoteButtons",
8
8
  props: {
@@ -1,11 +1,11 @@
1
- import { d as defineComponent, a5 as useRoute, a4 as useWorkflowsStore, v as useSettingsStore, x as computed, ap as EnterpriseEditionFeature, c as useI18n, o as onMounted, O as resolveComponent, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, l as unref, V as VIEWS, w as withCtx, j as createBaseVNode, e as createBlock, f as createCommentVNode, p as N8nText, k as createTextVNode, t as toDisplayString, bN as toDayMonth, eV as _sfc_main$4, bM as toTime, N as N8nIcon, $ as N8nTooltip, _ as _export_sfc, b as useRouter, aN as useExecutionsStore, al as usePageRedirectionHelper, r as ref, am as getResourcePermissions, aa as watch, m as N8nHeading, eW as N8nLoading, eX as TransitionGroup, F as Fragment, y as renderList, eY as isComponentPublicInstance, aj as useWorkflowSaving, eH as onBeforeRouteLeave, eC as getNodeViewTab, G as MAIN_HEADER_TABS, bG as useNodeTypesStore, af as useProjectsStore, a as useToast, S as useDebounce, bF as useCanvasOperations, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, eB as NEW_WORKFLOW_ID, I as onBeforeUnmount, eZ as NO_NETWORK_ERROR_CODE, ay as useTelemetry, e_ as executionRetryMessage } from "./index-BEC9W_3K.js";
2
- import { N as N8nActionDropdown } from "./ActionDropdown-BhU4vCrE.js";
3
- import { T as Tags } from "./Tags-3OtmQZg1.js";
4
- import { _ as _sfc_main$5, C as ConcurrentExecutionsHeader, E as ExecutionsFilter } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-Dz1TldYs.js";
5
- import { u as useExecutionHelpers } from "./useExecutionHelpers-CXZC4OGe.js";
6
- import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-DFCLkh95.js";
7
- import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DEQTwSbx.js";
8
- import "./InfoAccordion-B3ebdljQ.js";
1
+ import { d as defineComponent, a6 as useRoute, a5 as useWorkflowsStore, v as useSettingsStore, x as computed, aq as EnterpriseEditionFeature, c as useI18n, o as onMounted, O as resolveComponent, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, l as unref, V as VIEWS, w as withCtx, j as createBaseVNode, e as createBlock, f as createCommentVNode, p as N8nText, k as createTextVNode, t as toDisplayString, bO as toDayMonth, fx as _sfc_main$4, bN as toTime, N as N8nIcon, $ as N8nTooltip, _ as _export_sfc, b as useRouter, aO as useExecutionsStore, am as usePageRedirectionHelper, r as ref, an as getResourcePermissions, ab as watch, m as N8nHeading, fE as N8nLoading, fF as TransitionGroup, F as Fragment, y as renderList, fG as isComponentPublicInstance, ak as useWorkflowSaving, eT as onBeforeRouteLeave, eO as getNodeViewTab, G as MAIN_HEADER_TABS, bH as useNodeTypesStore, ag as useProjectsStore, a as useToast, S as useDebounce, bG as useCanvasOperations, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, eN as NEW_WORKFLOW_ID, I as onBeforeUnmount, fH as NO_NETWORK_ERROR_CODE, az as useTelemetry, fI as executionRetryMessage } from "./index-BmZCxv8-.js";
2
+ import { N as N8nActionDropdown } from "./ActionDropdown-DkHCqhLi.js";
3
+ import { T as Tags } from "./Tags-CQIEP_IZ.js";
4
+ import { _ as _sfc_main$5, C as ConcurrentExecutionsHeader, E as ExecutionsFilter } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-Ci1SWv1r.js";
5
+ import { u as useExecutionHelpers } from "./useExecutionHelpers-C6meisqx.js";
6
+ import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-CCe9jbiT.js";
7
+ import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CeptN1qB.js";
8
+ import "./InfoAccordion-DN17_QNh.js";
9
9
  const _hoisted_1$1 = { key: 2 };
10
10
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
11
11
  __name: "WorkflowExecutionsCard",
@@ -1,6 +1,6 @@
1
- import { a_ as get, d as defineComponent, r as ref, x as computed, hn as dateFormat, c as useI18n, o as onMounted, h as createElementBlock, g as openBlock, n as normalizeClass, J as renderSlot, j as createBaseVNode, i as createVNode, t as toDisplayString, w as withCtx, k as createTextVNode, $ as N8nTooltip, e as createBlock, f as createCommentVNode, av as N8nBadge, l as unref, bO as withModifiers, fn as N8nActionToggle, _ as _export_sfc, O as resolveComponent, F as Fragment, y as renderList, eW as N8nLoading, q as N8nButton, N as N8nIcon, a2 as defineStore, ac as useRootStore, v as useSettingsStore, a4 as useWorkflowsStore, fT as getNewWorkflow, a5 as useRoute, b as useRouter, a as useToast, al as usePageRedirectionHelper, T as useUIStore, V as VIEWS, am as getResourcePermissions, aR as onBeforeMount, cL as watchEffect, m as N8nHeading, g4 as telemetry, aK as h, ho as WORKFLOW_HISTORY_VERSION_RESTORE } from "./index-BEC9W_3K.js";
2
- import { W as WorkflowPreview } from "./WorkflowPreview-CDgvgZcr.js";
3
- import { F as FileSaver_minExports } from "./FileSaver.min-BRpMoNCX.js";
1
+ import { a$ as get, d as defineComponent, r as ref, x as computed, hv as dateFormat, c as useI18n, o as onMounted, h as createElementBlock, g as openBlock, n as normalizeClass, J as renderSlot, j as createBaseVNode, i as createVNode, t as toDisplayString, w as withCtx, k as createTextVNode, $ as N8nTooltip, e as createBlock, f as createCommentVNode, aw as N8nBadge, l as unref, bP as withModifiers, g2 as N8nActionToggle, _ as _export_sfc, F as Fragment, y as renderList, fE as N8nLoading, a1 as I18nT, q as N8nButton, N as N8nIcon, a3 as defineStore, ad as useRootStore, v as useSettingsStore, a5 as useWorkflowsStore, gx as getNewWorkflow, a6 as useRoute, b as useRouter, a as useToast, am as usePageRedirectionHelper, T as useUIStore, V as VIEWS, an as getResourcePermissions, aS as onBeforeMount, cL as watchEffect, O as resolveComponent, m as N8nHeading, gJ as telemetry, aL as h, hw as WORKFLOW_HISTORY_VERSION_RESTORE } from "./index-BmZCxv8-.js";
2
+ import { W as WorkflowPreview } from "./WorkflowPreview-DIDMhnNP.js";
3
+ import { F as FileSaver_minExports } from "./FileSaver.min-CiFUM_59.js";
4
4
  var getWorkflowHistory = async (context, workflowId, queryParams) => {
5
5
  const { data } = await get(
6
6
  context.baseUrl,
@@ -229,7 +229,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
229
229
  };
230
230
  return (_ctx, _cache) => {
231
231
  const _component_n8n_loading = N8nLoading;
232
- const _component_i18n_t = resolveComponent("i18n-t");
233
232
  return openBlock(), createElementBlock("ul", {
234
233
  ref_key: "listElement",
235
234
  ref: listElement,
@@ -284,9 +283,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
284
283
  createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("workflowHistory.limit", {
285
284
  interpolate: { evaluatedPruneTime: String(props.evaluatedPruneTime) }
286
285
  })), 1),
287
- createVNode(_component_i18n_t, {
286
+ createVNode(unref(I18nT), {
288
287
  keypath: "workflowHistory.upgrade",
289
- tag: "span"
288
+ tag: "span",
289
+ scope: "global"
290
290
  }, {
291
291
  link: withCtx(() => [
292
292
  createBaseVNode("a", {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, a$ as useLoadingService, bb as useTemplatesStore, a4 as useWorkflowsStore, b as useRouter, a5 as useRoute, o as onMounted, V as VIEWS, h as createElementBlock, g as openBlock, c as useI18n } from "./index-BEC9W_3K.js";
1
+ import { d as defineComponent, b0 as useLoadingService, bc as useTemplatesStore, a5 as useWorkflowsStore, b as useRouter, a6 as useRoute, o as onMounted, V as VIEWS, h as createElementBlock, g as openBlock, c as useI18n } from "./index-BmZCxv8-.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "WorkflowOnboardingView",
4
4
  setup(__props) {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, a as useToast, aN as useExecutionsStore, r as ref, x as computed, o as onMounted, I as onBeforeUnmount, aa as watch, h as createElementBlock, g as openBlock, f as createCommentVNode, j as createBaseVNode, n as normalizeClass, i as createVNode, eW as N8nLoading, eV as _sfc_main$1, c as useI18n, _ as _export_sfc } from "./index-BEC9W_3K.js";
1
+ import { d as defineComponent, a as useToast, aO as useExecutionsStore, r as ref, x as computed, o as onMounted, I as onBeforeUnmount, ab as watch, h as createElementBlock, g as openBlock, f as createCommentVNode, j as createBaseVNode, n as normalizeClass, i as createVNode, fE as N8nLoading, fx as _sfc_main$1, c as useI18n, _ as _export_sfc } from "./index-BmZCxv8-.js";
2
2
  const _hoisted_1 = ["src"];
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "WorkflowPreview",
@@ -1,13 +1,14 @@
1
- import { d as defineComponent, a5 as useRoute, b as useRouter, ag as useFoldersStore, r as ref, x as computed, c as useI18n, aq as ProjectTypes, V as VIEWS, O as resolveComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, s as N8nCard, n as normalizeClass, j as createBaseVNode, f as createCommentVNode, e as createBlock, hu as ProjectCardBadge, l as unref, aG as ResourceType, fn as N8nActionToggle, bO as withModifiers, p as N8nText, k as createTextVNode, t as toDisplayString, fN as _sfc_main$3, m as N8nHeading, av as N8nBadge, N as N8nIcon, _ as _export_sfc, a as useToast, v as useSettingsStore, T as useUIStore, u as useUsersStore, a4 as useWorkflowsStore, af as useProjectsStore, am as getResourcePermissions, hn as dateFormat, aS as withDirectives, aT as vShow, ax as WORKFLOW_SHARE_MODAL_KEY, ay as useTelemetry, aF as DUPLICATE_MODAL_KEY, aA as useMessage, aB as MODAL_CONFIRM, aH as PROJECT_MOVE_RESOURCE_MODAL, hv as FOLDER_NAME_ILLEGAL_CHARACTERS_REGEX, hw as ILLEGAL_FOLDER_CHARACTERS, hx as FOLDER_NAME_ONLY_DOTS_REGEX, hy as FOLDER_NAME_MAX_LENGTH, ae as useSourceControlStore, R as useTagsStore, g1 as useUsageStore, hz as useInsightsStore, bb as useTemplatesStore, ai as useDocumentTitle, S as useDebounce, ap as EnterpriseEditionFeature, dF as isExtraTemplateLinksExperimentEnabled, aa as watch, o as onMounted, Q as createEventBus, I as onBeforeUnmount, L as debounce, hA as PROJECT_ROOT, ar as useTemplateRef, bf as createSlots, $ as N8nTooltip, q as N8nButton, f7 as N8nActionBox, fg as N8nInputLabel, au as _sfc_main$5, fi as N8nSelect, F as Fragment, y as renderList, fj as _sfc_main$6, f$ as N8nCheckbox, hB as Draggable, eW as N8nLoading, as as InlineRename, dg as N8nCallout, hC as DEFAULT_WORKFLOW_PAGE_SIZE, bj as trackTemplatesClick, bk as TemplateClickSource, eM as getEasyAiWorkflowJson, g3 as COMMUNITY_PLUS_ENROLLMENT_MODAL } from "./index-BEC9W_3K.js";
2
- import { _ as _sfc_main$4 } from "./EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Zaxt4S.js";
3
- import { B as Breadcrumbs, W as WorkflowActivator, _ as __unplugin_components_0 } from "./WorkflowActivator-B96_pQnb.js";
4
- import { R as ResourcesListLayout } from "./ResourcesListLayout-CR6jD0wL.js";
5
- import { P as ProjectHeader } from "./ProjectHeader-CBBQ32Nc.js";
6
- import { T as Tags } from "./Tags-3OtmQZg1.js";
7
- import { u as useProjectPages } from "./useProjectPages-BKkEKuqG.js";
8
- import { I as InsightsSummary } from "./InsightsSummary-1EyHgtD2.js";
9
- import "./useWorkflowActivate-BRxfn_zV.js";
10
- import "./TableBase-6tpR_KYY.js";
1
+ import { d as defineComponent, a6 as useRoute, b as useRouter, ah as useFoldersStore, r as ref, x as computed, c as useI18n, ar as ProjectTypes, V as VIEWS, O as resolveComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, s as N8nCard, n as normalizeClass, j as createBaseVNode, f as createCommentVNode, e as createBlock, hC as ProjectCardBadge, l as unref, aH as ResourceType, g2 as N8nActionToggle, bP as withModifiers, p as N8nText, k as createTextVNode, t as toDisplayString, gr as _sfc_main$3, m as N8nHeading, aw as N8nBadge, N as N8nIcon, _ as _export_sfc, a as useToast, v as useSettingsStore, T as useUIStore, u as useUsersStore, a5 as useWorkflowsStore, ag as useProjectsStore, an as getResourcePermissions, hv as dateFormat, aT as withDirectives, aU as vShow, ay as WORKFLOW_SHARE_MODAL_KEY, az as useTelemetry, aG as DUPLICATE_MODAL_KEY, aB as useMessage, aC as MODAL_CONFIRM, aI as PROJECT_MOVE_RESOURCE_MODAL, hD as FOLDER_NAME_ILLEGAL_CHARACTERS_REGEX, hE as ILLEGAL_FOLDER_CHARACTERS, hF as FOLDER_NAME_ONLY_DOTS_REGEX, hG as FOLDER_NAME_MAX_LENGTH, af as useSourceControlStore, R as useTagsStore, gH as useUsageStore, hH as useInsightsStore, bc as useTemplatesStore, aj as useDocumentTitle, S as useDebounce, aq as EnterpriseEditionFeature, dS as isExtraTemplateLinksExperimentEnabled, ab as watch, o as onMounted, Q as createEventBus, I as onBeforeUnmount, L as debounce, hI as PROJECT_ROOT, as as useTemplateRef, bg as createSlots, $ as N8nTooltip, q as N8nButton, fQ as N8nActionBox, fZ as N8nInputLabel, av as _sfc_main$5, cW as N8nSelect, F as Fragment, y as renderList, cX as _sfc_main$6, gF as N8nCheckbox, hJ as Draggable, fE as N8nLoading, at as InlineRename, dw as N8nCallout, hK as DEFAULT_WORKFLOW_PAGE_SIZE, bk as trackTemplatesClick, bl as TemplateClickSource, eY as getEasyAiWorkflowJson, gI as COMMUNITY_PLUS_ENROLLMENT_MODAL } from "./index-BmZCxv8-.js";
2
+ import { _ as _sfc_main$4 } from "./EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dymz7mm-.js";
3
+ import { B as Breadcrumbs, W as WorkflowActivator, _ as __unplugin_components_0 } from "./WorkflowActivator-C33REd8m.js";
4
+ import { R as ResourcesListLayout } from "./ResourcesListLayout-BRro9C-1.js";
5
+ import { P as ProjectHeader } from "./ProjectHeader-0NxiEwQl.js";
6
+ import { T as Tags } from "./Tags-CQIEP_IZ.js";
7
+ import { u as useProjectPages } from "./useProjectPages-CrI3xlbd.js";
8
+ import { I as InsightsSummary } from "./InsightsSummary-hBcY77J_.js";
9
+ import { u as useAITemplatesStarterCollectionStore } from "./aiTemplatesStarterCollection.store-DrHWcqtc.js";
10
+ import "./useWorkflowActivate-BiorS_mB.js";
11
+ import "./TableBase-BIT7ArUw.js";
11
12
  const FOLDER_LIST_ITEM_ACTIONS = {
12
13
  OPEN: "open",
13
14
  CREATE: "create",
@@ -968,6 +969,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
968
969
  const usageStore = useUsageStore();
969
970
  const insightsStore = useInsightsStore();
970
971
  const templatesStore = useTemplatesStore();
972
+ const aiStarterTemplatesStore = useAITemplatesStarterCollectionStore();
971
973
  const documentTitle = useDocumentTitle();
972
974
  const { callDebounced } = useDebounce();
973
975
  const projectPages = useProjectPages();
@@ -1168,6 +1170,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1168
1170
  const showRegisteredCommunityCTA = computed(
1169
1171
  () => isSelfHostedDeployment.value && !foldersEnabled.value && canUserRegisterCommunityPlus.value
1170
1172
  );
1173
+ const showAIStarterCollectionCallout = computed(() => {
1174
+ return !loading.value && aiStarterTemplatesStore.isFeatureEnabled && !aiStarterTemplatesStore.calloutDismissed && !readOnlyEnv.value && // We want to show the callout only if the user has permissions to create folders and workflows
1175
+ // but also on the overview page
1176
+ (projectPages.isOverviewSubPage || hasPermissionToCreateFolders.value && hasPermissionToCreateWorkflows.value);
1177
+ });
1171
1178
  watch([() => route.params?.projectId, () => route.name], async () => {
1172
1179
  loading.value = true;
1173
1180
  });
@@ -1457,6 +1464,40 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1457
1464
  function isValidProjectId(projectId) {
1458
1465
  return projectsStore.availableProjects.some((project) => project.id === projectId);
1459
1466
  }
1467
+ const createAIStarterWorkflows = async (source) => {
1468
+ try {
1469
+ const projectId = projectPages.isOverviewSubPage ? personalProject.value?.id : route.params.projectId;
1470
+ if (typeof projectId !== "string") {
1471
+ toast.showError(new Error(), i18n.baseText("workflows.ai.starter.collection.error"));
1472
+ return;
1473
+ }
1474
+ const newFolder = await aiStarterTemplatesStore.createStarterWorkflows(
1475
+ projectId,
1476
+ currentFolderId.value ?? void 0
1477
+ );
1478
+ if (projectPages.isOverviewSubPage) {
1479
+ await router.push({
1480
+ name: VIEWS.PROJECTS_FOLDERS,
1481
+ params: { projectId, folderId: newFolder.id }
1482
+ });
1483
+ } else {
1484
+ workflowsAndFolders.value.unshift({
1485
+ id: newFolder.id,
1486
+ name: newFolder.name,
1487
+ resource: "folder",
1488
+ createdAt: newFolder.createdAt,
1489
+ updatedAt: newFolder.updatedAt,
1490
+ subFolderCount: 0,
1491
+ workflowCount: 3,
1492
+ parentFolder: newFolder.parentFolder
1493
+ });
1494
+ }
1495
+ aiStarterTemplatesStore.trackUserCreatedStarterCollection(source);
1496
+ } catch (error) {
1497
+ toast.showError(error, i18n.baseText("workflows.ai.starter.collection.error"));
1498
+ return;
1499
+ }
1500
+ };
1460
1501
  const openAIWorkflow = async (source) => {
1461
1502
  dismissEasyAICallout();
1462
1503
  telemetry.track("User clicked test AI workflow", {
@@ -1469,6 +1510,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1469
1510
  query: { fromJson: "true", parentFolderId: route.params.folderId }
1470
1511
  });
1471
1512
  };
1513
+ const dismissStarterCollectionCallout = () => {
1514
+ aiStarterTemplatesStore.dismissCallout();
1515
+ aiStarterTemplatesStore.trackUserDismissedCallout();
1516
+ };
1472
1517
  const dismissEasyAICallout = () => {
1473
1518
  easyAICalloutVisible.value = false;
1474
1519
  };
@@ -2099,7 +2144,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2099
2144
  return openBlock(), createBlock(ResourcesListLayout, {
2100
2145
  filters: filters.value,
2101
2146
  "onUpdate:filters": [
2102
- _cache[3] || (_cache[3] = ($event) => filters.value = $event),
2147
+ _cache[5] || (_cache[5] = ($event) => filters.value = $event),
2103
2148
  onFiltersUpdated
2104
2149
  ],
2105
2150
  "resource-key": "workflows",
@@ -2134,9 +2179,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2134
2179
  })
2135
2180
  ]),
2136
2181
  callout: withCtx(() => [
2137
- !loading.value && showEasyAIWorkflowCallout.value && easyAICalloutVisible.value ? (openBlock(), createBlock(_component_N8nCallout, {
2182
+ showAIStarterCollectionCallout.value ? (openBlock(), createBlock(_component_N8nCallout, {
2138
2183
  key: 0,
2139
2184
  theme: "secondary",
2185
+ icon: "gift",
2186
+ class: normalizeClass(_ctx.$style["easy-ai-workflow-callout"])
2187
+ }, {
2188
+ trailingContent: withCtx(() => [
2189
+ createBaseVNode("div", {
2190
+ class: normalizeClass(_ctx.$style["callout-trailing-content"])
2191
+ }, [
2192
+ createVNode(unref(N8nButton), {
2193
+ "data-test-id": "easy-ai-button",
2194
+ size: "small",
2195
+ type: "secondary",
2196
+ onClick: _cache[0] || (_cache[0] = ($event) => createAIStarterWorkflows("callout"))
2197
+ }, {
2198
+ default: withCtx(() => [
2199
+ createTextVNode(toDisplayString(unref(i18n).baseText("generic.startNow")), 1)
2200
+ ]),
2201
+ _: 1
2202
+ }),
2203
+ createVNode(unref(N8nIcon), {
2204
+ size: "small",
2205
+ icon: "x",
2206
+ title: unref(i18n).baseText("generic.dismiss"),
2207
+ class: "clickable",
2208
+ onClick: dismissStarterCollectionCallout
2209
+ }, null, 8, ["title"])
2210
+ ], 2)
2211
+ ]),
2212
+ default: withCtx(() => [
2213
+ createTextVNode(toDisplayString(unref(i18n).baseText("workflows.ai.starter.collection.callout")) + " ", 1)
2214
+ ]),
2215
+ _: 1
2216
+ }, 8, ["class"])) : !loading.value && showEasyAIWorkflowCallout.value && easyAICalloutVisible.value ? (openBlock(), createBlock(_component_N8nCallout, {
2217
+ key: 1,
2218
+ theme: "secondary",
2140
2219
  icon: "bot",
2141
2220
  class: normalizeClass(_ctx.$style["easy-ai-workflow-callout"])
2142
2221
  }, {
@@ -2148,7 +2227,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2148
2227
  "data-test-id": "easy-ai-button",
2149
2228
  size: "small",
2150
2229
  type: "secondary",
2151
- onClick: _cache[0] || (_cache[0] = ($event) => openAIWorkflow("callout"))
2230
+ onClick: _cache[1] || (_cache[1] = ($event) => openAIWorkflow("callout"))
2152
2231
  }, {
2153
2232
  default: withCtx(() => [
2154
2233
  createTextVNode(toDisplayString(unref(i18n).baseText("generic.tryNow")), 1)
@@ -2310,7 +2389,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2310
2389
  "onWorkflow:duplicated": fetchWorkflows,
2311
2390
  "onWorkflow:activeToggle": onWorkflowActiveToggle,
2312
2391
  "onAction:moveToFolder": moveWorkflowToFolder,
2313
- onMouseenter: _cache[1] || (_cache[1] = ($event) => isDragging.value ? unref(folderHelpers).resetDropTarget() : {})
2392
+ onMouseenter: _cache[2] || (_cache[2] = ($event) => isDragging.value ? unref(folderHelpers).resetDropTarget() : {})
2314
2393
  }, null, 8, ["class", "data", "workflow-list-event-bus", "read-only", "data-resourceid", "data-resourcename", "show-ownership-badge"])
2315
2394
  ]),
2316
2395
  _: 2
@@ -2378,12 +2457,41 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2378
2457
  ]),
2379
2458
  _: 1
2380
2459
  }, 8, ["class"]),
2381
- showEasyAIWorkflowCallout.value ? (openBlock(), createBlock(unref(N8nCard), {
2460
+ showAIStarterCollectionCallout.value ? (openBlock(), createBlock(unref(N8nCard), {
2382
2461
  key: 0,
2383
2462
  class: normalizeClass(_ctx.$style.emptyStateCard),
2384
2463
  hoverable: "",
2385
2464
  "data-test-id": "easy-ai-workflow-card",
2386
- onClick: _cache[2] || (_cache[2] = ($event) => openAIWorkflow("empty"))
2465
+ onClick: _cache[3] || (_cache[3] = ($event) => createAIStarterWorkflows("card"))
2466
+ }, {
2467
+ default: withCtx(() => [
2468
+ createBaseVNode("div", {
2469
+ class: normalizeClass(_ctx.$style.emptyStateCardContent)
2470
+ }, [
2471
+ createVNode(unref(N8nIcon), {
2472
+ class: normalizeClass(_ctx.$style.emptyStateCardIcon),
2473
+ "stroke-width": 1.5,
2474
+ icon: "gift",
2475
+ color: "foreground-dark"
2476
+ }, null, 8, ["class"]),
2477
+ createVNode(unref(N8nText), {
2478
+ size: "large",
2479
+ class: "mt-xs pl-2xs pr-2xs"
2480
+ }, {
2481
+ default: withCtx(() => [
2482
+ createTextVNode(toDisplayString(unref(i18n).baseText("workflows.ai.starter.collection.card")), 1)
2483
+ ]),
2484
+ _: 1
2485
+ })
2486
+ ], 2)
2487
+ ]),
2488
+ _: 1
2489
+ }, 8, ["class"])) : showEasyAIWorkflowCallout.value ? (openBlock(), createBlock(unref(N8nCard), {
2490
+ key: 1,
2491
+ class: normalizeClass(_ctx.$style.emptyStateCard),
2492
+ hoverable: "",
2493
+ "data-test-id": "easy-ai-workflow-card",
2494
+ onClick: _cache[4] || (_cache[4] = ($event) => openAIWorkflow("empty"))
2387
2495
  }, {
2388
2496
  default: withCtx(() => [
2389
2497
  createBaseVNode("div", {
@@ -2409,7 +2517,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2409
2517
  _: 1
2410
2518
  }, 8, ["class"])) : createCommentVNode("", true),
2411
2519
  templatesCardEnabled.value ? (openBlock(), createBlock(unref(N8nCard), {
2412
- key: 1,
2520
+ key: 2,
2413
2521
  class: normalizeClass(_ctx.$style.emptyStateCard),
2414
2522
  hoverable: "",
2415
2523
  "data-test-id": "new-workflow-from-template-card",