diff --git a/workspaces/theme/package.json b/workspaces/theme/package.json index 884b1393b..849fb0092 100644 --- a/workspaces/theme/package.json +++ b/workspaces/theme/package.json @@ -14,7 +14,7 @@ "tsc:full": "tsc --skipLibCheck false --incremental false", "build:all": "backstage-cli repo build --all", "build:api-reports": "yarn build:api-reports:only --tsc", - "build:api-reports:only": "backstage-repo-tools api-reports -o ae-wrong-input-file-type --validate-release-tags", + "build:api-reports:only": "backstage-repo-tools api-reports -o ae-wrong-input-file-type,ae-undocumented --validate-release-tags", "build-image": "yarn workspace backend build-image", "clean": "backstage-cli repo clean", "test": "backstage-cli repo test", diff --git a/workspaces/theme/packages/app/package.json b/workspaces/theme/packages/app/package.json index 5a02a6089..c5b150dad 100644 --- a/workspaces/theme/packages/app/package.json +++ b/workspaces/theme/packages/app/package.json @@ -45,7 +45,10 @@ "@backstage/theme": "^0.6.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", - "@red-hat-developer-hub/theme": "workspace:^", + "@red-hat-developer-hub/backstage-plugin-bsc-test": "workspace:^", + "@red-hat-developer-hub/backstage-plugin-mui4-test": "workspace:^", + "@red-hat-developer-hub/backstage-plugin-mui5-test": "workspace:^", + "@red-hat-developer-hub/backstage-plugin-theme": "workspace:^", "react": "^18.0.2", "react-dom": "^18.0.2", "react-router": "^6.3.0", diff --git a/workspaces/theme/packages/app/src/App.tsx b/workspaces/theme/packages/app/src/App.tsx index 86d0354ee..e4a6f4d19 100644 --- a/workspaces/theme/packages/app/src/App.tsx +++ b/workspaces/theme/packages/app/src/App.tsx @@ -51,6 +51,9 @@ import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; +import { BSCTestPage } from '@red-hat-developer-hub/backstage-plugin-bsc-test'; +import { MUI4TestPage } from '@red-hat-developer-hub/backstage-plugin-mui4-test'; +import { MUI5TestPage } from '@red-hat-developer-hub/backstage-plugin-mui5-test'; const app = createApp({ apis, @@ -110,6 +113,9 @@ const routes = ( } /> } /> + } /> + } /> + } /> ); diff --git a/workspaces/theme/packages/app/src/components/Root/Root.tsx b/workspaces/theme/packages/app/src/components/Root/Root.tsx index a14baa057..be15a2de1 100644 --- a/workspaces/theme/packages/app/src/components/Root/Root.tsx +++ b/workspaces/theme/packages/app/src/components/Root/Root.tsx @@ -92,6 +92,10 @@ export const Root = ({ children }: PropsWithChildren<{}>) => ( {/* End global nav */} + + + + {/* Items in this group will be scrollable if they run out of space */} diff --git a/workspaces/theme/packages/theme/report.api.md b/workspaces/theme/packages/theme/report.api.md deleted file mode 100644 index f35970e12..000000000 --- a/workspaces/theme/packages/theme/report.api.md +++ /dev/null @@ -1,7 +0,0 @@ -## API Report File for "@red-hat-developer-hub/theme" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -// (No @packageDocumentation comment for this package) -``` diff --git a/workspaces/theme/packages/theme/.eslintrc.js b/workspaces/theme/plugins/bsc-test/.eslintrc.js similarity index 100% rename from workspaces/theme/packages/theme/.eslintrc.js rename to workspaces/theme/plugins/bsc-test/.eslintrc.js diff --git a/workspaces/theme/plugins/bsc-test/README.md b/workspaces/theme/plugins/bsc-test/README.md new file mode 100644 index 000000000..80d8f4b29 --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/README.md @@ -0,0 +1,13 @@ +# bsc-test + +Welcome to the bsc-test plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/bsc-test](http://localhost:3000/bsc-test). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. diff --git a/workspaces/theme/plugins/bsc-test/dev/index.tsx b/workspaces/theme/plugins/bsc-test/dev/index.tsx new file mode 100644 index 000000000..84fe96feb --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { bscTestPlugin, BSCTestPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(bscTestPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/bsc-test', + }) + .render(); diff --git a/workspaces/theme/plugins/bsc-test/package.json b/workspaces/theme/plugins/bsc-test/package.json new file mode 100644 index 000000000..dcb2c5c1e --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/package.json @@ -0,0 +1,57 @@ +{ + "name": "@red-hat-developer-hub/backstage-plugin-bsc-test", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/redhat-developer/rhdh-plugins", + "directory": "workspaces/theme/plugins/bsc-test" + }, + "backstage": { + "role": "frontend-plugin", + "pluginId": "bsc-test", + "pluginPackages": [ + "@red-hat-developer-hub/backstage-plugin-bsc-test" + ] + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/core-components": "^0.15.1", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/plugin-user-settings": "^0.8.16" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.28.0", + "@backstage/core-app-api": "^1.15.1", + "@backstage/dev-utils": "^1.1.2", + "@backstage/test-utils": "^1.7.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "msw": "^1.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/theme/plugins/bsc-test/report.api.md b/workspaces/theme/plugins/bsc-test/report.api.md new file mode 100644 index 000000000..f20c30131 --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/report.api.md @@ -0,0 +1,25 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-bsc-test" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { RouteRef } from '@backstage/core-plugin-api'; + +// @public (undocumented) +export const BSCTestPage: () => JSX_2.Element; + +// @public (undocumented) +export const bscTestPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/theme/plugins/bsc-test/src/components/BSCTestPage.tsx b/workspaces/theme/plugins/bsc-test/src/components/BSCTestPage.tsx new file mode 100644 index 000000000..8bc08df59 --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/components/BSCTestPage.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Page, Header, TabbedLayout } from '@backstage/core-components'; +import { UserSettingsThemeToggle } from '@backstage/plugin-user-settings'; + +import { TableExample } from './TableExample'; +import { CardsExample } from './CardExample'; + +export const BSCTestPage = () => { + return ( + +
+ +
+ + } + /> + } + /> + +
+ ); +}; diff --git a/workspaces/theme/plugins/bsc-test/src/components/CardExample.tsx b/workspaces/theme/plugins/bsc-test/src/components/CardExample.tsx new file mode 100644 index 000000000..345dc615c --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/components/CardExample.tsx @@ -0,0 +1,30 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { InfoCard } from '@backstage/core-components'; + +export const CardsExample = () => { + return ( + +

Headline 1

+

Headline 2

+

Headline 3

+

Headline 4

+
Headline 5
+
Headline 6
+
+ ); +}; diff --git a/workspaces/theme/plugins/bsc-test/src/components/TableExample.tsx b/workspaces/theme/plugins/bsc-test/src/components/TableExample.tsx new file mode 100644 index 000000000..c304bd20c --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/components/TableExample.tsx @@ -0,0 +1,210 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Table, TableColumn, Avatar } from '@backstage/core-components'; + +interface User { + name: { + first: string; // "Duane", + last: string; // "Reed" + }; + email: string; // "duane.reed@example.com" + picture: string; // "https://api.dicebear.com/6.x/open-peeps/svg?seed=Duane" +} + +const users: User[] = [ + { + name: { + first: 'Carolyn', + last: 'Moore', + }, + email: 'carolyn.moore@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Carolyn', + }, + { + name: { + first: 'Esma', + last: 'Berberoğlu', + }, + email: 'esma.berberoglu@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Esma', + }, + { + name: { + first: 'Isabella', + last: 'Rhodes', + }, + email: 'isabella.rhodes@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Isabella', + }, + { + name: { + first: 'Derrick', + last: 'Carter', + }, + email: 'derrick.carter@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Derrick', + }, + { + name: { + first: 'Mattie', + last: 'Lambert', + }, + email: 'mattie.lambert@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Mattie', + }, + { + name: { + first: 'Mijat', + last: 'Rakić', + }, + email: 'mijat.rakic@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Mijat', + }, + { + name: { + first: 'Javier', + last: 'Reid', + }, + email: 'javier.reid@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Javier', + }, + { + name: { + first: 'Isabella', + last: 'Li', + }, + email: 'isabella.li@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Isabella', + }, + { + name: { + first: 'Stephanie', + last: 'Garrett', + }, + email: 'stephanie.garrett@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Stephanie', + }, + { + name: { + first: 'Antonia', + last: 'Núñez', + }, + email: 'antonia.nunez@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Antonia', + }, + { + name: { + first: 'Donald', + last: 'Young', + }, + email: 'donald.young@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Donald', + }, + { + name: { + first: 'Iegor', + last: 'Holodovskiy', + }, + email: 'iegor.holodovskiy@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Iegor', + }, + { + name: { + first: 'Jessica', + last: 'David', + }, + email: 'jessica.david@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Jessica', + }, + { + name: { + first: 'Eve', + last: 'Martinez', + }, + email: 'eve.martinez@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Eve', + }, + { + name: { + first: 'Caleb', + last: 'Silva', + }, + email: 'caleb.silva@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Caleb', + }, + { + name: { + first: 'Marcia', + last: 'Jenkins', + }, + email: 'marcia.jenkins@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Marcia', + }, + { + name: { + first: 'Mackenzie', + last: 'Jones', + }, + email: 'mackenzie.jones@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Mackenzie', + }, + { + name: { + first: 'Jeremiah', + last: 'Gutierrez', + }, + email: 'jeremiah.gutierrez@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Jeremiah', + }, + { + name: { + first: 'Luciara', + last: 'Souza', + }, + email: 'luciara.souza@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Luciara', + }, + { + name: { + first: 'Valgi', + last: 'da Cunha', + }, + email: 'valgi.dacunha@example.com', + picture: 'https://api.dicebear.com/6.x/open-peeps/svg?seed=Valgi', + }, +]; + +const columns: TableColumn[] = [ + { + title: 'Avatar', + field: 'picture', + render: user => ( + + ), + sorting: false, + }, + { title: 'Lastname', field: 'name.last', highlight: true }, + { title: 'Firstname', field: 'name.first' }, + { title: 'Email', field: 'email' }, +]; + +export const TableExample = () => { + return ; +}; diff --git a/workspaces/theme/plugins/bsc-test/src/index.ts b/workspaces/theme/plugins/bsc-test/src/index.ts new file mode 100644 index 000000000..636952634 --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './plugin'; diff --git a/workspaces/theme/plugins/bsc-test/src/plugin.test.ts b/workspaces/theme/plugins/bsc-test/src/plugin.test.ts new file mode 100644 index 000000000..1b000435d --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/plugin.test.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { bscTestPlugin } from './plugin'; + +describe('bsc-test', () => { + it('should export plugin', () => { + expect(bscTestPlugin).toBeDefined(); + }); +}); diff --git a/workspaces/theme/plugins/bsc-test/src/plugin.ts b/workspaces/theme/plugins/bsc-test/src/plugin.ts new file mode 100644 index 000000000..8df284a9c --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/plugin.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createPlugin, + createRoutableExtension, +} from '@backstage/core-plugin-api'; + +import { rootRouteRef } from './routes'; + +/** + * @public + */ +export const bscTestPlugin = createPlugin({ + id: 'bsc-test', + routes: { + root: rootRouteRef, + }, +}); + +/** + * @public + */ +export const BSCTestPage = bscTestPlugin.provide( + createRoutableExtension({ + name: 'BSCTestPage', + component: () => + import('./components/BSCTestPage').then(m => m.BSCTestPage), + mountPoint: rootRouteRef, + }), +); diff --git a/workspaces/theme/plugins/bsc-test/src/routes.ts b/workspaces/theme/plugins/bsc-test/src/routes.ts new file mode 100644 index 000000000..dd22d993a --- /dev/null +++ b/workspaces/theme/plugins/bsc-test/src/routes.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'bsc-test', +}); diff --git a/workspaces/theme/packages/theme/src/setupTests.ts b/workspaces/theme/plugins/bsc-test/src/setupTests.ts similarity index 100% rename from workspaces/theme/packages/theme/src/setupTests.ts rename to workspaces/theme/plugins/bsc-test/src/setupTests.ts diff --git a/workspaces/theme/plugins/mui4-test/.eslintrc.js b/workspaces/theme/plugins/mui4-test/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/theme/plugins/mui4-test/README.md b/workspaces/theme/plugins/mui4-test/README.md new file mode 100644 index 000000000..6ff78230f --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/README.md @@ -0,0 +1,13 @@ +# mui4-test + +Welcome to the mui4-test plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/mui4-test](http://localhost:3000/mui4-test). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. diff --git a/workspaces/theme/plugins/mui4-test/dev/index.tsx b/workspaces/theme/plugins/mui4-test/dev/index.tsx new file mode 100644 index 000000000..d32059816 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { mui4TestPlugin, MUI4TestPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(mui4TestPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/mui4-test', + }) + .render(); diff --git a/workspaces/theme/plugins/mui4-test/package.json b/workspaces/theme/plugins/mui4-test/package.json new file mode 100644 index 000000000..e650092c3 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/package.json @@ -0,0 +1,60 @@ +{ + "name": "@red-hat-developer-hub/backstage-plugin-mui4-test", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/redhat-developer/rhdh-plugins", + "directory": "workspaces/theme/plugins/mui4-test" + }, + "backstage": { + "role": "frontend-plugin", + "pluginId": "mui4-test", + "pluginPackages": [ + "@red-hat-developer-hub/backstage-plugin-mui4-test" + ] + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/core-components": "^0.15.1", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/plugin-user-settings": "^0.8.16", + "@material-ui/core": "^4.9.13", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.61" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.28.0", + "@backstage/core-app-api": "^1.15.1", + "@backstage/dev-utils": "^1.1.2", + "@backstage/test-utils": "^1.7.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "msw": "^1.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/theme/plugins/mui4-test/report.api.md b/workspaces/theme/plugins/mui4-test/report.api.md new file mode 100644 index 000000000..ef84eafff --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/report.api.md @@ -0,0 +1,25 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-mui4-test" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { RouteRef } from '@backstage/core-plugin-api'; + +// @public (undocumented) +export const MUI4TestPage: () => JSX_2.Element; + +// @public (undocumented) +export const mui4TestPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/theme/plugins/mui4-test/src/components/FormComponents.tsx b/workspaces/theme/plugins/mui4-test/src/components/FormComponents.tsx new file mode 100644 index 000000000..1591ca0f9 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/components/FormComponents.tsx @@ -0,0 +1,111 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { InfoCard } from '@backstage/core-components'; +import Button, { ButtonProps } from '@material-ui/core/Button'; +import FormControlLabel from '@material-ui/core/FormControlLabel'; +import Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox'; + +const Buttons = () => { + const colors: ButtonProps['color'][] = [undefined, 'primary', 'secondary']; + const variants: ButtonProps['variant'][] = ['contained', 'outlined', 'text']; + return ( +
+ + + + + + + + {variants.map(variant => ( + + ))} + + {colors.map(color => ( + + + {variants.map(variant => ( + + ))} + {variants.map(variant => ( + + ))} + + ))} +
 enableddisabled
color{variant}
{color ?? 'undefined'} + + + +
+ ); +}; + +const Checkboxes = () => { + const colors: CheckboxProps['color'][] = [ + undefined, + 'primary', + 'secondary', + 'default', + ]; + return ( + + + + + + + {colors.map(color => ( + + + + + + ))} +
colorenableddisabled
{color ?? 'undefined'} + } + label="a checkbox" + /> + + } + label="a checkbox" + disabled + /> +
+ ); +}; + +export const FormComponents = () => { + return ( +
+ + +
+ +
+
+ +
+ +
+ ); +}; diff --git a/workspaces/theme/plugins/mui4-test/src/components/InlineStyles.tsx b/workspaces/theme/plugins/mui4-test/src/components/InlineStyles.tsx new file mode 100644 index 000000000..b6fccded8 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/components/InlineStyles.tsx @@ -0,0 +1,66 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { InfoCard } from '@backstage/core-components'; +import Button from '@material-ui/core/Button'; +import { makeStyles } from '@material-ui/core/styles'; + +const useStyles = makeStyles(theme => ({ + withPadding: { + padding: 32, + backgroundColor: 'gray', + }, + withSpacing: { + padding: theme.spacing(4), + backgroundColor: theme.palette.background.default, + }, +})); + +export const InlineStyles = () => { + const classes = useStyles(); + return ( + +

Default button

+ + +

+ Default button with{' '} + + { + "makeStyles({ withPadding: { padding: 32, backgroundColor: 'gray' }})" + } + +

+ + +

+ Default button with{' '} + + { + 'makeStyles({ withSpacing: { padding: theme.spacing(4), backgroundColor: theme.palette.background.default }})' + } + +

+ + +

+ Default button with{' '} + {"style={{ padding: 32, backgroundColor: 'gray' }}"} +

+ +
+ ); +}; diff --git a/workspaces/theme/plugins/mui4-test/src/components/MUI4TestPage.tsx b/workspaces/theme/plugins/mui4-test/src/components/MUI4TestPage.tsx new file mode 100644 index 000000000..4ca42cc43 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/components/MUI4TestPage.tsx @@ -0,0 +1,49 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Page, Header, TabbedLayout } from '@backstage/core-components'; +import { UserSettingsThemeToggle } from '@backstage/plugin-user-settings'; + +import { FormComponents } from './FormComponents'; +import { PaperExamples } from './PaperExamples'; +import { InlineStyles } from './InlineStyles'; + +export const MUI4TestPage = () => { + return ( + +
+ +
+ + } + /> + } + /> + } + /> + +
+ ); +}; diff --git a/workspaces/theme/plugins/mui4-test/src/components/PaperExamples.tsx b/workspaces/theme/plugins/mui4-test/src/components/PaperExamples.tsx new file mode 100644 index 000000000..6e236bdab --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/components/PaperExamples.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import Paper from '@material-ui/core/Paper'; + +export const PaperExamples = () => { + // elevations from 0 to 24 + const elevations = Array.from({ length: 25 }, (_, i) => i); + + return ( +
+ {elevations.map(elevation => ( +
+ +
+ e={elevation} +
+
+
+ ))} +
+ ); +}; diff --git a/workspaces/theme/plugins/mui4-test/src/index.ts b/workspaces/theme/plugins/mui4-test/src/index.ts new file mode 100644 index 000000000..636952634 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './plugin'; diff --git a/workspaces/theme/plugins/mui4-test/src/plugin.test.ts b/workspaces/theme/plugins/mui4-test/src/plugin.test.ts new file mode 100644 index 000000000..9796955aa --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/plugin.test.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { mui4TestPlugin } from './plugin'; + +describe('mui4-test', () => { + it('should export plugin', () => { + expect(mui4TestPlugin).toBeDefined(); + }); +}); diff --git a/workspaces/theme/plugins/mui4-test/src/plugin.ts b/workspaces/theme/plugins/mui4-test/src/plugin.ts new file mode 100644 index 000000000..c895f8295 --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/plugin.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createPlugin, + createRoutableExtension, +} from '@backstage/core-plugin-api'; + +import { rootRouteRef } from './routes'; + +/** + * @public + */ +export const mui4TestPlugin = createPlugin({ + id: 'mui4-test', + routes: { + root: rootRouteRef, + }, +}); + +/** + * @public + */ +export const MUI4TestPage = mui4TestPlugin.provide( + createRoutableExtension({ + name: 'MUI4TestPage', + component: () => + import('./components/MUI4TestPage').then(m => m.MUI4TestPage), + mountPoint: rootRouteRef, + }), +); diff --git a/workspaces/theme/plugins/mui4-test/src/routes.ts b/workspaces/theme/plugins/mui4-test/src/routes.ts new file mode 100644 index 000000000..d9bbe097f --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/routes.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'mui4-test', +}); diff --git a/workspaces/theme/plugins/mui4-test/src/setupTests.ts b/workspaces/theme/plugins/mui4-test/src/setupTests.ts new file mode 100644 index 000000000..658016ffd --- /dev/null +++ b/workspaces/theme/plugins/mui4-test/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/theme/plugins/mui5-test/.eslintrc.js b/workspaces/theme/plugins/mui5-test/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/theme/plugins/mui5-test/README.md b/workspaces/theme/plugins/mui5-test/README.md new file mode 100644 index 000000000..f52f64583 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/README.md @@ -0,0 +1,13 @@ +# mui5-test + +Welcome to the mui5-test plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/mui5-test](http://localhost:3000/mui5-test). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. diff --git a/workspaces/theme/plugins/mui5-test/dev/index.tsx b/workspaces/theme/plugins/mui5-test/dev/index.tsx new file mode 100644 index 000000000..b29730a72 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { mui5TestPlugin, MUI5TestPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(mui5TestPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/mui5-test', + }) + .render(); diff --git a/workspaces/theme/plugins/mui5-test/package.json b/workspaces/theme/plugins/mui5-test/package.json new file mode 100644 index 000000000..f996d519e --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/package.json @@ -0,0 +1,60 @@ +{ + "name": "@red-hat-developer-hub/backstage-plugin-mui5-test", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/redhat-developer/rhdh-plugins", + "directory": "workspaces/theme/plugins/mui5-test" + }, + "backstage": { + "role": "frontend-plugin", + "pluginId": "mui5-test", + "pluginPackages": [ + "@red-hat-developer-hub/backstage-plugin-mui5-test" + ] + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/core-components": "^0.15.1", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/plugin-user-settings": "^0.8.16", + "@mui/icons-material": "^5", + "@mui/material": "^5", + "@mui/styles": "^5" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.28.0", + "@backstage/core-app-api": "^1.15.1", + "@backstage/dev-utils": "^1.1.2", + "@backstage/test-utils": "^1.7.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "msw": "^1.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/theme/plugins/mui5-test/report.api.md b/workspaces/theme/plugins/mui5-test/report.api.md new file mode 100644 index 000000000..96bf2f9d2 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/report.api.md @@ -0,0 +1,25 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-mui5-test" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { RouteRef } from '@backstage/core-plugin-api'; + +// @public (undocumented) +export const MUI5TestPage: () => JSX_2.Element; + +// @public (undocumented) +export const mui5TestPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/theme/plugins/mui5-test/src/components/FormComponents.tsx b/workspaces/theme/plugins/mui5-test/src/components/FormComponents.tsx new file mode 100644 index 000000000..02f025c5e --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/components/FormComponents.tsx @@ -0,0 +1,124 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { InfoCard } from '@backstage/core-components'; +import Button, { ButtonProps } from '@mui/material/Button'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Checkbox, { CheckboxProps } from '@mui/material/Checkbox'; + +const Buttons = () => { + const colors: ButtonProps['color'][] = [ + undefined, + 'inherit', + 'primary', + 'secondary', + 'success', + 'error', + 'info', + 'warning', + ]; + const variants: ButtonProps['variant'][] = ['contained', 'outlined', 'text']; + return ( + + + + + + + + + {variants.map(variant => ( + + ))} + + {colors.map(color => ( + + + {variants.map(variant => ( + + ))} + {variants.map(variant => ( + + ))} + + ))} +
 enableddisabled
