From 61b56752f12757e0eb842925bc66c3b178d51711 Mon Sep 17 00:00:00 2001 From: Efren Lim Date: Tue, 20 Jan 2026 15:26:28 +0800 Subject: [PATCH 01/22] feat: update header and tabs Signed-off-by: Efren Lim --- frontend/src/config/links.ts | 6 ++ .../pages/integration-list.page.vue | 60 ++++++++++------ frontend/src/ui-kit/index.scss | 1 + frontend/src/ui-kit/lfx/tabs/tab.vue | 30 ++++++++ frontend/src/ui-kit/lfx/tabs/tabs.scss | 32 +++++++++ frontend/src/ui-kit/lfx/tabs/tabs.vue | 70 +++++++++++++++++++ .../src/ui-kit/lfx/tabs/types/TabsSize.ts | 6 ++ 7 files changed, 185 insertions(+), 20 deletions(-) create mode 100644 frontend/src/config/links.ts create mode 100644 frontend/src/ui-kit/lfx/tabs/tab.vue create mode 100644 frontend/src/ui-kit/lfx/tabs/tabs.scss create mode 100644 frontend/src/ui-kit/lfx/tabs/tabs.vue create mode 100644 frontend/src/ui-kit/lfx/tabs/types/TabsSize.ts diff --git a/frontend/src/config/links.ts b/frontend/src/config/links.ts new file mode 100644 index 0000000000..f2e51cffc8 --- /dev/null +++ b/frontend/src/config/links.ts @@ -0,0 +1,6 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT + +export const links = { + integrations: `https://docs.crowd.dev/docs/getting-started/integrations`, +} diff --git a/frontend/src/modules/admin/modules/integration/pages/integration-list.page.vue b/frontend/src/modules/admin/modules/integration/pages/integration-list.page.vue index e36958853e..fcf1b486f1 100644 --- a/frontend/src/modules/admin/modules/integration/pages/integration-list.page.vue +++ b/frontend/src/modules/admin/modules/integration/pages/integration-list.page.vue @@ -2,7 +2,7 @@
-
+
- - - {{ getSegmentName(grandparentId) || subproject?.grandparentName }} - + {{ getSegmentName(grandparentId) || subproject?.grandparentName }} +

+ > + {{ subproject?.name }} +

+

+ (Integrations) +

-
-

- {{ subproject?.name }} -

-

+
+ +

Integrations

Connect with the data sources where interactions happen within your community. + + + Learn more +

