n8n-editor-ui 1.100.0 → 1.101.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/assets/ActionDropdown-BmC0wfMx.css +172 -0
  2. package/dist/assets/ActionDropdown-BujIG0Jq.js +172 -0
  3. package/dist/assets/{AnimatedSpinner-CmnLqX1g.js → AnimatedSpinner-B5cpb6Fs.js} +3 -3
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-LialmjU-.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BPigGQTI.js} +1 -1
  5. package/dist/assets/AuthView-BOTPYtpM.js +242 -0
  6. package/dist/assets/AuthView-DZB9HITQ.css +450 -0
  7. package/dist/assets/{ChangePasswordView-F2YljaHC.js → ChangePasswordView-DbeC55bz.js} +4 -4
  8. package/dist/assets/CollectionParameter-CExdr4jd.js +4 -0
  9. package/dist/assets/{CredentialsView-_HiqTMnI.js → CredentialsView-DUh5K-2r.js} +16 -15
  10. package/dist/assets/{DemoFooter-BWGzoS_I.js → DemoFooter-BXPfbNJE.js} +7 -6
  11. package/dist/assets/EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CDDQIxv5.js +39 -0
  12. package/dist/assets/{EntityNotFound-Cy9wp8En.js → EntityNotFound-CBUuOOYw.js} +1 -1
  13. package/dist/assets/{EntityUnAuthorised-CqJIbUWK.js → EntityUnAuthorised-7xgN3ECo.js} +1 -1
  14. package/dist/assets/{ErrorView-Kpuz8zoT.js → ErrorView-BVfcsoOa.js} +4 -4
  15. package/dist/assets/{EvaluationsRootView-HfYQYHAD.js → EvaluationsRootView-BjrpKDj-.js} +2 -2
  16. package/dist/assets/{EvaluationsView-i9O4Pq6o.js → EvaluationsView-DdmFZCH-.js} +9 -9
  17. package/dist/assets/{ExecutionsTime-BDLkVZem.css → ExecutionsTime-kMSlccIr.css} +6 -6
  18. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-BHONBvt7.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ctx5Ybnr.js} +24 -19
  19. package/dist/assets/{ExecutionsView-BY23VFik.js → ExecutionsView-8BjGHy2I.js} +13 -12
  20. package/dist/assets/{ExecutionsView-ChOXAON3.css → ExecutionsView-DSsowKj4.css} +1 -1
  21. package/dist/assets/{FileSaver.min-CxOI-Vgx.js → FileSaver.min-C5wzcK59.js} +1 -1
  22. package/dist/assets/{FixedCollectionParameter-Dj0393fQ.js → FixedCollectionParameter-BrPQ5Vay.js} +1 -1
  23. package/dist/assets/{ForgotMyPasswordView-yMWlCT90.js → ForgotMyPasswordView-L0afefc1.js} +3 -3
  24. package/dist/assets/InfoAccordion-CEk3XG5b.js +146 -0
  25. package/dist/assets/InfoAccordion-dxudNqVC.css +168 -0
  26. package/dist/assets/{InsightsChartAverageRuntime-CAzHGVRl.js → InsightsChartAverageRuntime-BrwBWr_R.js} +4 -4
  27. package/dist/assets/{InsightsChartFailed-DQ9ntBQJ.js → InsightsChartFailed-ILKWvikG.js} +4 -4
  28. package/dist/assets/{InsightsChartFailureRate-DVZarv-u.js → InsightsChartFailureRate-D1AVYwU7.js} +4 -4
  29. package/dist/assets/{InsightsChartTimeSaved-CAhRkqgH.js → InsightsChartTimeSaved-D49Rwn6-.js} +4 -4
  30. package/dist/assets/{InsightsChartTotal-C60cS-Xa.js → InsightsChartTotal-Bs-pUgA3.js} +4 -4
  31. package/dist/assets/{InsightsDashboard-DM-I5QbW.js → InsightsDashboard-BIC4uZpW.js} +12 -12
  32. package/dist/assets/{InsightsPaywall-BLHoSCNL.js → InsightsPaywall-DmwFI-6e.js} +4 -4
  33. package/dist/assets/{InsightsSummary-JPw9kN4a.js → InsightsSummary-D9lEzWNT.js} +3 -3
  34. package/dist/assets/InsightsTableWorkflows-CC8t-sAL.js +3355 -0
  35. package/dist/assets/{Logo-C699HbA_.js → Logo-DNxOhbuV.js} +1 -1
  36. package/dist/assets/{LogsPanel-BWnaJuFj.js → LogsPanel-DvWnD7rJ.js} +21 -18
  37. package/dist/assets/{MainHeader-Ce0GAh6o.js → MainHeader-BVHIuVVT.js} +165 -22
  38. package/dist/assets/{MainHeader--6ITU977.css → MainHeader-DYYEm7nF.css} +202 -12
  39. package/dist/assets/{MainSidebar-CooH0xuY.js → MainSidebar-CEHr93uL.js} +305 -92
  40. package/dist/assets/{MainSidebar-DrjvHIqG.css → MainSidebar-DqrgzqvZ.css} +209 -48
  41. package/dist/assets/{NodeCreation-RKvezEeg.css → NodeCreation-32nlvQSy.css} +4 -24
  42. package/dist/assets/{NodeCreation-T5AfZVS1.js → NodeCreation-Bq5626Ha.js} +75 -81
  43. package/dist/assets/{NodeCreator-4g3-zQj6.js → NodeCreator-D7xT3ogw.js} +156 -42
  44. package/dist/assets/{NodeCreator-B1jJcOYT.css → NodeCreator-Dk0sNXFZ.css} +212 -0
  45. package/dist/assets/{NodeDetailsView-DWA1ZgwG.css → NodeDetailsView-BaIj2qAa.css} +241 -0
  46. package/dist/assets/{NodeDetailsView-BvClCeyF.js → NodeDetailsView-DB-5JPUD.js} +81 -56
  47. package/dist/assets/{NodeView-RurRbUaI.css → NodeView-DL8JxnMc.css} +516 -125
  48. package/dist/assets/{NodeView-DWCMsw1d.js → NodeView-DoR46iB5.js} +1393 -988
  49. package/dist/assets/{ProjectHeader-C7A20kgK.js → ProjectHeader-DSKKwiQ0.js} +14 -10
  50. package/dist/assets/{ProjectSettings-DVNR9FN4.js → ProjectSettings-C3sMIDHh.js} +366 -22
  51. package/dist/assets/{WorkflowActivator-C0R6Yly0.css → ProjectSettings-CCVXNK3G.css} +97 -43
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-D-uuE-zX.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-cnANEo9o.js} +2 -2
  53. package/dist/assets/{ResourcesListLayout-D0WMvHN_.js → ResourcesListLayout-BVbjqFbc.js} +349 -24
  54. package/dist/assets/{ResourcesListLayout-D6zDTXm4.css → ResourcesListLayout-uBbUHbxU.css} +8 -8
  55. package/dist/assets/{RunData-C-tqFRZO.js → RunData-DG20AzLo.js} +16 -15
  56. package/dist/assets/{RunDataJson-pe7NZQoH.js → RunDataJson-7okRLIES.js} +7 -6
  57. package/dist/assets/{RunDataJsonActions-3CT6wqXW.js → RunDataJsonActions-Qkg8HmUd.js} +2 -2
  58. package/dist/assets/{RunDataParsedAiContent-CGCVmkuV.js → RunDataParsedAiContent-DRO1Bjsh.js} +5 -4
  59. package/dist/assets/{RunDataSearch-jkQ60p9j.js → RunDataSearch-D5eQUWvi.js} +3 -3
  60. package/dist/assets/{RunDataTable-BqU63PyF.js → RunDataTable-CJmmTtEp.js} +115 -4
  61. package/dist/assets/{RunDataTable-CUxj7dHx.css → RunDataTable-CykHIwNT.css} +129 -0
  62. package/dist/assets/{SamlOnboarding-tGJha_9t.js → SamlOnboarding-ClxYfm5z.js} +3 -3
  63. package/dist/assets/{SettingsApiView-DkeogFEJ.js → SettingsApiView-Ds7FYVrN.js} +13 -13
  64. package/dist/assets/{SettingsCommunityNodesView-DdKQ7Jg5.js → SettingsCommunityNodesView-QKvLs6gi.js} +13 -13
  65. package/dist/assets/{SettingsExternalSecrets-CIvPLpaR.js → SettingsExternalSecrets-DGRdvsMy.js} +9 -9
  66. package/dist/assets/{SettingsLdapView-u9uiXIG8.js → SettingsLdapView-C_LJwixk.js} +6 -6
  67. package/dist/assets/{SettingsLogStreamingView-CQDEQGxK.js → SettingsLogStreamingView-CaEJvgJ9.js} +9 -9
  68. package/dist/assets/{SettingsPersonalView-ta7XbuCV.js → SettingsPersonalView-DlwXaGDs.js} +13 -12
  69. package/dist/assets/{SettingsSourceControl-DxbBCbMO.js → SettingsSourceControl-B6eULOfX.js} +23 -12
  70. package/dist/assets/{AuthView-jgkkdJYL.css → SettingsSourceControl-BBxJXbFC.css} +82 -32
  71. package/dist/assets/{SettingsSso-Bp4pf_0a.js → SettingsSso-5zcg-J4E.js} +11 -11
  72. package/dist/assets/{SettingsUsageAndPlan-D680YlPQ.js → SettingsUsageAndPlan-CMBvYdjo.js} +10 -10
  73. package/dist/assets/{SettingsUsageAndPlan-Bc3LLaWe.css → SettingsUsageAndPlan-D6TiPwUx.css} +3 -3
  74. package/dist/assets/{SettingsUsersView-DP2nppP6.js → SettingsUsersView-BL3TAhT8.js} +13 -12
  75. package/dist/assets/{SettingsView-BUpTI--W.js → SettingsView-BuDKhqwZ.js} +4 -4
  76. package/dist/assets/{SetupView-Bocro878.js → SetupView-DSaQcQDF.js} +3 -3
  77. package/dist/assets/{SetupWorkflowCredentialsButton-DODNIDNV.js → SetupWorkflowCredentialsButton-BWISZAxq.js} +2 -2
  78. package/dist/assets/{SetupWorkflowFromTemplateView-BLzrIJTt.js → SetupWorkflowFromTemplateView-CfDWCwoA.js} +6 -6
  79. package/dist/assets/{SigninView-2_f1aXTx.js → SigninView-BpjyswHb.js} +17 -20
  80. package/dist/assets/{SignoutView-oMETilwl.js → SignoutView-f_CoUl4S.js} +1 -1
  81. package/dist/assets/{SignupView-CYMsjH_L.js → SignupView-q3f9g3P9.js} +3 -3
  82. package/dist/assets/{SettingsSourceControl-DxshapuD.css → TableBase-Bf42_9Yp.css} +52 -67
  83. package/dist/assets/TableBase-DruQl-SO.js +28 -0
  84. package/dist/assets/{ProjectSettings-8tvaQJye.css → Tags-B0bIUnzf.css} +48 -39
  85. package/dist/assets/Tags-DbmKHzWo.js +95 -0
  86. package/dist/assets/{TemplateDetails-CmL1Gj71.js → TemplateDetails-DP_5pkzG.js} +17 -9
  87. package/dist/assets/{TemplateList-DpqrSF2u.js → TemplateList-y8Aumcsb.js} +6 -6
  88. package/dist/assets/{TemplatesCollectionView-DVlz-_MJ.js → TemplatesCollectionView-VdQpHtxs.js} +13 -12
  89. package/dist/assets/{TemplatesSearchView-CcToWnkG.js → TemplatesSearchView-BUcYRVEK.js} +16 -12
  90. package/dist/assets/{TemplatesView-CXH6dh9Y.js → TemplatesView-4DUEEEtD.js} +1 -1
  91. package/dist/assets/{TemplatesWorkflowView-DL9rIrAK.js → TemplatesWorkflowView--zUXMB8f.js} +12 -11
  92. package/dist/assets/{VariablesView-CX3umLhX.js → VariablesView-DoWb0Vtv.js} +7 -6
  93. package/dist/assets/{VariablesView-2BSJPXRB.css → VariablesView-Kog_9PMT.css} +8 -5
  94. package/dist/assets/{WorkerView-C5XLf-D-.js → WorkerView-D56d7XJA.js} +18 -18
  95. package/dist/assets/WorkflowActivator-BJPsIkXE.css +836 -0
  96. package/dist/assets/{WorkflowActivator-Bzz5eOg4.js → WorkflowActivator-CQxaDCfA.js} +313 -19
  97. package/dist/assets/{WorkflowExecutionsInfoAccordion-UVslt3c0.js → WorkflowExecutionsInfoAccordion-D9p_ZqmA.js} +6 -5
  98. package/dist/assets/{WorkflowExecutionsLandingPage-C1xNEQ3_.js → WorkflowExecutionsLandingPage-CymYth6K.js} +6 -5
  99. package/dist/assets/{WorkflowExecutionsPreview--Vn3C-sa.js → WorkflowExecutionsPreview-DRvf3WQC.js} +18 -18
  100. package/dist/assets/{WorkflowExecutionsView-_l8AgWIb.css → WorkflowExecutionsView-C_xuUSa8.css} +2 -2
  101. package/dist/assets/{WorkflowExecutionsView-B_Pvn_mZ.js → WorkflowExecutionsView-DxiIaUKV.js} +18 -15
  102. package/dist/assets/{WorkflowHistory-CQLQcsG4.js → WorkflowHistory-DBPIq2u7.js} +14 -13
  103. package/dist/assets/{WorkflowOnboardingView-DJZD6lcQ.js → WorkflowOnboardingView-D4QKSetf.js} +1 -1
  104. package/dist/assets/{WorkflowPreview-CAv2jWEf.js → WorkflowPreview-D3YRZjYi.js} +3 -3
  105. package/dist/assets/{WorkflowsView-9oLDmGMf.js → WorkflowsView-DPADmBVd.js} +37 -32
  106. package/dist/assets/{chartjs.utils-D3bkyfMC.js → chartjs.utils-Cou_ISuU.js} +2 -2
  107. package/dist/assets/{en-BUHUsdZz.js → en-DzZibgm_.js} +15 -1
  108. package/dist/assets/{global-link-actions-CudV1inR.js → global-link-actions-olwfH36z.js} +1 -1
  109. package/dist/assets/{import-curl-Q2R3Aa93.js → import-curl-DD21H3kK.js} +1 -1
  110. package/dist/assets/{index-ZImlcrmd.js → index-7S5ADieN.js} +177205 -181453
  111. package/dist/assets/{index-CeLskvTy.css → index-BzamKJpD.css} +2688 -5455
  112. package/dist/assets/{index-Cjj5DRsU.js → index-uJOu4Uio.js} +1 -1
  113. package/dist/assets/{pickBy-C61vriIY.js → pickBy-DPxZbMic.js} +1 -1
  114. package/dist/assets/{polyfills-deFGRMT9.js → polyfills-B8p9DdqU.js} +388 -1
  115. package/dist/assets/{templateActions-DgE3PfYi.js → templateActions-DJJfyIhq.js} +1 -1
  116. package/dist/assets/{typescript.worker-DIrCbxuR.js → typescript.worker-CUj0Nj-S.js} +39 -39
  117. package/dist/assets/{useBeforeUnload-CX6OL9lX.js → useBeforeUnload-DveXGtGN.js} +1 -1
  118. package/dist/assets/{useExecutionDebugging-Bw29Xcz_.js → useExecutionDebugging-DM4nhx6D.js} +1 -1
  119. package/dist/assets/{useExecutionHelpers-DfJOrkT9.js → useExecutionHelpers-BfF56crp.js} +1 -1
  120. package/dist/assets/{useImportCurlCommand-BtBYH8AF.js → useImportCurlCommand-BAgQhwtE.js} +11 -11
  121. package/dist/assets/{ProjectCardBadge-t3v64i1e.css → useKeybindings-BUK7Ngh6.css} +10 -31
  122. package/dist/assets/{useKeybindings-Dl2fatxs.js → useKeybindings-CV0VsjNP.js} +35 -1
  123. package/dist/assets/{useProjectPages-wyiRSAYY.js → useProjectPages-DgMGWOaO.js} +1 -1
  124. package/dist/assets/{usePushConnection-DbNbVMYT.js → usePushConnection-D8SE-itT.js} +3 -2
  125. package/dist/assets/{useWorkflowActivate-CnaSqjqM.js → useWorkflowActivate-BKz3N1SO.js} +1 -1
  126. package/dist/index.html +3 -3
  127. package/eslint.config.mjs +58 -0
  128. package/package.json +2 -1
  129. package/postcss.config.cjs +6 -0
  130. package/vite.config.mts +4 -0
  131. package/dist/assets/AuthView-BBEIdfYQ.js +0 -130
  132. package/dist/assets/CollectionParameter-_4aFNEaG.js +0 -4
  133. package/dist/assets/InsightsTableWorkflows-Cs0bf9Y9.js +0 -176
  134. package/dist/assets/ProjectCardBadge-saH09Hgi.js +0 -237
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, U as useRoute, r as ref, x as computed, V as VIEWS, c as useI18n, $ as watch, h as resolveComponent, e as createBlock, g as openBlock, i as createElementBlock, n as normalizeClass, A as renderSlot, j as createVNode, m as unref, g$ as N8nActionToggle, w as withCtx, a$ as _sfc_main$3, _ as _export_sfc, b as useRouter, a4 as useProjectsStore, a3 as useSourceControlStore, v as useSettingsStore, af as ProjectTypes, ab as getResourcePermissions, cP as useElementSize, h0 as useResizeObserver, k as createBaseVNode, f as createCommentVNode, fH as ProjectIcon, l as createTextVNode, t as toDisplayString, q as N8nButton, bK as mergeProps, aZ as N8nTooltip } from "./index-ZImlcrmd.js";
2
- import { u as useProjectPages } from "./useProjectPages-wyiRSAYY.js";
1
+ import { d as defineComponent, a4 as useRoute, r as ref, x as computed, V as VIEWS, c as useI18n, a9 as watch, e as createBlock, g as openBlock, d3 as N8nTabs, aq as useTemplateRef, i as createElementBlock, n as normalizeClass, J as renderSlot, j as createVNode, m as unref, fl as N8nActionToggle, w as withCtx, $ as _sfc_main$3, _ as _export_sfc, b as useRouter, ae as useProjectsStore, ad as useSourceControlStore, v as useSettingsStore, ap as ProjectTypes, al as getResourcePermissions, d4 as useElementSize, dC as useResizeObserver, k as createBaseVNode, f as createCommentVNode, g8 as ProjectIcon, N as N8nHeading, l as createTextVNode, t as toDisplayString, p as N8nText, q as N8nButton, D as mergeProps, Z as N8nTooltip } from "./index-7S5ADieN.js";
2
+ import { u as useProjectPages } from "./useProjectPages-DgMGWOaO.js";
3
3
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4
4
  __name: "ProjectTabs",