color{variant}
{color ?? 'no color'} + + + +
+ ); +}; + +const Checkboxes = () => { + const colors: CheckboxProps['color'][] = [ + undefined, + 'primary', + 'secondary', + 'error', + 'info', + 'success', + 'warning', + 'default', + ]; + return ( + + + + + + + {colors.map(color => ( + + + + + + ))} +
colorenableddisabled
{color ?? 'undefined'} + } + label="a checkbox" + /> + + } + label="a checkbox" + disabled + /> +
+ ); +}; + +export const FormComponents = () => { + return ( +
+ + +
+ +
+
+ +
+ +
+ ); +}; diff --git a/workspaces/theme/plugins/mui5-test/src/components/InlineStyles.tsx b/workspaces/theme/plugins/mui5-test/src/components/InlineStyles.tsx new file mode 100644 index 000000000..eb4a5d467 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/components/InlineStyles.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { InfoCard } from '@backstage/core-components'; +import Button from '@mui/material/Button'; + +export const InlineStyles = () => { + return ( + +

Default button

+ + +

+ Default button with{' '} + {"style={{ padding: 32, backgroundColor: 'gray' }}"} +

+ + +

+ Default button with{' '} + + {"sx={{ padding: 4, backgroundColor: 'background.default' }}"} + +

+ +
+ ); +}; diff --git a/workspaces/theme/plugins/mui5-test/src/components/MUI5TestPage.tsx b/workspaces/theme/plugins/mui5-test/src/components/MUI5TestPage.tsx new file mode 100644 index 000000000..891fe7882 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/components/MUI5TestPage.tsx @@ -0,0 +1,49 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Page, Header, TabbedLayout } from '@backstage/core-components'; +import { UserSettingsThemeToggle } from '@backstage/plugin-user-settings'; + +import { FormComponents } from './FormComponents'; +import { PaperExamples } from './PaperExamples'; +import { InlineStyles } from './InlineStyles'; + +export const MUI5TestPage = () => { + return ( + +
+ +
+ + } + /> + } + /> + } + /> + +
+ ); +}; diff --git a/workspaces/theme/plugins/mui5-test/src/components/PaperExamples.tsx b/workspaces/theme/plugins/mui5-test/src/components/PaperExamples.tsx new file mode 100644 index 000000000..b4cd221da --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/components/PaperExamples.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import Paper from '@mui/material/Paper'; + +export const PaperExamples = () => { + // elevations from 0 to 24 + const elevations = Array.from({ length: 25 }, (_, i) => i); + + return ( +
+ {elevations.map(elevation => ( +
+ +
+ e={elevation} +
+
+
+ ))} +
+ ); +}; diff --git a/workspaces/theme/plugins/mui5-test/src/index.ts b/workspaces/theme/plugins/mui5-test/src/index.ts new file mode 100644 index 000000000..636952634 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './plugin'; diff --git a/workspaces/theme/plugins/mui5-test/src/plugin.test.ts b/workspaces/theme/plugins/mui5-test/src/plugin.test.ts new file mode 100644 index 000000000..1ca3e325e --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/plugin.test.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { mui5TestPlugin } from './plugin'; + +describe('mui5-test', () => { + it('should export plugin', () => { + expect(mui5TestPlugin).toBeDefined(); + }); +}); diff --git a/workspaces/theme/plugins/mui5-test/src/plugin.ts b/workspaces/theme/plugins/mui5-test/src/plugin.ts new file mode 100644 index 000000000..72e414ef4 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/plugin.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createPlugin, + createRoutableExtension, +} from '@backstage/core-plugin-api'; + +import { rootRouteRef } from './routes'; + +/** + * @public + */ +export const mui5TestPlugin = createPlugin({ + id: 'mui5-test', + routes: { + root: rootRouteRef, + }, +}); + +/** + * @public + */ +export const MUI5TestPage = mui5TestPlugin.provide( + createRoutableExtension({ + name: 'MUI5TestPage', + component: () => + import('./components/MUI5TestPage').then(m => m.MUI5TestPage), + mountPoint: rootRouteRef, + }), +); diff --git a/workspaces/theme/plugins/mui5-test/src/routes.ts b/workspaces/theme/plugins/mui5-test/src/routes.ts new file mode 100644 index 000000000..3083e2ac9 --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/routes.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'mui5-test', +}); diff --git a/workspaces/theme/plugins/mui5-test/src/setupTests.ts b/workspaces/theme/plugins/mui5-test/src/setupTests.ts new file mode 100644 index 000000000..658016ffd --- /dev/null +++ b/workspaces/theme/plugins/mui5-test/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/theme/plugins/theme/.eslintrc.js b/workspaces/theme/plugins/theme/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/theme/plugins/theme/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/theme/packages/theme/README.md b/workspaces/theme/plugins/theme/README.md similarity index 59% rename from workspaces/theme/packages/theme/README.md rename to workspaces/theme/plugins/theme/README.md index 3144cadae..e3863ab17 100644 --- a/workspaces/theme/packages/theme/README.md +++ b/workspaces/theme/plugins/theme/README.md @@ -1,4 +1,4 @@ -# @red-hat-developer-hub/theme +# @red-hat-developer-hub/backstage-plugin-theme _This package was created through the Backstage CLI_. @@ -8,5 +8,5 @@ Install the package via Yarn: ```sh cd # if within a monorepo -yarn add @red-hat-developer-hub/theme +yarn add @red-hat-developer-hub/backstage-plugin-theme ``` diff --git a/workspaces/theme/plugins/theme/dev/index.tsx b/workspaces/theme/plugins/theme/dev/index.tsx new file mode 100644 index 000000000..c19177a3f --- /dev/null +++ b/workspaces/theme/plugins/theme/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { themes } from '../src'; + +createDevApp() + .addThemes(themes) + .addPage({ + element:
, + title: 'Root Page', + path: '/theme', + }) + .render(); diff --git a/workspaces/theme/packages/theme/package.json b/workspaces/theme/plugins/theme/package.json similarity index 55% rename from workspaces/theme/packages/theme/package.json rename to workspaces/theme/plugins/theme/package.json index 0cde6a0e3..cd6a2aa96 100644 --- a/workspaces/theme/packages/theme/package.json +++ b/workspaces/theme/plugins/theme/package.json @@ -1,5 +1,5 @@ { - "name": "@red-hat-developer-hub/theme", + "name": "@red-hat-developer-hub/backstage-plugin-theme", "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", @@ -13,7 +13,7 @@ "repository": { "type": "git", "url": "https://github.com/redhat-developer/rhdh-plugins", - "directory": "workspaces/theme/packages/theme" + "directory": "workspaces/theme/plugins/theme" }, "backstage": { "role": "web-library" @@ -28,9 +28,25 @@ "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack" }, + "dependencies": { + "@backstage/core-components": "^0.15.1", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/theme": "^0.6.0", + "@material-ui/icons": "^4.11.3" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, "devDependencies": { "@backstage/cli": "^0.28.0", - "@testing-library/jest-dom": "^6.0.0" + "@backstage/core-app-api": "^1.15.1", + "@backstage/dev-utils": "^1.1.2", + "@backstage/test-utils": "^1.7.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "msw": "^1.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" }, "files": [ "dist" diff --git a/workspaces/theme/plugins/theme/report.api.md b/workspaces/theme/plugins/theme/report.api.md new file mode 100644 index 000000000..b14f6d004 --- /dev/null +++ b/workspaces/theme/plugins/theme/report.api.md @@ -0,0 +1,19 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-theme" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { AppTheme } from '@backstage/core-plugin-api'; +import { UnifiedTheme } from '@backstage/theme'; + +// @public (undocumented) +export const darkTheme: UnifiedTheme; + +// @public (undocumented) +export const lightTheme: UnifiedTheme; + +// @public (undocumented) +export const themes: AppTheme[]; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/theme/packages/theme/src/index.ts b/workspaces/theme/plugins/theme/src/index.ts similarity index 96% rename from workspaces/theme/packages/theme/src/index.ts rename to workspaces/theme/plugins/theme/src/index.ts index c7ce5c098..ffd9e8450 100644 --- a/workspaces/theme/packages/theme/src/index.ts +++ b/workspaces/theme/plugins/theme/src/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export {}; +export * from './theme'; diff --git a/workspaces/theme/plugins/theme/src/setupTests.ts b/workspaces/theme/plugins/theme/src/setupTests.ts new file mode 100644 index 000000000..658016ffd --- /dev/null +++ b/workspaces/theme/plugins/theme/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/theme/plugins/theme/src/theme.tsx b/workspaces/theme/plugins/theme/src/theme.tsx new file mode 100644 index 000000000..e0fd5396b --- /dev/null +++ b/workspaces/theme/plugins/theme/src/theme.tsx @@ -0,0 +1,69 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { AppTheme } from '@backstage/core-plugin-api'; +import { + createBaseThemeOptions, + createUnifiedTheme, + palettes, + UnifiedThemeProvider, +} from '@backstage/theme'; +import LightIcon from '@material-ui/icons/WbSunny'; +import DarkIcon from '@material-ui/icons/Brightness2'; + +/** + * @public + */ +export const lightTheme = createUnifiedTheme({ + ...createBaseThemeOptions({ + palette: palettes.light, + }), + defaultPageTheme: 'home', +}); + +/** + * @public + */ +export const darkTheme = createUnifiedTheme({ + ...createBaseThemeOptions({ + palette: palettes.dark, + }), + defaultPageTheme: 'home', +}); + +/** + * @public + */ +export const themes: AppTheme[] = [ + { + id: 'my-light-theme', + title: 'My Light Theme', + variant: 'light', + icon: , + Provider: ({ children }: { children: React.ReactNode }) => ( + + ), + }, + { + id: 'my-dark-theme', + title: 'My Dark Theme', + variant: 'dark', + icon: , + Provider: ({ children }: { children: React.ReactNode }) => ( + + ), + }, +]; diff --git a/workspaces/theme/yarn.lock b/workspaces/theme/yarn.lock index 6e0403045..ec4859188 100644 --- a/workspaces/theme/yarn.lock +++ b/workspaces/theme/yarn.lock @@ -2786,15 +2786,15 @@ __metadata: languageName: node linkType: hard -"@backstage/app-defaults@npm:^1.5.12": - version: 1.5.12 - resolution: "@backstage/app-defaults@npm:1.5.12" - dependencies: - "@backstage/core-app-api": ^1.15.1 - "@backstage/core-components": ^0.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/plugin-permission-react": ^0.4.27 - "@backstage/theme": ^0.6.0 +"@backstage/app-defaults@npm:^1.5.12, @backstage/app-defaults@npm:^1.5.14": + version: 1.5.14 + resolution: "@backstage/app-defaults@npm:1.5.14" + dependencies: + "@backstage/core-app-api": ^1.15.2 + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/plugin-permission-react": ^0.4.28 + "@backstage/theme": ^0.6.2 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 peerDependencies: @@ -2805,7 +2805,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 8dcb107bc954ed423260d8d2bde4d23436da9772550623ca10f62928de0b8eea982730f593594376f2bf5257094d287cda649b1527548738011e3c08e29a41ca + checksum: ff0acdc1bc0177e4a5bd8c43c188d5ab4dd259950f9e7c42790aa3f0652a640a5c84ac4e5920311a1fc808b410ded70d82c11b2f4e5fa3d011ec4d41d59d6a5a languageName: node linkType: hard @@ -3056,27 +3056,27 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-client@npm:^1.7.1": - version: 1.7.1 - resolution: "@backstage/catalog-client@npm:1.7.1" +"@backstage/catalog-client@npm:^1.7.1, @backstage/catalog-client@npm:^1.8.0": + version: 1.8.0 + resolution: "@backstage/catalog-client@npm:1.8.0" dependencies: - "@backstage/catalog-model": ^1.7.0 - "@backstage/errors": ^1.2.4 + "@backstage/catalog-model": ^1.7.1 + "@backstage/errors": ^1.2.5 cross-fetch: ^4.0.0 uri-template: ^2.0.0 - checksum: 0a70a929e95b4e424b021010202e19b68ab5ad3a6b6613e5c01850f31f6067e33ebb8863119c197bc213e9d86793d5368d0ad100288802e72eb6e818f54e765f + checksum: 781ce437855eb59cf33687866b64d374471ed9376cdaec9aa4f5dc389ee2a5eb41e98707c902312cc4b99dfc885daa7e26d59228cf6eb5b539c9207aeda02f8c languageName: node linkType: hard -"@backstage/catalog-model@npm:^1.7.0": - version: 1.7.0 - resolution: "@backstage/catalog-model@npm:1.7.0" +"@backstage/catalog-model@npm:^1.7.0, @backstage/catalog-model@npm:^1.7.1": + version: 1.7.1 + resolution: "@backstage/catalog-model@npm:1.7.1" dependencies: - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/errors": ^1.2.5 + "@backstage/types": ^1.2.0 ajv: ^8.10.0 lodash: ^4.17.21 - checksum: 6ff537e9e6064d35fa4a173a1c96f94e904489494a67a136e2dd0a743f9e3f4fd8a1f7a661fe8495dfbb642aabcc8fbf1746a300ad496b6e4a5d02f4db00f914 + checksum: 05e2b386aac897f8ac87c1e479101f8da90d96c517c837b99796a4118cce63932ffbb29fbb1f8ec156258370ff5bab65555bbe2fd7091be438f8c554f0a5bdff languageName: node linkType: hard @@ -3279,23 +3279,24 @@ __metadata: languageName: node linkType: hard -"@backstage/config@npm:^1.2.0": - version: 1.2.0 - resolution: "@backstage/config@npm:1.2.0" +"@backstage/config@npm:^1.2.0, @backstage/config@npm:^1.3.0": + version: 1.3.0 + resolution: "@backstage/config@npm:1.3.0" dependencies: - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 - checksum: 7844f0f086f894eca110f5c68832cd7c0beca2dc0ce2139b10af1d2cde6faf25afb249d3f980375def338b0ad885ef9e98f0d5a1b475bfe54c51b2b6636f1fef + "@backstage/errors": ^1.2.5 + "@backstage/types": ^1.2.0 + ms: ^2.1.3 + checksum: 8e117d677889a5170c62f4b867830cded1cddc2f3f52c86fef7df60a974e7f9e38f428d12e30b6dcc038971e736162d52469f6d98917a401f825e544443e0e4e languageName: node linkType: hard -"@backstage/core-app-api@npm:^1.15.1": - version: 1.15.1 - resolution: "@backstage/core-app-api@npm:1.15.1" +"@backstage/core-app-api@npm:^1.15.1, @backstage/core-app-api@npm:^1.15.2": + version: 1.15.2 + resolution: "@backstage/core-app-api@npm:1.15.2" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/types": ^1.1.1 + "@backstage/config": ^1.3.0 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 "@types/prop-types": ^15.7.3 history: ^5.0.0 @@ -3313,16 +3314,16 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 0ace62b7fdef97bf808c584204da512e2d00517d5af270fe3fd14ce286bf24d297f3d42cfa84e383c5fc955d28250b0e5fc62823633da84ad7ef2caaff05609a + checksum: 7539410665879107bfbe8ae697e9949ba3c697f9ebb63b61a59adb955bee3c35a581cc7d4b16a9c7830adf87081b5968f8ead3719019c3c08f80e2c17840ab0a languageName: node linkType: hard -"@backstage/core-compat-api@npm:^0.3.1": - version: 0.3.1 - resolution: "@backstage/core-compat-api@npm:0.3.1" +"@backstage/core-compat-api@npm:^0.3.1, @backstage/core-compat-api@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/core-compat-api@npm:0.3.3" dependencies: - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/frontend-plugin-api": ^0.9.0 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/frontend-plugin-api": ^0.9.2 "@backstage/version-bridge": ^1.0.10 lodash: ^4.17.21 peerDependencies: @@ -3333,7 +3334,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 84fa2896fd85d5c4f2c6c204b6330d92bf928d57a5afc4092c63e952a2417a1257ec914aa7fd22252ea285baeeb55d70611ed95a1748463dd428f8da5fc617aa + checksum: 22b787b80d8e4bfd5ee2da7177fb1c2f64476ee507ab70686a6109ac39fad209896bc3aa09dadf6fb2ad22b0c899202b959d536f70227eebe0598bab1a0a6c50 languageName: node linkType: hard @@ -3389,13 +3390,66 @@ __metadata: languageName: node linkType: hard -"@backstage/core-plugin-api@npm:^1.10.0": - version: 1.10.0 - resolution: "@backstage/core-plugin-api@npm:1.10.0" +"@backstage/core-components@npm:^0.16.1": + version: 0.16.1 + resolution: "@backstage/core-components@npm:0.16.1" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/config": ^1.3.0 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/errors": ^1.2.5 + "@backstage/theme": ^0.6.2 + "@backstage/version-bridge": ^1.0.10 + "@date-io/core": ^1.3.13 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^24.0.0 + "@testing-library/react": ^16.0.0 + "@types/react-sparklines": ^1.7.0 + ansi-regex: ^6.0.1 + classnames: ^2.2.6 + d3-selection: ^3.0.0 + d3-shape: ^3.0.0 + d3-zoom: ^3.0.0 + dagre: ^0.8.5 + linkify-react: 4.1.3 + linkifyjs: 4.1.3 + lodash: ^4.17.21 + pluralize: ^8.0.0 + qs: ^6.9.4 + rc-progress: 3.5.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-idle-timer: 5.7.2 + react-markdown: ^8.0.0 + react-sparklines: ^1.7.0 + react-syntax-highlighter: ^15.4.5 + react-use: ^17.3.2 + react-virtualized-auto-sizer: ^1.0.11 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ^3.22.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 83b5acfa236dc8c6ec7128030b8ef68fbc851c4fd3ccc10bf4b4bb5a95c07606bac845c47dae08ce2a852c0ec2d335e6e8850c7621a57c970dbeb0466b8ee958 + languageName: node + linkType: hard + +"@backstage/core-plugin-api@npm:^1.10.0, @backstage/core-plugin-api@npm:^1.10.1": + version: 1.10.1 + resolution: "@backstage/core-plugin-api@npm:1.10.1" + dependencies: + "@backstage/config": ^1.3.0 + "@backstage/errors": ^1.2.5 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 history: ^5.0.0 peerDependencies: @@ -3406,7 +3460,34 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 50647e0a33946a981cdb9b03c7282e761ff95b4fc33f3dcbaa08536740e8be0d555e0d8995fb66484eb5518a10583113df31965d15e2786a388d16ae54a7fba6 + checksum: b9897e92cc595463c11b5719f3d6305debf00dccead6befe04548e7b08c9c03a54c610f64515f443e980c43a6f28e1302ab590d1351bc536d90826f934f336ea + languageName: node + linkType: hard + +"@backstage/dev-utils@npm:^1.1.2": + version: 1.1.4 + resolution: "@backstage/dev-utils@npm:1.1.4" + dependencies: + "@backstage/app-defaults": ^1.5.14 + "@backstage/catalog-model": ^1.7.1 + "@backstage/core-app-api": ^1.15.2 + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/integration-react": ^1.2.1 + "@backstage/plugin-catalog-react": ^1.14.2 + "@backstage/theme": ^0.6.2 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f125c18387663ef2972b20a3ee6b34b553c68d6b8657dd75e62e945b4f6138c0edccce31a9b972abbbf41f0876bb178d1fa7dc3a9e9403314cfeab5ab2dded4e languageName: node linkType: hard @@ -3425,13 +3506,13 @@ __metadata: languageName: node linkType: hard -"@backstage/errors@npm:^1.2.4": - version: 1.2.4 - resolution: "@backstage/errors@npm:1.2.4" +"@backstage/errors@npm:^1.2.4, @backstage/errors@npm:^1.2.5": + version: 1.2.5 + resolution: "@backstage/errors@npm:1.2.5" dependencies: - "@backstage/types": ^1.1.1 + "@backstage/types": ^1.2.0 serialize-error: ^8.0.1 - checksum: ed988b2d3594a2fe989dd45fe197154e522194e30602552224e4a2bf6ed895c671e7f832d5c01b8e24881484698ccf3abaf2930dba5374bccfdaa283f4850fb9 + checksum: 8b4411cca1a9038b136ffa766d3ec284d0dac730ef27b1f565dc7f471249ce87a3d6599fe5c21c7643363ee13f0b0457d5c4fa29d20da64ca3a09fecec3ccd31 languageName: node linkType: hard @@ -3445,17 +3526,17 @@ __metadata: languageName: node linkType: hard -"@backstage/frontend-app-api@npm:^0.10.0": - version: 0.10.0 - resolution: "@backstage/frontend-app-api@npm:0.10.0" +"@backstage/frontend-app-api@npm:^0.10.2": + version: 0.10.2 + resolution: "@backstage/frontend-app-api@npm:0.10.2" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-app-api": ^1.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/errors": ^1.2.4 - "@backstage/frontend-defaults": ^0.1.1 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/types": ^1.1.1 + "@backstage/config": ^1.3.0 + "@backstage/core-app-api": ^1.15.2 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/errors": ^1.2.5 + "@backstage/frontend-defaults": ^0.1.3 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 lodash: ^4.17.21 zod: ^3.22.4 @@ -3467,19 +3548,19 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 76728d37614e56d2bf7ee5f6f2d73b57e1c8d8a2aba6d11563645ef1e25db1dfd55910143fda3586b5ef156f3753530b1690b5ac52b8c957e161ab8fae07eb1e + checksum: 7e3485557c7c852a05e0d8567c8b944457c353bafbdd7b21c8cf22a5927c8a18a8a36ec092e9212bad4613f6f0ca7828e9c74ea2b2edc01159c2cffac9d4a0b3 languageName: node linkType: hard -"@backstage/frontend-defaults@npm:^0.1.1": - version: 0.1.1 - resolution: "@backstage/frontend-defaults@npm:0.1.1" +"@backstage/frontend-defaults@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/frontend-defaults@npm:0.1.3" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/frontend-app-api": ^0.10.0 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/plugin-app": ^0.1.1 + "@backstage/config": ^1.3.0 + "@backstage/errors": ^1.2.5 + "@backstage/frontend-app-api": ^0.10.2 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/plugin-app": ^0.1.3 "@react-hookz/web": ^24.0.0 peerDependencies: "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 @@ -3489,17 +3570,17 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 7d74ba5e24726cc322ba2edb1b92c787b6c78ff8a4594ab584631f2cf9232e1de928afd23e49ae04d21501d034acbd99432e5394eeb88798ee520e9d2151b820 + checksum: 46932dad14f776b979ec9482addb8fd1e771b59f690612be2332937fb6d0a9e6d944658f3a5b11d397b773c421ccf6caba0163d10105e2b78ec4a6ecc924d3f5 languageName: node linkType: hard -"@backstage/frontend-plugin-api@npm:^0.9.0": - version: 0.9.0 - resolution: "@backstage/frontend-plugin-api@npm:0.9.0" +"@backstage/frontend-plugin-api@npm:^0.9.0, @backstage/frontend-plugin-api@npm:^0.9.2": + version: 0.9.2 + resolution: "@backstage/frontend-plugin-api@npm:0.9.2" dependencies: - "@backstage/core-components": ^0.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/types": ^1.1.1 + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 "@material-ui/core": ^4.12.4 lodash: ^4.17.21 @@ -3513,20 +3594,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 12902ce830631878ab1b5ecc22c9b62c4534e45c21b83ff88d8b806a2649ccbfc2fce789764052bc495a3162ed1fae466f6ed6b39aeb3b377da20202dad28fc3 + checksum: 7b24e25ea4178214bdb055faa6dbc62e6be04fe99e89a38a5b79fe9813187d7f6445f798b9c6485a99c8ebb38824677288f133ce73099a3468ddd7c3ec98df26 languageName: node linkType: hard -"@backstage/frontend-test-utils@npm:^0.2.1": - version: 0.2.1 - resolution: "@backstage/frontend-test-utils@npm:0.2.1" - dependencies: - "@backstage/config": ^1.2.0 - "@backstage/frontend-app-api": ^0.10.0 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/plugin-app": ^0.1.1 - "@backstage/test-utils": ^1.7.0 - "@backstage/types": ^1.1.1 +"@backstage/frontend-test-utils@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/frontend-test-utils@npm:0.2.3" + dependencies: + "@backstage/config": ^1.3.0 + "@backstage/frontend-app-api": ^0.10.2 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/plugin-app": ^0.1.3 + "@backstage/test-utils": ^1.7.2 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 zod: ^3.22.4 peerDependencies: @@ -3538,7 +3619,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: eedf49b53b600bbadf98aabc1c8b9082b976eaa3d9c151c9a9eda17ba0ed2e2c2054044d28db95980cf505c14ee8116220a95355a72e71ed22a22e319ef596cb + checksum: 68f6a33b97437f6e3dd7e83e65d44197462a3c8164802bc25a73db5ab3a2726a356f777056cf2700e5702c5a1daa9daca8c0ab4026911159513a2c47c92caf0d languageName: node linkType: hard @@ -3557,13 +3638,13 @@ __metadata: languageName: node linkType: hard -"@backstage/integration-react@npm:^1.2.0": - version: 1.2.0 - resolution: "@backstage/integration-react@npm:1.2.0" +"@backstage/integration-react@npm:^1.2.0, @backstage/integration-react@npm:^1.2.1": + version: 1.2.1 + resolution: "@backstage/integration-react@npm:1.2.1" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/integration": ^1.15.1 + "@backstage/config": ^1.3.0 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/integration": ^1.15.2 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 peerDependencies: @@ -3574,24 +3655,24 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 8cfbb94c9d9ebad8ed0c7f05a4491cf70421a313271e47f2717f217b800b7cbe947adb68a4ce15b65a2f918d042d3d6e5e0c46485354e760012ae94080d26acb + checksum: 493e146b2d217ec33ee6f9af39a8289aff230dba548b38d5ec8cff758cfa269184014a18778e54a6599458f408ddc1cab3f2435c229b4f038e9ad423e6086bdb languageName: node linkType: hard -"@backstage/integration@npm:^1.15.0, @backstage/integration@npm:^1.15.1": - version: 1.15.1 - resolution: "@backstage/integration@npm:1.15.1" +"@backstage/integration@npm:^1.15.0, @backstage/integration@npm:^1.15.1, @backstage/integration@npm:^1.15.2": + version: 1.15.2 + resolution: "@backstage/integration@npm:1.15.2" dependencies: "@azure/identity": ^4.0.0 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 + "@backstage/config": ^1.3.0 + "@backstage/errors": ^1.2.5 "@octokit/auth-app": ^4.0.0 "@octokit/rest": ^19.0.3 cross-fetch: ^4.0.0 git-url-parse: ^15.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - checksum: 078e366fc704fcc061f16ba461c1b11f90c07920af9fc5a6894abbe4232c184ee925ab6c1f2af7c02233d27d6722395e034909ef251edd7438484fa31e68833a + checksum: 59b109e1b9e196e36fc55264258a304839057fc1d8f438740c74c1750ee76a5d39341aa4fddaf5d81d06fdc679076710dd63de2fab4e105012eb040d9e303038 languageName: node linkType: hard @@ -3670,16 +3751,16 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-app@npm:^0.1.1": - version: 0.1.1 - resolution: "@backstage/plugin-app@npm:0.1.1" - dependencies: - "@backstage/core-components": ^0.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/integration-react": ^1.2.0 - "@backstage/plugin-permission-react": ^0.4.27 - "@backstage/theme": ^0.6.0 +"@backstage/plugin-app@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/plugin-app@npm:0.1.3" + dependencies: + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/integration-react": ^1.2.1 + "@backstage/plugin-permission-react": ^0.4.28 + "@backstage/theme": ^0.6.2 "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.61 @@ -3692,7 +3773,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: bb75599f8feb8847249a4f5b08aac43be0e61495f16144e4571b3bf9e794c290e0203d73693ae99731c9a4d873cd7ac6ce03a45945b45937834bb1b9eaaa03db + checksum: 9920d4be8e533579de59f43396e1e4ec7bd55fadec58f3e9057401417ec9a126f3df9f4a6fe6c9bcf13e1edb8ded2b9ca41bf871fa3ad21a1b16b5b2a9775731 languageName: node linkType: hard @@ -4127,14 +4208,14 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-common@npm:^1.1.0": - version: 1.1.0 - resolution: "@backstage/plugin-catalog-common@npm:1.1.0" +"@backstage/plugin-catalog-common@npm:^1.1.0, @backstage/plugin-catalog-common@npm:^1.1.1": + version: 1.1.1 + resolution: "@backstage/plugin-catalog-common@npm:1.1.1" dependencies: - "@backstage/catalog-model": ^1.7.0 - "@backstage/plugin-permission-common": ^0.8.1 - "@backstage/plugin-search-common": ^1.2.14 - checksum: 291a589cfa6d6d06dbb01d6343c005f4dad1d837b3f2d56ce7d0f1cb89b90c92af4e1dd17931cdcd2b6666b11eba0f8726f9fe02bca2340997002b2182cdf40b + "@backstage/catalog-model": ^1.7.1 + "@backstage/plugin-permission-common": ^0.8.2 + "@backstage/plugin-search-common": ^1.2.15 + checksum: de2205ef4ab6ce43dd46d20daed31b9fd5d395b0d78d0e579c7269a5be0741f65ccc690c2346b5945fdb1c5a11a384b9745cdaa495997a179bea9ed55fc5df86 languageName: node linkType: hard @@ -4224,23 +4305,23 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-react@npm:^1.14.0": - version: 1.14.0 - resolution: "@backstage/plugin-catalog-react@npm:1.14.0" - dependencies: - "@backstage/catalog-client": ^1.7.1 - "@backstage/catalog-model": ^1.7.0 - "@backstage/core-compat-api": ^0.3.1 - "@backstage/core-components": ^0.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/errors": ^1.2.4 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/frontend-test-utils": ^0.2.1 - "@backstage/integration-react": ^1.2.0 - "@backstage/plugin-catalog-common": ^1.1.0 - "@backstage/plugin-permission-common": ^0.8.1 - "@backstage/plugin-permission-react": ^0.4.27 - "@backstage/types": ^1.1.1 +"@backstage/plugin-catalog-react@npm:^1.14.0, @backstage/plugin-catalog-react@npm:^1.14.2": + version: 1.14.2 + resolution: "@backstage/plugin-catalog-react@npm:1.14.2" + dependencies: + "@backstage/catalog-client": ^1.8.0 + "@backstage/catalog-model": ^1.7.1 + "@backstage/core-compat-api": ^0.3.3 + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/errors": ^1.2.5 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/frontend-test-utils": ^0.2.3 + "@backstage/integration-react": ^1.2.1 + "@backstage/plugin-catalog-common": ^1.1.1 + "@backstage/plugin-permission-common": ^0.8.2 + "@backstage/plugin-permission-react": ^0.4.28 + "@backstage/types": ^1.2.0 "@backstage/version-bridge": ^1.0.10 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -4261,7 +4342,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: bd358a3be0ed20c2e716b6aec8614884f815362380939d79704f9b667d982a7c5de375693506cec597d5c254cec1426c645ecab891bf81f154c0fda0b6117932 + checksum: 1de29cd4a90fbfa2ba574b6cd69045e15b01e52e2d3963304ab29fc24e00a19d46bd7d3c065ed51ab19bc0ce1bc66e1346d89a3adb034363897b149b3c3dde8e languageName: node linkType: hard @@ -4535,18 +4616,18 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-common@npm:^0.8.1": - version: 0.8.1 - resolution: "@backstage/plugin-permission-common@npm:0.8.1" +"@backstage/plugin-permission-common@npm:^0.8.1, @backstage/plugin-permission-common@npm:^0.8.2": + version: 0.8.2 + resolution: "@backstage/plugin-permission-common@npm:0.8.2" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/config": ^1.3.0 + "@backstage/errors": ^1.2.5 + "@backstage/types": ^1.2.0 cross-fetch: ^4.0.0 - uuid: ^9.0.0 + uuid: ^11.0.0 zod: ^3.22.4 zod-to-json-schema: ^3.20.4 - checksum: 00f71b998aecefcf413b335ef67897be2210f9cecb1f58bb28e466f68acd04276e3105f2e99ad242792dfd2902e4ae7ea023efb8cda92447aef92a10b83d87e5 + checksum: f58f205d255c41e39ed331ccb64e807a1ec7728bb7f32c406e52c4d1e4b5e9e2195aa73a1fccbe427c191b0db263f8aa64310dbf5862b4e3834f68a4591de8c3 languageName: node linkType: hard @@ -4569,13 +4650,13 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-react@npm:^0.4.27": - version: 0.4.27 - resolution: "@backstage/plugin-permission-react@npm:0.4.27" +"@backstage/plugin-permission-react@npm:^0.4.27, @backstage/plugin-permission-react@npm:^0.4.28": + version: 0.4.28 + resolution: "@backstage/plugin-permission-react@npm:0.4.28" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/plugin-permission-common": ^0.8.1 + "@backstage/config": ^1.3.0 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/plugin-permission-common": ^0.8.2 swr: ^2.0.0 peerDependencies: "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 @@ -4585,7 +4666,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 82e6ce34cd7634a08c61c3344840df295ef06b358cab93e3d42a0f304a9b8cbe635ca53a93b566889a1907d798149b1b9dc0ff82ecb9484c7f6ca4c314b6cb60 + checksum: ad070512472315556cc456c1edb7bcd70be20e352583f4eca7cc1c21d0b75c6d28eb28a47b07cee18594ff554bf4f78f48e034f56c0bbd6fbd1a28b5efe46763 languageName: node linkType: hard @@ -5058,13 +5139,13 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-search-common@npm:^1.2.14": - version: 1.2.14 - resolution: "@backstage/plugin-search-common@npm:1.2.14" +"@backstage/plugin-search-common@npm:^1.2.14, @backstage/plugin-search-common@npm:^1.2.15": + version: 1.2.15 + resolution: "@backstage/plugin-search-common@npm:1.2.15" dependencies: - "@backstage/plugin-permission-common": ^0.8.1 - "@backstage/types": ^1.1.1 - checksum: e4e44c06aaabfa296c9f07b6d9537bebcdbc54c309dcfbe9b11ee2625193df1571f58469388b49379a5a0fa1cc6560b81347dc4020b239b118558ae4d0c79511 + "@backstage/plugin-permission-common": ^0.8.2 + "@backstage/types": ^1.2.0 + checksum: 9ea3aafef93074a59127a3e775f82fca1358d330524312c64baaca921baa85e5d80a4042ede050e492ef43c9b6ff9f6eb0a4ea81cb40e09f38834dfc1b57cd57 languageName: node linkType: hard @@ -5127,12 +5208,12 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-signals-react@npm:^0.0.6": - version: 0.0.6 - resolution: "@backstage/plugin-signals-react@npm:0.0.6" +"@backstage/plugin-signals-react@npm:^0.0.7": + version: 0.0.7 + resolution: "@backstage/plugin-signals-react@npm:0.0.7" dependencies: - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/types": ^1.1.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/types": ^1.2.0 "@material-ui/core": ^4.12.4 peerDependencies: "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 @@ -5142,7 +5223,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 78699cf92f3ecf9f364d073b43280326680fef268638de4c6cd8fb5d78b5ec9fbed9b4cfd0ad0ac27e1dde47070a6690ce4704bd117c807497f60e5bc333fcde + checksum: a6d3380e8142ab678823bf4be48792b21d92ac34aa9df0bbfecc73cba4c7013026a15aa52f5b230c00315bfb8442f93cb2f059cc1f34d208cd837f3544c86952 languageName: node linkType: hard @@ -5323,22 +5404,22 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-user-settings@npm:^0.8.14": - version: 0.8.14 - resolution: "@backstage/plugin-user-settings@npm:0.8.14" +"@backstage/plugin-user-settings@npm:^0.8.14, @backstage/plugin-user-settings@npm:^0.8.16": + version: 0.8.16 + resolution: "@backstage/plugin-user-settings@npm:0.8.16" dependencies: - "@backstage/catalog-model": ^1.7.0 - "@backstage/core-app-api": ^1.15.1 - "@backstage/core-compat-api": ^0.3.1 - "@backstage/core-components": ^0.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/errors": ^1.2.4 - "@backstage/frontend-plugin-api": ^0.9.0 - "@backstage/plugin-catalog-react": ^1.14.0 - "@backstage/plugin-signals-react": ^0.0.6 + "@backstage/catalog-model": ^1.7.1 + "@backstage/core-app-api": ^1.15.2 + "@backstage/core-compat-api": ^0.3.3 + "@backstage/core-components": ^0.16.1 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/errors": ^1.2.5 + "@backstage/frontend-plugin-api": ^0.9.2 + "@backstage/plugin-catalog-react": ^1.14.2 + "@backstage/plugin-signals-react": ^0.0.7 "@backstage/plugin-user-settings-common": ^0.0.1 - "@backstage/theme": ^0.6.0 - "@backstage/types": ^1.1.1 + "@backstage/theme": ^0.6.2 + "@backstage/types": ^1.2.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.61 @@ -5352,7 +5433,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 1e3b8c4e2703497a390e6f7fe993de16e1ea4f6c8f4918c0352347b69755dfc7830be3653777d737bb692ce48ee8623173dacdb7643c9e5bc303215ce9ad8a96 + checksum: 20762f24263f0d16dd7493a3869d15180a060ec86b4a94bdfe41dbfb882fdebabc081ecdec7979c01410fa6a5f7a82226fd08701f32e76580879fdfaf91e83a8 languageName: node linkType: hard @@ -5419,17 +5500,17 @@ __metadata: languageName: node linkType: hard -"@backstage/test-utils@npm:^1.7.0": - version: 1.7.0 - resolution: "@backstage/test-utils@npm:1.7.0" +"@backstage/test-utils@npm:^1.7.0, @backstage/test-utils@npm:^1.7.2": + version: 1.7.2 + resolution: "@backstage/test-utils@npm:1.7.2" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-app-api": ^1.15.1 - "@backstage/core-plugin-api": ^1.10.0 - "@backstage/plugin-permission-common": ^0.8.1 - "@backstage/plugin-permission-react": ^0.4.27 - "@backstage/theme": ^0.6.0 - "@backstage/types": ^1.1.1 + "@backstage/config": ^1.3.0 + "@backstage/core-app-api": ^1.15.2 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/plugin-permission-common": ^0.8.2 + "@backstage/plugin-permission-react": ^0.4.28 + "@backstage/theme": ^0.6.2 + "@backstage/types": ^1.2.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 cross-fetch: ^4.0.0 @@ -5447,13 +5528,13 @@ __metadata: optional: true "@types/react": optional: true - checksum: a2510b9b2cde88ba636af2d09d30d8349b80167a9408e416b2245771f5138dfd56745a6b08ecad64ec7f9656d2b5a15d9ab15dbcd695d3981db49e272d8a3260 + checksum: 2ef863129664a9c14f1e57c6c36bba873f7c2fcccf2a5dd5594f3773ba52aaed0695a7ae844bbf7f70483a3290421b48d78cb1d4634ac326006dfa30e1c9b306 languageName: node linkType: hard -"@backstage/theme@npm:^0.6.0": - version: 0.6.0 - resolution: "@backstage/theme@npm:0.6.0" +"@backstage/theme@npm:^0.6.0, @backstage/theme@npm:^0.6.2": + version: 0.6.2 + resolution: "@backstage/theme@npm:0.6.2" dependencies: "@emotion/react": ^11.10.5 "@emotion/styled": ^11.10.5 @@ -5467,14 +5548,14 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: d1cdaa069bc6eac3a38f947504ddc45a7d1d49ef429fdb9ff99b606cb07a686b5b86c98bed76e0b2404d1b401fd7e6f12ab7a272ebb483a61ea3d07b8d467b6f + checksum: 480bf041bea2919b1d0590c7ee45950d6f2eb00403e40e7a86a0b16c1994693d7c3d67e401ff771d2e920a849d8cb02207a0b1212f436aed973439f66e824803 languageName: node linkType: hard -"@backstage/types@npm:^1.1.1": - version: 1.1.1 - resolution: "@backstage/types@npm:1.1.1" - checksum: 54bd9e53570cf2a7a8d9ae30e7181ee6b669b7f543949391a2168f616e1f7b13f0419f324941a87aa15f723d0313eda8f212db2077675421d6f91484f477c4f5 +"@backstage/types@npm:^1.1.1, @backstage/types@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/types@npm:1.2.0" + checksum: a8b22a95b7c64bde31927e18f6892bb0be949bd1a7bc5d9ef1e4d9df984ff80144148a6019a69d1084f6214fcb9536fdd7d8f2fb3708ef373ff2e1bac28442b0 languageName: node linkType: hard @@ -5948,7 +6029,7 @@ __metadata: languageName: node linkType: hard -"@emotion/hash@npm:^0.9.2": +"@emotion/hash@npm:^0.9.1, @emotion/hash@npm:^0.9.2": version: 0.9.2 resolution: "@emotion/hash@npm:0.9.2" checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 @@ -8256,7 +8337,23 @@ __metadata: languageName: node linkType: hard -"@mui/material@npm:^5.12.2": +"@mui/icons-material@npm:^5": + version: 5.16.7 + resolution: "@mui/icons-material@npm:5.16.7" + dependencies: + "@babel/runtime": ^7.23.9 + peerDependencies: + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a875f2837897d79a83173d80461e06ab090b64d08913d26433cf2cbeb8e7c7456468632a7aa495d722718f09111a8043255777d73b4dfbe9e0f863a170fc7190 + languageName: node + linkType: hard + +"@mui/material@npm:^5, @mui/material@npm:^5.12.2": version: 5.16.7 resolution: "@mui/material@npm:5.16.7" dependencies: @@ -8327,6 +8424,37 @@ __metadata: languageName: node linkType: hard +"@mui/styles@npm:^5": + version: 5.16.7 + resolution: "@mui/styles@npm:5.16.7" + dependencies: + "@babel/runtime": ^7.23.9 + "@emotion/hash": ^0.9.1 + "@mui/private-theming": ^5.16.6 + "@mui/types": ^7.2.15 + "@mui/utils": ^5.16.6 + clsx: ^2.1.0 + csstype: ^3.1.3 + hoist-non-react-statics: ^3.3.2 + jss: ^10.10.0 + jss-plugin-camel-case: ^10.10.0 + jss-plugin-default-unit: ^10.10.0 + jss-plugin-global: ^10.10.0 + jss-plugin-nested: ^10.10.0 + jss-plugin-props-sort: ^10.10.0 + jss-plugin-rule-value-function: ^10.10.0 + jss-plugin-vendor-prefixer: ^10.10.0 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 1109eb150cf40782a6f24bebf6d22d55ea8c36bbf43893664c303e679b7d235a6578b2f2e1d9ee64132aa24496a15fd32f80278cb641208c3a372bd53679e1c0 + languageName: node + linkType: hard + "@mui/system@npm:^5.16.7": version: 5.16.7 resolution: "@mui/system@npm:5.16.7" @@ -9927,12 +10055,94 @@ __metadata: languageName: node linkType: hard -"@red-hat-developer-hub/theme@workspace:^, @red-hat-developer-hub/theme@workspace:packages/theme": +"@red-hat-developer-hub/backstage-plugin-bsc-test@workspace:^, @red-hat-developer-hub/backstage-plugin-bsc-test@workspace:plugins/bsc-test": + version: 0.0.0-use.local + resolution: "@red-hat-developer-hub/backstage-plugin-bsc-test@workspace:plugins/bsc-test" + dependencies: + "@backstage/cli": ^0.28.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/dev-utils": ^1.1.2 + "@backstage/plugin-user-settings": ^0.8.16 + "@backstage/test-utils": ^1.7.0 + "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.0.0 + msw: ^1.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + languageName: unknown + linkType: soft + +"@red-hat-developer-hub/backstage-plugin-mui4-test@workspace:^, @red-hat-developer-hub/backstage-plugin-mui4-test@workspace:plugins/mui4-test": + version: 0.0.0-use.local + resolution: "@red-hat-developer-hub/backstage-plugin-mui4-test@workspace:plugins/mui4-test" + dependencies: + "@backstage/cli": ^0.28.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/dev-utils": ^1.1.2 + "@backstage/plugin-user-settings": ^0.8.16 + "@backstage/test-utils": ^1.7.0 + "@material-ui/core": ^4.9.13 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": ^4.0.0-alpha.61 + "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.0.0 + msw: ^1.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + languageName: unknown + linkType: soft + +"@red-hat-developer-hub/backstage-plugin-mui5-test@workspace:^, @red-hat-developer-hub/backstage-plugin-mui5-test@workspace:plugins/mui5-test": + version: 0.0.0-use.local + resolution: "@red-hat-developer-hub/backstage-plugin-mui5-test@workspace:plugins/mui5-test" + dependencies: + "@backstage/cli": ^0.28.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/dev-utils": ^1.1.2 + "@backstage/plugin-user-settings": ^0.8.16 + "@backstage/test-utils": ^1.7.0 + "@mui/icons-material": ^5 + "@mui/material": ^5 + "@mui/styles": ^5 + "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.0.0 + msw: ^1.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + languageName: unknown + linkType: soft + +"@red-hat-developer-hub/backstage-plugin-theme@workspace:^, @red-hat-developer-hub/backstage-plugin-theme@workspace:plugins/theme": version: 0.0.0-use.local - resolution: "@red-hat-developer-hub/theme@workspace:packages/theme" + resolution: "@red-hat-developer-hub/backstage-plugin-theme@workspace:plugins/theme" dependencies: "@backstage/cli": ^0.28.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/dev-utils": ^1.1.2 + "@backstage/test-utils": ^1.7.0 + "@backstage/theme": ^0.6.0 + "@material-ui/icons": ^4.11.3 "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.0.0 + msw: ^1.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 languageName: unknown linkType: soft @@ -12197,6 +12407,26 @@ __metadata: languageName: node linkType: hard +"@testing-library/react@npm:^16.0.0": + version: 16.0.1 + resolution: "@testing-library/react@npm:16.0.1" + dependencies: + "@babel/runtime": ^7.12.5 + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 + "@types/react-dom": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 1837db473ea018cf2b5d0cbfffb7a30d0d759e5a7f23aad431441c77bcc3d2533250cd003a61878fd908267df47404cedcb5914f12d79e413002c659652b37fd + languageName: node + linkType: hard + "@testing-library/user-event@npm:^14.0.0": version: 14.5.2 resolution: "@testing-library/user-event@npm:14.5.2" @@ -14171,7 +14401,10 @@ __metadata: "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@playwright/test": ^1.32.3 - "@red-hat-developer-hub/theme": "workspace:^" + "@red-hat-developer-hub/backstage-plugin-bsc-test": "workspace:^" + "@red-hat-developer-hub/backstage-plugin-mui4-test": "workspace:^" + "@red-hat-developer-hub/backstage-plugin-mui5-test": "workspace:^" + "@red-hat-developer-hub/backstage-plugin-theme": "workspace:^" "@testing-library/dom": ^9.0.0 "@testing-library/jest-dom": ^6.0.0 "@testing-library/react": ^14.0.0 @@ -23099,7 +23332,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-camel-case@npm:^10.5.1": +"jss-plugin-camel-case@npm:^10.10.0, jss-plugin-camel-case@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-camel-case@npm:10.10.0" dependencies: @@ -23110,7 +23343,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-default-unit@npm:^10.5.1": +"jss-plugin-default-unit@npm:^10.10.0, jss-plugin-default-unit@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-default-unit@npm:10.10.0" dependencies: @@ -23120,7 +23353,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-global@npm:^10.5.1": +"jss-plugin-global@npm:^10.10.0, jss-plugin-global@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-global@npm:10.10.0" dependencies: @@ -23130,7 +23363,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-nested@npm:^10.5.1": +"jss-plugin-nested@npm:^10.10.0, jss-plugin-nested@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-nested@npm:10.10.0" dependencies: @@ -23141,7 +23374,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-props-sort@npm:^10.5.1": +"jss-plugin-props-sort@npm:^10.10.0, jss-plugin-props-sort@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-props-sort@npm:10.10.0" dependencies: @@ -23151,7 +23384,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-rule-value-function@npm:^10.5.1": +"jss-plugin-rule-value-function@npm:^10.10.0, jss-plugin-rule-value-function@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-rule-value-function@npm:10.10.0" dependencies: @@ -23162,7 +23395,7 @@ __metadata: languageName: node linkType: hard -"jss-plugin-vendor-prefixer@npm:^10.5.1": +"jss-plugin-vendor-prefixer@npm:^10.10.0, jss-plugin-vendor-prefixer@npm:^10.5.1": version: 10.10.0 resolution: "jss-plugin-vendor-prefixer@npm:10.10.0" dependencies: @@ -23173,7 +23406,7 @@ __metadata: languageName: node linkType: hard -"jss@npm:10.10.0, jss@npm:^10.5.1, jss@npm:~10.10.0": +"jss@npm:10.10.0, jss@npm:^10.10.0, jss@npm:^10.5.1, jss@npm:~10.10.0": version: 10.10.0 resolution: "jss@npm:10.10.0" dependencies: @@ -28616,7 +28849,7 @@ __metadata: languageName: node linkType: hard -"react@npm:^18.0.2": +"react@npm:^16.13.1 || ^17.0.0 || ^18.0.0, react@npm:^18.0.2": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -32437,6 +32670,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^11.0.0": + version: 11.0.3 + resolution: "uuid@npm:11.0.3" + bin: + uuid: dist/esm/bin/uuid + checksum: 646181c77e8b8df9bd07254faa703943e1c4d5ccde7d080312edf12f443f6c5750801fd9b27bf2e628594182165e6b1b880c0382538f7eca00b26622203741dc + languageName: node + linkType: hard + "uuid@npm:^3.3.2, uuid@npm:^3.4.0": version: 3.4.0 resolution: "uuid@npm:3.4.0"