diff --git a/.rhdh/docker/Dockerfile b/.rhdh/docker/Dockerfile index 077ea9e100..903e4c4d88 100644 --- a/.rhdh/docker/Dockerfile +++ b/.rhdh/docker/Dockerfile @@ -74,6 +74,7 @@ COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/roadiehq-backstage-plugin- COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header/package.json +COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-dynamic-home-page/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-dynamic-home-page/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-bulk-import/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-bulk-import/package.json diff --git a/app-config.dynamic-plugins.yaml b/app-config.dynamic-plugins.yaml index 555ac814fb..a5bf7354ca 100644 --- a/app-config.dynamic-plugins.yaml +++ b/app-config.dynamic-plugins.yaml @@ -258,6 +258,17 @@ dynamicPlugins: config: layout: position: above-main-content + red-hat-developer-hub.backstage-plugin-global-floating-action-button: + mountPoints: + - mountPoint: application/listener + importName: DynamicGlobalFloatingActionButton + - mountPoint: global.floatingactionbutton/component + importName: NullComponent + config: + icon: github + label: Git + toolTip: Github + to: https://github.com/redhat-developer/rhdh red-hat-developer-hub.backstage-plugin-dynamic-home-page: dynamicRoutes: - path: / diff --git a/docker/Dockerfile b/docker/Dockerfile index f1651eb9ea..d7d3fdb63d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -75,6 +75,7 @@ COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/roadiehq-backstage-plugin- COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header/package.json +COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-dynamic-home-page/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-dynamic-home-page/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic/package.json COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-bulk-import/package.json ./dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-bulk-import/package.json diff --git a/docs/dynamic-plugins/frontend-plugin-wiring.md b/docs/dynamic-plugins/frontend-plugin-wiring.md index 90e587a97d..e0ac379f28 100644 --- a/docs/dynamic-plugins/frontend-plugin-wiring.md +++ b/docs/dynamic-plugins/frontend-plugin-wiring.md @@ -400,6 +400,42 @@ Each global header entry requires the following attributes: Users can configure multiple global headers at different positions by adding entries to the `mountPoints` field. +### Adding application listeners + +The users can add application listeners using the `application/listener` mount point. Below is an example that uses the aforesaid mount point: + +```yaml +# app-config.yaml +dynamicPlugins: + frontend: + : # plugin_package_name same as `scalprum.name` key in plugin's `package.json` + mountPoints: + - mountPoint: application/listener + importName: +``` + +Users can configure multiple application listeners by adding entries to the `mountPoints` field. + +### Adding application providers + +The users can add application providers using the `application/provider` mount point. Below is an example that uses the aforesaid mount point to configure a context provider: + +```yaml +# app-config.yaml +dynamicPlugins: + frontend: + : # plugin_package_name same as `scalprum.name` key in plugin's `package.json` + dynamicRoutes: + - path: / + importName: Component # Component you want to load on the route + mountPoints: + - mountPoint: application/provider + importName: +``` + +Users can configure multiple application providers by adding entries to the `mountPoints` field. + + ## Customizing and Adding Entity tabs Out of the box the frontend system provides an opinionated set of tabs for catalog entity views. This set of tabs can be further customized and extended as needed via the `entityTabs` configuration: diff --git a/dynamic-plugins.default.yaml b/dynamic-plugins.default.yaml index d78902cdbd..7386b27d1b 100644 --- a/dynamic-plugins.default.yaml +++ b/dynamic-plugins.default.yaml @@ -536,6 +536,24 @@ plugins: layout: position: above-main-content + # Group: Global floating action button + - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button + disabled: true + pluginConfig: + dynamicPlugins: + frontend: + red-hat-developer-hub.backstage-plugin-global-floating-action-button: + mountPoints: + - mountPoint: application/listener + importName: DynamicGlobalFloatingActionButton + - mountPoint: global.floatingactionbutton/component + importName: NullComponent + config: + icon: github + label: 'Git' + toolTip: 'Github' + to: https://github.com/redhat-developer/rhdh + # Homepage - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-dynamic-home-page disabled: false diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintignore b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintignore new file mode 100644 index 0000000000..55289f4a23 --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintignore @@ -0,0 +1,2 @@ +dist-dynamic +dist-scalprum diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintrc.js b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintrc.js new file mode 100644 index 0000000000..958d722cb2 --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require("@backstage/cli/config/eslint-factory")(__dirname); diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json new file mode 100644 index 0000000000..42e73d2075 --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/package.json @@ -0,0 +1,61 @@ +{ + "name": "red-hat-developer-hub-backstage-plugin-global-floating-action-button", + "version": "0.0.6", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "frontend-plugin", + "supported-versions": "1.35.0", + "pluginId": "red-hat-developer-hub-backstage-plugin-global-floating-action-button", + "pluginPackages": [ + "red-hat-developer-hub-backstage-plugin-global-floating-action-button" + ] + }, + "sideEffects": false, + "scripts": { + "tsc": "tsc", + "build": "backstage-cli package build", + "lint:check": "backstage-cli package lint", + "test": "backstage-cli package test --passWithNoTests --coverage", + "clean": "backstage-cli package clean", + "export-dynamic": "janus-cli package export-dynamic-plugin --in-place", + "export-dynamic:clean": "run export-dynamic --clean" + }, + "dependencies": { + "@mui/material": "5.16.14", + "@red-hat-developer-hub/backstage-plugin-global-floating-action-button": "0.0.6" + }, + "devDependencies": { + "@backstage/cli": "0.29.5", + "@janus-idp/cli": "3.0.0", + "typescript": "5.7.3" + }, + "scalprum": { + "name": "red-hat-developer-hub.backstage-plugin-global-floating-action-button", + "exposedModules": { + "PluginRoot": "./src/index.ts" + } + }, + "files": [ + "dist", + "dist-scalprum" + ], + "keywords": [ + "backstage", + "plugin" + ], + "repository": { + "type": "git", + "url": "https://github.com/redhat-developer/rhdh", + "directory": "dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button" + }, + "author": "Red Hat", + "homepage": "https://red.ht/rhdh", + "bugs": "https://issues.redhat.com/browse/RHIDP" +} diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/src/index.ts b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/src/index.ts new file mode 100644 index 0000000000..666086b6a3 --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/src/index.ts @@ -0,0 +1,9 @@ +import { unstable_ClassNameGenerator as ClassNameGenerator } from "@mui/material/className"; + +ClassNameGenerator.configure((componentName) => { + return componentName.startsWith("v5-") + ? componentName + : `v5-${componentName}`; +}); + +export * from "@red-hat-developer-hub/backstage-plugin-global-floating-action-button"; diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/tsconfig.json b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/tsconfig.json new file mode 100644 index 0000000000..040da5f1bb --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@backstage/cli/config/tsconfig.json", + "include": ["src", "dev", "migrations"], + "exclude": ["node_modules"], + "compilerOptions": { + "outDir": "../../../dist-types/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button", + "rootDir": "." + } +} diff --git a/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/turbo.json b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/turbo.json new file mode 100644 index 0000000000..4fd8ddbc9c --- /dev/null +++ b/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/turbo.json @@ -0,0 +1,10 @@ +{ + "extends": ["//"], + "tasks": { + "tsc": { + "outputs": [ + "../../../dist-types/dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button/**" + ] + } + } +} diff --git a/packages/app/src/components/AppBase/AppBase.tsx b/packages/app/src/components/AppBase/AppBase.tsx index 62ea3365b0..3e0c525793 100644 --- a/packages/app/src/components/AppBase/AppBase.tsx +++ b/packages/app/src/components/AppBase/AppBase.tsx @@ -24,6 +24,8 @@ import { entityPage } from '../catalog/EntityPage'; import DynamicRootContext from '../DynamicRoot/DynamicRootContext'; import { LearningPaths } from '../learningPaths/LearningPathsPage'; import { Root } from '../Root'; +import { ApplicationListener } from '../Root/ApplicationListener'; +import { ApplicationProvider } from '../Root/ApplicationProvider'; import ConfigUpdater from '../Root/ConfigUpdater'; import { SearchPage } from '../search/SearchPage'; import { settingsPage } from '../UserSettings/SettingsPages'; @@ -74,66 +76,69 @@ const AppBase = () => { + - - - } - /> - } - > - {entityPage(entityTabOverrides)} - - - } - > - - {scaffolderFieldExtensions.map( - ({ scope, module, importName, Component }) => ( - - ), - )} - - scaffolderFieldExtensions - - } /> - - - - } - /> - }> - - - }> - {settingsPage} - - } /> - } /> - {dynamicRoutes.map( - ({ Component, staticJSXContent, path, config: { props } }) => ( - } - > - {staticJSXContent} - - ), - )} - + + + + } + /> + } + > + {entityPage(entityTabOverrides)} + + + } + > + + {scaffolderFieldExtensions.map( + ({ scope, module, importName, Component }) => ( + + ), + )} + + scaffolderFieldExtensions + + } /> + + + + } + /> + }> + + + }> + {settingsPage} + + } /> + } /> + {dynamicRoutes.map( + ({ Component, staticJSXContent, path, config: { props } }) => ( + } + > + {staticJSXContent} + + ), + )} + + diff --git a/packages/app/src/components/Root/ApplicationListener.tsx b/packages/app/src/components/Root/ApplicationListener.tsx new file mode 100644 index 0000000000..94199a2f09 --- /dev/null +++ b/packages/app/src/components/Root/ApplicationListener.tsx @@ -0,0 +1,20 @@ +import { useContext } from 'react'; + +import { ErrorBoundary } from '@backstage/core-components'; + +import DynamicRootContext from '../DynamicRoot/DynamicRootContext'; + +export const ApplicationListener = () => { + const { mountPoints } = useContext(DynamicRootContext); + const listeners = mountPoints['application/listener'] ?? []; + return listeners.map(({ Component }, index) => { + return ( + + + + ); + }); +}; diff --git a/packages/app/src/components/Root/ApplicationProvider.tsx b/packages/app/src/components/Root/ApplicationProvider.tsx new file mode 100644 index 0000000000..5bb5d604f9 --- /dev/null +++ b/packages/app/src/components/Root/ApplicationProvider.tsx @@ -0,0 +1,28 @@ +import { useContext, useMemo } from 'react'; + +import { ErrorBoundary } from '@backstage/core-components'; + +import DynamicRootContext from '../DynamicRoot/DynamicRootContext'; + +export const ApplicationProvider = ({ + children, +}: React.PropsWithChildren<{}>) => { + const { mountPoints } = useContext(DynamicRootContext); + const providers = useMemo( + () => mountPoints['application/provider'] ?? [], + [mountPoints], + ); + if (providers.length === 0) { + return children; + } + return providers.reduceRight((acc, { Component }, index) => { + return ( + + {acc} + + ); + }, children); +}; diff --git a/plugins/dynamic-plugins-info/src/components/InternalPluginsMap.ts b/plugins/dynamic-plugins-info/src/components/InternalPluginsMap.ts index 01cf030d04..aedac496cc 100644 --- a/plugins/dynamic-plugins-info/src/components/InternalPluginsMap.ts +++ b/plugins/dynamic-plugins-info/src/components/InternalPluginsMap.ts @@ -65,6 +65,8 @@ export const InternalPluginsMap: Record = { './dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import', 'red-hat-developer-hub-backstage-plugin-global-header': './dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header', + 'red-hat-developer-hub-backstage-plugin-global-floating-action-button': + './dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button', 'red-hat-developer-hub-backstage-plugin-dynamic-home-page': './dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-dynamic-home-page', 'red-hat-developer-hub-backstage-plugin-marketplace': diff --git a/yarn.lock b/yarn.lock index f6146957cf..0c73e3d2b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1699,7 +1699,7 @@ __metadata: languageName: node linkType: hard -"@azure/identity@npm:4.6.0": +"@azure/identity@npm:4.6.0, @azure/identity@npm:^4.0.0": version: 4.6.0 resolution: "@azure/identity@npm:4.6.0" dependencies: @@ -1721,28 +1721,6 @@ __metadata: languageName: node linkType: hard -"@azure/identity@npm:^4.0.0": - version: 4.5.0 - resolution: "@azure/identity@npm:4.5.0" - dependencies: - "@azure/abort-controller": ^2.0.0 - "@azure/core-auth": ^1.9.0 - "@azure/core-client": ^1.9.2 - "@azure/core-rest-pipeline": ^1.17.0 - "@azure/core-tracing": ^1.0.0 - "@azure/core-util": ^1.11.0 - "@azure/logger": ^1.0.0 - "@azure/msal-browser": ^3.26.1 - "@azure/msal-node": ^2.15.0 - events: ^3.0.0 - jws: ^4.0.0 - open: ^8.0.0 - stoppable: ^1.1.0 - tslib: ^2.2.0 - checksum: 07d15898f194a220376d8d9c0ee891c93c6da188e44e76810fb781bf3bb7424498a6c1fa5b92c5a4d31f62b7398953f8a5bcf0f0ed57ed72239ce1c4f594b355 - languageName: node - linkType: hard - "@azure/logger@npm:^1.0.0": version: 1.0.4 resolution: "@azure/logger@npm:1.0.4" @@ -1752,15 +1730,6 @@ __metadata: languageName: node linkType: hard -"@azure/msal-browser@npm:^3.26.1": - version: 3.26.1 - resolution: "@azure/msal-browser@npm:3.26.1" - dependencies: - "@azure/msal-common": 14.15.0 - checksum: 70ebea1abc4bc6b0e5a250f865cffd24a1aeb615a35e7b572dad11369d486a7aeb4af60048c5f6a5bc3627fad65dbdc8c118f16086cb3f9cc03931699b08f4f7 - languageName: node - linkType: hard - "@azure/msal-browser@npm:^4.0.1": version: 4.0.2 resolution: "@azure/msal-browser@npm:4.0.2" @@ -11515,7 +11484,7 @@ __metadata: languageName: node linkType: hard -"@kubernetes/client-node@npm:0.22.3": +"@kubernetes/client-node@npm:0.22.3, @kubernetes/client-node@npm:^0.22.1": version: 0.22.3 resolution: "@kubernetes/client-node@npm:0.22.3" dependencies: @@ -11564,32 +11533,6 @@ __metadata: languageName: node linkType: hard -"@kubernetes/client-node@npm:^0.22.1": - version: 0.22.1 - resolution: "@kubernetes/client-node@npm:0.22.1" - dependencies: - "@types/js-yaml": ^4.0.1 - "@types/node": ^22.0.0 - "@types/request": ^2.47.1 - "@types/ws": ^8.5.3 - byline: ^5.0.0 - isomorphic-ws: ^5.0.0 - js-yaml: ^4.1.0 - jsonpath-plus: ^10.0.0 - openid-client: ^5.3.0 - request: ^2.88.0 - rfc4648: ^1.3.0 - stream-buffers: ^3.0.2 - tar: ^7.0.0 - tslib: ^2.4.1 - ws: ^8.18.0 - dependenciesMeta: - openid-client: - optional: true - checksum: 501377ad70681df9e30885cf18e40f9b16fd452bc50d9a46688a6f667a2a7f490238269e528b1f1804a6eaf4347f8edda57e5129b1a28a52915fe7898ea84329 - languageName: node - linkType: hard - "@leichtgewicht/ip-codec@npm:^2.0.1": version: 2.0.4 resolution: "@leichtgewicht/ip-codec@npm:2.0.4" @@ -12490,7 +12433,7 @@ __metadata: languageName: node linkType: hard -"@mui/icons-material@npm:5.16.14, @mui/icons-material@npm:^5.15.19, @mui/icons-material@npm:^5.16.4, @mui/icons-material@npm:^5.16.7": +"@mui/icons-material@npm:5.16.14, @mui/icons-material@npm:^5.15.17, @mui/icons-material@npm:^5.15.19, @mui/icons-material@npm:^5.16.4, @mui/icons-material@npm:^5.16.7": version: 5.16.14 resolution: "@mui/icons-material@npm:5.16.14" dependencies: @@ -12666,7 +12609,7 @@ __metadata: languageName: node linkType: hard -"@mui/private-theming@npm:^5.16.14, @mui/private-theming@npm:^5.16.6": +"@mui/private-theming@npm:^5.16.13, @mui/private-theming@npm:^5.16.14, @mui/private-theming@npm:^5.16.6": version: 5.16.14 resolution: "@mui/private-theming@npm:5.16.14" dependencies: @@ -12742,7 +12685,38 @@ __metadata: languageName: node linkType: hard -"@mui/styles@npm:5.16.7, @mui/styles@npm:^5.16.7": +"@mui/styles@npm:5.16.13, @mui/styles@npm:^5.16.7": + version: 5.16.13 + resolution: "@mui/styles@npm:5.16.13" + dependencies: + "@babel/runtime": ^7.23.9 + "@emotion/hash": ^0.9.1 + "@mui/private-theming": ^5.16.13 + "@mui/types": ^7.2.15 + "@mui/utils": ^5.16.13 + 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 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2464d3567264c152a7e8f030554a423c6ab509c85d33d193c298935b439cc62c7fa82b80cd99a477fbcdd463aa8de6e57b99b67445081d56137b5d5c094df192 + languageName: node + linkType: hard + +"@mui/styles@npm:5.16.7": version: 5.16.7 resolution: "@mui/styles@npm:5.16.7" dependencies: @@ -13550,13 +13524,6 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^22.2.0": - version: 22.2.0 - resolution: "@octokit/openapi-types@npm:22.2.0" - checksum: eca41feac2b83298e0d95e253ac1c5b6d65155ac57f65c5fd8d4a485d9728922d85ff4bee0e815a1f3a5421311db092bdb6da9d6104a1b1843d8b274bcad9630 - languageName: node - linkType: hard - "@octokit/openapi-types@npm:^23.0.1": version: 23.0.1 resolution: "@octokit/openapi-types@npm:23.0.1" @@ -13768,16 +13735,7 @@ __metadata: languageName: node linkType: hard -"@octokit/request-error@npm:^6.0.1": - version: 6.1.5 - resolution: "@octokit/request-error@npm:6.1.5" - dependencies: - "@octokit/types": ^13.0.0 - checksum: a0891df29957d9911ef34281fefffac4a98baa96ffffeb1a2b8f0c8e229911ca3da2be42e5bbe6a4b994a12fd100f4d0d86be095fada60384cd6728705eae859 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^6.1.6": +"@octokit/request-error@npm:^6.0.1, @octokit/request-error@npm:^6.1.6": version: 6.1.6 resolution: "@octokit/request-error@npm:6.1.6" dependencies: @@ -13874,16 +13832,7 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0, @octokit/types@npm:^13.5.0": - version: 13.6.1 - resolution: "@octokit/types@npm:13.6.1" - dependencies: - "@octokit/openapi-types": ^22.2.0 - checksum: 05bb427bc3c84088e2367b8d1b7a9834732116bb3d35ef51d1aae34b3919027159dd496b9362dab1cb047918da15be1dc1cafc512c97f9b77458bd273b5a2ba9 - languageName: node - linkType: hard - -"@octokit/types@npm:^13.6.2, @octokit/types@npm:^13.7.0": +"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0, @octokit/types@npm:^13.5.0, @octokit/types@npm:^13.6.2, @octokit/types@npm:^13.7.0": version: 13.7.0 resolution: "@octokit/types@npm:13.7.0" dependencies: @@ -16348,6 +16297,26 @@ __metadata: languageName: node linkType: hard +"@red-hat-developer-hub/backstage-plugin-global-floating-action-button@npm:0.0.6": + version: 0.0.6 + resolution: "@red-hat-developer-hub/backstage-plugin-global-floating-action-button@npm:0.0.6" + dependencies: + "@backstage/core-components": ^0.16.3 + "@backstage/core-plugin-api": ^1.10.3 + "@backstage/theme": ^0.6.3 + "@mui/icons-material": ^5.15.17 + "@mui/material": ^5.15.17 + "@mui/styles": 5.16.13 + "@scalprum/react-core": 0.9.3 + classnames: ^2.5.1 + react-use: ^17.2.4 + peerDependencies: + react: 16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: ^6.0.0 + checksum: 2c9f0046497b5f2f67f557078408bea951a897d0914aeb9a55b199c9a55dee094c0796438d23c4d092feb6b00ddf92dbd6494e5ff1b8a5285e7c31b928e40944 + languageName: node + linkType: hard + "@red-hat-developer-hub/backstage-plugin-global-header@npm:0.0.2": version: 0.0.2 resolution: "@red-hat-developer-hub/backstage-plugin-global-header@npm:0.0.2" @@ -20399,7 +20368,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:20.17.16": +"@types/node@npm:20.17.16, @types/node@npm:^20.1.1": version: 20.17.16 resolution: "@types/node@npm:20.17.16" dependencies: @@ -20431,15 +20400,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.1.1": - version: 20.17.14 - resolution: "@types/node@npm:20.17.14" - dependencies: - undici-types: ~6.19.2 - checksum: a5a775f57271e5a73c9e1afc4f6ea0d24cb9b4856e3d7d1788ff9ba0cc3e3a90e7883383f183f193a36eed0c758809df626a9ad653458a06d4fc82644d89b6e0 - languageName: node - linkType: hard - "@types/oauth@npm:*": version: 0.9.4 resolution: "@types/oauth@npm:0.9.4" @@ -32790,14 +32750,7 @@ __metadata: languageName: node linkType: hard -"jose@npm:^5.0.0": - version: 5.9.3 - resolution: "jose@npm:5.9.3" - checksum: d128f2b90daf76f14eb22a81528e4f1cd99aa73613ae9d7edad69479c0ae9c29d571108e21d6ac33c3892de7bea24c4a4b99b4eb63354ebe566683c719ee334e - languageName: node - linkType: hard - -"jose@npm:^5.9.6": +"jose@npm:^5.0.0, jose@npm:^5.9.6": version: 5.9.6 resolution: "jose@npm:5.9.6" checksum: 4b536da0201858ed4c4582e8bb479081f11e0c63dd0f5e473adde16fc539785e1f2f0409bc1fc7cbbb5b68026776c960b4952da3a06f6fdfff0b9764c9127ae0 @@ -40177,7 +40130,7 @@ __metadata: languageName: node linkType: hard -"react-use@npm:17.5.1, react-use@npm:^17.2.4, react-use@npm:^17.3.2, react-use@npm:^17.4.0, react-use@npm:^17.5.0": +"react-use@npm:17.5.1": version: 17.5.1 resolution: "react-use@npm:17.5.1" dependencies: @@ -40202,7 +40155,7 @@ __metadata: languageName: node linkType: hard -"react-use@npm:17.6.0": +"react-use@npm:17.6.0, react-use@npm:^17.2.4, react-use@npm:^17.3.2, react-use@npm:^17.4.0, react-use@npm:^17.5.0": version: 17.6.0 resolution: "react-use@npm:17.6.0" dependencies: @@ -40410,6 +40363,18 @@ __metadata: languageName: unknown linkType: soft +"red-hat-developer-hub-backstage-plugin-global-floating-action-button@workspace:dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button": + version: 0.0.0-use.local + resolution: "red-hat-developer-hub-backstage-plugin-global-floating-action-button@workspace:dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-floating-action-button" + dependencies: + "@backstage/cli": 0.29.5 + "@janus-idp/cli": 3.0.0 + "@mui/material": 5.16.14 + "@red-hat-developer-hub/backstage-plugin-global-floating-action-button": 0.0.6 + typescript: 5.7.3 + languageName: unknown + linkType: soft + "red-hat-developer-hub-backstage-plugin-global-header@workspace:dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header": version: 0.0.0-use.local resolution: "red-hat-developer-hub-backstage-plugin-global-header@workspace:dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header"