-
- - +
+ + All integrations - - +
+ {{ status.tabs.text }}
{{ getIntegrationCountPerStatus[key] }}
-
- +
+
+
+ +
+ + + + + diff --git a/frontend/src/ui-kit/lfx/tabs/tabs.scss b/frontend/src/ui-kit/lfx/tabs/tabs.scss new file mode 100644 index 0000000000..dee1b7ed67 --- /dev/null +++ b/frontend/src/ui-kit/lfx/tabs/tabs.scss @@ -0,0 +1,32 @@ +.lfx-c-tabs { + @apply flex relative whitespace-nowrap w-fit transition bg-gray-100 rounded-full gap-1 p-1; + + &--small { + .lfx-c-tab { + --lf-tab-font-size: var(--lf-tabs-small-font-size); + --lf-tab-line-height: var(--lf-tabs-small-line-height); + --lf-tab-padding: var(--lf-tabs-small-padding); + } + } + + &--medium { + .lfx-c-tab { + --lf-tab-font-size: var(--lf-tabs-medium-font-size); + --lf-tab-line-height: var(--lf-tabs-medium-line-height); + --lf-tab-padding: var(--lf-tabs-medium-padding); + } + } +} + +.lfx-c-tab { + @apply flex items-center justify-center text-center cursor-pointer transition-all select-none; + @apply rounded-full px-3 py-1 text-gray-600 font-normal leading-5 text-sm; + + &:hover { + background: var(--lf-tab-hover-background); + } + + &.is-active { + @apply bg-white text-gray-900 font-medium; + } +} diff --git a/frontend/src/ui-kit/lfx/tabs/tabs.vue b/frontend/src/ui-kit/lfx/tabs/tabs.vue new file mode 100644 index 0000000000..9f61cca9ca --- /dev/null +++ b/frontend/src/ui-kit/lfx/tabs/tabs.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/frontend/src/ui-kit/lfx/tabs/types/TabsSize.ts b/frontend/src/ui-kit/lfx/tabs/types/TabsSize.ts new file mode 100644 index 0000000000..fd90a69e52 --- /dev/null +++ b/frontend/src/ui-kit/lfx/tabs/types/TabsSize.ts @@ -0,0 +1,6 @@ +export const tabsSize = [ + 'small', + 'medium', +] as const; + +export type TabsSize = typeof tabsSize[number]; From 4baaea1d34577a8af26ec16772c3aa3d4e5235ee Mon Sep 17 00:00:00 2001 From: Efren Lim Date: Wed, 21 Jan 2026 15:11:56 +0800 Subject: [PATCH 02/22] feat: update card borders and github integration status Signed-off-by: Efren Lim --- frontend/config/styles/components/button.scss | 19 +++ .../components/confluence-connect.vue | 2 +- .../devto/components/devto-connect.vue | 2 +- .../discord/components/discord-connect.vue | 2 +- .../components/discourse-connect.vue | 2 +- .../gerrit/components/gerrit-connect.vue | 2 +- .../git/components/git-connect.vue | 2 +- .../git/components/git-params.vue | 117 ++++++++++++------ .../components/connect/github-connect.vue | 76 ------------ .../components/github-connect.vue | 44 ------- .../settings/github-settings-drawer.vue | 28 +++-- .../settings/github-settings-empty.vue | 28 +++-- .../integrations/github-nango/config.ts | 19 +-- .../components/connect/github-connect.vue | 72 ----------- .../github/components/github-connect.vue | 113 ++++++++++++++--- .../github/components/github-version-tag.vue | 27 ++++ .../src/config/integrations/github/config.ts | 18 +-- .../gitlab/components/gitlab-connect.vue | 2 +- .../groupsio/components/groupsio-connect.vue | 2 +- .../components/hackernews-connect.vue | 2 +- .../jira/components/jira-connect.vue | 2 +- .../linkedin/components/linkedin-connect.vue | 2 +- .../reddit/components/reddit-connect.vue | 2 +- .../slack/components/slack-connect.vue | 2 +- .../components/stackoverflow-connect.vue | 2 +- .../twitter/components/twitter-connect.vue | 2 +- frontend/src/config/links.ts | 1 + .../components/integration-list-item.vue | 26 ++-- .../pages/integration-list.page.vue | 35 +----- .../github-integration-progress.vue | 93 ++++++++++++++ frontend/src/ui-kit/button/button.scss | 28 +++++ .../src/ui-kit/button/types/ButtonType.ts | 5 +- frontend/tailwind.config.js | 2 +- 33 files changed, 443 insertions(+), 338 deletions(-) delete mode 100644 frontend/src/config/integrations/github-nango/components/connect/github-connect.vue delete mode 100644 frontend/src/config/integrations/github-nango/components/github-connect.vue delete mode 100644 frontend/src/config/integrations/github/components/connect/github-connect.vue create mode 100644 frontend/src/config/integrations/github/components/github-version-tag.vue create mode 100644 frontend/src/modules/integration/components/github-integration-progress.vue diff --git a/frontend/config/styles/components/button.scss b/frontend/config/styles/components/button.scss index 2a1bda5ab5..458129bd5c 100644 --- a/frontend/config/styles/components/button.scss +++ b/frontend/config/styles/components/button.scss @@ -272,4 +272,23 @@ --lf-btn-secondary-link-loading-text: var(--lf-color-gray-400); --lf-btn-secondary-link-loading-background: var(--lf-color-transparent); --lf-btn-secondary-link-loading-border: var(--lf-color-transparent); + + /* Outline */ + --lf-btn-outline-text: var(--lf-color-gray-900); + --lf-btn-outline-background: var(--lf-color-white); + --lf-btn-outline-border: var(--lf-color-gray-200); + --lf-btn-outline-shadow: var(--shadow-none); + // Active + --lf-btn-outline-active-text: var(--lf-color-gray-900); + --lf-btn-outline-active-background: var(--lf-color-white); + --lf-btn-outline-active-border: var(--lf-color-gray-200); + // Disabled + --lf-btn-secondary-link-disabled-text: var(--lf-color-gray-400); + --lf-btn-secondary-link-disabled-background: var(--lf-color-white); + --lf-btn-secondary-link-disabled-border: var(--lf-color-gray-200); + // Loading + --lf-btn-secondary-link-loading-text: var(--lf-color-gray-400); + --lf-btn-secondary-link-loading-background: var(--lf-color-white); + --lf-btn-secondary-link-loading-border: var(--lf-color-gray-200); + } diff --git a/frontend/src/config/integrations/confluence/components/confluence-connect.vue b/frontend/src/config/integrations/confluence/components/confluence-connect.vue index 3608911b5f..d17f76d541 100644 --- a/frontend/src/config/integrations/confluence/components/confluence-connect.vue +++ b/frontend/src/config/integrations/confluence/components/confluence-connect.vue @@ -1,6 +1,6 @@