diff --git a/.changeset/catalog-graph-nfs-page.md b/.changeset/catalog-graph-nfs-page.md
new file mode 100644
index 0000000000..fac437c641
--- /dev/null
+++ b/.changeset/catalog-graph-nfs-page.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-graph': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/.changeset/catalog-import-nfs-page.md b/.changeset/catalog-import-nfs-page.md
new file mode 100644
index 0000000000..2944565205
--- /dev/null
+++ b/.changeset/catalog-import-nfs-page.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-import': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/.changeset/kubernetes-nfs-metadata.md b/.changeset/kubernetes-nfs-metadata.md
new file mode 100644
index 0000000000..fb80bdb1a1
--- /dev/null
+++ b/.changeset/kubernetes-nfs-metadata.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/.changeset/notifications-nfs-metadata.md b/.changeset/notifications-nfs-metadata.md
new file mode 100644
index 0000000000..10ee3bbd8c
--- /dev/null
+++ b/.changeset/notifications-nfs-metadata.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-notifications': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/.changeset/org-nfs-metadata.md b/.changeset/org-nfs-metadata.md
new file mode 100644
index 0000000000..759cffbd30
--- /dev/null
+++ b/.changeset/org-nfs-metadata.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-org': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/.changeset/signals-nfs-metadata.md b/.changeset/signals-nfs-metadata.md
new file mode 100644
index 0000000000..de9c09421b
--- /dev/null
+++ b/.changeset/signals-nfs-metadata.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-signals': patch
+---
+
+Added `title` and `icon` to the new frontend system plugin definition.
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
index 6d16d134c7..d93b6eed32 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -25,7 +25,11 @@ test('App should render the welcome page', async ({ page }) => {
// Verify the sidebar navigation is visible after sign-in
await expect(
- page.getByRole('navigation').getByRole('link', { name: 'Catalog' }),
+ page
+ .getByRole('navigation')
+ .getByRole('link', { name: 'Catalog', exact: true }),
+ ).toBeVisible();
+ await expect(
+ page.getByRole('link', { name: 'APIs', exact: true }),
).toBeVisible();
- await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible();
});
diff --git a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts
index 187e124bfa..d8dbc1faa8 100644
--- a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts
+++ b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts
@@ -24,6 +24,10 @@ test('App should render the welcome page', async ({ page }) => {
await enterButton.click();
const nav = page.getByRole('navigation');
- await expect(nav.getByRole('link', { name: 'Catalog' })).toBeVisible();
- await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible();
+ await expect(
+ nav.getByRole('link', { name: 'Catalog', exact: true }),
+ ).toBeVisible();
+ await expect(
+ page.getByRole('link', { name: 'APIs', exact: true }),
+ ).toBeVisible();
});
diff --git a/plugins/catalog-graph/src/alpha.tsx b/plugins/catalog-graph/src/alpha.tsx
index a0f16cda2a..f1b4dbc6d0 100644
--- a/plugins/catalog-graph/src/alpha.tsx
+++ b/plugins/catalog-graph/src/alpha.tsx
@@ -19,6 +19,7 @@ import {
createFrontendPlugin,
PageBlueprint,
} from '@backstage/frontend-plugin-api';
+import { RiMindMap } from '@remixicon/react';
import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha';
import { catalogGraphRouteRef, catalogEntityRouteRef } from './routes';
import {
@@ -97,6 +98,8 @@ const CatalogGraphApi = ApiBlueprint.make({
export default createFrontendPlugin({
pluginId: 'catalog-graph',
+ title: 'Catalog Graph',
+ icon: ,
info: { packageJson: () => import('../package.json') },
routes: {
catalogGraph: catalogGraphRouteRef,
diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json
index de96cd1f8d..028c7017e7 100644
--- a/plugins/catalog-import/package.json
+++ b/plugins/catalog-import/package.json
@@ -70,6 +70,7 @@
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
"@octokit/rest": "^19.0.3",
+ "@remixicon/react": "^4.6.0",
"git-url-parse": "^15.0.0",
"js-base64": "^3.6.0",
"lodash": "^4.17.21",
diff --git a/plugins/catalog-import/src/alpha.tsx b/plugins/catalog-import/src/alpha.tsx
index d0c671fe5a..dcbc8886e4 100644
--- a/plugins/catalog-import/src/alpha.tsx
+++ b/plugins/catalog-import/src/alpha.tsx
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+import { RiAddCircleLine } from '@remixicon/react';
+
import {
configApiRef,
discoveryApiRef,
@@ -91,6 +93,8 @@ const catalogImportApi = ApiBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'catalog-import',
+ title: 'Register Existing Component',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [catalogImportApi, catalogImportPage],
routes: {
diff --git a/plugins/kubernetes/src/alpha/plugin.tsx b/plugins/kubernetes/src/alpha/plugin.tsx
index fdca467886..283961b514 100644
--- a/plugins/kubernetes/src/alpha/plugin.tsx
+++ b/plugins/kubernetes/src/alpha/plugin.tsx
@@ -25,8 +25,23 @@ import {
kubernetesProxyApi,
} from './apis';
+// Kubernetes helm wheel from Simple Icons (https://simpleicons.org/?q=kubernetes), licensed under CC0
+const KubernetesIcon = () => (
+
+);
+
export default createFrontendPlugin({
pluginId: 'kubernetes',
+ title: 'Kubernetes',
+ icon: ,
info: { packageJson: () => import('../../package.json') },
extensions: [
kubernetesPage,
diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json
index 943135a3c0..58ac16a7bf 100644
--- a/plugins/notifications/package.json
+++ b/plugins/notifications/package.json
@@ -61,6 +61,7 @@
"@backstage/ui": "workspace:^",
"@material-ui/core": "^4.9.13",
"@material-ui/icons": "^4.9.1",
+ "@remixicon/react": "^4.6.0",
"lodash": "^4.17.21",
"material-ui-confirm": "^3.0.12",
"notistack": "^3.0.1",
diff --git a/plugins/notifications/src/alpha.tsx b/plugins/notifications/src/alpha.tsx
index a40bc96b84..aa51d22261 100644
--- a/plugins/notifications/src/alpha.tsx
+++ b/plugins/notifications/src/alpha.tsx
@@ -21,6 +21,7 @@ import {
discoveryApiRef,
fetchApiRef,
} from '@backstage/frontend-plugin-api';
+import { RiNotification3Line } from '@remixicon/react';
import { rootRouteRef } from './routes';
import { NotificationsClient, notificationsApiRef } from './api';
@@ -48,6 +49,8 @@ const api = ApiBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'notifications',
+ title: 'Notifications',
+ icon: ,
info: { packageJson: () => import('../package.json') },
routes: {
root: rootRouteRef,
diff --git a/plugins/org/package.json b/plugins/org/package.json
index 694e252535..307b675b35 100644
--- a/plugins/org/package.json
+++ b/plugins/org/package.json
@@ -61,6 +61,7 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
+ "@remixicon/react": "^4.6.0",
"lodash": "^4.17.21",
"p-limit": "^3.1.0",
"pluralize": "^8.0.0",
diff --git a/plugins/org/src/alpha.tsx b/plugins/org/src/alpha.tsx
index 80155c8467..41e8082545 100644
--- a/plugins/org/src/alpha.tsx
+++ b/plugins/org/src/alpha.tsx
@@ -15,6 +15,7 @@
*/
import { createFrontendPlugin } from '@backstage/frontend-plugin-api';
+import { RiTeamLine } from '@remixicon/react';
import { catalogIndexRouteRef } from './routes';
import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha';
@@ -118,6 +119,8 @@ const EntityUserProfileCard = EntityCardBlueprint.makeWithOverrides({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'org',
+ title: 'Org',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [
EntityGroupProfileCard,
diff --git a/plugins/signals/package.json b/plugins/signals/package.json
index 6752b09b6c..4e06dd4105 100644
--- a/plugins/signals/package.json
+++ b/plugins/signals/package.json
@@ -58,6 +58,7 @@
"@backstage/theme": "workspace:^",
"@backstage/types": "workspace:^",
"@material-ui/core": "^4.12.4",
+ "@remixicon/react": "^4.6.0",
"uuid": "^11.0.0"
},
"devDependencies": {
diff --git a/plugins/signals/src/alpha.tsx b/plugins/signals/src/alpha.tsx
index c32bff140e..3cab21f00c 100644
--- a/plugins/signals/src/alpha.tsx
+++ b/plugins/signals/src/alpha.tsx
@@ -20,6 +20,7 @@ import {
discoveryApiRef,
identityApiRef,
} from '@backstage/frontend-plugin-api';
+import { RiBroadcastLine } from '@remixicon/react';
import { signalApiRef } from '@backstage/plugin-signals-react';
import { SignalClient } from './api/SignalClient';
@@ -43,6 +44,8 @@ const api = ApiBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'signals',
+ title: 'Signals',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [api],
});
diff --git a/yarn.lock b/yarn.lock
index aa6bd6204d..f84d9ec8f5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5250,6 +5250,7 @@ __metadata:
"@material-ui/icons": "npm:^4.9.1"
"@material-ui/lab": "npm:4.0.0-alpha.61"
"@octokit/rest": "npm:^19.0.3"
+ "@remixicon/react": "npm:^4.6.0"
"@testing-library/dom": "npm:^10.0.0"
"@testing-library/jest-dom": "npm:^6.0.0"
"@testing-library/react": "npm:^16.0.0"
@@ -6278,6 +6279,7 @@ __metadata:
"@backstage/ui": "workspace:^"
"@material-ui/core": "npm:^4.9.13"
"@material-ui/icons": "npm:^4.9.1"
+ "@remixicon/react": "npm:^4.6.0"
"@testing-library/jest-dom": "npm:^6.0.0"
"@testing-library/react": "npm:^16.0.0"
"@types/react": "npm:^18.0.0"
@@ -6360,6 +6362,7 @@ __metadata:
"@material-ui/core": "npm:^4.12.2"
"@material-ui/icons": "npm:^4.9.1"
"@material-ui/lab": "npm:4.0.0-alpha.61"
+ "@remixicon/react": "npm:^4.6.0"
"@testing-library/dom": "npm:^10.0.0"
"@testing-library/jest-dom": "npm:^6.0.0"
"@testing-library/react": "npm:^16.0.0"
@@ -7424,6 +7427,7 @@ __metadata:
"@backstage/theme": "workspace:^"
"@backstage/types": "workspace:^"
"@material-ui/core": "npm:^4.12.4"
+ "@remixicon/react": "npm:^4.6.0"
"@testing-library/jest-dom": "npm:^6.0.0"
"@testing-library/react": "npm:^16.0.0"
"@types/react": "npm:^18.0.0"