5
5
  props: {
@@ -12,6 +12,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12
12
  const locale = useI18n();
13
13
  const route = useRoute();
14
14
  const selectedTab = ref("");
15
+ const selectedTabLabel = computed(() => selectedTab.value ? String(selectedTab.value) : "");
15
16
  const projectId = computed(() => {
16
17
  return Array.isArray(route?.params?.projectId) ? route.params.projectId[0] : route?.params?.projectId;
17
18
  });
@@ -77,14 +78,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
77
78
  },
78
79
  { immediate: true }
79
80
  );
81
+ function onSelectTab(value) {
82
+ selectedTab.value = value;
83
+ }
80
84
  return (_ctx, _cache) => {
81
- const _component_N8nTabs = resolveComponent("N8nTabs");
85
+ const _component_N8nTabs = N8nTabs;
82
86
  return openBlock(), createBlock(_component_N8nTabs, {
83
- modelValue: selectedTab.value,
84
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedTab.value = $event),
87
+ "model-value": selectedTabLabel.value,
85
88
  options: options.value,
86
- "data-test-id": "project-tabs"
87
- }, null, 8, ["modelValue", "options"]);
89
+ "data-test-id": "project-tabs",
90
+ "onUpdate:modelValue": onSelectTab
91
+ }, null, 8, ["model-value", "options"]);
88
92
  };
89
93
  }
90
94
  });
@@ -98,7 +102,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
98
102
  emits: ["action"],
99
103
  setup(__props, { expose: __expose, emit: __emit }) {
100
104
  const emit = __emit;
101
- const actionToggleRef = ref(null);
105
+ const actionToggleRef = useTemplateRef("actionToggleRef");
102
106
  __expose({
103
107
  openActionToggle: (isOpen) => actionToggleRef.value?.openActionToggle(isOpen)
104
108
  });
@@ -314,8 +318,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
314
318
  executableAction(homeProject.value.id);
315
319
  };
316
320
  return (_ctx, _cache) => {
317
- const _component_N8nHeading = resolveComponent("N8nHeading");
318
- const _component_N8nText = resolveComponent("N8nText");
321
+ const _component_N8nHeading = N8nHeading;
322
+ const _component_N8nText = N8nText;
319
323
  return openBlock(), createElementBlock("div", null, [
320
324
  createBaseVNode("div", {
321
325
  ref_key: "projectHeaderRef",
@@ -1,6 +1,350 @@
1
- import { d as defineComponent, cK as mergeModels, cL as useModel, r as ref, x as computed, c as useI18n, h as resolveComponent, e as createBlock, g as openBlock, w as withCtx, i as createElementBlock, l as createTextVNode, t as toDisplayString, m as unref, j as createVNode, k as createBaseVNode, f as createCommentVNode, n as normalizeClass, gr as ProjectSharing, bE as withModifiers, _ as _export_sfc, aa as usePageRedirectionHelper, u as useUsersStore, a4 as useProjectsStore, ha as useRolesStore, aQ as useCloudPlanStore, a as useToast, b as useRouter, a7 as useDocumentTitle, hb as getAllIconNames, $ as watch, aH as onBeforeMount, o as onMounted, fj as N8nFormInput, F as Fragment, G as renderList, di as deepCopy, am as useTelemetry, B as nextTick, V as VIEWS } from "./index-ZImlcrmd.js";
2
- import { P as ProjectHeader } from "./ProjectHeader-C7A20kgK.js";
3
- import "./useProjectPages-wyiRSAYY.js";
1
+ import { d as defineComponent, r as ref, x as computed, e as createBlock, g as openBlock, bh as createSlots, w as withCtx, J as renderSlot, i as createElementBlock, F as Fragment, y as renderList, m as unref, fe as _sfc_main$5, n as normalizeClass, j as createVNode, C as N8nUserInfo, D as mergeProps, gM as useI18n, fd as N8nSelect, _ as _export_sfc, cW as mergeModels, cX as useModel, bg as onClickOutside, k as createBaseVNode, f as createCommentVNode, Z as N8nTooltip, $ as _sfc_main$6, q as N8nButton, l as createTextVNode, t as toDisplayString, d3 as N8nTabs, aW as N8nIcon, c as useI18n$1, h as resolveComponent, p as N8nText, gR as ProjectSharing, fb as N8nInputLabel, dU as N8nInput, bV as withModifiers, ak as usePageRedirectionHelper, u as useUsersStore, ae as useProjectsStore, hy as useRolesStore, b5 as useCloudPlanStore, a as useToast, b as useRouter, ah as useDocumentTitle, hz as getAllIconNames, a9 as watch, aS as onBeforeMount, o as onMounted, fQ as N8nFormInput, fi as N8nUsersList, dx as deepCopy, V as VIEWS, ax as useTelemetry, K as nextTick } from "./index-7S5ADieN.js";
2
+ import { P as ProjectHeader } from "./ProjectHeader-DSKKwiQ0.js";
3
+ import "./useProjectPages-DgMGWOaO.js";
4
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
5
+ __name: "UserSelect",
6
+ props: {
7
+ users: { default: () => [] },
8
+ modelValue: { default: "" },
9
+ ignoreIds: { default: () => [] },
10
+ currentUserId: { default: "" },
11
+ placeholder: {},
12
+ size: {}
13
+ },
14
+ emits: ["blur", "focus"],
15
+ setup(__props, { emit: __emit }) {
16
+ const props = __props;
17
+ const emit = __emit;
18
+ const { t } = useI18n();
19
+ const filter = ref("");
20
+ const filteredUsers = computed(
21
+ () => props.users.filter((user) => {
22
+ if (props.ignoreIds.includes(user.id)) {
23
+ return false;
24
+ }
25
+ if (user.fullName && user.email) {
26
+ const match = user.fullName.toLowerCase().includes(filter.value.toLowerCase());
27
+ if (match) {
28
+ return true;
29
+ }
30
+ }
31
+ return user.email?.includes(filter.value) ?? false;
32
+ })
33
+ );
34
+ const sortedUsers = computed(
35
+ () => [...filteredUsers.value].sort((a, b) => {
36
+ if (a.lastName && b.lastName && a.lastName !== b.lastName) {
37
+ return a.lastName > b.lastName ? 1 : -1;
38
+ }
39
+ if (a.firstName && b.firstName && a.firstName !== b.firstName) {
40
+ return a.firstName > b.firstName ? 1 : -1;
41
+ }
42
+ if (!a.email || !b.email) {
43
+ throw new Error("Expected all users to have email");
44
+ }
45
+ return a.email > b.email ? 1 : -1;
46
+ })
47
+ );
48
+ const setFilter = (value = "") => {
49
+ filter.value = value;
50
+ };
51
+ const onBlur = () => emit("blur");
52
+ const onFocus = () => emit("focus");
53
+ const getLabel = (user) => (!user.fullName ? user.email : `${user.fullName} (${user.email})`) ?? "";
54
+ return (_ctx, _cache) => {
55
+ return openBlock(), createBlock(unref(N8nSelect), mergeProps({ "data-test-id": "user-select-trigger" }, _ctx.$attrs, {
56
+ "model-value": _ctx.modelValue,
57
+ filterable: true,
58
+ "filter-method": setFilter,
59
+ placeholder: _ctx.placeholder || unref(t)("nds.userSelect.selectUser"),
60
+ "default-first-option": true,
61
+ teleported: "",
62
+ "popper-class": _ctx.$style.limitPopperWidth,
63
+ "no-data-text": unref(t)("nds.userSelect.noMatchingUsers"),
64
+ size: _ctx.size,
65
+ onBlur,
66
+ onFocus
67
+ }), createSlots({
68
+ default: withCtx(() => [
69
+ (openBlock(true), createElementBlock(Fragment, null, renderList(sortedUsers.value, (user) => {
70
+ return openBlock(), createBlock(unref(_sfc_main$5), {
71
+ id: `user-select-option-id-${user.id}`,
72
+ key: user.id,
73
+ value: user.id,
74
+ class: normalizeClass(_ctx.$style.itemContainer),
75
+ label: getLabel(user),
76
+ disabled: user.disabled
77
+ }, {
78
+ default: withCtx(() => [
79
+ createVNode(unref(N8nUserInfo), mergeProps({ ref_for: true }, user, {
80
+ "is-current-user": _ctx.currentUserId === user.id
81
+ }), null, 16, ["is-current-user"])
82
+ ]),
83
+ _: 2
84
+ }, 1032, ["id", "value", "class", "label", "disabled"]);
85
+ }), 128))
86
+ ]),
87
+ _: 2
88
+ }, [
89
+ _ctx.$slots.prefix ? {
90
+ name: "prefix",
91
+ fn: withCtx(() => [
92
+ renderSlot(_ctx.$slots, "prefix")
93
+ ]),
94
+ key: "0"
95
+ } : void 0
96
+ ]), 1040, ["model-value", "placeholder", "popper-class", "no-data-text", "size"]);
97
+ };
98
+ }
99
+ });
100
+ const itemContainer = "_itemContainer_9rnse_123";
101
+ const limitPopperWidth = "_limitPopperWidth_9rnse_128";
102
+ const style0$3 = {
103
+ itemContainer,
104
+ limitPopperWidth
105
+ };
106
+ const cssModules$3 = {
107
+ "$style": style0$3
108
+ };
109
+ const N8nUserSelect = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$3]]);
110
+ var cache = /* @__PURE__ */ new Map();
111
+ function isEmojiSupported(unicode) {
112
+ if (cache.has(unicode)) {
113
+ return cache.get(unicode);
114
+ }
115
+ var supported = isSupported(unicode);
116
+ cache.set(unicode, supported);
117
+ return supported;
118
+ }
119
+ var isSupported = function() {
120
+ var ctx = null;
121
+ try {
122
+ ctx = document.createElement("canvas").getContext("2d");
123
+ } catch (_a) {
124
+ }
125
+ if (!ctx) {
126
+ return function() {
127
+ return false;
128
+ };
129
+ }
130
+ var CANVAS_HEIGHT = 25;
131
+ var CANVAS_WIDTH = 20;
132
+ var textSize = Math.floor(CANVAS_HEIGHT / 2);
133
+ ctx.font = textSize + "px Arial, Sans-Serif";
134
+ ctx.textBaseline = "top";
135
+ ctx.canvas.width = CANVAS_WIDTH * 2;
136
+ ctx.canvas.height = CANVAS_HEIGHT;
137
+ return function(unicode) {
138
+ ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT);
139
+ ctx.fillStyle = "#FF0000";
140
+ ctx.fillText(unicode, 0, 22);
141
+ ctx.fillStyle = "#0000FF";
142
+ ctx.fillText(unicode, CANVAS_WIDTH, 22);
143
+ var a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data;
144
+ var count = a.length;
145
+ var i = 0;
146
+ for (; i < count && !a[i + 3]; i += 4)
147
+ ;
148
+ if (i >= count) {
149
+ return false;
150
+ }
151
+ var x = CANVAS_WIDTH + i / 4 % CANVAS_WIDTH;
152
+ var y = Math.floor(i / 4 / CANVAS_WIDTH);
153
+ var b = ctx.getImageData(x, y, 1, 1).data;
154
+ if (a[i] !== b[0] || a[i + 2] !== b[2]) {
155
+ return false;
156
+ }
157
+ if (ctx.measureText(unicode).width >= CANVAS_WIDTH) {
158
+ return false;
159
+ }
160
+ return true;
161
+ };
162
+ }();
163
+ const _hoisted_1$3 = ["aria-expanded"];
164
+ const _hoisted_2$2 = ["onClick"];
165
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
166
+ ...{ name: "N8nIconPicker" },
167
+ __name: "IconPicker",
168
+ props: /* @__PURE__ */ mergeModels({
169
+ buttonTooltip: {},
170
+ availableIcons: { default: () => [] },
171
+ buttonSize: { default: "large" }
172
+ }, {
173
+ "modelValue": { default: { type: "icon", value: "smile" } },
174
+ "modelModifiers": {}
175
+ }),
176
+ emits: ["update:modelValue"],
177
+ setup(__props) {
178
+ const emojiRanges = [
179
+ [128512, 128591],
180
+ // Emoticons
181
+ [127744, 128511],
182
+ // Symbols & Pictographs
183
+ [128640, 128767],
184
+ // Transport & Map Symbols
185
+ [9728, 9983],
186
+ // Miscellaneous Symbols
187
+ [9984, 10175],
188
+ // Dingbats
189
+ [129280, 129535],
190
+ // Supplemental Symbols
191
+ [127462, 127487],
192
+ // Regional Indicator Symbols
193
+ [128e3, 128255]
194
+ // Additional pictographs
195
+ ];
196
+ const { t } = useI18n();
197
+ const props = __props;
198
+ const model = useModel(__props, "modelValue");
199
+ const hasAvailableIcons = computed(() => props.availableIcons.length > 0);
200
+ const emojis = computed(() => {
201
+ const emojisArray = [];
202
+ emojiRanges.forEach(([start, end]) => {
203
+ for (let i = start; i <= end; i++) {
204
+ const emoji2 = String.fromCodePoint(i);
205
+ if (isEmojiSupported(emoji2)) {
206
+ emojisArray.push(emoji2);
207
+ }
208
+ }
209
+ });
210
+ return emojisArray;
211
+ });
212
+ const popupVisible = ref(false);
213
+ const tabs2 = ref(
214
+ hasAvailableIcons.value ? [
215
+ { value: "icons", label: t("iconPicker.tabs.icons") },
216
+ { value: "emojis", label: t("iconPicker.tabs.emojis") }
217
+ ] : [{ value: "emojis", label: t("iconPicker.tabs.emojis") }]
218
+ );
219
+ const selectedTab = ref(tabs2.value[0].value);
220
+ const container2 = ref();
221
+ onClickOutside(container2, () => {
222
+ popupVisible.value = false;
223
+ });
224
+ const selectIcon = (value) => {
225
+ model.value = value;
226
+ popupVisible.value = false;
227
+ };
228
+ const togglePopup = () => {
229
+ popupVisible.value = !popupVisible.value;
230
+ if (popupVisible.value) {
231
+ selectedTab.value = tabs2.value[0].value;
232
+ }
233
+ };
234
+ return (_ctx, _cache) => {
235
+ return openBlock(), createElementBlock("div", {
236
+ ref_key: "container",
237
+ ref: container2,
238
+ class: normalizeClass(_ctx.$style.container),
239
+ "aria-expanded": popupVisible.value,
240
+ role: "button",
241
+ "aria-haspopup": "true"
242
+ }, [
243
+ createBaseVNode("div", {
244
+ class: normalizeClass(_ctx.$style["icon-picker-button"])
245
+ }, [
246
+ createVNode(unref(N8nTooltip), {
247
+ placement: "right",
248
+ "data-test-id": "icon-picker-tooltip"
249
+ }, {
250
+ content: withCtx(() => [
251
+ createTextVNode(toDisplayString(props.buttonTooltip ?? unref(t)("iconPicker.button.defaultToolTip")), 1)
252
+ ]),
253
+ default: withCtx(() => [
254
+ model.value.type === "icon" ? (openBlock(), createBlock(unref(_sfc_main$6), {
255
+ key: 0,
256
+ class: normalizeClass(_ctx.$style["icon-button"]),
257
+ icon: model.value.value ?? "smile",
258
+ size: _ctx.buttonSize,
259
+ square: true,
260
+ type: "tertiary",
261
+ "data-test-id": "icon-picker-button",
262
+ onClick: togglePopup
263
+ }, null, 8, ["class", "icon", "size"])) : model.value.type === "emoji" ? (openBlock(), createBlock(unref(N8nButton), {
264
+ key: 1,
265
+ class: normalizeClass(_ctx.$style["emoji-button"]),
266
+ size: _ctx.buttonSize,
267
+ square: true,
268
+ type: "tertiary",
269
+ "data-test-id": "icon-picker-button",
270
+ onClick: togglePopup
271
+ }, {
272
+ default: withCtx(() => [
273
+ createTextVNode(toDisplayString(model.value.value), 1)
274
+ ]),
275
+ _: 1
276
+ }, 8, ["class", "size"])) : createCommentVNode("", true)
277
+ ]),
278
+ _: 1
279
+ })
280
+ ], 2),
281
+ popupVisible.value ? (openBlock(), createElementBlock("div", {
282
+ key: 0,
283
+ class: normalizeClass(_ctx.$style.popup),
284
+ "data-test-id": "icon-picker-popup"
285
+ }, [
286
+ createBaseVNode("div", {
287
+ class: normalizeClass(_ctx.$style.tabs)
288
+ }, [
289
+ createVNode(unref(N8nTabs), {
290
+ modelValue: selectedTab.value,
291
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedTab.value = $event),
292
+ options: tabs2.value,
293
+ "data-test-id": "icon-picker-tabs"
294
+ }, null, 8, ["modelValue", "options"])
295
+ ], 2),
296
+ selectedTab.value === "icons" ? (openBlock(), createElementBlock("div", {
297
+ key: 0,
298
+ class: normalizeClass(_ctx.$style.content)
299
+ }, [
300
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.availableIcons, (icon2) => {
301
+ return openBlock(), createBlock(unref(N8nIcon), {
302
+ key: icon2,
303
+ icon: icon2,
304
+ class: normalizeClass(_ctx.$style.icon),
305
+ size: "large",
306
+ "data-test-id": "icon-picker-icon",
307
+ onClick: ($event) => selectIcon({ type: "icon", value: icon2 })
308
+ }, null, 8, ["icon", "class", "onClick"]);
309
+ }), 128))
310
+ ], 2)) : createCommentVNode("", true),
311
+ selectedTab.value === "emojis" ? (openBlock(), createElementBlock("div", {
312
+ key: 1,
313
+ class: normalizeClass(_ctx.$style.content)
314
+ }, [
315
+ (openBlock(true), createElementBlock(Fragment, null, renderList(emojis.value, (emoji2) => {
316
+ return openBlock(), createElementBlock("span", {
317
+ key: emoji2,
318
+ class: normalizeClass(_ctx.$style.emoji),
319
+ "data-test-id": "icon-picker-emoji",
320
+ onClick: ($event) => selectIcon({ type: "emoji", value: emoji2 })
321
+ }, toDisplayString(emoji2), 11, _hoisted_2$2);
322
+ }), 128))
323
+ ], 2)) : createCommentVNode("", true)
324
+ ], 2)) : createCommentVNode("", true)
325
+ ], 10, _hoisted_1$3);
326
+ };
327
+ }
328
+ });
329
+ const container = "_container_15yfs_123";
330
+ const popup = "_popup_15yfs_131";
331
+ const tabs = "_tabs_15yfs_144";
332
+ const content = "_content_15yfs_148";
333
+ const icon = "_icon_15yfs_154";
334
+ const emoji = "_emoji_15yfs_127";
335
+ const style0$2 = {
336
+ container,
337
+ "emoji-button": "_emoji-button_15yfs_127",
338
+ popup,
339
+ tabs,
340
+ content,
341
+ icon,
342
+ emoji
343
+ };
344
+ const cssModules$2 = {
345
+ "$style": style0$2
346
+ };
347
+ const IconPicker = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$2]]);
4
348
  const _hoisted_1$2 = { key: 1 };
5
349
  const _hoisted_2$1 = { class: "pt-l" };
6
350
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
@@ -18,7 +362,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
18
362
  const props = __props;
19
363
  const visible = useModel(__props, "modelValue");
20
364
  const emit = __emit;
21
- const locale = useI18n();
365
+ const locale = useI18n$1();
22
366
  const selectedProject = ref(null);
23
367
  const operation2 = ref(null);
24
368
  const wipeConfirmText = ref("");
@@ -38,11 +382,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
38
382
  emit("confirmDelete", selectedProject.value?.id);
39
383
  };
40
384
  return (_ctx, _cache) => {
41
- const _component_n8n_text = resolveComponent("n8n-text");
385
+ const _component_n8n_text = N8nText;
42
386
  const _component_el_radio = resolveComponent("el-radio");
43
- const _component_n8n_input = resolveComponent("n8n-input");
44
- const _component_n8n_input_label = resolveComponent("n8n-input-label");
45
- const _component_N8nButton = resolveComponent("N8nButton");
387
+ const _component_n8n_input = N8nInput;
388
+ const _component_n8n_input_label = N8nInputLabel;
389
+ const _component_N8nButton = N8nButton;
46
390
  const _component_el_dialog = resolveComponent("el-dialog");
47
391
  return openBlock(), createBlock(_component_el_dialog, {
48
392
  modelValue: visible.value,
@@ -182,14 +526,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
182
526
  const props = __props;
183
527
  const visible = useModel(__props, "modelValue");
184
528
  const pageRedirectionHelper = usePageRedirectionHelper();
185
- const locale = useI18n();
529
+ const locale = useI18n$1();
186
530
  const goToUpgrade = async () => {
187
531
  await pageRedirectionHelper.goToUpgrade("rbac", "upgrade-rbac");
188
532
  visible.value = false;
189
533
  };
190
534
  return (_ctx, _cache) => {
191
535
  const _component_i18n_t = resolveComponent("i18n-t");
192
- const _component_N8nButton = resolveComponent("N8nButton");
536
+ const _component_N8nButton = N8nButton;
193
537
  const _component_el_dialog = resolveComponent("el-dialog");
194
538
  return openBlock(), createBlock(_component_el_dialog, {
195
539
  modelValue: visible.value,
@@ -252,7 +596,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
252
596
  __name: "ProjectSettings",
253
597
  setup(__props) {
254
598
  const usersStore = useUsersStore();
255
- const i18n = useI18n();
599
+ const i18n = useI18n$1();
256
600
  const projectsStore = useProjectsStore();
257
601
  const rolesStore = useRolesStore();
258
602
  const cloudPlanStore = useCloudPlanStore();
@@ -312,9 +656,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
312
656
  }
313
657
  formData.value.relations.push(relation);
314
658
  };
315
- const onRoleAction = (user, role) => {
659
+ const onRoleAction = (userId, role) => {
316
660
  isDirty.value = true;
317
- const index = formData.value.relations.findIndex((r) => r.id === user.id);
661
+ const index = formData.value.relations.findIndex((r) => r.id === userId);
318
662
  if (role === "remove") {
319
663
  formData.value.relations.splice(index, 1);
320
664
  } else {
@@ -497,13 +841,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
497
841
  selectProjectNameIfMatchesDefault();
498
842
  });
499
843
  return (_ctx, _cache) => {
500
- const _component_N8nIconPicker = resolveComponent("N8nIconPicker");
501
- const _component_N8nIcon = resolveComponent("N8nIcon");
502
- const _component_N8nUserSelect = resolveComponent("N8nUserSelect");
503
- const _component_N8nOption = resolveComponent("N8nOption");
504
- const _component_N8nSelect = resolveComponent("N8nSelect");
505
- const _component_N8nButton = resolveComponent("N8nButton");
506
- const _component_N8nUsersList = resolveComponent("N8nUsersList");
844
+ const _component_N8nIconPicker = IconPicker;
845
+ const _component_N8nIcon = N8nIcon;
846
+ const _component_N8nUserSelect = N8nUserSelect;
847
+ const _component_N8nOption = _sfc_main$5;
848
+ const _component_N8nSelect = N8nSelect;
849
+ const _component_N8nButton = N8nButton;
850
+ const _component_N8nUsersList = N8nUsersList;
507
851
  return openBlock(), createElementBlock("div", {
508
852
  class: normalizeClass(_ctx.$style.projectSettings)
509
853
  }, [
@@ -596,7 +940,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
596
940
  "model-value": user?.role || projectRoles.value[0].role,
597
941
  size: "small",
598
942
  "data-test-id": "projects-settings-user-role-select",
599
- "onUpdate:modelValue": ($event) => onRoleAction(user, $event)
943
+ "onUpdate:modelValue": ($event) => onRoleAction(user.id, $event)
600
944
  }, {
601
945
  default: withCtx(() => [
602
946
  (openBlock(true), createElementBlock(Fragment, null, renderList(projectRoles.value, (role) => {
@@ -626,7 +970,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
626
970
  square: "",
627
971
  icon: "trash",
628
972
  "data-test-id": "project-user-remove",
629
- onClick: ($event) => onRoleAction(user, "remove")
973
+ onClick: ($event) => onRoleAction(user.id, "remove")
630
974
  }, null, 8, ["onClick"])
631
975
  ], 2)
632
976
  ]),
@@ -120,32 +120,16 @@
120
120
  -------------------------- */
121
121
  /* BEM
122
122
  -------------------------- */
123
- ._home-project_1gp09_123 {
124
- display: flex;
125
- padding: var(--spacing-3xs) var(--spacing-4xs) var(--spacing-4xs);
126
- border: var(--border-width-base) var(--border-style-base) transparent;
127
- }
128
- ._home-project_1gp09_123._dragging_1gp09_128:hover {
129
- border: var(--border-width-base) var(--border-style-base) var(--color-secondary);
130
- border-radius: var(--border-radius-base);
131
- background-color: var(--color-callout-secondary-background);
132
- }
133
- ._home-project_1gp09_123._dragging_1gp09_128:hover * {
134
- cursor: grabbing;
135
- color: var(--color-text-base);
123
+ ._itemContainer_9rnse_123 {
124
+ --select-option-padding: var(--spacing-2xs) var(--spacing-s);
125
+ --select-option-line-height: 1;
136
126
  }
137
- ._home-project_1gp09_123:hover .n8n-text {
138
- color: var(--color-text-dark);
139
- }
140
- ._project-link_1gp09_141 .n8n-text {
141
- display: flex;
142
- align-items: center;
143
- gap: var(--spacing-4xs);
144
- }
145
- @media (max-width: 992px) {
146
- .n8n-text._project-label_1gp09_148 {
147
- display: none;
127
+ :root ._limitPopperWidth_9rnse_128 {
128
+ width: 0;
148
129
  }
130
+ :root ._limitPopperWidth_9rnse_128 li > span {
131
+ text-overflow: ellipsis;
132
+ overflow-x: hidden;
149
133
  }/* BEM support Func
150
134
  -------------------------- */
151
135
  /* Transition
@@ -268,16 +252,61 @@
268
252
  -------------------------- */
269
253
  /* BEM
270
254
  -------------------------- */
271
- ._container_p73tp_123 {
255
+ ._container_15yfs_123 {
256
+ position: relative;
257
+ }
258
+ ._emoji-button_15yfs_127 {
259
+ padding: 0;
260
+ }
261
+ ._popup_15yfs_131 {
262
+ position: absolute;
263
+ z-index: 1;
264
+ width: 426px;
265
+ max-height: 300px;
266
+ display: -webkit-box;
267
+ display: -ms-flexbox;
272
268
  display: flex;
273
- align-items: center;
269
+ -webkit-box-orient: vertical;
270
+ -webkit-box-direction: normal;
271
+ -ms-flex-direction: column;
272
+ flex-direction: column;
273
+ margin-top: var(--spacing-4xs);
274
+ background-color: var(--color-background-xlight);
275
+ border-radius: var(--border-radius-base);
276
+ border: var(--border-base);
277
+ border-color: var(--color-foreground-dark);
278
+ }
279
+ ._popup_15yfs_131 ._tabs_15yfs_144 {
280
+ padding: var(--spacing-2xs);
281
+ padding-bottom: var(--spacing-5xs);
274
282
  }
275
- ._home-project_p73tp_128 {
283
+ ._popup_15yfs_131 ._content_15yfs_148 {
284
+ display: -webkit-box;
285
+ display: -ms-flexbox;
276
286
  display: flex;
277
- align-items: center;
287
+ -ms-flex-wrap: wrap;
288
+ flex-wrap: wrap;
289
+ padding: var(--spacing-2xs);
290
+ overflow-y: auto;
278
291
  }
279
- ._action-toggle_p73tp_133 span[role=button] {
280
- color: var(--color-text-base);
292
+ ._popup_15yfs_131 ._icon_15yfs_154,
293
+ ._popup_15yfs_131 ._emoji_15yfs_127 {
294
+ cursor: pointer;
295
+ padding: var(--spacing-4xs);
296
+ border-radius: var(--border-radius-small);
297
+ }
298
+ ._popup_15yfs_131 ._icon_15yfs_154:hover,
299
+ ._popup_15yfs_131 ._emoji_15yfs_127:hover {
300
+ background-color: var(--color-background-medium);
301
+ }
302
+ ._popup_15yfs_131 ._icon_15yfs_154 {
303
+ color: var(--color-text-light);
304
+ }
305
+ ._popup_15yfs_131 ._icon_15yfs_154:hover {
306
+ color: var(--color-text-dark);
307
+ }
308
+ ._popup_15yfs_131 ._emoji_15yfs_127 {
309
+ font-family: "Segoe UI Emoji", "Segoe UI Symbol", "Segoe UI", "Apple Color Emoji", "Twemoji Mozilla", "Noto Color Emoji", "Android Emoji", sans-serif;
281
310
  }/* BEM support Func
282
311
  -------------------------- */
283
312
  /* Transition
@@ -400,12 +429,8 @@
400
429
  -------------------------- */
401
430
  /* BEM
402
431
  -------------------------- */
403
- ._activeStatusText_13o3x_123 {
404
- width: 64px;
405
- padding-right: var(--spacing-2xs);
406
- box-sizing: border-box;
407
- display: inline-block;
408
- text-align: right;
432
+ ._operation_18zmn_123 {
433
+ padding: 0 0 var(--spacing-l) var(--spacing-l);
409
434
  }/* BEM support Func
410
435
  -------------------------- */
411
436
  /* Transition
@@ -528,13 +553,42 @@
528
553
  -------------------------- */
529
554
  /* BEM
530
555
  -------------------------- */
531
- .workflow-activator[data-v-417f440f] {
532
- display: inline-flex;
533
- flex-wrap: nowrap;
556
+ ._projectSettings_g68s8_123 {
557
+ display: grid;
558
+ width: 100%;
559
+ justify-items: center;
560
+ grid-auto-rows: max-content;
561
+ }
562
+ ._projectSettings_g68s8_123 form {
563
+ width: 100%;
564
+ max-width: var(--content-container-width);
565
+ padding: 0 var(--spacing-2xl);
566
+ }
567
+ ._projectSettings_g68s8_123 form fieldset {
568
+ padding-bottom: var(--spacing-2xl);
569
+ }
570
+ ._projectSettings_g68s8_123 form fieldset label {
571
+ display: block;
572
+ margin-bottom: var(--spacing-xs);
573
+ font-size: var(--font-size-xl);
574
+ }
575
+ ._header_g68s8_143 {
576
+ width: 100%;
577
+ max-width: var(--content-container-width);
578
+ padding: var(--spacing-l) var(--spacing-2xl) 0;
579
+ }
580
+ ._upgrade_g68s8_149 {
581
+ cursor: pointer;
582
+ }
583
+ ._buttons_g68s8_153 {
584
+ display: flex;
585
+ justify-content: flex-end;
534
586
  align-items: center;
535
587
  }
536
- .could-not-be-started[data-v-417f440f] {
537
- display: inline-block;
538
- color: var(--color-text-danger);
539
- margin-left: 0.5em;
588
+ ._project-name_g68s8_159 {
589
+ display: flex;
590
+ gap: var(--spacing-2xs);
591
+ }
592
+ ._project-name_g68s8_159 ._project-name-input_g68s8_163 {
593
+ flex: 1;
540
594
  }