From 7d0841a034503e9a2dcfa989e9ba633b7f87f4a7 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 6 Jul 2026 14:10:59 +0530 Subject: [PATCH 1/3] feat(translations): Add NFS support Signed-off-by: rohitratannagar --- .../.changeset/add-nfs-support.md | 5 + workspaces/translations/app-config.yaml | 9 + workspaces/translations/package.json | 2 + .../{app => app-legacy}/.eslintignore | 0 .../packages/app-legacy/.eslintrc.js | 18 + .../{app => app-legacy}/e2e-tests/app.test.ts | 0 .../{app => app-legacy}/knip-report.md | 0 .../packages/app-legacy/package.json | 84 + .../public/android-chrome-192x192.png | Bin .../public/apple-touch-icon.png | Bin .../public/favicon-16x16.png | Bin .../public/favicon-32x32.png | Bin .../{app => app-legacy}/public/favicon.ico | Bin .../{app => app-legacy}/public/index.html | 0 .../{app => app-legacy}/public/manifest.json | 0 .../{app => app-legacy}/public/robots.txt | 0 .../public/safari-pinned-tab.svg | 0 .../{app => app-legacy}/src/App.test.tsx | 0 .../packages/app-legacy/src/App.tsx | 141 + .../packages/{app => app-legacy}/src/apis.ts | 2 +- .../src/components/Root/Root.tsx | 0 .../src/components/Root/index.ts | 0 .../src/components/catalog/EntityPage.tsx | 0 .../src/components/search/SearchPage.tsx | 0 .../packages/app-legacy/src/index.tsx | 21 + .../{app => app-legacy}/src/setupTests.ts | 0 .../translations/packages/app/package.json | 31 +- .../translations/packages/app/src/App.tsx | 141 +- .../translations/packages/app/src/index.tsx | 4 +- .../packages/app/src/modules/nav/Sidebar.tsx | 65 + .../app/src/modules/nav/SidebarLogo.tsx | 57 + .../packages/app/src/modules/nav/index.ts | 22 + .../plugins/translations-test/package.json | 28 +- .../translations-test/report-legacy.api.md | 62 + .../plugins/translations-test/report.api.md | 128 +- .../plugins/translations-test/src/index.tsx | 53 + .../src/{index.ts => legacy.ts} | 0 .../translations-test/src/translations/ref.ts | 7 + .../translations/app-config.dynamic.yaml | 16 + .../plugins/translations/package.json | 34 +- .../plugins/translations/report-alpha.api.md | 12 +- .../plugins/translations/report-legacy.api.md | 97 + .../report-translations-api-module.api.md | 13 + ...slations-pseudo-localization-module.api.md | 13 + .../plugins/translations/report.api.md | 220 +- .../plugins/translations/src/alpha.ts | 9 +- .../src/components/I18NextCard.tsx | 17 +- .../components/LoadedTranslationsTable.tsx | 72 +- .../components/PseudoLocalizationProvider.tsx | 17 +- .../plugins/translations/src/index.tsx | 129 + .../translations/src/{index.ts => legacy.ts} | 0 .../translations/src/translations/index.ts | 6 +- .../translations/src/translations/ref.ts | 11 +- .../src/translationsApiModuleExport.ts | 17 + ...nslationsPseudoLocalizationModuleExport.ts | 17 + workspaces/translations/yarn.lock | 2785 +++++------------ 56 files changed, 1978 insertions(+), 2387 deletions(-) create mode 100644 workspaces/translations/.changeset/add-nfs-support.md rename workspaces/translations/packages/{app => app-legacy}/.eslintignore (100%) create mode 100644 workspaces/translations/packages/app-legacy/.eslintrc.js rename workspaces/translations/packages/{app => app-legacy}/e2e-tests/app.test.ts (100%) rename workspaces/translations/packages/{app => app-legacy}/knip-report.md (100%) create mode 100644 workspaces/translations/packages/app-legacy/package.json rename workspaces/translations/packages/{app => app-legacy}/public/android-chrome-192x192.png (100%) rename workspaces/translations/packages/{app => app-legacy}/public/apple-touch-icon.png (100%) rename workspaces/translations/packages/{app => app-legacy}/public/favicon-16x16.png (100%) rename workspaces/translations/packages/{app => app-legacy}/public/favicon-32x32.png (100%) rename workspaces/translations/packages/{app => app-legacy}/public/favicon.ico (100%) rename workspaces/translations/packages/{app => app-legacy}/public/index.html (100%) rename workspaces/translations/packages/{app => app-legacy}/public/manifest.json (100%) rename workspaces/translations/packages/{app => app-legacy}/public/robots.txt (100%) rename workspaces/translations/packages/{app => app-legacy}/public/safari-pinned-tab.svg (100%) rename workspaces/translations/packages/{app => app-legacy}/src/App.test.tsx (100%) create mode 100644 workspaces/translations/packages/app-legacy/src/App.tsx rename workspaces/translations/packages/{app => app-legacy}/src/apis.ts (98%) rename workspaces/translations/packages/{app => app-legacy}/src/components/Root/Root.tsx (100%) rename workspaces/translations/packages/{app => app-legacy}/src/components/Root/index.ts (100%) rename workspaces/translations/packages/{app => app-legacy}/src/components/catalog/EntityPage.tsx (100%) rename workspaces/translations/packages/{app => app-legacy}/src/components/search/SearchPage.tsx (100%) create mode 100644 workspaces/translations/packages/app-legacy/src/index.tsx rename workspaces/translations/packages/{app => app-legacy}/src/setupTests.ts (100%) create mode 100644 workspaces/translations/packages/app/src/modules/nav/Sidebar.tsx create mode 100644 workspaces/translations/packages/app/src/modules/nav/SidebarLogo.tsx create mode 100644 workspaces/translations/packages/app/src/modules/nav/index.ts create mode 100644 workspaces/translations/plugins/translations-test/report-legacy.api.md create mode 100644 workspaces/translations/plugins/translations-test/src/index.tsx rename workspaces/translations/plugins/translations-test/src/{index.ts => legacy.ts} (100%) create mode 100644 workspaces/translations/plugins/translations/app-config.dynamic.yaml create mode 100644 workspaces/translations/plugins/translations/report-legacy.api.md create mode 100644 workspaces/translations/plugins/translations/report-translations-api-module.api.md create mode 100644 workspaces/translations/plugins/translations/report-translations-pseudo-localization-module.api.md create mode 100644 workspaces/translations/plugins/translations/src/index.tsx rename workspaces/translations/plugins/translations/src/{index.ts => legacy.ts} (100%) create mode 100644 workspaces/translations/plugins/translations/src/translationsApiModuleExport.ts create mode 100644 workspaces/translations/plugins/translations/src/translationsPseudoLocalizationModuleExport.ts diff --git a/workspaces/translations/.changeset/add-nfs-support.md b/workspaces/translations/.changeset/add-nfs-support.md new file mode 100644 index 0000000000..a9707ac910 --- /dev/null +++ b/workspaces/translations/.changeset/add-nfs-support.md @@ -0,0 +1,5 @@ +--- +'@red-hat-developer-hub/backstage-plugin-translations': minor +--- + +Add NFS (New Frontend System) support and graduate to stable. NFS extensions include PageBlueprint, ApiBlueprint, TranslationBlueprint, and AppRootWrapperBlueprint. OFS exports are now available at `./legacy`. diff --git a/workspaces/translations/app-config.yaml b/workspaces/translations/app-config.yaml index 678f3fbf8c..7f0fb7e11e 100644 --- a/workspaces/translations/app-config.yaml +++ b/workspaces/translations/app-config.yaml @@ -1,6 +1,15 @@ app: title: Scaffolded Backstage App baseUrl: http://localhost:3000 + extensions: + - app/routes: + config: + redirects: + - from: / + to: /catalog + - api:app/app-language: + config: + availableLanguages: [en, de, es, fr, it, ja] organization: name: My Company diff --git a/workspaces/translations/package.json b/workspaces/translations/package.json index 4aae0223c3..a77f5ad6cf 100644 --- a/workspaces/translations/package.json +++ b/workspaces/translations/package.json @@ -7,6 +7,7 @@ }, "scripts": { "start": "backstage-cli repo start", + "start:legacy": "yarn workspace app-legacy start", "start-backend": "yarn workspace backend start", "build:backend": "yarn workspace backend build", "tsc": "tsc", @@ -46,6 +47,7 @@ "@changesets/cli": "^2.27.1", "@jest/environment-jsdom-abstract": "^30.3.0", "@playwright/test": "1.60.0", + "@react-stately/layout": "^4.7.1", "@types/jest": "^30.0.0", "@types/jsdom": "^27.0.0", "jest": "^30.3.0", diff --git a/workspaces/translations/packages/app/.eslintignore b/workspaces/translations/packages/app-legacy/.eslintignore similarity index 100% rename from workspaces/translations/packages/app/.eslintignore rename to workspaces/translations/packages/app-legacy/.eslintignore diff --git a/workspaces/translations/packages/app-legacy/.eslintrc.js b/workspaces/translations/packages/app-legacy/.eslintrc.js new file mode 100644 index 0000000000..493ce7565d --- /dev/null +++ b/workspaces/translations/packages/app-legacy/.eslintrc.js @@ -0,0 +1,18 @@ +/* + * Copyright Red Hat, Inc. + * + * 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. + */ + +// eslint-disable-next-line @backstage/no-relative-monorepo-imports -- workspace ESLint shared config +module.exports = require('../../eslint.frontend-shared.cjs')(__dirname); diff --git a/workspaces/translations/packages/app/e2e-tests/app.test.ts b/workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts similarity index 100% rename from workspaces/translations/packages/app/e2e-tests/app.test.ts rename to workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts diff --git a/workspaces/translations/packages/app/knip-report.md b/workspaces/translations/packages/app-legacy/knip-report.md similarity index 100% rename from workspaces/translations/packages/app/knip-report.md rename to workspaces/translations/packages/app-legacy/knip-report.md diff --git a/workspaces/translations/packages/app-legacy/package.json b/workspaces/translations/packages/app-legacy/package.json new file mode 100644 index 0000000000..bc684f3831 --- /dev/null +++ b/workspaces/translations/packages/app-legacy/package.json @@ -0,0 +1,84 @@ +{ + "name": "app-legacy", + "version": "0.0.0", + "private": true, + "bundled": true, + "repository": { + "type": "git", + "url": "https://github.com/redhat-developer/rhdh-plugins", + "directory": "workspaces/translations/packages/app-legacy" + }, + "backstage": { + "role": "frontend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "test": "backstage-cli package test", + "lint": "backstage-cli package lint" + }, + "dependencies": { + "@backstage/app-defaults": "^1.7.6", + "@backstage/catalog-model": "^1.7.7", + "@backstage/cli": "^0.36.0", + "@backstage/core-app-api": "^1.19.6", + "@backstage/core-components": "^0.18.8", + "@backstage/core-plugin-api": "^1.12.4", + "@backstage/integration-react": "^1.2.16", + "@backstage/plugin-api-docs": "^0.13.5", + "@backstage/plugin-catalog": "^2.0.1", + "@backstage/plugin-catalog-common": "^1.1.8", + "@backstage/plugin-catalog-graph": "^0.6.0", + "@backstage/plugin-catalog-import": "^0.13.11", + "@backstage/plugin-catalog-react": "^2.1.1", + "@backstage/plugin-kubernetes": "^0.12.17", + "@backstage/plugin-notifications": "^0.5.15", + "@backstage/plugin-org": "^0.7.0", + "@backstage/plugin-permission-react": "^0.4.41", + "@backstage/plugin-scaffolder": "^1.36.1", + "@backstage/plugin-search": "^1.7.0", + "@backstage/plugin-search-react": "^1.11.0", + "@backstage/plugin-signals": "^0.0.29", + "@backstage/plugin-techdocs": "^1.17.2", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.34", + "@backstage/plugin-techdocs-react": "^1.3.9", + "@backstage/plugin-user-settings": "^0.9.1", + "@backstage/theme": "^0.7.2", + "@backstage/ui": "^0.13.2", + "@mui/icons-material": "^5.18.0", + "@mui/material": "^5.18.0", + "@red-hat-developer-hub/backstage-plugin-theme": "^0.14.0", + "@red-hat-developer-hub/backstage-plugin-translations": "workspace:^", + "@red-hat-developer-hub/backstage-plugin-translations-test": "workspace:^", + "react": "^18.0.2", + "react-dom": "^18.0.2", + "react-router": "^6.30.4", + "react-router-dom": "^6.3.0" + }, + "devDependencies": { + "@backstage/test-utils": "^1.7.16", + "@playwright/test": "1.60.0", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "@types/react-dom": "*", + "cross-env": "^7.0.0" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/translations/packages/app/public/android-chrome-192x192.png b/workspaces/translations/packages/app-legacy/public/android-chrome-192x192.png similarity index 100% rename from workspaces/translations/packages/app/public/android-chrome-192x192.png rename to workspaces/translations/packages/app-legacy/public/android-chrome-192x192.png diff --git a/workspaces/translations/packages/app/public/apple-touch-icon.png b/workspaces/translations/packages/app-legacy/public/apple-touch-icon.png similarity index 100% rename from workspaces/translations/packages/app/public/apple-touch-icon.png rename to workspaces/translations/packages/app-legacy/public/apple-touch-icon.png diff --git a/workspaces/translations/packages/app/public/favicon-16x16.png b/workspaces/translations/packages/app-legacy/public/favicon-16x16.png similarity index 100% rename from workspaces/translations/packages/app/public/favicon-16x16.png rename to workspaces/translations/packages/app-legacy/public/favicon-16x16.png diff --git a/workspaces/translations/packages/app/public/favicon-32x32.png b/workspaces/translations/packages/app-legacy/public/favicon-32x32.png similarity index 100% rename from workspaces/translations/packages/app/public/favicon-32x32.png rename to workspaces/translations/packages/app-legacy/public/favicon-32x32.png diff --git a/workspaces/translations/packages/app/public/favicon.ico b/workspaces/translations/packages/app-legacy/public/favicon.ico similarity index 100% rename from workspaces/translations/packages/app/public/favicon.ico rename to workspaces/translations/packages/app-legacy/public/favicon.ico diff --git a/workspaces/translations/packages/app/public/index.html b/workspaces/translations/packages/app-legacy/public/index.html similarity index 100% rename from workspaces/translations/packages/app/public/index.html rename to workspaces/translations/packages/app-legacy/public/index.html diff --git a/workspaces/translations/packages/app/public/manifest.json b/workspaces/translations/packages/app-legacy/public/manifest.json similarity index 100% rename from workspaces/translations/packages/app/public/manifest.json rename to workspaces/translations/packages/app-legacy/public/manifest.json diff --git a/workspaces/translations/packages/app/public/robots.txt b/workspaces/translations/packages/app-legacy/public/robots.txt similarity index 100% rename from workspaces/translations/packages/app/public/robots.txt rename to workspaces/translations/packages/app-legacy/public/robots.txt diff --git a/workspaces/translations/packages/app/public/safari-pinned-tab.svg b/workspaces/translations/packages/app-legacy/public/safari-pinned-tab.svg similarity index 100% rename from workspaces/translations/packages/app/public/safari-pinned-tab.svg rename to workspaces/translations/packages/app-legacy/public/safari-pinned-tab.svg diff --git a/workspaces/translations/packages/app/src/App.test.tsx b/workspaces/translations/packages/app-legacy/src/App.test.tsx similarity index 100% rename from workspaces/translations/packages/app/src/App.test.tsx rename to workspaces/translations/packages/app-legacy/src/App.test.tsx diff --git a/workspaces/translations/packages/app-legacy/src/App.tsx b/workspaces/translations/packages/app-legacy/src/App.tsx new file mode 100644 index 0000000000..066b34ecd0 --- /dev/null +++ b/workspaces/translations/packages/app-legacy/src/App.tsx @@ -0,0 +1,141 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { Navigate, Route } from 'react-router-dom'; +import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; +import { + CatalogEntityPage, + CatalogIndexPage, + catalogPlugin, +} from '@backstage/plugin-catalog'; +import { + CatalogImportPage, + catalogImportPlugin, +} from '@backstage/plugin-catalog-import'; +import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; +import { orgPlugin } from '@backstage/plugin-org'; +import { SearchPage } from '@backstage/plugin-search'; +import { + TechDocsIndexPage, + techdocsPlugin, + TechDocsReaderPage, +} from '@backstage/plugin-techdocs'; +import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; +import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { UserSettingsPage } from '@backstage/plugin-user-settings'; +import { apis } from './apis'; +import { entityPage } from './components/catalog/EntityPage'; +import { searchPage } from './components/search/SearchPage'; +import { Root } from './components/Root'; + +import { + AlertDisplay, + OAuthRequestDialog, + SignInPage, +} from '@backstage/core-components'; +import { createApp } from '@backstage/app-defaults'; +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 { NotificationsPage } from '@backstage/plugin-notifications'; +import { SignalsDisplay } from '@backstage/plugin-signals'; + +import { getThemes } from '@red-hat-developer-hub/backstage-plugin-theme'; + +import { + TranslationsPage, + PseudoLocalizationProvider, +} from '@red-hat-developer-hub/backstage-plugin-translations/legacy'; +import { TranslationsTestPage } from '@red-hat-developer-hub/backstage-plugin-translations-test/legacy'; + +const app = createApp({ + apis, + bindRoutes({ bind }) { + bind(catalogPlugin.externalRoutes, { + createComponent: scaffolderPlugin.routes.root, + viewTechDoc: techdocsPlugin.routes.docRoot, + createFromTemplate: scaffolderPlugin.routes.selectedTemplate, + }); + bind(apiDocsPlugin.externalRoutes, { + registerApi: catalogImportPlugin.routes.importPage, + }); + bind(scaffolderPlugin.externalRoutes, { + registerComponent: catalogImportPlugin.routes.importPage, + viewTechDoc: techdocsPlugin.routes.docRoot, + }); + bind(orgPlugin.externalRoutes, { + catalogIndex: catalogPlugin.routes.catalogIndex, + }); + }, + components: { + SignInPage: props => , + }, + themes: getThemes(), + __experimentalTranslations: { + availableLanguages: ['en', 'de', 'es', 'fr', 'it', 'ja'], + }, +}); + +const routes = ( + + } /> + } /> + } + > + {entityPage} + + } /> + } + > + + + + + } /> + } /> + + + + } + /> + }> + {searchPage} + + } /> + } /> + } /> + } /> + } /> + +); + +export default app.createRoot( + + + + + + {routes} + + , +); diff --git a/workspaces/translations/packages/app/src/apis.ts b/workspaces/translations/packages/app-legacy/src/apis.ts similarity index 98% rename from workspaces/translations/packages/app/src/apis.ts rename to workspaces/translations/packages/app-legacy/src/apis.ts index a1bc62d7c8..4cc7c597c7 100644 --- a/workspaces/translations/packages/app/src/apis.ts +++ b/workspaces/translations/packages/app-legacy/src/apis.ts @@ -31,7 +31,7 @@ import { translationApiRef, } from '@backstage/core-plugin-api/alpha'; -import { I18nextTranslationApi } from '@red-hat-developer-hub/backstage-plugin-translations'; +import { I18nextTranslationApi } from '@red-hat-developer-hub/backstage-plugin-translations/legacy'; import { translationsPluginTranslations } from '@red-hat-developer-hub/backstage-plugin-translations/alpha'; import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alpha'; diff --git a/workspaces/translations/packages/app/src/components/Root/Root.tsx b/workspaces/translations/packages/app-legacy/src/components/Root/Root.tsx similarity index 100% rename from workspaces/translations/packages/app/src/components/Root/Root.tsx rename to workspaces/translations/packages/app-legacy/src/components/Root/Root.tsx diff --git a/workspaces/translations/packages/app/src/components/Root/index.ts b/workspaces/translations/packages/app-legacy/src/components/Root/index.ts similarity index 100% rename from workspaces/translations/packages/app/src/components/Root/index.ts rename to workspaces/translations/packages/app-legacy/src/components/Root/index.ts diff --git a/workspaces/translations/packages/app/src/components/catalog/EntityPage.tsx b/workspaces/translations/packages/app-legacy/src/components/catalog/EntityPage.tsx similarity index 100% rename from workspaces/translations/packages/app/src/components/catalog/EntityPage.tsx rename to workspaces/translations/packages/app-legacy/src/components/catalog/EntityPage.tsx diff --git a/workspaces/translations/packages/app/src/components/search/SearchPage.tsx b/workspaces/translations/packages/app-legacy/src/components/search/SearchPage.tsx similarity index 100% rename from workspaces/translations/packages/app/src/components/search/SearchPage.tsx rename to workspaces/translations/packages/app-legacy/src/components/search/SearchPage.tsx diff --git a/workspaces/translations/packages/app-legacy/src/index.tsx b/workspaces/translations/packages/app-legacy/src/index.tsx new file mode 100644 index 0000000000..d3cb9988c7 --- /dev/null +++ b/workspaces/translations/packages/app-legacy/src/index.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 '@backstage/cli/asset-types'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import '@backstage/ui/css/styles.css'; + +ReactDOM.createRoot(document.getElementById('root')!).render(); diff --git a/workspaces/translations/packages/app/src/setupTests.ts b/workspaces/translations/packages/app-legacy/src/setupTests.ts similarity index 100% rename from workspaces/translations/packages/app/src/setupTests.ts rename to workspaces/translations/packages/app-legacy/src/setupTests.ts diff --git a/workspaces/translations/packages/app/package.json b/workspaces/translations/packages/app/package.json index 4a95465b24..344752f950 100644 --- a/workspaces/translations/packages/app/package.json +++ b/workspaces/translations/packages/app/package.json @@ -19,35 +19,17 @@ "lint": "backstage-cli package lint" }, "dependencies": { - "@backstage/app-defaults": "^1.7.6", - "@backstage/catalog-model": "^1.7.7", "@backstage/cli": "^0.36.0", - "@backstage/core-app-api": "^1.19.6", "@backstage/core-components": "^0.18.8", "@backstage/core-plugin-api": "^1.12.4", - "@backstage/integration-react": "^1.2.16", - "@backstage/plugin-api-docs": "^0.13.5", + "@backstage/frontend-defaults": "^0.5.0", + "@backstage/frontend-plugin-api": "^0.17.2", + "@backstage/plugin-app-react": "^0.2.1", "@backstage/plugin-catalog": "^2.0.1", - "@backstage/plugin-catalog-common": "^1.1.8", - "@backstage/plugin-catalog-graph": "^0.6.0", - "@backstage/plugin-catalog-import": "^0.13.11", - "@backstage/plugin-catalog-react": "^2.1.1", - "@backstage/plugin-kubernetes": "^0.12.17", - "@backstage/plugin-notifications": "^0.5.15", - "@backstage/plugin-org": "^0.7.0", - "@backstage/plugin-permission-react": "^0.4.41", - "@backstage/plugin-scaffolder": "^1.36.1", - "@backstage/plugin-search": "^1.7.0", - "@backstage/plugin-search-react": "^1.11.0", - "@backstage/plugin-signals": "^0.0.29", - "@backstage/plugin-techdocs": "^1.17.2", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.34", - "@backstage/plugin-techdocs-react": "^1.3.9", "@backstage/plugin-user-settings": "^0.9.1", - "@backstage/theme": "^0.7.2", "@backstage/ui": "^0.13.2", - "@mui/icons-material": "^5.18.0", - "@mui/material": "^5.18.0", + "@mui/icons-material": "5.18.0", + "@mui/material": "5.18.0", "@red-hat-developer-hub/backstage-plugin-theme": "^0.14.0", "@red-hat-developer-hub/backstage-plugin-translations": "workspace:^", "@red-hat-developer-hub/backstage-plugin-translations-test": "workspace:^", @@ -57,8 +39,7 @@ "react-router-dom": "^6.3.0" }, "devDependencies": { - "@backstage/test-utils": "^1.7.16", - "@playwright/test": "1.60.0", + "@backstage/frontend-test-utils": "^0.5.1", "@testing-library/dom": "^9.0.0", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", diff --git a/workspaces/translations/packages/app/src/App.tsx b/workspaces/translations/packages/app/src/App.tsx index 5617bb2aa3..b7d3d751a5 100644 --- a/workspaces/translations/packages/app/src/App.tsx +++ b/workspaces/translations/packages/app/src/App.tsx @@ -13,129 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Navigate, Route } from 'react-router-dom'; -import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; -import { - CatalogEntityPage, - CatalogIndexPage, - catalogPlugin, -} from '@backstage/plugin-catalog'; -import { - CatalogImportPage, - catalogImportPlugin, -} from '@backstage/plugin-catalog-import'; -import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; -import { orgPlugin } from '@backstage/plugin-org'; -import { SearchPage } from '@backstage/plugin-search'; -import { - TechDocsIndexPage, - techdocsPlugin, - TechDocsReaderPage, -} from '@backstage/plugin-techdocs'; -import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; -import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; -import { UserSettingsPage } from '@backstage/plugin-user-settings'; -import { apis } from './apis'; -import { entityPage } from './components/catalog/EntityPage'; -import { searchPage } from './components/search/SearchPage'; -import { Root } from './components/Root'; - -import { - AlertDisplay, - OAuthRequestDialog, - SignInPage, -} from '@backstage/core-components'; -import { createApp } from '@backstage/app-defaults'; -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 { NotificationsPage } from '@backstage/plugin-notifications'; -import { SignalsDisplay } from '@backstage/plugin-signals'; - -import { getThemes } from '@red-hat-developer-hub/backstage-plugin-theme'; - -import { - TranslationsPage, - PseudoLocalizationProvider, +import { createApp } from '@backstage/frontend-defaults'; +import translationsPlugin, { + translationsApiModule, } from '@red-hat-developer-hub/backstage-plugin-translations'; -import { TranslationsTestPage } from '@red-hat-developer-hub/backstage-plugin-translations-test'; +import translationsTestPlugin from '@red-hat-developer-hub/backstage-plugin-translations-test'; +import { rhdhThemeModule } from '@red-hat-developer-hub/backstage-plugin-theme/alpha'; +import catalogPlugin from '@backstage/plugin-catalog/alpha'; +import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; +import { navModule } from './modules/nav'; -const app = createApp({ - apis, - bindRoutes({ bind }) { - bind(catalogPlugin.externalRoutes, { - createComponent: scaffolderPlugin.routes.root, - viewTechDoc: techdocsPlugin.routes.docRoot, - createFromTemplate: scaffolderPlugin.routes.selectedTemplate, - }); - bind(apiDocsPlugin.externalRoutes, { - registerApi: catalogImportPlugin.routes.importPage, - }); - bind(scaffolderPlugin.externalRoutes, { - registerComponent: catalogImportPlugin.routes.importPage, - viewTechDoc: techdocsPlugin.routes.docRoot, - }); - bind(orgPlugin.externalRoutes, { - catalogIndex: catalogPlugin.routes.catalogIndex, - }); - }, - components: { - SignInPage: props => , - }, - themes: getThemes(), - __experimentalTranslations: { - availableLanguages: ['en', 'de', 'es', 'fr', 'it', 'ja'], - }, +export default createApp({ + features: [ + translationsPlugin, + translationsApiModule, + translationsTestPlugin, + rhdhThemeModule, + catalogPlugin, + userSettingsPlugin, + navModule, + ], }); - -const routes = ( - - } /> - } /> - } - > - {entityPage} - - } /> - } - > - - - - - } /> - } /> - - - - } - /> - }> - {searchPage} - - } /> - } /> - } /> - } /> - } /> - -); - -export default app.createRoot( - - - - - - {routes} - - , -); diff --git a/workspaces/translations/packages/app/src/index.tsx b/workspaces/translations/packages/app/src/index.tsx index d3cb9988c7..357d5a7722 100644 --- a/workspaces/translations/packages/app/src/index.tsx +++ b/workspaces/translations/packages/app/src/index.tsx @@ -14,8 +14,8 @@ * limitations under the License. */ import '@backstage/cli/asset-types'; +import '@backstage/ui/css/styles.css'; import ReactDOM from 'react-dom/client'; import App from './App'; -import '@backstage/ui/css/styles.css'; -ReactDOM.createRoot(document.getElementById('root')!).render(); +ReactDOM.createRoot(document.getElementById('root')!).render(App.createRoot()); diff --git a/workspaces/translations/packages/app/src/modules/nav/Sidebar.tsx b/workspaces/translations/packages/app/src/modules/nav/Sidebar.tsx new file mode 100644 index 0000000000..7bc93883e2 --- /dev/null +++ b/workspaces/translations/packages/app/src/modules/nav/Sidebar.tsx @@ -0,0 +1,65 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + Sidebar, + SidebarDivider, + SidebarGroup, + SidebarItem, + SidebarSpace, +} from '@backstage/core-components'; +import { NavContentBlueprint } from '@backstage/plugin-app-react'; +import ExtensionIcon from '@mui/icons-material/Extension'; +import MenuIcon from '@mui/icons-material/Menu'; +import ScienceIcon from '@mui/icons-material/Science'; +import { SidebarLogo } from './SidebarLogo'; +import { UserSettingsSignInAvatar } from '@backstage/plugin-user-settings'; + +export const SidebarContent = NavContentBlueprint.make({ + params: { + component: ({ navItems }) => { + const items = navItems.withComponent(({ title, icon, href }) => ( + icon} to={href} text={title} /> + )); + + return ( + + + }> + {items.rest()} + + + + + + + } + to="/settings" + /> + + ); + }, + }, +}); diff --git a/workspaces/translations/packages/app/src/modules/nav/SidebarLogo.tsx b/workspaces/translations/packages/app/src/modules/nav/SidebarLogo.tsx new file mode 100644 index 0000000000..f41317933c --- /dev/null +++ b/workspaces/translations/packages/app/src/modules/nav/SidebarLogo.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + Link, + sidebarConfig, + useSidebarOpenState, +} from '@backstage/core-components'; +import Box from '@mui/material/Box'; +import { + LogoFull, + LogoIcon, +} from '@red-hat-developer-hub/backstage-plugin-theme'; + +export const SidebarLogo = () => { + const { isOpen } = useSidebarOpenState(); + const drawerWidth = isOpen + ? sidebarConfig.drawerWidthOpen + : sidebarConfig.drawerWidthClosed; + + return ( + + + {isOpen ? : } + + + ); +}; diff --git a/workspaces/translations/packages/app/src/modules/nav/index.ts b/workspaces/translations/packages/app/src/modules/nav/index.ts new file mode 100644 index 0000000000..94f236c69d --- /dev/null +++ b/workspaces/translations/packages/app/src/modules/nav/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { createFrontendModule } from '@backstage/frontend-plugin-api'; +import { SidebarContent } from './Sidebar'; + +export const navModule = createFrontendModule({ + pluginId: 'app', + extensions: [SidebarContent], +}); diff --git a/workspaces/translations/plugins/translations-test/package.json b/workspaces/translations/plugins/translations-test/package.json index 91f8a57fd8..b9dba0b300 100644 --- a/workspaces/translations/plugins/translations-test/package.json +++ b/workspaces/translations/plugins/translations-test/package.json @@ -2,12 +2,25 @@ "name": "@red-hat-developer-hub/backstage-plugin-translations-test", "version": "0.3.0", "license": "Apache-2.0", - "main": "src/index.ts", - "types": "src/index.ts", + "main": "src/index.tsx", + "types": "src/index.tsx", + "exports": { + ".": "./src/index.tsx", + "./legacy": "./src/legacy.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "legacy": [ + "src/legacy.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "publishConfig": { - "access": "public", - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" + "access": "public" }, "repository": { "type": "git", @@ -34,9 +47,12 @@ "dependencies": { "@backstage/core-components": "^0.18.8", "@backstage/core-plugin-api": "^1.12.4", + "@backstage/frontend-plugin-api": "^0.17.2", + "@backstage/plugin-app-react": "^0.2.1", "@backstage/plugin-user-settings": "^0.9.1", "@backstage/theme": "^0.7.2", - "@backstage/ui": "^0.13.2" + "@backstage/ui": "^0.13.2", + "@mui/icons-material": "5.18.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0 || ^18.0.0" diff --git a/workspaces/translations/plugins/translations-test/report-legacy.api.md b/workspaces/translations/plugins/translations-test/report-legacy.api.md new file mode 100644 index 0000000000..d7b6f93a9e --- /dev/null +++ b/workspaces/translations/plugins/translations-test/report-legacy.api.md @@ -0,0 +1,62 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-translations-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/jsx-runtime'; +import { RouteRef } from '@backstage/core-plugin-api'; +import { TranslationRef } from '@backstage/frontend-plugin-api'; +import { TranslationResource } from '@backstage/frontend-plugin-api'; + +// @public (undocumented) +export const TranslationsTestPage: () => JSX_2.Element; + +// @public (undocumented) +export const translationsTestPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// @public (undocumented) +export const translationsTestTranslationRef: TranslationRef< + 'plugin.translations-test', + { + readonly 'page.title': string; + readonly 'page.subtitle': string; + readonly 'interpolation.key': string; + readonly 'interpolation.nested.key': string; + readonly 'interpolation.complex.message': string; + readonly 'interpolation.complex.linkText': string; + readonly 'essentials.key': string; + readonly 'essentials.look.deep': string; + readonly 'formatting.intlNumber': string; + readonly 'formatting.intlNumberWithOptions': string; + readonly 'formatting.intlDateTime': string; + readonly 'formatting.intlRelativeTime': string; + readonly 'formatting.intlRelativeTimeWithOptions': string; + readonly 'formatting.intlRelativeTimeWithOptionsExplicit': string; + readonly 'plurals.key_zero': string; + readonly 'plurals.key_one': string; + readonly 'plurals.key_two': string; + readonly 'plurals.key_few': string; + readonly 'plurals.key_many': string; + readonly 'plurals.key_other': string; + readonly 'plurals.keyWithCount_one': string; + readonly 'plurals.keyWithCount_other': string; + readonly 'context.friend': string; + readonly 'context.friend_male': string; + readonly 'context.friend_female': string; + readonly 'objects.tree.res': string; + readonly 'arrays.array': string; + } +>; + +// @public (undocumented) +export const translationsTestTranslations: TranslationResource<'plugin.translations-test'>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/translations/plugins/translations-test/report.api.md b/workspaces/translations/plugins/translations-test/report.api.md index bf6d8a832f..435c1c40c8 100644 --- a/workspaces/translations/plugins/translations-test/report.api.md +++ b/workspaces/translations/plugins/translations-test/report.api.md @@ -3,34 +3,136 @@ > 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/jsx-runtime'; -import { RouteRef } from '@backstage/core-plugin-api'; +import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; +import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; +import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; +import { ExtensionInput } from '@backstage/frontend-plugin-api'; +import { IconElement } from '@backstage/frontend-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api'; +import { OverridableFrontendPlugin } from '@backstage/frontend-plugin-api'; +import { RouteRef } from '@backstage/frontend-plugin-api'; +import { TranslationMessages } from '@backstage/frontend-plugin-api'; import { TranslationRef } from '@backstage/frontend-plugin-api'; import { TranslationResource } from '@backstage/frontend-plugin-api'; // @public (undocumented) -export const TranslationsTestPage: () => JSX_2.Element; - -// @public (undocumented) -export const translationsTestPlugin: BackstagePlugin< - { - root: RouteRef; - }, +const _default: OverridableFrontendPlugin< {}, - {} + {}, + { + 'page:translations-test': OverridableExtensionDefinition<{ + kind: 'page'; + name: undefined; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + path?: string | undefined; + title?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef< + string, + 'core.title', + { + optional: true; + } + > + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: { + pages: ExtensionInput< + | ConfigurableExtensionDataRef + | ConfigurableExtensionDataRef + | ConfigurableExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ConfigurableExtensionDataRef< + string, + 'core.title', + { + optional: true; + } + > + | ConfigurableExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >, + { + singleton: false; + optional: false; + internal: false; + } + >; + }; + params: { + path: string; + title?: string; + icon?: IconElement; + loader?: () => Promise; + routeRef?: RouteRef; + noHeader?: boolean; + }; + }>; + 'translation:translations-test/translations-test-translations': OverridableExtensionDefinition<{ + kind: 'translation'; + name: 'translations-test-translations'; + config: {}; + configInput: {}; + output: ExtensionDataRef< + | TranslationResource + | TranslationMessages< + string, + { + [x: string]: string; + }, + boolean + >, + 'core.translation.translation', + {} + >; + inputs: {}; + params: { + resource: TranslationResource | TranslationMessages; + }; + }>; + } >; +export default _default; // @public (undocumented) export const translationsTestTranslationRef: TranslationRef< 'plugin.translations-test', { + readonly 'page.title': string; + readonly 'page.subtitle': string; readonly 'interpolation.key': string; readonly 'interpolation.nested.key': string; readonly 'interpolation.complex.message': string; readonly 'interpolation.complex.linkText': string; - readonly 'page.title': string; - readonly 'page.subtitle': string; readonly 'essentials.key': string; readonly 'essentials.look.deep': string; readonly 'formatting.intlNumber': string; diff --git a/workspaces/translations/plugins/translations-test/src/index.tsx b/workspaces/translations/plugins/translations-test/src/index.tsx new file mode 100644 index 0000000000..7ea41db78e --- /dev/null +++ b/workspaces/translations/plugins/translations-test/src/index.tsx @@ -0,0 +1,53 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + createFrontendPlugin, + PageBlueprint, +} from '@backstage/frontend-plugin-api'; +import { TranslationBlueprint } from '@backstage/plugin-app-react'; +import ScienceIcon from '@mui/icons-material/Science'; +import { + translationsTestTranslationRef, + translationsTestTranslations, +} from './translations'; + +const translationsTestPage = PageBlueprint.make({ + params: { + path: '/translations-test', + title: 'Translations Test', + icon: , + noHeader: true, + loader: () => + import('./components/TranslationsTestPage').then(m => ( + + )), + }, +}); + +const translationsTestTranslation = TranslationBlueprint.make({ + name: 'translations-test-translations', + params: { + resource: translationsTestTranslations, + }, +}); + +/** @public */ +export default createFrontendPlugin({ + pluginId: 'translations-test', + extensions: [translationsTestPage, translationsTestTranslation], +}); + +export { translationsTestTranslationRef, translationsTestTranslations }; diff --git a/workspaces/translations/plugins/translations-test/src/index.ts b/workspaces/translations/plugins/translations-test/src/legacy.ts similarity index 100% rename from workspaces/translations/plugins/translations-test/src/index.ts rename to workspaces/translations/plugins/translations-test/src/legacy.ts diff --git a/workspaces/translations/plugins/translations-test/src/translations/ref.ts b/workspaces/translations/plugins/translations-test/src/translations/ref.ts index a132cc1410..b91f345957 100644 --- a/workspaces/translations/plugins/translations-test/src/translations/ref.ts +++ b/workspaces/translations/plugins/translations-test/src/translations/ref.ts @@ -84,4 +84,11 @@ export const translationsTestMessages = { export const translationsTestTranslationRef = createTranslationRef({ id: 'plugin.translations-test', messages: translationsTestMessages, + translations: { + de: () => import('./de') as any, + es: () => import('./es') as any, + fr: () => import('./fr') as any, + it: () => import('./it') as any, + ja: () => import('./ja') as any, + }, }); diff --git a/workspaces/translations/plugins/translations/app-config.dynamic.yaml b/workspaces/translations/plugins/translations/app-config.dynamic.yaml new file mode 100644 index 0000000000..d2bc287792 --- /dev/null +++ b/workspaces/translations/plugins/translations/app-config.dynamic.yaml @@ -0,0 +1,16 @@ +# please keep this in sync with rhdh/dynamic-plugins.default.yaml +dynamicPlugins: + frontend: + red-hat-developer-hub.backstage-plugin-translations: + translationResources: + - importName: translationsPluginTranslations + module: Alpha + ref: translationsPluginTranslationRef + dynamicRoutes: + - path: /translations + importName: TranslationsPage + module: Legacy + mountPoints: + - mountPoint: application/provider + importName: PseudoLocalizationProvider + module: Legacy diff --git a/workspaces/translations/plugins/translations/package.json b/workspaces/translations/plugins/translations/package.json index 6533323aea..06ec358dab 100644 --- a/workspaces/translations/plugins/translations/package.json +++ b/workspaces/translations/plugins/translations/package.json @@ -6,8 +6,11 @@ "access": "public" }, "exports": { - ".": "./src/index.ts", + ".": "./src/index.tsx", "./alpha": "./src/alpha.ts", + "./legacy": "./src/legacy.ts", + "./translations-api-module": "./src/translationsApiModuleExport.ts", + "./translations-pseudo-localization-module": "./src/translationsPseudoLocalizationModuleExport.ts", "./package.json": "./package.json" }, "typesVersions": { @@ -15,13 +18,22 @@ "alpha": [ "src/alpha.ts" ], + "legacy": [ + "src/legacy.ts" + ], + "translations-api-module": [ + "src/translationsApiModuleExport.ts" + ], + "translations-pseudo-localization-module": [ + "src/translationsPseudoLocalizationModuleExport.ts" + ], "package.json": [ "package.json" ] } }, - "main": "src/index.ts", - "types": "src/index.ts", + "main": "src/index.tsx", + "types": "src/index.tsx", "repository": { "type": "git", "url": "https://github.com/redhat-developer/rhdh-plugins", @@ -36,6 +48,16 @@ "@red-hat-developer-hub/backstage-plugin-translations-backend" ] }, + "scalprum": { + "name": "red-hat-developer-hub.backstage-plugin-translations", + "exposedModules": { + "PluginRoot": "./src/index.tsx", + "Alpha": "./src/alpha.ts", + "Legacy": "./src/legacy.ts", + "TranslationsApiModule": "./src/translationsApiModuleExport.ts", + "TranslationsPseudoLocalizationModule": "./src/translationsPseudoLocalizationModuleExport.ts" + } + }, "sideEffects": false, "scripts": { "start": "backstage-cli package start", @@ -49,6 +71,8 @@ "dependencies": { "@backstage/core-components": "^0.18.8", "@backstage/core-plugin-api": "^1.12.4", + "@backstage/frontend-plugin-api": "^0.17.2", + "@backstage/plugin-app-react": "^0.2.1", "@backstage/plugin-user-settings": "^0.9.1", "@backstage/theme": "^0.7.2", "@backstage/types": "^1.2.2", @@ -75,6 +99,8 @@ "react": "^16.13.1 || ^17.0.0 || ^18.0.0" }, "files": [ - "dist" + "app-config.dynamic.yaml", + "dist", + "config.d.ts" ] } diff --git a/workspaces/translations/plugins/translations/report-alpha.api.md b/workspaces/translations/plugins/translations/report-alpha.api.md index 0e2b2ab9ff..7fb397ef8c 100644 --- a/workspaces/translations/plugins/translations/report-alpha.api.md +++ b/workspaces/translations/plugins/translations/report-alpha.api.md @@ -6,18 +6,17 @@ import { TranslationRef } from '@backstage/frontend-plugin-api'; import { TranslationResource } from '@backstage/frontend-plugin-api'; -// @alpha (undocumented) +// @public (undocumented) export const translationsPluginTranslationRef: TranslationRef< 'plugin.translations', { + readonly 'page.title': string; + readonly 'page.subtitle': string; readonly 'table.title': string; readonly 'table.headers.refId': string; readonly 'table.headers.key': string; readonly 'table.options.pageSize': string; readonly 'table.options.pageSizeOptions': string; - readonly 'language.displayFormat': string; - readonly 'page.title': string; - readonly 'page.subtitle': string; readonly 'export.title': string; readonly 'export.downloadButton': string; readonly 'export.filename': string; @@ -25,11 +24,10 @@ export const translationsPluginTranslationRef: TranslationRef< readonly 'common.error': string; readonly 'common.noData': string; readonly 'common.refresh': string; + readonly 'language.displayFormat': string; } >; -// @alpha (undocumented) +// @public (undocumented) export const translationsPluginTranslations: TranslationResource<'plugin.translations'>; - -// (No @packageDocumentation comment for this package) ``` diff --git a/workspaces/translations/plugins/translations/report-legacy.api.md b/workspaces/translations/plugins/translations/report-legacy.api.md new file mode 100644 index 0000000000..348c7da18d --- /dev/null +++ b/workspaces/translations/plugins/translations/report-legacy.api.md @@ -0,0 +1,97 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-translations" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { AppLanguageApi } from '@backstage/core-plugin-api/alpha'; +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import type { ConfigApi } from '@backstage/core-plugin-api'; +import { i18n } from 'i18next'; +import { JSX as JSX_2 } from 'react/jsx-runtime'; +import { Observable } from '@backstage/types'; +import { PropsWithChildren } from 'react'; +import { RouteRef } from '@backstage/core-plugin-api'; +import { TranslationApi } from '@backstage/core-plugin-api/alpha'; +import { TranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { TranslationRef } from '@backstage/core-plugin-api/alpha'; +import { TranslationRef as TranslationRef_2 } from '@backstage/frontend-plugin-api'; +import { TranslationResource } from '@backstage/core-plugin-api/alpha'; +import { TranslationSnapshot } from '@backstage/core-plugin-api/alpha'; + +// @public +export function attachPseudolocalization( + translationApi: I18nextTranslationApi, + options?: PseudolocalizationOptions, +): void; + +// @public +export function attachPseudolocalizationIfEnabled( + translationApi: I18nextTranslationApi, + configApi: ConfigApi, + locationSearch?: string, +): void; + +// @public +export const ExportTranslationKeys: (input: { + resources: TranslationRef_2[]; +}) => JSX_2.Element; + +// @public (undocumented) +export class I18nextTranslationApi implements TranslationApi { + // (undocumented) + static create(options: I18nextTranslationApiOptions): I18nextTranslationApi; + // (undocumented) + getI18nInstance(): i18n; + // (undocumented) + getTranslation< + TMessages extends { + [key in string]: string; + }, + >( + translationRef: TranslationRef, + ): TranslationSnapshot; + // (undocumented) + translation$< + TMessages extends { + [key in string]: string; + }, + >( + translationRef: TranslationRef, + ): Observable>; +} + +// @public (undocumented) +export interface I18nextTranslationApiOptions { + // (undocumented) + languageApi: AppLanguageApi; + // (undocumented) + resources?: Array; +} + +// @public (undocumented) +export interface PseudolocalizationOptions { + // (undocumented) + languageToPseudo?: string; + // (undocumented) + wrapped?: boolean; +} + +// @public +export const PseudoLocalizationProvider: ( + input: PropsWithChildren<{}>, +) => JSX_2.Element; + +// @public (undocumented) +export const TranslationsPage: () => JSX_2.Element; + +// @public (undocumented) +export const translationsPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/translations/plugins/translations/report-translations-api-module.api.md b/workspaces/translations/plugins/translations/report-translations-api-module.api.md new file mode 100644 index 0000000000..d319796383 --- /dev/null +++ b/workspaces/translations/plugins/translations/report-translations-api-module.api.md @@ -0,0 +1,13 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-translations" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { FrontendModule } from '@backstage/frontend-plugin-api'; + +// @public +const translationsApiModule: FrontendModule; +export default translationsApiModule; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/translations/plugins/translations/report-translations-pseudo-localization-module.api.md b/workspaces/translations/plugins/translations/report-translations-pseudo-localization-module.api.md new file mode 100644 index 0000000000..f83e366a2c --- /dev/null +++ b/workspaces/translations/plugins/translations/report-translations-pseudo-localization-module.api.md @@ -0,0 +1,13 @@ +## API Report File for "@red-hat-developer-hub/backstage-plugin-translations" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { FrontendModule } from '@backstage/frontend-plugin-api'; + +// @public +const translationsPseudoLocalizationModule: FrontendModule; +export default translationsPseudoLocalizationModule; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/translations/plugins/translations/report.api.md b/workspaces/translations/plugins/translations/report.api.md index 348c7da18d..053827e727 100644 --- a/workspaces/translations/plugins/translations/report.api.md +++ b/workspaces/translations/plugins/translations/report.api.md @@ -3,95 +3,157 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { AppLanguageApi } from '@backstage/core-plugin-api/alpha'; -import { BackstagePlugin } from '@backstage/core-plugin-api'; -import type { ConfigApi } from '@backstage/core-plugin-api'; -import { i18n } from 'i18next'; -import { JSX as JSX_2 } from 'react/jsx-runtime'; -import { Observable } from '@backstage/types'; -import { PropsWithChildren } from 'react'; -import { RouteRef } from '@backstage/core-plugin-api'; -import { TranslationApi } from '@backstage/core-plugin-api/alpha'; -import { TranslationMessages } from '@backstage/core-plugin-api/alpha'; -import { TranslationRef } from '@backstage/core-plugin-api/alpha'; -import { TranslationRef as TranslationRef_2 } from '@backstage/frontend-plugin-api'; -import { TranslationResource } from '@backstage/core-plugin-api/alpha'; -import { TranslationSnapshot } from '@backstage/core-plugin-api/alpha'; +import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; +import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; +import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; +import { ExtensionInput } from '@backstage/frontend-plugin-api'; +import { FrontendModule } from '@backstage/frontend-plugin-api'; +import { IconElement } from '@backstage/frontend-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api'; +import { OverridableFrontendPlugin } from '@backstage/frontend-plugin-api'; +import { RouteRef } from '@backstage/frontend-plugin-api'; +import { TranslationMessages } from '@backstage/frontend-plugin-api'; +import { TranslationRef } from '@backstage/frontend-plugin-api'; +import { TranslationResource } from '@backstage/frontend-plugin-api'; // @public -export function attachPseudolocalization( - translationApi: I18nextTranslationApi, - options?: PseudolocalizationOptions, -): void; - -// @public -export function attachPseudolocalizationIfEnabled( - translationApi: I18nextTranslationApi, - configApi: ConfigApi, - locationSearch?: string, -): void; +const _default: OverridableFrontendPlugin< + {}, + {}, + { + 'page:translations': OverridableExtensionDefinition<{ + kind: 'page'; + name: undefined; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + path?: string | undefined; + title?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef< + string, + 'core.title', + { + optional: true; + } + > + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: { + pages: ExtensionInput< + | ConfigurableExtensionDataRef + | ConfigurableExtensionDataRef + | ConfigurableExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ConfigurableExtensionDataRef< + string, + 'core.title', + { + optional: true; + } + > + | ConfigurableExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >, + { + singleton: false; + optional: false; + internal: false; + } + >; + }; + params: { + path: string; + title?: string; + icon?: IconElement; + loader?: () => Promise; + routeRef?: RouteRef; + noHeader?: boolean; + }; + }>; + 'translation:translations/translations-translations': OverridableExtensionDefinition<{ + kind: 'translation'; + name: 'translations-translations'; + config: {}; + configInput: {}; + output: ExtensionDataRef< + | TranslationResource + | TranslationMessages< + string, + { + [x: string]: string; + }, + boolean + >, + 'core.translation.translation', + {} + >; + inputs: {}; + params: { + resource: TranslationResource | TranslationMessages; + }; + }>; + } +>; +export default _default; // @public -export const ExportTranslationKeys: (input: { - resources: TranslationRef_2[]; -}) => JSX_2.Element; - -// @public (undocumented) -export class I18nextTranslationApi implements TranslationApi { - // (undocumented) - static create(options: I18nextTranslationApiOptions): I18nextTranslationApi; - // (undocumented) - getI18nInstance(): i18n; - // (undocumented) - getTranslation< - TMessages extends { - [key in string]: string; - }, - >( - translationRef: TranslationRef, - ): TranslationSnapshot; - // (undocumented) - translation$< - TMessages extends { - [key in string]: string; - }, - >( - translationRef: TranslationRef, - ): Observable>; -} +export const translationsApiModule: FrontendModule; // @public (undocumented) -export interface I18nextTranslationApiOptions { - // (undocumented) - languageApi: AppLanguageApi; - // (undocumented) - resources?: Array; -} +export const translationsPluginTranslationRef: TranslationRef< + 'plugin.translations', + { + readonly 'page.title': string; + readonly 'page.subtitle': string; + readonly 'table.title': string; + readonly 'table.headers.refId': string; + readonly 'table.headers.key': string; + readonly 'table.options.pageSize': string; + readonly 'table.options.pageSizeOptions': string; + readonly 'export.title': string; + readonly 'export.downloadButton': string; + readonly 'export.filename': string; + readonly 'common.loading': string; + readonly 'common.error': string; + readonly 'common.noData': string; + readonly 'common.refresh': string; + readonly 'language.displayFormat': string; + } +>; // @public (undocumented) -export interface PseudolocalizationOptions { - // (undocumented) - languageToPseudo?: string; - // (undocumented) - wrapped?: boolean; -} +export const translationsPluginTranslations: TranslationResource<'plugin.translations'>; // @public -export const PseudoLocalizationProvider: ( - input: PropsWithChildren<{}>, -) => JSX_2.Element; - -// @public (undocumented) -export const TranslationsPage: () => JSX_2.Element; - -// @public (undocumented) -export const translationsPlugin: BackstagePlugin< - { - root: RouteRef; - }, - {}, - {} ->; +export const translationsPseudoLocalizationModule: FrontendModule; // (No @packageDocumentation comment for this package) ``` diff --git a/workspaces/translations/plugins/translations/src/alpha.ts b/workspaces/translations/plugins/translations/src/alpha.ts index 52cec70ee9..ed1538babd 100644 --- a/workspaces/translations/plugins/translations/src/alpha.ts +++ b/workspaces/translations/plugins/translations/src/alpha.ts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { - translationsPluginTranslationRef, - translationsPluginTranslations, -} from './translations'; +/** + * @deprecated Use the root import instead: `import from '@red-hat-developer-hub/backstage-plugin-translations'` + * @packageDocumentation + */ +export * from './translations'; diff --git a/workspaces/translations/plugins/translations/src/components/I18NextCard.tsx b/workspaces/translations/plugins/translations/src/components/I18NextCard.tsx index 0d7bf7a05e..d97fdd6a21 100644 --- a/workspaces/translations/plugins/translations/src/components/I18NextCard.tsx +++ b/workspaces/translations/plugins/translations/src/components/I18NextCard.tsx @@ -21,7 +21,22 @@ import type { i18n as I18n } from 'i18next'; export const I18NextCard = () => { const translationApi = useApi(translationApiRef); - const i18n: I18n = (translationApi as any).getI18nInstance(); + const api = translationApi as unknown as { getI18nInstance?: () => I18n }; + const i18n = + typeof api.getI18nInstance === 'function' + ? api.getI18nInstance() + : undefined; + + if (!i18n) { + return ( + + + i18next instance details are not available with the built-in + TranslationApi. + + + ); + } return ( diff --git a/workspaces/translations/plugins/translations/src/components/LoadedTranslationsTable.tsx b/workspaces/translations/plugins/translations/src/components/LoadedTranslationsTable.tsx index f558825b1f..4b3f0aa759 100644 --- a/workspaces/translations/plugins/translations/src/components/LoadedTranslationsTable.tsx +++ b/workspaces/translations/plugins/translations/src/components/LoadedTranslationsTable.tsx @@ -24,6 +24,13 @@ import type { i18n as I18n, Resource } from 'i18next'; import { useMemo } from 'react'; import { useTranslation } from '../hooks/useTranslation'; +function getI18nInstance(translationApi: unknown): I18n | undefined { + const api = translationApi as { getI18nInstance?: () => I18n }; + return typeof api.getI18nInstance === 'function' + ? api.getI18nInstance() + : undefined; +} + interface Row { ref: string; key: string; @@ -63,37 +70,43 @@ export const LoadedTranslationsTable = () => { const { t } = useTranslation(); const appLanguageApi = useApi(appLanguageApiRef); const translationApi = useApi(translationApiRef); - const i18n: I18n = (translationApi as any).getI18nInstance(); + const i18n = getI18nInstance(translationApi); - const resources = i18n.store.data; + const resources = i18n?.store.data; // FIXME: the available languages are not yet loaded... const showLanguages = useMemo( - () => [ - 'en', - ...appLanguageApi - .getAvailableLanguages() - .languages.filter(lang => lang !== 'en'), - ], - [appLanguageApi], + () => + i18n + ? [ + 'en', + ...appLanguageApi + .getAvailableLanguages() + .languages.filter(lang => lang !== 'en'), + ] + : [], + [appLanguageApi, i18n], ); const columns = useMemo( - () => [ - { title: t('table.headers.refId'), field: 'ref' }, - { title: t('table.headers.key'), field: 'key' }, - ...showLanguages.map(lang => ({ - title: getLanguageDisplayName(lang), - field: lang, - })), - ], - [showLanguages, t], + () => + i18n + ? [ + { title: t('table.headers.refId'), field: 'ref' }, + { title: t('table.headers.key'), field: 'key' }, + ...showLanguages.map(lang => ({ + title: getLanguageDisplayName(lang), + field: lang, + })), + ] + : [], + [showLanguages, t, i18n], ); const data = useMemo(() => { + if (!resources) return []; const rows: Row[] = []; - // Iterate first over primary language english if (resources.en) { for (const ref of Object.keys(resources.en)) { for (const key of Object.keys(resources.en[ref])) { @@ -113,21 +126,17 @@ export const LoadedTranslationsTable = () => { } } - // Check if other languages have additional keys for (const otherLang of Object.keys(resources)) { if (otherLang === 'en') { continue; } for (const ref of Object.keys(resources[otherLang])) { for (const key of Object.keys(resources[otherLang][ref])) { - // if the key exists in english, then it was already added const resourceLang = resources.en; const resourceKey = resourceLang?.[ref]; if (typeof resourceKey === 'object' && resourceKey?.[key]) { continue; } - // Check if we already have a row for this ref/key combination - // from another language. If yes, then we can skip this as well. const existingRow = rows.find(r => r.ref === ref && r.key === key); if (existingRow) { showLanguages.forEach(lang => { @@ -135,7 +144,6 @@ export const LoadedTranslationsTable = () => { }); continue; } - // Otherwise add a new row and include all languages rows.push( showLanguages.reduce( (row, lang) => { @@ -155,6 +163,22 @@ export const LoadedTranslationsTable = () => { return rows; }, [resources, showLanguages]); + if (!i18n) { + return ( + + Translation resource data is not available with the built-in + TranslationApi. + + } + /> + ); + } + return (
unknown; + }; + if (typeof api.getI18nInstance !== 'function') { + return; + } + attachPseudolocalizationIfEnabled(api as any, configApi); }, [translationApi, configApi]); return <>{children}; diff --git a/workspaces/translations/plugins/translations/src/index.tsx b/workspaces/translations/plugins/translations/src/index.tsx new file mode 100644 index 0000000000..91db0b1e96 --- /dev/null +++ b/workspaces/translations/plugins/translations/src/index.tsx @@ -0,0 +1,129 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + ApiBlueprint, + appLanguageApiRef, + configApiRef, + createExtensionInput, + createFrontendModule, + createFrontendPlugin, + PageBlueprint, + translationApiRef, +} from '@backstage/frontend-plugin-api'; +import ExtensionIcon from '@mui/icons-material/Extension'; +import { + AppRootWrapperBlueprint, + TranslationBlueprint, +} from '@backstage/plugin-app-react'; + +import { + translationsPluginTranslationRef, + translationsPluginTranslations, +} from './translations'; +import { I18nextTranslationApi } from './apis/I18nextTranslationApi'; +import { attachPseudolocalizationIfEnabled } from './apis/pseudolocalization'; +import { PseudoLocalizationProvider } from './components/PseudoLocalizationProvider'; + +const translationsPage = PageBlueprint.make({ + params: { + path: '/translations', + title: 'Translations', + icon: , + noHeader: true, + loader: () => + import('./components/TranslationsPage').then(m => ), + }, +}); + +const translationsTranslation = TranslationBlueprint.make({ + name: 'translations-translations', + params: { + resource: translationsPluginTranslations, + }, +}); + +const translationsApiExtension = ApiBlueprint.makeWithOverrides({ + name: 'translations', + inputs: { + translations: createExtensionInput( + [TranslationBlueprint.dataRefs.translation], + { replaces: [{ id: 'app', input: 'translations' }], internal: true }, + ), + }, + factory: (originalFactory, { inputs }) => { + return originalFactory(defineParams => + defineParams({ + api: translationApiRef, + deps: { languageApi: appLanguageApiRef, configApi: configApiRef }, + factory: ({ languageApi, configApi }) => { + const resources = inputs.translations.map(i => + i.get(TranslationBlueprint.dataRefs.translation), + ); + const api = I18nextTranslationApi.create({ + languageApi, + resources, + }); + attachPseudolocalizationIfEnabled(api, configApi); + return api; + }, + }), + ); + }, +}); + +const pseudoLocalizationWrapper = AppRootWrapperBlueprint.make({ + name: 'pseudo-localization', + params: { + component: PseudoLocalizationProvider, + }, +}); + +/** + * The Translations frontend plugin for the new Backstage frontend system. + * + * @public + */ +export default createFrontendPlugin({ + pluginId: 'translations', + extensions: [translationsPage, translationsTranslation], +}); + +/** + * Module that replaces the built-in TranslationApi with one that + * exposes `getI18nInstance()`, needed by the translations debug page + * and pseudo-localization. Also attaches pseudo-localization when + * enabled via app-config or URL param. + * + * @public + */ +export const translationsApiModule = createFrontendModule({ + pluginId: 'app', + extensions: [translationsApiExtension], +}); + +/** + * Pseudo-localization module for OFS / dynamic plugins. + * In NFS, pseudo-localization is handled by `translationsApiModule` instead. + * + * @public + */ +export const translationsPseudoLocalizationModule = createFrontendModule({ + pluginId: 'app', + extensions: [pseudoLocalizationWrapper], +}); + +export { translationsPluginTranslationRef, translationsPluginTranslations }; diff --git a/workspaces/translations/plugins/translations/src/index.ts b/workspaces/translations/plugins/translations/src/legacy.ts similarity index 100% rename from workspaces/translations/plugins/translations/src/index.ts rename to workspaces/translations/plugins/translations/src/legacy.ts diff --git a/workspaces/translations/plugins/translations/src/translations/index.ts b/workspaces/translations/plugins/translations/src/translations/index.ts index cc49e04f3b..31fdaa1c0f 100644 --- a/workspaces/translations/plugins/translations/src/translations/index.ts +++ b/workspaces/translations/plugins/translations/src/translations/index.ts @@ -17,8 +17,7 @@ import { createTranslationResource } from '@backstage/core-plugin-api/alpha'; import { translationsPluginTranslationRef } from './ref'; /** - * @alpha - * + * @public */ export const translationsPluginTranslations = createTranslationResource({ ref: translationsPluginTranslationRef, @@ -30,7 +29,8 @@ export const translationsPluginTranslations = createTranslationResource({ ja: () => import('./ja'), }, }); + /** - * @alpha + * @public */ export { translationsPluginTranslationRef }; diff --git a/workspaces/translations/plugins/translations/src/translations/ref.ts b/workspaces/translations/plugins/translations/src/translations/ref.ts index 5860465b76..78f428ce87 100644 --- a/workspaces/translations/plugins/translations/src/translations/ref.ts +++ b/workspaces/translations/plugins/translations/src/translations/ref.ts @@ -16,7 +16,7 @@ import { createTranslationRef } from '@backstage/core-plugin-api/alpha'; /** - * @alpha + * @public */ export const translationsMessages = { page: { @@ -50,9 +50,16 @@ export const translationsMessages = { }, }; /** - * @alpha + * @public */ export const translationsPluginTranslationRef = createTranslationRef({ id: 'plugin.translations', messages: translationsMessages, + translations: { + de: () => import('./de') as any, + es: () => import('./es') as any, + fr: () => import('./fr') as any, + it: () => import('./it') as any, + ja: () => import('./ja') as any, + }, }); diff --git a/workspaces/translations/plugins/translations/src/translationsApiModuleExport.ts b/workspaces/translations/plugins/translations/src/translationsApiModuleExport.ts new file mode 100644 index 0000000000..52cbab38f9 --- /dev/null +++ b/workspaces/translations/plugins/translations/src/translationsApiModuleExport.ts @@ -0,0 +1,17 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { translationsApiModule as default } from './index'; diff --git a/workspaces/translations/plugins/translations/src/translationsPseudoLocalizationModuleExport.ts b/workspaces/translations/plugins/translations/src/translationsPseudoLocalizationModuleExport.ts new file mode 100644 index 0000000000..28c35bd8ba --- /dev/null +++ b/workspaces/translations/plugins/translations/src/translationsPseudoLocalizationModuleExport.ts @@ -0,0 +1,17 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { translationsPseudoLocalizationModule as default } from './index'; diff --git a/workspaces/translations/yarn.lock b/workspaces/translations/yarn.lock index 5f3a3d47b3..ff3f5423d0 100644 --- a/workspaces/translations/yarn.lock +++ b/workspaces/translations/yarn.lock @@ -2387,25 +2387,25 @@ __metadata: languageName: node linkType: hard -"@backstage/config@npm:^1.3.6, @backstage/config@npm:^1.3.7": - version: 1.3.7 - resolution: "@backstage/config@npm:1.3.7" +"@backstage/config@npm:^1.3.6, @backstage/config@npm:^1.3.7, @backstage/config@npm:^1.3.8": + version: 1.3.8 + resolution: "@backstage/config@npm:1.3.8" dependencies: - "@backstage/errors": "npm:^1.3.0" + "@backstage/errors": "npm:^1.3.1" "@backstage/types": "npm:^1.2.2" ms: "npm:^2.1.3" - checksum: 10c0/de4f88e0df17140dfe9d5041936a7dcb7c24aa5413af7b6cecb04b417d6370e43bee25d2deb91e07e4cf1442a9e7ef151f57c2bd60d8ec4f7f199e6bcfd9dedc + checksum: 10c0/bd9e1fdd7ab8e56a9814a7f67502ed69f9abd0f014dae44d253a6a02c0c6bf844451d037afa991b200fc09d89e7195593bd5a9459357dafd8101dc826e664dec languageName: node linkType: hard -"@backstage/core-app-api@npm:^1.19.6": - version: 1.19.6 - resolution: "@backstage/core-app-api@npm:1.19.6" +"@backstage/core-app-api@npm:^1.19.6, @backstage/core-app-api@npm:^1.20.0, @backstage/core-app-api@npm:^1.20.2": + version: 1.20.2 + resolution: "@backstage/core-app-api@npm:1.20.2" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/config": "npm:^1.3.8" + "@backstage/core-plugin-api": "npm:^1.12.7" "@backstage/types": "npm:^1.2.2" - "@backstage/ui": "npm:^0.13.0" + "@backstage/ui": "npm:^0.16.0" "@backstage/version-bridge": "npm:^1.0.12" "@types/prop-types": "npm:^15.7.3" history: "npm:^5.0.0" @@ -2423,7 +2423,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/5cd60623e09035b1240142941dd336a399e4f2d2455c2e4ad3de5f4e6f641181c000a0a3071c9e0f0af04ef6a68bcd4538fcfaf82b2ca2722d18e28b8f85335c + checksum: 10c0/ad5c7fc5f748db3d2ecab8d4909da1a722436cb2d22a522cf092f996c8befee49ce4b18421fd5f7c203236fe9b3b62d389048a79154b746b41d365f1767a6434 languageName: node linkType: hard @@ -2453,14 +2453,14 @@ __metadata: languageName: node linkType: hard -"@backstage/core-components@npm:^0.18.8": - version: 0.18.8 - resolution: "@backstage/core-components@npm:0.18.8" +"@backstage/core-components@npm:^0.18.10, @backstage/core-components@npm:^0.18.11, @backstage/core-components@npm:^0.18.8": + version: 0.18.11 + resolution: "@backstage/core-components@npm:0.18.11" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.4" - "@backstage/errors": "npm:^1.2.7" - "@backstage/theme": "npm:^0.7.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/errors": "npm:^1.3.1" + "@backstage/theme": "npm:^0.7.3" "@backstage/version-bridge": "npm:^1.0.12" "@dagrejs/dagre": "npm:^1.1.4" "@date-io/core": "npm:^1.3.13" @@ -2473,6 +2473,7 @@ __metadata: "@types/react-sparklines": "npm:^1.7.0" ansi-regex: "npm:^6.0.1" classnames: "npm:^2.2.6" + csstype: "npm:^3.0.2" d3-selection: "npm:^3.0.0" d3-shape: "npm:^3.0.0" d3-zoom: "npm:^3.0.0" @@ -2481,8 +2482,7 @@ __metadata: linkifyjs: "npm:4.3.2" lodash: "npm:^4.17.21" parse5: "npm:^6.0.0" - pluralize: "npm:^8.0.0" - qs: "npm:^6.9.4" + qs: "npm:^6.15.2" rc-progress: "npm:3.5.1" react-full-screen: "npm:^1.1.1" react-helmet: "npm:6.1.0" @@ -2507,17 +2507,17 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/34ba90ca5c0925fee9f7785f0b23fc45b602c0705889f3a9efb109850298d428e77343b95d9539e043aff303549a65b7a4517e8ff0ddde607441a7d002b8b53d + checksum: 10c0/2a15de08c7fc0887abedf8b5a944db500ccf79bd1af65b9b7a8fbb9606cd4a3607211d9fef45b843051cc73bd7220b4161cb41ca819381bc12d6e94d7a657412 languageName: node linkType: hard -"@backstage/core-plugin-api@npm:^1.12.4": - version: 1.12.4 - resolution: "@backstage/core-plugin-api@npm:1.12.4" +"@backstage/core-plugin-api@npm:^1.12.4, @backstage/core-plugin-api@npm:^1.12.5, @backstage/core-plugin-api@npm:^1.12.6, @backstage/core-plugin-api@npm:^1.12.7": + version: 1.12.7 + resolution: "@backstage/core-plugin-api@npm:1.12.7" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" - "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/frontend-plugin-api": "npm:^0.17.2" "@backstage/types": "npm:^1.2.2" "@backstage/version-bridge": "npm:^1.0.12" history: "npm:^5.0.0" @@ -2530,7 +2530,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/0226ea1fe27392ce6e66c79453aa17d758341f73b943f87acd04123b38291962ac5350975005cb0b3a5a920073cbfe3d661b8c5332c78835401a5507cb8633bc + checksum: 10c0/44944fc010d9fcdb55a85381260abd1f54c4b3fc401dc21329da75b8c84a85a0b65b64df7f4e2d7a94d40abb68b33f294f8439b42154a52bedd0bfcc773af0ac languageName: node linkType: hard @@ -2577,13 +2577,13 @@ __metadata: languageName: node linkType: hard -"@backstage/errors@npm:^1.2.7, @backstage/errors@npm:^1.3.0": - version: 1.3.0 - resolution: "@backstage/errors@npm:1.3.0" +"@backstage/errors@npm:^1.2.7, @backstage/errors@npm:^1.3.0, @backstage/errors@npm:^1.3.1": + version: 1.3.1 + resolution: "@backstage/errors@npm:1.3.1" dependencies: "@backstage/types": "npm:^1.2.2" serialize-error: "npm:^8.0.1" - checksum: 10c0/e47f4a42d989858ab148359a410a82e295b5090c3da8d3a761997fd95d41786183c4113d8db13525964d497c2963e2d532c32f93548bb35bd30c1b514c34af19 + checksum: 10c0/b342551f5337f17bcc6d412868f6274509d657cc6037fbb5af96d42156c24c2419e72fd711136e42d05245bd4e5c5d8fe9cd54f89f260d9285a073c28cca0261 languageName: node linkType: hard @@ -2597,16 +2597,66 @@ __metadata: languageName: node linkType: hard -"@backstage/filter-predicates@npm:^0.1.1": - version: 0.1.1 - resolution: "@backstage/filter-predicates@npm:0.1.1" +"@backstage/filter-predicates@npm:^0.1.1, @backstage/filter-predicates@npm:^0.1.2, @backstage/filter-predicates@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/filter-predicates@npm:0.1.3" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" "@backstage/types": "npm:^1.2.2" zod: "npm:^3.25.76 || ^4.0.0" zod-validation-error: "npm:^4.0.2" - checksum: 10c0/f4bce2259af0e953ef30d292394aeea614ae42fbd825678a3abc36a97a6020a9964f40046aa3dc189f040ecf9674fb30dbcbbfd2ff3f807a513ad0353094bea5 + checksum: 10c0/73cbf7c1719492b56a18c19494e98df0896cad7838b834ca18df3b184bd599a3bb612b9cb6302a1a69546a2bcfe1056d862772cc91844d124692c5eddf95de18 + languageName: node + linkType: hard + +"@backstage/frontend-app-api@npm:^0.16.2, @backstage/frontend-app-api@npm:^0.16.4": + version: 0.16.5 + resolution: "@backstage/frontend-app-api@npm:0.16.5" + dependencies: + "@backstage/config": "npm:^1.3.8" + "@backstage/core-app-api": "npm:^1.20.2" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/errors": "npm:^1.3.1" + "@backstage/filter-predicates": "npm:^0.1.3" + "@backstage/frontend-defaults": "npm:^0.5.3" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + lodash: "npm:^4.17.21" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/5dab6fdf241b0f10fc13c96c11ddfc6a3c2963ff72c83203870d6b5d6a2ce6f74190591820e7913cb478faf4cdf3956307f5de9925dcebcbf20c43edb4e62c05 + languageName: node + linkType: hard + +"@backstage/frontend-defaults@npm:^0.5.0, @backstage/frontend-defaults@npm:^0.5.3": + version: 0.5.3 + resolution: "@backstage/frontend-defaults@npm:0.5.3" + dependencies: + "@backstage/config": "npm:^1.3.8" + "@backstage/core-components": "npm:^0.18.11" + "@backstage/errors": "npm:^1.3.1" + "@backstage/frontend-app-api": "npm:^0.16.4" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/plugin-app": "npm:^0.5.0" + "@react-hookz/web": "npm:^24.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7ecbeb66abe81603b0bb7f9d6c2cdc9cdab2b1b2b5db53ada76353e10db20b43b80ac3c7d7e0f91fa26f28109729124f30518a89ca5ad270eba4848d476f62eb languageName: node linkType: hard @@ -2632,6 +2682,89 @@ __metadata: languageName: node linkType: hard +"@backstage/frontend-plugin-api@npm:^0.16.0": + version: 0.16.2 + resolution: "@backstage/frontend-plugin-api@npm:0.16.2" + dependencies: + "@backstage/errors": "npm:^1.3.0" + "@backstage/filter-predicates": "npm:^0.1.2" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + "@standard-schema/spec": "npm:^1.1.0" + zod: "npm:^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7308d6417d922f285446cf8f59d98f807fa69bfcfe22e6db7be0cf8640b67bbecad4520c009bce8a3e21dd29f938e8c154b51472e56918dac06bae9a0dccaeb0 + languageName: node + linkType: hard + +"@backstage/frontend-plugin-api@npm:^0.17.0, @backstage/frontend-plugin-api@npm:^0.17.2": + version: 0.17.2 + resolution: "@backstage/frontend-plugin-api@npm:0.17.2" + dependencies: + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/filter-predicates": "npm:^0.1.3" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + "@standard-schema/spec": "npm:^1.1.0" + zod: "npm:^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/8b18b2ce740a97148cf101b82b0ba8cdf18e171cfd9f394fe4813696edfcddeedee99e6723af1f1276d7f470fd57183e6b74ec4f7baa72f7c45ba02e55da2d81 + languageName: node + linkType: hard + +"@backstage/frontend-test-utils@npm:^0.5.1": + version: 0.5.2 + resolution: "@backstage/frontend-test-utils@npm:0.5.2" + dependencies: + "@backstage/config": "npm:^1.3.7" + "@backstage/core-app-api": "npm:^1.20.0" + "@backstage/core-plugin-api": "npm:^1.12.5" + "@backstage/filter-predicates": "npm:^0.1.2" + "@backstage/frontend-app-api": "npm:^0.16.2" + "@backstage/frontend-plugin-api": "npm:^0.16.0" + "@backstage/plugin-app": "npm:^0.4.3" + "@backstage/plugin-app-react": "npm:^0.2.2" + "@backstage/plugin-permission-common": "npm:^0.9.8" + "@backstage/plugin-permission-react": "npm:^0.5.0" + "@backstage/test-utils": "npm:^1.7.17" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + i18next: "npm:^22.4.15" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/jest": "*" + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/jest": + optional: true + "@types/react": + optional: true + checksum: 10c0/23d845d562f2284c9c8ef50a44763227c9dd2d02d22f978ea7e6a5ab5ebfbdd85765527ac469f36d17589cca13972f55c36454e9050cd4fa7d7fcd8ffd97cb0d + languageName: node + linkType: hard + "@backstage/integration-aws-node@npm:^0.1.20": version: 0.1.20 resolution: "@backstage/integration-aws-node@npm:0.1.20" @@ -2647,13 +2780,13 @@ __metadata: languageName: node linkType: hard -"@backstage/integration-react@npm:^1.2.16": - version: 1.2.16 - resolution: "@backstage/integration-react@npm:1.2.16" +"@backstage/integration-react@npm:^1.2.16, @backstage/integration-react@npm:^1.2.18, @backstage/integration-react@npm:^1.2.19": + version: 1.2.19 + resolution: "@backstage/integration-react@npm:1.2.19" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.4" - "@backstage/integration": "npm:^2.0.0" + "@backstage/config": "npm:^1.3.8" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/integration": "npm:^2.0.3" "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" peerDependencies: @@ -2664,18 +2797,18 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/70ff6dca97e1ff797e322771061ad642cd8f138f63fd44b743fd2eab1d975823e55a6bd95a04a4fe05b9974301164ceaae5ff79e91e90520e77710405ddf43ba + checksum: 10c0/45013c5b288e6d9f78d2173768417232b6ef4eeb4a4eee01b631c870f824e1ea37085fe092bd89a4be4b1b4cf998b5ec49e45eee103305ec8440169ac9349f2c languageName: node linkType: hard -"@backstage/integration@npm:^2.0.0": - version: 2.0.0 - resolution: "@backstage/integration@npm:2.0.0" +"@backstage/integration@npm:^2.0.0, @backstage/integration@npm:^2.0.3": + version: 2.0.3 + resolution: "@backstage/integration@npm:2.0.3" dependencies: "@azure/identity": "npm:^4.0.0" "@azure/storage-blob": "npm:^12.5.0" - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" "@octokit/auth-app": "npm:^4.0.0" "@octokit/rest": "npm:^19.0.3" cross-fetch: "npm:^4.0.0" @@ -2683,7 +2816,7 @@ __metadata: lodash: "npm:^4.17.21" luxon: "npm:^3.0.0" p-throttle: "npm:^4.1.1" - checksum: 10c0/d7e0e45cc11277ca2b843f98d15df8150b8c264852b734279a1965ccc81ef2724871e048aa1b0c4b3fe656c041d96ab0ca8c97db2bd236582d8f4349a93cd5cd + checksum: 10c0/d56a5be601813b541dbb1899624a4379944ff3c44e3fca47ddd00ca0cf785fc3b4f1beead2be55af8dfa8adc03fb8f804f80784e66d7a85d615c4830a0dbbdb6 languageName: node linkType: hard @@ -2784,13 +2917,89 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-app-react@npm:^0.2.1": - version: 0.2.1 - resolution: "@backstage/plugin-app-react@npm:0.2.1" +"@backstage/plugin-app-react@npm:^0.2.1, @backstage/plugin-app-react@npm:^0.2.2, @backstage/plugin-app-react@npm:^0.2.3, @backstage/plugin-app-react@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-app-react@npm:0.2.4" dependencies: - "@backstage/core-plugin-api": "npm:^1.12.4" - "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@material-ui/core": "npm:^4.9.13" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/c1eb94360b10095eeb81ffaaa8df41fd85d7e16206af18513c13ada39e860e03edbfd1c76e396214d05914fdcdedad09eaf7b78580e2831452367fb7bb3c9442 + languageName: node + linkType: hard + +"@backstage/plugin-app@npm:^0.4.3": + version: 0.4.6 + resolution: "@backstage/plugin-app@npm:0.4.6" + dependencies: + "@backstage/core-components": "npm:^0.18.10" + "@backstage/core-plugin-api": "npm:^1.12.6" + "@backstage/filter-predicates": "npm:^0.1.3" + "@backstage/frontend-plugin-api": "npm:^0.17.0" + "@backstage/integration-react": "npm:^1.2.18" + "@backstage/plugin-app-react": "npm:^0.2.3" + "@backstage/plugin-permission-react": "npm:^0.5.1" + "@backstage/theme": "npm:^0.7.3" + "@backstage/types": "npm:^1.2.2" + "@backstage/ui": "npm:^0.15.0" + "@backstage/version-bridge": "npm:^1.0.12" + "@material-ui/core": "npm:^4.9.13" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:^4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@remixicon/react": "npm:>=4.6.0 <4.9.0" + motion: "npm:^12.0.0" + react-aria: "npm:~3.48.0" + react-stately: "npm:~3.46.0" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + zod: "npm:^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9be399bb67c1e7551f60c3fffa50419a79d968d51d69a29d489355814b8327745f4cd50510bae710ba6bee0fc197a3a91b9c523469ee09d9aef5c00cfa090f96 + languageName: node + linkType: hard + +"@backstage/plugin-app@npm:^0.5.0": + version: 0.5.0 + resolution: "@backstage/plugin-app@npm:0.5.0" + dependencies: + "@backstage/core-components": "npm:^0.18.11" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/filter-predicates": "npm:^0.1.3" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/integration-react": "npm:^1.2.19" + "@backstage/plugin-app-react": "npm:^0.2.4" + "@backstage/plugin-permission-react": "npm:^0.5.2" + "@backstage/theme": "npm:^0.7.3" + "@backstage/types": "npm:^1.2.2" + "@backstage/ui": "npm:^0.16.0" + "@backstage/version-bridge": "npm:^1.0.12" "@material-ui/core": "npm:^4.9.13" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:^4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@remixicon/react": "npm:>=4.6.0 <4.9.0" + motion: "npm:^12.0.0" + react-aria: "npm:~3.48.0" + react-stately: "npm:~3.46.0" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + zod: "npm:^4.0.0" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 @@ -2799,7 +3008,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/e343bc8b67105bd1484824c66628005e8bfc8f5815960a7fd894ddb7ca3c14915c778095c549591f78cbe9a8f3acd4cfed565b5ffc569a2d7f07555ba5ab1886 + checksum: 10c0/9676217b237f1d2379d831ced462cfaa0c0fbfa2ae3c68d24fa3fea5b4cfb3e0a96d4f9ed3854b3ea5a4e76a70e7557f7354bf80c9998a7b816d401c42bdaa53 languageName: node linkType: hard @@ -3454,18 +3663,17 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-common@npm:^0.9.6, @backstage/plugin-permission-common@npm:^0.9.7": - version: 0.9.7 - resolution: "@backstage/plugin-permission-common@npm:0.9.7" +"@backstage/plugin-permission-common@npm:^0.9.6, @backstage/plugin-permission-common@npm:^0.9.7, @backstage/plugin-permission-common@npm:^0.9.8, @backstage/plugin-permission-common@npm:^0.9.9": + version: 0.9.9 + resolution: "@backstage/plugin-permission-common@npm:0.9.9" dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" "@backstage/types": "npm:^1.2.2" cross-fetch: "npm:^4.0.0" - uuid: "npm:^11.0.0" zod: "npm:^3.25.76 || ^4.0.0" zod-to-json-schema: "npm:^3.25.1" - checksum: 10c0/577c15e246fc46c7fe1a4868c3765a9c837b86a64d7a3ab75ac76ed443f2ac4e687c37bd11f2e787898ff8909c9206b9285446e956eb9c4313d3818e37fbf64d + checksum: 10c0/f06156828391ff59b98c2e65d7943503fd1d18d9fd0b22b9df9bbbdeff90469233be1949d22acc9a7ca148c493ff52d2ecba78533702b60d208348c55eb9c720 languageName: node linkType: hard @@ -3508,6 +3716,26 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-permission-react@npm:^0.5.0, @backstage/plugin-permission-react@npm:^0.5.1, @backstage/plugin-permission-react@npm:^0.5.2": + version: 0.5.2 + resolution: "@backstage/plugin-permission-react@npm:0.5.2" + dependencies: + "@backstage/config": "npm:^1.3.8" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/plugin-permission-common": "npm:^0.9.9" + dataloader: "npm:^2.0.0" + swr: "npm:^2.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/704a91d994f88b7b34b07353dcbb3b3fa06360aef1da1c532bbffbe1d62245376eafc6b68c7944cba8d997359cd617aa9e5fcddc8e1f68d665b02dd029e79d3f + languageName: node + linkType: hard + "@backstage/plugin-proxy-backend@npm:^0.6.11": version: 0.6.11 resolution: "@backstage/plugin-proxy-backend@npm:0.6.11" @@ -4193,16 +4421,16 @@ __metadata: languageName: node linkType: hard -"@backstage/test-utils@npm:^1.7.16": - version: 1.7.16 - resolution: "@backstage/test-utils@npm:1.7.16" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-app-api": "npm:^1.19.6" - "@backstage/core-plugin-api": "npm:^1.12.4" - "@backstage/plugin-permission-common": "npm:^0.9.7" - "@backstage/plugin-permission-react": "npm:^0.4.41" - "@backstage/theme": "npm:^0.7.2" +"@backstage/test-utils@npm:^1.7.16, @backstage/test-utils@npm:^1.7.17": + version: 1.7.19 + resolution: "@backstage/test-utils@npm:1.7.19" + dependencies: + "@backstage/config": "npm:^1.3.8" + "@backstage/core-app-api": "npm:^1.20.2" + "@backstage/core-plugin-api": "npm:^1.12.7" + "@backstage/plugin-permission-common": "npm:^0.9.9" + "@backstage/plugin-permission-react": "npm:^0.5.2" + "@backstage/theme": "npm:^0.7.3" "@backstage/types": "npm:^1.2.2" "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" @@ -4221,13 +4449,13 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/1e8e2b6f9942505846bd615297e3aa95f049b6bf658fc95dc2688007c6a83bb19135063f21f86d91a6e5d3978a59158967de5007c9b13d396e170eff515d5945 + checksum: 10c0/4b3c74865f7352e1158157c17fabeb5f206cd3a59b07bc101290f59a3c6d514bc2dcba10f3ef0e9dfb21c2cbd895c7778ece5853b2f539ec341a331a892cb7c5 languageName: node linkType: hard -"@backstage/theme@npm:^0.7.2": - version: 0.7.2 - resolution: "@backstage/theme@npm:0.7.2" +"@backstage/theme@npm:^0.7.2, @backstage/theme@npm:^0.7.3": + version: 0.7.3 + resolution: "@backstage/theme@npm:0.7.3" dependencies: "@emotion/react": "npm:^11.10.5" "@emotion/styled": "npm:^11.10.5" @@ -4241,7 +4469,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/f3d10319727dde23b2f30813dd9e1981167670b04f5143dd0da222c9e5b8f8da43d9d8c42935b4a07d4ddd09e6fa18014cd8e5bd7dcb86c03a7593b3cee67d2a + checksum: 10c0/6376864923660198f3e75904a4f36b44ace5c1ab2b6924fd98e55b02b5bd3118fe2687e60f0c7fcf818d04dc2be3298421fb9af2c0de316ff28b52bfe673a480 languageName: node linkType: hard @@ -4274,6 +4502,60 @@ __metadata: languageName: node linkType: hard +"@backstage/ui@npm:^0.15.0": + version: 0.15.0 + resolution: "@backstage/ui@npm:0.15.0" + dependencies: + "@backstage/version-bridge": "npm:^1.0.12" + "@braintree/sanitize-url": "npm:^7.1.2" + "@internationalized/date": "npm:^3.12.0" + "@remixicon/react": "npm:>=4.6.0 <4.9.0" + "@tanstack/react-table": "npm:^8.21.3" + clsx: "npm:^2.1.1" + marked: "npm:^15.0.12" + react-aria: "npm:~3.48.0" + react-aria-components: "npm:~1.17.0" + react-stately: "npm:~3.46.0" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/a7087cbc784458260c9064a534d7eb1ae506af7fe95537473bf1480916b53ff0bced26caa8bfd0aba14b3039ba584c0b7b3d6f6b58df0feaa1aa1fd4e394ff13 + languageName: node + linkType: hard + +"@backstage/ui@npm:^0.16.0": + version: 0.16.0 + resolution: "@backstage/ui@npm:0.16.0" + dependencies: + "@backstage/version-bridge": "npm:^1.0.12" + "@braintree/sanitize-url": "npm:^7.1.2" + "@internationalized/date": "npm:^3.12.0" + "@remixicon/react": "npm:>=4.6.0 <4.9.0" + "@tanstack/react-table": "npm:^8.21.3" + clsx: "npm:^2.1.1" + marked: "npm:^15.0.12" + react-aria: "npm:~3.48.0" + react-aria-components: "npm:~1.17.0" + react-stately: "npm:~3.46.0" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7444482fc6d5866682e4fa69ea9a6e5c6e561b2bfc71e3f7397f651c78ccbd83fe09b0aa0010ae70a91bf377b36082c2636cf77891b6d88e6572c9acbca57758 + languageName: node + linkType: hard + "@backstage/version-bridge@npm:^1.0.12": version: 1.0.12 resolution: "@backstage/version-bridge@npm:1.0.12" @@ -4310,6 +4592,13 @@ __metadata: languageName: node linkType: hard +"@braintree/sanitize-url@npm:^7.1.2": + version: 7.1.2 + resolution: "@braintree/sanitize-url@npm:7.1.2" + checksum: 10c0/62f2aa0cf58626e3880b2dc1025c42064b4639abd157ae4e1c35f4c2f5031e9273772046a423979845069c814e27ff818e8e669280dc53585e6f033d5b7a59cb + languageName: node + linkType: hard + "@changesets/apply-release-plan@npm:^7.0.13": version: 7.0.13 resolution: "@changesets/apply-release-plan@npm:7.0.13" @@ -5303,57 +5592,6 @@ __metadata: languageName: node linkType: hard -"@formatjs/ecma402-abstract@npm:2.3.4": - version: 2.3.4 - resolution: "@formatjs/ecma402-abstract@npm:2.3.4" - dependencies: - "@formatjs/fast-memoize": "npm:2.2.7" - "@formatjs/intl-localematcher": "npm:0.6.1" - decimal.js: "npm:^10.4.3" - tslib: "npm:^2.8.0" - checksum: 10c0/2644bc618a34dc610ef9691281eeb45ae6175e6982cf19f1bd140672fc95c748747ce3c85b934649ea7e4a304f7ae0060625fd53d5df76f92ca3acf743e1eb0a - languageName: node - linkType: hard - -"@formatjs/fast-memoize@npm:2.2.7": - version: 2.2.7 - resolution: "@formatjs/fast-memoize@npm:2.2.7" - dependencies: - tslib: "npm:^2.8.0" - checksum: 10c0/f5eabb0e4ab7162297df8252b4cfde194b23248120d9df267592eae2be2d2f7c4f670b5a70523d91b4ecdc35d40e65823bb8eeba8dd79fbf8601a972bf3b8866 - languageName: node - linkType: hard - -"@formatjs/icu-messageformat-parser@npm:2.11.2": - version: 2.11.2 - resolution: "@formatjs/icu-messageformat-parser@npm:2.11.2" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.4" - "@formatjs/icu-skeleton-parser": "npm:1.8.14" - tslib: "npm:^2.8.0" - checksum: 10c0/a121f2d2c6b36a1632ffd64c3545e2500c8ee0f7fee5db090318c035d635c430ab123faedb5d000f18d9423a7b55fbf670b84e2e2dd72cc307a38aed61d3b2e0 - languageName: node - linkType: hard - -"@formatjs/icu-skeleton-parser@npm:1.8.14": - version: 1.8.14 - resolution: "@formatjs/icu-skeleton-parser@npm:1.8.14" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.4" - tslib: "npm:^2.8.0" - checksum: 10c0/a1807ed6e90b8a2e8d0e5b5125e6f9a2c057d3cff377fb031d2333af7cfaa6de4ed3a15c23da7294d4c3557f8b28b2163246434a19720f26b5db0497d97e9b58 - languageName: node - linkType: hard - -"@formatjs/intl-localematcher@npm:0.6.1": - version: 0.6.1 - resolution: "@formatjs/intl-localematcher@npm:0.6.1" - dependencies: - tslib: "npm:^2.8.0" - checksum: 10c0/bacbedd508519c1bb5ca2620e89dc38f12101be59439aa14aa472b222915b462cb7d679726640f6dcf52a05dd218b5aa27ccd60f2e5010bb96f1d4929848cde0 - languageName: node - linkType: hard - "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -5664,6 +5902,7 @@ __metadata: "@changesets/cli": "npm:^2.27.1" "@jest/environment-jsdom-abstract": "npm:^30.3.0" "@playwright/test": "npm:1.60.0" + "@react-stately/layout": "npm:^4.7.1" "@types/jest": "npm:^30.0.0" "@types/jsdom": "npm:^27.0.0" jest: "npm:^30.3.0" @@ -5675,40 +5914,30 @@ __metadata: languageName: unknown linkType: soft -"@internationalized/date@npm:^3.12.0": - version: 3.12.0 - resolution: "@internationalized/date@npm:3.12.0" +"@internationalized/date@npm:^3.12.0, @internationalized/date@npm:^3.12.1, @internationalized/date@npm:^3.12.2": + version: 3.12.2 + resolution: "@internationalized/date@npm:3.12.2" dependencies: "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/6a26495d32f010b227a1f506da02cdf8438506014b41cfb81576c707a3dfe3d0fd207f80bcf28acd9eef8248a2c2da115cf9016515d513653ea1b22a796d0246 + checksum: 10c0/1640dbec517b07a820b754c128ecd85930cc2f50b753b406611e59bff5aae8cac3a7ede575a66e462778ff007720af601779da08f0a2e5cdcac496c8b9593172 languageName: node linkType: hard -"@internationalized/message@npm:^3.1.8": - version: 3.1.8 - resolution: "@internationalized/message@npm:3.1.8" +"@internationalized/number@npm:^3.6.6, @internationalized/number@npm:^3.6.7": + version: 3.6.7 + resolution: "@internationalized/number@npm:3.6.7" dependencies: "@swc/helpers": "npm:^0.5.0" - intl-messageformat: "npm:^10.1.0" - checksum: 10c0/91019d66d62ab6733fa46ed495fac6878bcc98f082e51be9fd0e4b5836a4df0f488c8dcd218f2e566c713e59cc68ef3aa5fc45e5b9bca8cca458d0990765b77a + checksum: 10c0/b5d60cccc05e4549eedcaee4ef3fc7b972532321e841bce1251c4993f1f7b3416c2b92e7fddd22292ed494140fb3ca6eb6dafc6cbe37e267483e9510954a618f languageName: node linkType: hard -"@internationalized/number@npm:^3.6.5": - version: 3.6.5 - resolution: "@internationalized/number@npm:3.6.5" +"@internationalized/string@npm:^3.2.8, @internationalized/string@npm:^3.2.9": + version: 3.2.9 + resolution: "@internationalized/string@npm:3.2.9" dependencies: "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/f87d710863a8dbf057aac311193c82f3c42e862abdd99e5b71034f1022926036552620eab5dd00c23e975f28b9e41e830cb342ba0264436749d9cdc5ae031d44 - languageName: node - linkType: hard - -"@internationalized/string@npm:^3.2.7": - version: 3.2.7 - resolution: "@internationalized/string@npm:3.2.7" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/8f7bea379ce047026ef20d535aa1bd7612a5e5a5108d1e514965696a46bce34e38111411943b688d00dae2c81eae7779ae18343961310696d32ebb463a19b94a + checksum: 10c0/f4d403577cc78924378a320977aa61bbc767f38b064c2aee0d142a7bd6a8e38c002aae4a52c3694bfdad01642c37a244807deaf2e7732dea26b89092a3d72b72 languageName: node linkType: hard @@ -8652,1842 +8881,174 @@ __metadata: "@radix-ui/react-use-callback-ref@npm:1.1.1": version: 1.1.1 - resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/5f6aff8592dea6a7e46589808912aba3fb3b626cf6edd2b14f01638b61dbbe49eeb9f67cd5601f4c15b2fb547b9a7e825f7c4961acd4dd70176c969ae405f8d8 - languageName: node - linkType: hard - -"@radix-ui/react-use-controllable-state@npm:1.2.2": - version: 1.2.2 - resolution: "@radix-ui/react-use-controllable-state@npm:1.2.2" - dependencies: - "@radix-ui/react-use-effect-event": "npm:0.0.2" - "@radix-ui/react-use-layout-effect": "npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/f55c4b06e895293aed4b44c9ef26fb24432539f5346fcd6519c7745800535b571058685314e83486a45bf61dc83887e24826490d3068acc317fb0a9010516e63 - languageName: node - linkType: hard - -"@radix-ui/react-use-effect-event@npm:0.0.2": - version: 0.0.2 - resolution: "@radix-ui/react-use-effect-event@npm:0.0.2" - dependencies: - "@radix-ui/react-use-layout-effect": "npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/e84ff72a3e76c5ae9c94941028bb4b6472f17d4104481b9eab773deab3da640ecea035e54da9d6f4df8d84c18ef6913baf92b7511bee06930dc58bd0c0add417 - languageName: node - linkType: hard - -"@radix-ui/react-use-escape-keydown@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.1" - dependencies: - "@radix-ui/react-use-callback-ref": "npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/bff53be99e940fef1d3c4df7d560e1d9133182e5a98336255d3063327d1d3dd4ec54a95dc5afe15cca4fb6c184f0a956c70de2815578c318cf995a7f9beabaa1 - languageName: node - linkType: hard - -"@radix-ui/react-use-layout-effect@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/react-use-layout-effect@npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/9f98fdaba008dfc58050de60a77670b885792df473cf82c1cef8daee919a5dd5a77d270209f5f0b0abfaac78cb1627396e3ff56c81b735be550409426fe8b040 - languageName: node - linkType: hard - -"@radix-ui/react-use-rect@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/react-use-rect@npm:1.1.1" - dependencies: - "@radix-ui/rect": "npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/271711404c05c589c8dbdaa748749e7daf44bcc6bffc9ecd910821c3ebca0ee245616cf5b39653ce690f53f875c3836fd3f36f51ab1c628273b6db599eee4864 - languageName: node - linkType: hard - -"@radix-ui/react-use-size@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/react-use-size@npm:1.1.1" - dependencies: - "@radix-ui/react-use-layout-effect": "npm:1.1.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/851d09a816f44282e0e9e2147b1b571410174cc048703a50c4fa54d672de994fd1dfff1da9d480ecfd12c77ae8f48d74f01adaf668f074156b8cd0043c6c21d8 - languageName: node - linkType: hard - -"@radix-ui/react-visually-hidden@npm:1.2.3, @radix-ui/react-visually-hidden@npm:^1.0.3": - version: 1.2.3 - resolution: "@radix-ui/react-visually-hidden@npm:1.2.3" - dependencies: - "@radix-ui/react-primitive": "npm:2.1.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/cf86a37f1cbee50a964056f3dc4f6bb1ee79c76daa321f913aa20ff3e1ccdfafbf2b114d7bb616aeefc7c4b895e6ca898523fdb67710d89bd5d8edb739a0d9b6 - languageName: node - linkType: hard - -"@radix-ui/rect@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/rect@npm:1.1.1" - checksum: 10c0/0dac4f0f15691199abe6a0e067821ddd9d0349c0c05f39834e4eafc8403caf724106884035ae91bbc826e10367e6a5672e7bec4d4243860fa7649de246b1f60b - languageName: node - linkType: hard - -"@react-aria/autocomplete@npm:3.0.0-rc.6": - version: 3.0.0-rc.6 - resolution: "@react-aria/autocomplete@npm:3.0.0-rc.6" - dependencies: - "@react-aria/combobox": "npm:^3.15.0" - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/listbox": "npm:^3.15.3" - "@react-aria/searchfield": "npm:^3.8.12" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/autocomplete": "npm:3.0.0-beta.4" - "@react-stately/combobox": "npm:^3.13.0" - "@react-types/autocomplete": "npm:3.0.0-alpha.38" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a3ea55078915b221dd2132b87d7362e5ad316c6313fc4590730635b3aa6df476d59978176fc626e52cc8e78c6494ec8df6ef419db3219a577abbd55b2d28b466 - languageName: node - linkType: hard - -"@react-aria/breadcrumbs@npm:^3.5.32": - version: 3.5.32 - resolution: "@react-aria/breadcrumbs@npm:3.5.32" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/link": "npm:^3.8.9" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/breadcrumbs": "npm:^3.7.19" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/97b43e37343dbe20d12454c0e5bd010e9d271590e2c894bf831ff30113b73d373643534e1d32e5536267d7fe608071f7f77cc8cff367630c49103610e6b1412f - languageName: node - linkType: hard - -"@react-aria/button@npm:^3.14.5": - version: 3.14.5 - resolution: "@react-aria/button@npm:3.14.5" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/toolbar": "npm:3.0.0-beta.24" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/toggle": "npm:^3.9.5" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/df10c1f7d796ca7022770cf0f4695b5de5d14021f1edb9f1a1ace7e67c5534a97a1a052d161a84f9a8da1d4b8cccc98c033df623cd779450fae53911581c1d8f - languageName: node - linkType: hard - -"@react-aria/calendar@npm:^3.9.5": - version: 3.9.5 - resolution: "@react-aria/calendar@npm:3.9.5" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/calendar": "npm:^3.9.3" - "@react-types/button": "npm:^3.15.1" - "@react-types/calendar": "npm:^3.8.3" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fa2b5a041ea3c919f7ecf839abb45c7565f1d934be2683d84f991fa1936f419a4c370c02d576da3fcb0143c3d46eac15c04239b30f986e98b01004fed85a2c7a - languageName: node - linkType: hard - -"@react-aria/checkbox@npm:^3.16.5": - version: 3.16.5 - resolution: "@react-aria/checkbox@npm:3.16.5" - dependencies: - "@react-aria/form": "npm:^3.1.5" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/toggle": "npm:^3.12.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/checkbox": "npm:^3.7.5" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/toggle": "npm:^3.9.5" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d2f71668945a2c4faa8188f1a0448fae4393114f3d555d401f4f8ba09fab0c3382e31a082b8d45fb3b35599d1685037c90a0a6e8545d51f871e0f56f621faede - languageName: node - linkType: hard - -"@react-aria/collections@npm:^3.0.3": - version: 3.0.3 - resolution: "@react-aria/collections@npm:3.0.3" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - use-sync-external-store: "npm:^1.6.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b96a5f0923d9bdaf055d5c55e1f256c0f1d5e5d0dd69892980cc78a6a76bcfe5d7470fb1adba36c008806a6c77de0feb84bc950bf31d8124aa9928878350fff2 - languageName: node - linkType: hard - -"@react-aria/color@npm:^3.1.5": - version: 3.1.5 - resolution: "@react-aria/color@npm:3.1.5" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/numberfield": "npm:^3.12.5" - "@react-aria/slider": "npm:^3.8.5" - "@react-aria/spinbutton": "npm:^3.7.2" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/visually-hidden": "npm:^3.8.31" - "@react-stately/color": "npm:^3.9.5" - "@react-stately/form": "npm:^3.2.4" - "@react-types/color": "npm:^3.1.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d97fe78edec86a5f75d94469911f19d9ad8968df2d6e920b15f2b28c398ae6985cfeddbcbcfd68d19ab36a02d8d557c72b926483d8b7cd3f207f29daf7df2674 - languageName: node - linkType: hard - -"@react-aria/combobox@npm:^3.15.0": - version: 3.15.0 - resolution: "@react-aria/combobox@npm:3.15.0" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/listbox": "npm:^3.15.3" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/menu": "npm:^3.21.0" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/combobox": "npm:^3.13.0" - "@react-stately/form": "npm:^3.2.4" - "@react-types/button": "npm:^3.15.1" - "@react-types/combobox": "npm:^3.14.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/39dabc979125bdf96e25236070c3cdb7aa6e381a4c823e6f021ccaf431e7412a0b397226696ec27c5b9c890f021d004df9a9880709346de930e0815e46102e21 - languageName: node - linkType: hard - -"@react-aria/datepicker@npm:^3.16.1": - version: 3.16.1 - resolution: "@react-aria/datepicker@npm:3.16.1" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@internationalized/number": "npm:^3.6.5" - "@internationalized/string": "npm:^3.2.7" - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/form": "npm:^3.1.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/spinbutton": "npm:^3.7.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/datepicker": "npm:^3.16.1" - "@react-stately/form": "npm:^3.2.4" - "@react-types/button": "npm:^3.15.1" - "@react-types/calendar": "npm:^3.8.3" - "@react-types/datepicker": "npm:^3.13.5" - "@react-types/dialog": "npm:^3.5.24" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5390bea90bf0d4df0b25b2ac34e78052a77da68d833af23abac843708ea46fd67079251b84cb4e8d9b3e3ad450850c232711f4cc7dd47e0d5f099bdff83514a4 - languageName: node - linkType: hard - -"@react-aria/dialog@npm:^3.5.34": - version: 3.5.34 - resolution: "@react-aria/dialog@npm:3.5.34" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/dialog": "npm:^3.5.24" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/cc1f50a40ac20a27528e8aa17cd7ff47f26471e1c87a8f0ee445fe909a00f58a4abee4a857be114d229e5b6e15832572709d1cf2d42f1eb8e0fe209f0c45a97a - languageName: node - linkType: hard - -"@react-aria/disclosure@npm:^3.1.3": - version: 3.1.3 - resolution: "@react-aria/disclosure@npm:3.1.3" - dependencies: - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/disclosure": "npm:^3.0.11" - "@react-types/button": "npm:^3.15.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/f081af1189f5efd72d59aa7cd74e10bf03f534d458e156276f281d3ba633543657cbc76535e4c43cd071ec63bfb97f04ae8d2683dc7fdea845e576abd0cf23a3 - languageName: node - linkType: hard - -"@react-aria/dnd@npm:^3.11.6": - version: 3.11.6 - resolution: "@react-aria/dnd@npm:3.11.6" - dependencies: - "@internationalized/string": "npm:^3.2.7" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/dnd": "npm:^3.7.4" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/47d4a45c1c56f7e37ae22043c0b1d5ad67359b0cb2cfb46b26a3f587d551e99564ae3331dd31ada699f04cde51a9cec384a1beed5f566cbd6e15b2884dac98d6 - languageName: node - linkType: hard - -"@react-aria/focus@npm:^3.21.5": - version: 3.21.5 - resolution: "@react-aria/focus@npm:3.21.5" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - clsx: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/f14f3d2d14b11d1e70028c4040cae46f132a24594e9217d7041d63ebff4cf8bc5d7f07b029c97481f267a440cfd6e1521181484b665f2a410b76ee77ceb641bf - languageName: node - linkType: hard - -"@react-aria/form@npm:^3.1.5": - version: 3.1.5 - resolution: "@react-aria/form@npm:3.1.5" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/form": "npm:^3.2.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fe3127151f95c8cde971384ff6f0cc9ebaf826e9ec818efbb75ac7d72ffa6a6445ba3431502ca77099d0281ea8fae2c6c53ce5f299e92a725bf0d45fb7f018af - languageName: node - linkType: hard - -"@react-aria/grid@npm:^3.14.8": - version: 3.14.8 - resolution: "@react-aria/grid@npm:3.14.8" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/grid": "npm:^3.11.9" - "@react-stately/selection": "npm:^3.20.9" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6e824d536aec986ed11121076044199f96cfca21ec3ca69759a76f8ab524d8c4ef2b02fc98bdc075155818daa19e9fb82b565b8641ed08e50fcb36c09ab0860e - languageName: node - linkType: hard - -"@react-aria/gridlist@npm:^3.14.4": - version: 3.14.4 - resolution: "@react-aria/gridlist@npm:3.14.4" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/grid": "npm:^3.14.8" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/list": "npm:^3.13.4" - "@react-stately/tree": "npm:^3.9.6" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c94350a6c17d1343eaa9cbae028f33f7487d712e95a0a096edf95d726f1100c12214015dc8c7512e77475cf446a9a54a9a0b89264727903b9e1b272b61683ab2 - languageName: node - linkType: hard - -"@react-aria/i18n@npm:^3.12.16": - version: 3.12.16 - resolution: "@react-aria/i18n@npm:3.12.16" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@internationalized/message": "npm:^3.1.8" - "@internationalized/number": "npm:^3.6.5" - "@internationalized/string": "npm:^3.2.7" - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/dfe20390526ee74b0eaec66ae990c2e76d7712afe95be5e38e2e0400a95e91cbf43e73c0e5ac3d2d25c1cb3b5ee6e55f02e272dd24ee9e9d6648a5317e68e674 - languageName: node - linkType: hard - -"@react-aria/interactions@npm:^3.27.1": - version: 3.27.1 - resolution: "@react-aria/interactions@npm:3.27.1" - dependencies: - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/flags": "npm:^3.1.2" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3fe2bf9b6d58554c21bacbc9d6af4a547040b803a8eaed5b5fa3ea99045fe777a038ef1f4b13919833b60744ba46635aaf0849d04a6de1eb545728c339a8b510 - languageName: node - linkType: hard - -"@react-aria/label@npm:^3.7.25": - version: 3.7.25 - resolution: "@react-aria/label@npm:3.7.25" - dependencies: - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/06474430cd3574aab2eba10823bbaa4ee28bb4e5cdae58b9de38600dcf73bb6ace1af520f507fb8e507f0acd9eea20002af471b57119a71f2da8ea8d0c03d58f - languageName: node - linkType: hard - -"@react-aria/landmark@npm:^3.0.10": - version: 3.0.10 - resolution: "@react-aria/landmark@npm:3.0.10" - dependencies: - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - use-sync-external-store: "npm:^1.6.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5f3cf583ef8f473e6f2733d3090ac58ee7493b9d8e7c4beffb9a5ea9dc1f0a91f5308d9782de4bb229f32421e1e73a10df0dac724b3c722c043557117a2313db - languageName: node - linkType: hard - -"@react-aria/link@npm:^3.8.9": - version: 3.8.9 - resolution: "@react-aria/link@npm:3.8.9" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/link": "npm:^3.6.7" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4724cf10762a6bda9d4c17adae5bf95a27512152f7f5f1d798d3cb835dd2321860f143e66f98f3653b3f2d776909a8f269fb8476395965d8ee0fe3d040ec3977 - languageName: node - linkType: hard - -"@react-aria/listbox@npm:^3.15.3": - version: 3.15.3 - resolution: "@react-aria/listbox@npm:3.15.3" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/list": "npm:^3.13.4" - "@react-types/listbox": "npm:^3.7.6" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c0f08d32971ede39dc5941e451dd8aac22e0655abca3840d547e99a6dc6e9b3a3787cf501c284367df642584dbbc8440246ac6e94fbdf5598f5d181952e8b7e1 - languageName: node - linkType: hard - -"@react-aria/live-announcer@npm:^3.4.4": - version: 3.4.4 - resolution: "@react-aria/live-announcer@npm:3.4.4" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/1598372e773ee8dbb2f1d2a946652384f5140ab54106416e2a182c72eaabc1b3739e624bac7aea3d95429ba16487074c782ff90db093be36dd1d4cf84f9f9a17 - languageName: node - linkType: hard - -"@react-aria/menu@npm:^3.21.0": - version: 3.21.0 - resolution: "@react-aria/menu@npm:3.21.0" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/menu": "npm:^3.9.11" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/tree": "npm:^3.9.6" - "@react-types/button": "npm:^3.15.1" - "@react-types/menu": "npm:^3.10.7" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7f20522dc3afa4a927c71e41b62777a9096a22b61c45ce73eccc163f7b14628f45f00c7dfe603b0a511018e9f4eddbaf094c5bfd7a6acc59701ecc11d3b1bafb - languageName: node - linkType: hard - -"@react-aria/meter@npm:^3.4.30": - version: 3.4.30 - resolution: "@react-aria/meter@npm:3.4.30" - dependencies: - "@react-aria/progress": "npm:^3.4.30" - "@react-types/meter": "npm:^3.4.15" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/8aed01a68b0dfce61c1ae59eb4c95d9feeb0bcabf8ed6492a95133c45c1553f7ea03865dca45ba0341b621827fa8cd06a931d8602dd86cfc84828e5c8dc1fb58 - languageName: node - linkType: hard - -"@react-aria/numberfield@npm:^3.12.5": - version: 3.12.5 - resolution: "@react-aria/numberfield@npm:3.12.5" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/spinbutton": "npm:^3.7.2" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/numberfield": "npm:^3.11.0" - "@react-types/button": "npm:^3.15.1" - "@react-types/numberfield": "npm:^3.8.18" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/54f204d4a92295f24d5f7a18290891baff95f355c17980fa028acdd875d0e41ff1e18aced9f879e1bbbbe34acd48237efd623772bbf240f603b8e11f60e2e2c5 - languageName: node - linkType: hard - -"@react-aria/overlays@npm:^3.31.2": - version: 3.31.2 - resolution: "@react-aria/overlays@npm:3.31.2" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/visually-hidden": "npm:^3.8.31" - "@react-stately/flags": "npm:^3.1.2" - "@react-stately/overlays": "npm:^3.6.23" - "@react-types/button": "npm:^3.15.1" - "@react-types/overlays": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c53b87a608cbc13b49e26061604314e4d0b8048716934884e6a34b1dc0250859b641e6ed654d9aa3df85f7a88d093644c8cc607a092b54f62c7044a1ca458a79 - languageName: node - linkType: hard - -"@react-aria/progress@npm:^3.4.30": - version: 3.4.30 - resolution: "@react-aria/progress@npm:3.4.30" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/progress": "npm:^3.5.18" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/8db32d5a8dd12f511ab48e9b2707e7c305b777103bdbb828ac190dd3ebcad77400df88525e97f020388d647efd72766376f6b4b3574df51ff981dde6dfc554c0 - languageName: node - linkType: hard - -"@react-aria/radio@npm:^3.12.5": - version: 3.12.5 - resolution: "@react-aria/radio@npm:3.12.5" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/form": "npm:^3.1.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/radio": "npm:^3.11.5" - "@react-types/radio": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d9637d50aa01c6e7fc9f997241794b231b1b46e5beea2f998a041c316235cc28d79e9acf8b6e27cfb4a6f3060e5a069c3ec9fee74eb51f7fd0a20805bb22e2cb - languageName: node - linkType: hard - -"@react-aria/searchfield@npm:^3.8.12": - version: 3.8.12 - resolution: "@react-aria/searchfield@npm:3.8.12" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/searchfield": "npm:^3.5.19" - "@react-types/button": "npm:^3.15.1" - "@react-types/searchfield": "npm:^3.6.8" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a75e6f8984da2529eed3d301deff350eb199a6a82f0d466b7ea81e029e70c24e254ee4aea374760f6f3f52746e60c9b7f6f0a212cd50378f4359478d206561b0 - languageName: node - linkType: hard - -"@react-aria/select@npm:^3.17.3": - version: 3.17.3 - resolution: "@react-aria/select@npm:3.17.3" - dependencies: - "@react-aria/form": "npm:^3.1.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/listbox": "npm:^3.15.3" - "@react-aria/menu": "npm:^3.21.0" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/visually-hidden": "npm:^3.8.31" - "@react-stately/select": "npm:^3.9.2" - "@react-types/button": "npm:^3.15.1" - "@react-types/select": "npm:^3.12.2" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6084e71341952388a1b2780fae13b2628a58e10ba8f486caecb75f3ee4a6fb98d5bf16edf449566487b9620e8a12e3ba04ed12344b17b22362112fe07d6310dd - languageName: node - linkType: hard - -"@react-aria/selection@npm:^3.27.2": - version: 3.27.2 - resolution: "@react-aria/selection@npm:3.27.2" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/selection": "npm:^3.20.9" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/bc283b7fd3169f1287a6f90bfa73a48f1b5f51ba38e1b32d785ba8c761f616927b0b649d410a793ff461d16a5dfb5c066b4ecc0100db8b5556ccf0d2bdfe42c4 - languageName: node - linkType: hard - -"@react-aria/separator@npm:^3.4.16": - version: 3.4.16 - resolution: "@react-aria/separator@npm:3.4.16" - dependencies: - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/bf32279f3c94da22c9f3eda7c1fe6dd9206cf670819c94be0099c158d0b5e2401fcfd22e5f2f9b748079fa53c69130e089f89cd3333947a4ae76d0ff18932482 - languageName: node - linkType: hard - -"@react-aria/slider@npm:^3.8.5": - version: 3.8.5 - resolution: "@react-aria/slider@npm:3.8.5" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/slider": "npm:^3.7.5" - "@react-types/shared": "npm:^3.33.1" - "@react-types/slider": "npm:^3.8.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4b44a91f066fe0b31ab17efa64e23e2f6ffcf416eed219d319b96f1b3ff9850b73e8f08e6ef5a00fd0f6109924495f39995304222bf83e7e46276513357e11df - languageName: node - linkType: hard - -"@react-aria/spinbutton@npm:^3.7.2": - version: 3.7.2 - resolution: "@react-aria/spinbutton@npm:3.7.2" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/97c2f504bb07484d78045cf5b36301b0eea6226928a72ffc80c03212657e6c9e18dbb7f1bd5caa91235008e0d6ad0672dd37144967dd1b2deb56b025d27c9baa - languageName: node - linkType: hard - -"@react-aria/ssr@npm:^3.9.10": - version: 3.9.10 - resolution: "@react-aria/ssr@npm:3.9.10" - dependencies: - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/44acb4c441d9c5d65aab94aa81fd8368413cf2958ab458582296dd78f6ba4783583f2311fa986120060e5c26b54b1f01e8910ffd17e4f41ccc5fc8c357d84089 - languageName: node - linkType: hard - -"@react-aria/switch@npm:^3.7.11": - version: 3.7.11 - resolution: "@react-aria/switch@npm:3.7.11" - dependencies: - "@react-aria/toggle": "npm:^3.12.5" - "@react-stately/toggle": "npm:^3.9.5" - "@react-types/shared": "npm:^3.33.1" - "@react-types/switch": "npm:^3.5.17" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b3561b707be211e6ce4b6c58f4463be285b88be082d9d449561513465450730e67e87f951d137d0f6f7260124588c571fbdcd6524fd42f9f144c267f199f5a76 - languageName: node - linkType: hard - -"@react-aria/table@npm:^3.17.11": - version: 3.17.11 - resolution: "@react-aria/table@npm:3.17.11" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/grid": "npm:^3.14.8" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/visually-hidden": "npm:^3.8.31" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/flags": "npm:^3.1.2" - "@react-stately/table": "npm:^3.15.4" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@react-types/table": "npm:^3.13.6" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/8959b2f4fa42e56019b0e6a8586011a5220cd59f4b69efe344e2fb16769642b7fdbe02eca7c96fbd41bdeb873c3e46f55663c31ab82b9ac4fadaf2cd6f179857 - languageName: node - linkType: hard - -"@react-aria/tabs@npm:^3.11.1": - version: 3.11.1 - resolution: "@react-aria/tabs@npm:3.11.1" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/tabs": "npm:^3.8.9" - "@react-types/shared": "npm:^3.33.1" - "@react-types/tabs": "npm:^3.3.22" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/24c26ff9a0f5a4d7adf2a2fa4d887cc9bd9a40c1a88013ed5d7d71c68bf69497bc28480cadca018fb3e597be0215f75cf7028a114b0add76c12f23043e37737d - languageName: node - linkType: hard - -"@react-aria/tag@npm:^3.8.1": - version: 3.8.1 - resolution: "@react-aria/tag@npm:3.8.1" - dependencies: - "@react-aria/gridlist": "npm:^3.14.4" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/list": "npm:^3.13.4" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3969ef97889543e7f3a599198a6724d27e76f61da20d01e4ff39916534e9f4a4be92913c190381db432f918399fb3b08e5e7d8529e01625c39c4ed4b5a1bd4e8 - languageName: node - linkType: hard - -"@react-aria/textfield@npm:^3.18.5": - version: 3.18.5 - resolution: "@react-aria/textfield@npm:3.18.5" - dependencies: - "@react-aria/form": "npm:^3.1.5" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@react-types/textfield": "npm:^3.12.8" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/36e58a23fb29f2167cb404932c6339bbd8a8d33b68145df575fbeafadd5d50b6e130b578e10b109b93e8b08328a79afbdf3af3b50d0a07812b85b8b7d35e42ca - languageName: node - linkType: hard - -"@react-aria/toast@npm:^3.0.11": - version: 3.0.11 - resolution: "@react-aria/toast@npm:3.0.11" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/landmark": "npm:^3.0.10" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/toast": "npm:^3.1.3" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/235044b30738582c7838facff395db85d9de2a48691b8fe01020e825520d6662c1e6aef61a9c515f3301d4402203614c3a9e1460b89bf60c54853f66b4cf62f3 - languageName: node - linkType: hard - -"@react-aria/toggle@npm:^3.12.5": - version: 3.12.5 - resolution: "@react-aria/toggle@npm:3.12.5" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/toggle": "npm:^3.9.5" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/8afb40f99c9e57efb2e18ac5fb8a67a88cd45b36ece218667fe67adec84dd4b1a45bd97412e6ee396dab0d763fa3d71f1451f5f54c20366aac8212c7020ed6d3 - languageName: node - linkType: hard - -"@react-aria/toolbar@npm:3.0.0-beta.24": - version: 3.0.0-beta.24 - resolution: "@react-aria/toolbar@npm:3.0.0-beta.24" - dependencies: - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ee47c3fc2eac0b4fcc4ebcd6d746fa3d50087d76273381f5b23b4274a9d4d129bc7057b8775f5b5081e431077ffdd6b51f1b1ccdcea86bf1a20eb8e44459e912 - languageName: node - linkType: hard - -"@react-aria/tooltip@npm:^3.9.2": - version: 3.9.2 - resolution: "@react-aria/tooltip@npm:3.9.2" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/tooltip": "npm:^3.5.11" - "@react-types/shared": "npm:^3.33.1" - "@react-types/tooltip": "npm:^3.5.2" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d52e3d8bb4bb481a7bf7a2e9b286d226f7f7c0a83c18620ed9f2318f5be1ad7411ca479e4ff8efdb13dfec12277ece895338251a06b283b4bc39d443545bd4f2 - languageName: node - linkType: hard - -"@react-aria/tree@npm:^3.1.7": - version: 3.1.7 - resolution: "@react-aria/tree@npm:3.1.7" - dependencies: - "@react-aria/gridlist": "npm:^3.14.4" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/tree": "npm:^3.9.6" - "@react-types/button": "npm:^3.15.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a0ca8cc14dac2cac8b294fbc8696f0895cfab1b82dedf17a165d971f8ba03044fec935063e256759c870e88d7858fc8ac151446eaa516e173c19dd94d927f06c - languageName: node - linkType: hard - -"@react-aria/utils@npm:^3.33.1": - version: 3.33.1 - resolution: "@react-aria/utils@npm:3.33.1" - dependencies: - "@react-aria/ssr": "npm:^3.9.10" - "@react-stately/flags": "npm:^3.1.2" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - clsx: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/8b59b6e4f5f2358aecc291c929b621e68d121ebd15a8377da0a8b34ee706c9caea928dc34a0cc70650527dc9538619f4a9dcbcacf92bee31a73e69f59afbc772 - languageName: node - linkType: hard - -"@react-aria/virtualizer@npm:^4.1.13": - version: 4.1.13 - resolution: "@react-aria/virtualizer@npm:4.1.13" - dependencies: - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-stately/virtualizer": "npm:^4.4.6" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/483e03235d3066dd0d1a24884e9fde115e21b472bae087cad69b56edbdbb0e38a4fb54d15c4eb6df6f6d8f1f3dca9282fc5da070151e8719e7a9024b939d2836 - languageName: node - linkType: hard - -"@react-aria/visually-hidden@npm:^3.8.31": - version: 3.8.31 - resolution: "@react-aria/visually-hidden@npm:3.8.31" - dependencies: - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/utils": "npm:^3.33.1" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/bb33ba7ec2b274241140c8219e243c0c059bb11d01304881c883b0f6e8b708fdebda8729bc682b5468a43d74d7a576b722e6ffbbdf9cb0370d0ab6833f161c50 - languageName: node - linkType: hard - -"@react-hookz/deep-equal@npm:^1.0.4": - version: 1.0.4 - resolution: "@react-hookz/deep-equal@npm:1.0.4" - checksum: 10c0/f48774ccc63506e8de29eb6f3beff1204a5f51e481329f6b38b578bb43b35391eeacd9908f35a7fcca008e4c7e5144be7092103236042a8bcbbe4e7594ed4eb9 - languageName: node - linkType: hard - -"@react-hookz/web@npm:^24.0.0": - version: 24.0.4 - resolution: "@react-hookz/web@npm:24.0.4" - dependencies: - "@react-hookz/deep-equal": "npm:^1.0.4" - peerDependencies: - js-cookie: ^3.0.5 - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 - peerDependenciesMeta: - js-cookie: - optional: true - checksum: 10c0/894419b88601938b6b2027c8bc77a7e470de4cf196a2d461d53842b037cae57a2abe8e7279edd01ab56d7c671dd155de7795f6e717331c7fdb89734eafac8769 - languageName: node - linkType: hard - -"@react-stately/autocomplete@npm:3.0.0-beta.4": - version: 3.0.0-beta.4 - resolution: "@react-stately/autocomplete@npm:3.0.0-beta.4" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1dd69bc262bd761f21b2ff7c594f8ffbfc34e12bbb721d6077739a59646be9cbcdff8652874ca1402c8644ac5639275fa928172e478db10770ae951af629b03f - languageName: node - linkType: hard - -"@react-stately/calendar@npm:^3.9.3": - version: 3.9.3 - resolution: "@react-stately/calendar@npm:3.9.3" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/calendar": "npm:^3.8.3" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/24231a0b0c270b9936a043b4e17091005fce0749804f1b0ea7e0f101f945081255d08439186d0229430f2ade745c9d2eaa131e0b154d236e0dc3b0912a93864e - languageName: node - linkType: hard - -"@react-stately/checkbox@npm:^3.7.5": - version: 3.7.5 - resolution: "@react-stately/checkbox@npm:3.7.5" - dependencies: - "@react-stately/form": "npm:^3.2.4" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c60a931853af7882e7fa498f3e02c0ef13fbf824696f504869e22f1f1fc65967d3f05f9dd66a4b466bb8a8533113bddf713c712abcbcae07f50fb11c952db4c5 - languageName: node - linkType: hard - -"@react-stately/collections@npm:^3.12.10": - version: 3.12.10 - resolution: "@react-stately/collections@npm:3.12.10" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6c033e1e4f345bcad9cc725f63a63c2908d45ee96c44a27bf67d41f1c6065f9bce3177de2168cff53ca33ebe93028a8806e3f45659f600efcac739fae02876c1 - languageName: node - linkType: hard - -"@react-stately/color@npm:^3.9.5": - version: 3.9.5 - resolution: "@react-stately/color@npm:3.9.5" - dependencies: - "@internationalized/number": "npm:^3.6.5" - "@internationalized/string": "npm:^3.2.7" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/numberfield": "npm:^3.11.0" - "@react-stately/slider": "npm:^3.7.5" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/color": "npm:^3.1.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7fa5b21ef06ee3aab466e9caf1a4c6c9c4591828d433d0600777b1f00324abe4918572dd6ec6640d9a7ed41e631ef7ae19f7fa277c3232ae7fb20b1057b0938b - languageName: node - linkType: hard - -"@react-stately/combobox@npm:^3.13.0": - version: 3.13.0 - resolution: "@react-stately/combobox@npm:3.13.0" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/list": "npm:^3.13.4" - "@react-stately/overlays": "npm:^3.6.23" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/combobox": "npm:^3.14.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b538778862fa5107e8c8b54f630a5d0a6ec2c1d35ae9111b813baf0bdfd55f79cedd8b3dcf0a8ad118edfb9f300506a382b09c8a13b706f183d6d61156e4533d - languageName: node - linkType: hard - -"@react-stately/data@npm:^3.15.2": - version: 3.15.2 - resolution: "@react-stately/data@npm:3.15.2" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b8765059eac1e19dac9e0e4407f1a36e4204b62dd7efc87a1fe157574869df17f9852a7f6c94a8813b3844c38023f25317fe83eff1cd752552da59235b9c5f14 - languageName: node - linkType: hard - -"@react-stately/datepicker@npm:^3.16.1": - version: 3.16.1 - resolution: "@react-stately/datepicker@npm:3.16.1" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@internationalized/number": "npm:^3.6.5" - "@internationalized/string": "npm:^3.2.7" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/overlays": "npm:^3.6.23" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/datepicker": "npm:^3.13.5" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7b4d044e9f5feb30ee5d4ac66fce9294a97464471d659d6fc35d6d0d4f8280283b1cfcbf5f232ac38ed16f4b765b15ac6d67399efb3f78488cf4e46d015e4c56 - languageName: node - linkType: hard - -"@react-stately/disclosure@npm:^3.0.11": - version: 3.0.11 - resolution: "@react-stately/disclosure@npm:3.0.11" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1b588e777fe01a527897cfce0fbc07525df02ee602e2a3a2415e5ef28596af965cbefc0a7f603aaea413f3ca1cb46ee236d0544550cf4906cb1a2d2ea6eb20fc - languageName: node - linkType: hard - -"@react-stately/dnd@npm:^3.7.4": - version: 3.7.4 - resolution: "@react-stately/dnd@npm:3.7.4" - dependencies: - "@react-stately/selection": "npm:^3.20.9" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9cb1292c04364e631ace5d5e86f0b89423c958a7b80dcd22ef2f36edca20a3cd9315af327a79d337e60d349ffcc770c9b59e0ab9dc206af5e42e6aad34229467 - languageName: node - linkType: hard - -"@react-stately/flags@npm:^3.1.2": - version: 3.1.2 - resolution: "@react-stately/flags@npm:3.1.2" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/d86890ce662f04c7d8984e9560527f46c9779b97757abded9e1bf7e230a6900a0ea7a3e7c22534de8d2ff278abae194e4e4ad962d710f3b04c52a4e1011c2e5b - languageName: node - linkType: hard - -"@react-stately/form@npm:^3.2.4": - version: 3.2.4 - resolution: "@react-stately/form@npm:3.2.4" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/e940fd5a8fa0fcd3f09acdc3eb97b12fa84690d6a4fc01a52da22673e4a2580b76626901296cad7ee7ed9ea43deb9a48e6af248bf4d59a4fe4c599f30941ecb3 - languageName: node - linkType: hard - -"@react-stately/grid@npm:^3.11.9": - version: 3.11.9 - resolution: "@react-stately/grid@npm:3.11.9" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/selection": "npm:^3.20.9" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6fbd5be08268a893254f19a26495f7b578e78fd51373f92711603295c0335cfaf36a4478db77cc48fa585e22963370b232b3d394037c74125b90349e14bb0631 - languageName: node - linkType: hard - -"@react-stately/layout@npm:^4.6.0": - version: 4.6.0 - resolution: "@react-stately/layout@npm:4.6.0" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/table": "npm:^3.15.4" - "@react-stately/virtualizer": "npm:^4.4.6" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@react-types/table": "npm:^3.13.6" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/cb50d63cf725776ccade53baa7256ce9708591ac63c6849997acf74774a2ee0dca1f2cc16164ff2eb8c302b0f30bdb6bab38bc75e882a079887d4c6d6c1ff23a - languageName: node - linkType: hard - -"@react-stately/list@npm:^3.13.4": - version: 3.13.4 - resolution: "@react-stately/list@npm:3.13.4" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/df5c4b07bd81fc2a3db13fa618aec99f91b94467d107f3ab123de6c336f757faf120c4fb3e04aa68a635026240668f78902ea9c4d3f3da6b4238506ecbbd5721 - languageName: node - linkType: hard - -"@react-stately/menu@npm:^3.9.11": - version: 3.9.11 - resolution: "@react-stately/menu@npm:3.9.11" - dependencies: - "@react-stately/overlays": "npm:^3.6.23" - "@react-types/menu": "npm:^3.10.7" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6006e7fd865eee1b4accdb22a13fbbd5c11de5f5b613a562b280eefbd2b1c3adb273348047d6214a5f53f6b4486202f46114969235110e02c1e208bf9e6eb635 - languageName: node - linkType: hard - -"@react-stately/numberfield@npm:^3.11.0": - version: 3.11.0 - resolution: "@react-stately/numberfield@npm:3.11.0" - dependencies: - "@internationalized/number": "npm:^3.6.5" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/numberfield": "npm:^3.8.18" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5e82aed4dadb5a0ef38385ef07c961c88d27f96e4d1a7fa8ebb79ebb825d235f919e31cf97cb09e369d412682742acbef631c7b876cbedd040d65e1df0d8af72 - languageName: node - linkType: hard - -"@react-stately/overlays@npm:^3.6.23": - version: 3.6.23 - resolution: "@react-stately/overlays@npm:3.6.23" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@react-types/overlays": "npm:^3.9.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7c62160e11bbeb58780a629e09f0c8b16716a06b5c6114909fc45bb0118d55913b50aab3bbee2d6f60bbdd1075fed234dd361b3595b6cc49115a370c66b01ff3 - languageName: node - linkType: hard - -"@react-stately/radio@npm:^3.11.5": - version: 3.11.5 - resolution: "@react-stately/radio@npm:3.11.5" - dependencies: - "@react-stately/form": "npm:^3.2.4" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/radio": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/85a3cdd263e91445b4c739a8cf817a44032aab4c0863b385ebda49009d5c737fa653d087fc992771304037972d4d31fd065c00a46a36f11f688cb2e9e5da215e - languageName: node - linkType: hard - -"@react-stately/searchfield@npm:^3.5.19": - version: 3.5.19 - resolution: "@react-stately/searchfield@npm:3.5.19" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@react-types/searchfield": "npm:^3.6.8" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/f0b0cb7bbfdc7415049739984b6670baff4e45e62d26026050bd916a0c45e1f740fa53f4bc5d08326ae6b1b41ea8db219e34b3e6c053d8d8398536eeeee396ed - languageName: node - linkType: hard - -"@react-stately/select@npm:^3.9.2": - version: 3.9.2 - resolution: "@react-stately/select@npm:3.9.2" - dependencies: - "@react-stately/form": "npm:^3.2.4" - "@react-stately/list": "npm:^3.13.4" - "@react-stately/overlays": "npm:^3.6.23" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/select": "npm:^3.12.2" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/613ec7668802085f5b281d651ec0e2229b45dc17b2b750342bfbba928965af1da1e64f0214f89eafc836710ee440406863b8ac26b80e8d63c2fe9945a587f3f5 - languageName: node - linkType: hard - -"@react-stately/selection@npm:^3.20.9": - version: 3.20.9 - resolution: "@react-stately/selection@npm:3.20.9" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c006938877d900a885e39d066f5f5bc00fe346c197b4514b7cd93256e402d88f3f133e84f0ca22385d975936d641e6535ba1560cf73333c2314d6621d08b2cd3 - languageName: node - linkType: hard - -"@react-stately/slider@npm:^3.7.5": - version: 3.7.5 - resolution: "@react-stately/slider@npm:3.7.5" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@react-types/slider": "npm:^3.8.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/e1c14a4354f910bf967b4e450e02bb447baa3a268460a00b19944ce457785ec19a3fb386a82c7d1d7ff6a110a368193a008418ecfbaab9844681d7391d4568a0 - languageName: node - linkType: hard - -"@react-stately/table@npm:^3.15.4": - version: 3.15.4 - resolution: "@react-stately/table@npm:3.15.4" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/flags": "npm:^3.1.2" - "@react-stately/grid": "npm:^3.11.9" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@react-types/table": "npm:^3.13.6" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/47fef5047d1e0aeb7e34db1f575d9f92b4b6bb5264dcf59862fed32d227863b6fc0b0b4357cb542fa25cc2f4d271e719e3a04bf1875960d01b6fa9860956ff07 - languageName: node - linkType: hard - -"@react-stately/tabs@npm:^3.8.9": - version: 3.8.9 - resolution: "@react-stately/tabs@npm:3.8.9" - dependencies: - "@react-stately/list": "npm:^3.13.4" - "@react-types/shared": "npm:^3.33.1" - "@react-types/tabs": "npm:^3.3.22" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9c61603a3c928b5caa40b02fe0fb82e0c9085d3f3dc624bc0e911981097fe3db4a03c13e794178f3fc47365a4a71b46b1098346da00b5464ad19277b936b4236 - languageName: node - linkType: hard - -"@react-stately/toast@npm:^3.1.3": - version: 3.1.3 - resolution: "@react-stately/toast@npm:3.1.3" - dependencies: - "@swc/helpers": "npm:^0.5.0" - use-sync-external-store: "npm:^1.6.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b6965d260625a837899edb0dc771ef3019cbdf79a80d9b43f4a69ed8194f49a2bb0f8dac0e63aa25dd400cac0d9b6ee7d6ab097a65ef4a1a77dd84dfcea1d472 - languageName: node - linkType: hard - -"@react-stately/toggle@npm:^3.9.5": - version: 3.9.5 - resolution: "@react-stately/toggle@npm:3.9.5" - dependencies: - "@react-stately/utils": "npm:^3.11.0" - "@react-types/checkbox": "npm:^3.10.4" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/eebc198e2d8a9f90d94d42e90657147ac380cc7db053549d203a97780963d007f92545e5dab03a8126530c6444254d1b802a2a7918dfc537e16d172e17172d20 - languageName: node - linkType: hard - -"@react-stately/tooltip@npm:^3.5.11": - version: 3.5.11 - resolution: "@react-stately/tooltip@npm:3.5.11" - dependencies: - "@react-stately/overlays": "npm:^3.6.23" - "@react-types/tooltip": "npm:^3.5.2" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d21970faad11e33d3255ef7957ca299951f4b4e677b3a49418f534b1bc3ce5a627fd3531b23e7e9d77e4de6e5d2d1300c713de271e9614b0e5b12ced29d93103 - languageName: node - linkType: hard - -"@react-stately/tree@npm:^3.9.6": - version: 3.9.6 - resolution: "@react-stately/tree@npm:3.9.6" - dependencies: - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/utils": "npm:^3.11.0" - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/96b82237a95d3d6957989f36fd7595263f5c28b786e65efe3c51e18b379e1385cddcfd0b806380ed046798df76020a12eb12d4f4a810d15cfaed579e95e63e26 - languageName: node - linkType: hard - -"@react-stately/utils@npm:^3.11.0": - version: 3.11.0 - resolution: "@react-stately/utils@npm:3.11.0" - dependencies: - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/09b38438df19fd8ff14d3147b2f9e5d42869b3ee637b0e33d6f2ab5cba93612e640c6de339b766b8c825d7bef828851fd551d5a197a037eb1331913546b8516c - languageName: node - linkType: hard - -"@react-stately/virtualizer@npm:^4.4.6": - version: 4.4.6 - resolution: "@react-stately/virtualizer@npm:4.4.6" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fc7bdd9000ddfc0badec8e9adc8766e2344bf039f3dad6ae6aaee0d1b076a5c209d74f63e5cbfa8dc200ef740059296e36b5cb04069e0130303235698235ba51 - languageName: node - linkType: hard - -"@react-types/autocomplete@npm:3.0.0-alpha.38": - version: 3.0.0-alpha.38 - resolution: "@react-types/autocomplete@npm:3.0.0-alpha.38" - dependencies: - "@react-types/combobox": "npm:^3.14.0" - "@react-types/searchfield": "npm:^3.6.8" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b5629078aa912fbcde06ff9b6247c0243752b42691b5d88e248b8d3d04dfd66eb53c1326144d36cb8ce74f5dc33902a15d13807c639304341add9af96185c7fa - languageName: node - linkType: hard - -"@react-types/breadcrumbs@npm:^3.7.19": - version: 3.7.19 - resolution: "@react-types/breadcrumbs@npm:3.7.19" - dependencies: - "@react-types/link": "npm:^3.6.7" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/23502634fa73d3a2b54cf298a172b22df73e5cbf8296770fbcf028bc9edf338fe68f56f34cfc41cf1d195722b0dff75caab28215f6a3bccd1f809197896646c4 - languageName: node - linkType: hard - -"@react-types/button@npm:^3.15.1": - version: 3.15.1 - resolution: "@react-types/button@npm:3.15.1" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2b05f8c6735ebc46ee832f1065593f86ab64028c38147d71204c8ecda5599e345c210b6d7341c135842dd7efb149dc114ecb0e43d76365b82bdd9341c2659d53 - languageName: node - linkType: hard - -"@react-types/calendar@npm:^3.8.3": - version: 3.8.3 - resolution: "@react-types/calendar@npm:3.8.3" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c1f129b2f431227d7150639f95201c50f32299813e3e8714f2457335023675ff61b08508b67a687ceef18c0449e1b07c7863688e2710615be746cde6ffb60c0b - languageName: node - linkType: hard - -"@react-types/checkbox@npm:^3.10.4": - version: 3.10.4 - resolution: "@react-types/checkbox@npm:3.10.4" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/010479017ce2b42a1f4f10cf539f5fe48c85c555224bac1368c9e0433a7803d58bf2ba84a78597eae34387aac65caa7b64b9e6da8fbb391c91076f590957f25b - languageName: node - linkType: hard - -"@react-types/color@npm:^3.1.4": - version: 3.1.4 - resolution: "@react-types/color@npm:3.1.4" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@react-types/slider": "npm:^3.8.4" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ab0505bad9bca20049539dff6949ba6be84e43e5dda375844d5f4957127ea0af8b565e11c3fb3cb1bff2885d75a9d31cc7c7e210b6a5434f9cd57dc04ef434d9 - languageName: node - linkType: hard - -"@react-types/combobox@npm:^3.14.0": - version: 3.14.0 - resolution: "@react-types/combobox@npm:3.14.0" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6a36a6e2068cb03455e4ce254006ec9377a14ab958bcab0d3f0a8840e467a7efeda25a0817c46a4137ba861115f38dea0bf56d945a89c85356abfcaa45a2df34 - languageName: node - linkType: hard - -"@react-types/datepicker@npm:^3.13.5": - version: 3.13.5 - resolution: "@react-types/datepicker@npm:3.13.5" - dependencies: - "@internationalized/date": "npm:^3.12.0" - "@react-types/calendar": "npm:^3.8.3" - "@react-types/overlays": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/e011c1d0844ddd36ed50448fb83aec602fc3c6db4f32a5c6d76d3bb168debafb170aa880102de4abb664ff2f77d140037b63ca4a375f4b1574989ce5b471c3c3 - languageName: node - linkType: hard - -"@react-types/dialog@npm:^3.5.24": - version: 3.5.24 - resolution: "@react-types/dialog@npm:3.5.24" - dependencies: - "@react-types/overlays": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3c9471a620a63c953110593c92f0109072d12cc0d31c0073343589f16af046a3fd55f8cded8370f65d0a7cbaf5ca3744c402cf1baf984c894a3568115ac0655d - languageName: node - linkType: hard - -"@react-types/form@npm:^3.7.18": - version: 3.7.18 - resolution: "@react-types/form@npm:3.7.18" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a81ee79dfb3af899f7ef6d635b0c5ab8d85dc589e7d4d5b0e0d85329f6ddc0ed2cfb8406a040a36b0176d9e32ef7e5eb2a92f3fe3261a75d308c3bcae0c4f37a - languageName: node - linkType: hard - -"@react-types/grid@npm:^3.3.8": - version: 3.3.8 - resolution: "@react-types/grid@npm:3.3.8" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2a47eb97919869d5d68ebe3d34e2f48fb36bd5d9b8e8cea973661c4658399484c801b0d1ddbedfea5358e05924e5460306b6f8745a5428c1a163b3d23360053c - languageName: node - linkType: hard - -"@react-types/link@npm:^3.6.7": - version: 3.6.7 - resolution: "@react-types/link@npm:3.6.7" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6d320b131ef342aa9b8fce0cc6821ccb3bdcdb3b22b620ed32fcbf0e9fc2faff4f55da9ac96dddad6dc4aaa43a42a639dc661382a8082a77f539e1612d14d7bd - languageName: node - linkType: hard - -"@react-types/listbox@npm:^3.7.6": - version: 3.7.6 - resolution: "@react-types/listbox@npm:3.7.6" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/044cc7672d2cf1efeb037ad6fc7c22d96fe2191d3ca852038ac95de9d69eb788a90e4b96425b39eb86a06b9bd63723d7581dc9c2715390de14932f95d6a73734 - languageName: node - linkType: hard - -"@react-types/menu@npm:^3.10.7": - version: 3.10.7 - resolution: "@react-types/menu@npm:3.10.7" - dependencies: - "@react-types/overlays": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4537966ccd72cd1e181082068e383a65eaaad294a1e11b81eda6d7f7d6a507729040be496df403d85d24a0cf28fd2efb5a33aa21a8e6532ff0f0ecf1230a71b5 - languageName: node - linkType: hard - -"@react-types/meter@npm:^3.4.15": - version: 3.4.15 - resolution: "@react-types/meter@npm:3.4.15" - dependencies: - "@react-types/progress": "npm:^3.5.18" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6b9dfeb09cc34df848fb36e8d48aca64142a460a39c29a65e63e4d7a1ecac2c2b42210702fa3d3d653ed3f181568722424ac3cffb088eff09581aaffe27b7d62 - languageName: node - linkType: hard - -"@react-types/numberfield@npm:^3.8.18": - version: 3.8.18 - resolution: "@react-types/numberfield@npm:3.8.18" - dependencies: - "@react-types/shared": "npm:^3.33.1" + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/720e531c7e2aba91fe25193a0adb5acd2a46a04d813d5fef904db409dccaa5c761316f2d0c0e9329e4d305535c8d7569214aac08296df1f0085b0095b649dba7 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/5f6aff8592dea6a7e46589808912aba3fb3b626cf6edd2b14f01638b61dbbe49eeb9f67cd5601f4c15b2fb547b9a7e825f7c4961acd4dd70176c969ae405f8d8 languageName: node linkType: hard -"@react-types/overlays@npm:^3.9.4": - version: 3.9.4 - resolution: "@react-types/overlays@npm:3.9.4" +"@radix-ui/react-use-controllable-state@npm:1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-use-controllable-state@npm:1.2.2" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@radix-ui/react-use-effect-event": "npm:0.0.2" + "@radix-ui/react-use-layout-effect": "npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ecf332ad553029db14cf4a001893ade13f56bb6fc003357d2854166067c2b5dd2229e976cca79bf707c3f7c47d5dedb675d9b2ce45000114e4531dc5aaf00e04 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/f55c4b06e895293aed4b44c9ef26fb24432539f5346fcd6519c7745800535b571058685314e83486a45bf61dc83887e24826490d3068acc317fb0a9010516e63 languageName: node linkType: hard -"@react-types/progress@npm:^3.5.18": - version: 3.5.18 - resolution: "@react-types/progress@npm:3.5.18" +"@radix-ui/react-use-effect-event@npm:0.0.2": + version: 0.0.2 + resolution: "@radix-ui/react-use-effect-event@npm:0.0.2" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1eeb6a35faa42d7bda167cc8b306e589d509b7fa508c3964f360245f8b13e552afa1e35b9212ad883540f4934774666f5e8e050c0b63c42187f3c85b6d7d382e + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/e84ff72a3e76c5ae9c94941028bb4b6472f17d4104481b9eab773deab3da640ecea035e54da9d6f4df8d84c18ef6913baf92b7511bee06930dc58bd0c0add417 languageName: node linkType: hard -"@react-types/radio@npm:^3.9.4": - version: 3.9.4 - resolution: "@react-types/radio@npm:3.9.4" +"@radix-ui/react-use-escape-keydown@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.1" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a9634cf79e0ab6d6aa399b64d2684c28f8e54aaf85bb78a4e9a6457f0a87d199b27afb51f474dba19c7f55cd74ad0570962659c1031a70a8f04e8918f716b393 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/bff53be99e940fef1d3c4df7d560e1d9133182e5a98336255d3063327d1d3dd4ec54a95dc5afe15cca4fb6c184f0a956c70de2815578c318cf995a7f9beabaa1 languageName: node linkType: hard -"@react-types/searchfield@npm:^3.6.8": - version: 3.6.8 - resolution: "@react-types/searchfield@npm:3.6.8" - dependencies: - "@react-types/shared": "npm:^3.33.1" - "@react-types/textfield": "npm:^3.12.8" +"@radix-ui/react-use-layout-effect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/de035fd6bf9f84758a1bb9d3c19585200959fcf4d58539a0516e2726c15399273093fba6c38bd2b8ad428318ecd21048e3f434571c8fc2437e90cd22fdaabc11 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9f98fdaba008dfc58050de60a77670b885792df473cf82c1cef8daee919a5dd5a77d270209f5f0b0abfaac78cb1627396e3ff56c81b735be550409426fe8b040 languageName: node linkType: hard -"@react-types/select@npm:^3.12.2": - version: 3.12.2 - resolution: "@react-types/select@npm:3.12.2" +"@radix-ui/react-use-rect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-rect@npm:1.1.1" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@radix-ui/rect": "npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5e4f191174fbe2662d03c0d9a8b8fafa7617cf7a68765649bd739aedd25d30cf1f8466f0ec43d3659c789a43692690940db693d7ee65f07549b62c47caa257ff + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/271711404c05c589c8dbdaa748749e7daf44bcc6bffc9ecd910821c3ebca0ee245616cf5b39653ce690f53f875c3836fd3f36f51ab1c628273b6db599eee4864 languageName: node linkType: hard -"@react-types/shared@npm:^3.33.1": - version: 3.33.1 - resolution: "@react-types/shared@npm:3.33.1" +"@radix-ui/react-use-size@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-size@npm:1.1.1" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.1" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/072dbf92de80e3535441fbf4a9075009636221974d0b70bd1078ec1e343ae1373d69d2c02c2fba0963e50f4b134872144ffaf1573daec8477233e408f96e008c + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/851d09a816f44282e0e9e2147b1b571410174cc048703a50c4fa54d672de994fd1dfff1da9d480ecfd12c77ae8f48d74f01adaf668f074156b8cd0043c6c21d8 languageName: node linkType: hard -"@react-types/slider@npm:^3.8.4": - version: 3.8.4 - resolution: "@react-types/slider@npm:3.8.4" +"@radix-ui/react-visually-hidden@npm:1.2.3, @radix-ui/react-visually-hidden@npm:^1.0.3": + version: 1.2.3 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.3" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@radix-ui/react-primitive": "npm:2.1.3" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/e1bbc112d88aa73d1a808cac6df2b3cde14d144af8d82f2dd47a7a7b752cdfecd5b9238b16fe47aeb23af1b0767707d99bb48138bedc97df43cd61e9d023ceed + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/cf86a37f1cbee50a964056f3dc4f6bb1ee79c76daa321f913aa20ff3e1ccdfafbf2b114d7bb616aeefc7c4b895e6ca898523fdb67710d89bd5d8edb739a0d9b6 languageName: node linkType: hard -"@react-types/switch@npm:^3.5.17": - version: 3.5.17 - resolution: "@react-types/switch@npm:3.5.17" - dependencies: - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d88735ac152673a96da90731bfa072e1c2b548c888dac508f363d8042e49b9ad3157d084db2a5394e29103742dde789f201cfeeb531fe66523eda7701d9e2bfb +"@radix-ui/rect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/rect@npm:1.1.1" + checksum: 10c0/0dac4f0f15691199abe6a0e067821ddd9d0349c0c05f39834e4eafc8403caf724106884035ae91bbc826e10367e6a5672e7bec4d4243860fa7649de246b1f60b languageName: node linkType: hard -"@react-types/table@npm:^3.13.6": - version: 3.13.6 - resolution: "@react-types/table@npm:3.13.6" - dependencies: - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/32a8e88376050e7c8396f39cda8b81c02a27b7ffa0d4c47cadd52c00e24ea74c681002f63a811904a48414d6ffd199c074b2cf738eeef5c6b61170d3e158b0b5 +"@react-hookz/deep-equal@npm:^1.0.4": + version: 1.0.4 + resolution: "@react-hookz/deep-equal@npm:1.0.4" + checksum: 10c0/f48774ccc63506e8de29eb6f3beff1204a5f51e481329f6b38b578bb43b35391eeacd9908f35a7fcca008e4c7e5144be7092103236042a8bcbbe4e7594ed4eb9 languageName: node linkType: hard -"@react-types/tabs@npm:^3.3.22": - version: 3.3.22 - resolution: "@react-types/tabs@npm:3.3.22" +"@react-hookz/web@npm:^24.0.0": + version: 24.0.4 + resolution: "@react-hookz/web@npm:24.0.4" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@react-hookz/deep-equal": "npm:^1.0.4" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b2318b580e3cf4a13918129424fd6f72ad7836e4244d9bb0f437462045a1b3b602b8eb341b1e1b5f20fb63ac5f9a59f6960167706157fbc950371fc260b4ded6 + js-cookie: ^3.0.5 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + checksum: 10c0/894419b88601938b6b2027c8bc77a7e470de4cf196a2d461d53842b037cae57a2abe8e7279edd01ab56d7c671dd155de7795f6e717331c7fdb89734eafac8769 languageName: node linkType: hard -"@react-types/textfield@npm:^3.12.8": - version: 3.12.8 - resolution: "@react-types/textfield@npm:3.12.8" +"@react-stately/layout@npm:^4.7.1": + version: 4.7.1 + resolution: "@react-stately/layout@npm:4.7.1" dependencies: - "@react-types/shared": "npm:^3.33.1" + "@swc/helpers": "npm:^0.5.0" + react-stately: "npm:^3.46.0" peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9cebea13054ad7f191770b66a5aed35f627c4e5a4d1ac8163304a452f16254357cbf5fb51f0beafce4d770ea45526cc4311371a428ad709c9e50f8795ee18e6d + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/aedec18bd9af6a68c93dede0fd21d178f4ff5850184a5888844a61f1b0d065af8e3435f7355579117e41ae1a7fe5813247cd318782eb4287ca3ec3879bcdb96c languageName: node linkType: hard -"@react-types/tooltip@npm:^3.5.2": - version: 3.5.2 - resolution: "@react-types/tooltip@npm:3.5.2" - dependencies: - "@react-types/overlays": "npm:^3.9.4" - "@react-types/shared": "npm:^3.33.1" +"@react-types/shared@npm:^3.34.0, @react-types/shared@npm:^3.36.0": + version: 3.36.0 + resolution: "@react-types/shared@npm:3.36.0" peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d94fd3102e69f459b4d67c561ee9306e9f2cec4456b868a668bf6448a22ac8df8b97d8e349903d9d664d6dfebc4acc29c824f8026e65a15a9abf851d54e7f810 + checksum: 10c0/5db10c8c5556a3dcbbf7ed9cd53d0b5f7f04677d16d0f191c3054eaa0d1aae3e1132b07614ed8009b9d2838fa1f9a424f8f0bf9dee2770d3c5bb62c7eaf9047d languageName: node linkType: hard @@ -10538,10 +9099,13 @@ __metadata: "@backstage/core-components": "npm:^0.18.8" "@backstage/core-plugin-api": "npm:^1.12.4" "@backstage/dev-utils": "npm:^1.1.21" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/plugin-app-react": "npm:^0.2.1" "@backstage/plugin-user-settings": "npm:^0.9.1" "@backstage/test-utils": "npm:^1.7.16" "@backstage/theme": "npm:^0.7.2" "@backstage/ui": "npm:^0.13.2" + "@mui/icons-material": "npm:5.18.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^14.0.0" "@testing-library/user-event": "npm:^14.0.0" @@ -10562,6 +9126,8 @@ __metadata: "@backstage/core-components": "npm:^0.18.8" "@backstage/core-plugin-api": "npm:^1.12.4" "@backstage/dev-utils": "npm:^1.1.21" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/plugin-app-react": "npm:^0.2.1" "@backstage/plugin-user-settings": "npm:^0.9.1" "@backstage/test-utils": "npm:^1.7.16" "@backstage/theme": "npm:^0.7.2" @@ -10626,12 +9192,12 @@ __metadata: languageName: node linkType: hard -"@remixicon/react@npm:^4.6.0": - version: 4.6.0 - resolution: "@remixicon/react@npm:4.6.0" +"@remixicon/react@npm:>=4.6.0 <4.9.0, @remixicon/react@npm:^4.6.0": + version: 4.8.0 + resolution: "@remixicon/react@npm:4.8.0" peerDependencies: react: ">=18.2.0" - checksum: 10c0/52e21dabd5b5149206f2ef2d8ff59e38a0b7f4a043435ba65b1b8d1c41c755daea84da6c64e80f2ada0e582b4436366dbcef318add96ec11393b08b259b49df8 + checksum: 10c0/edf4bb4f600e13ee24dac2cecb389b4bfe83764a5168b553b726b41d6b76bc8c24212f2e4f7d89abae395ba8479082646a122a2a066cd5c743e4e372e0a3c345 languageName: node linkType: hard @@ -12017,6 +10583,13 @@ __metadata: languageName: node linkType: hard +"@standard-schema/spec@npm:^1.1.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526 + languageName: node + linkType: hard + "@stoplight/better-ajv-errors@npm:1.0.3": version: 1.0.3 resolution: "@stoplight/better-ajv-errors@npm:1.0.3" @@ -15214,15 +13787,9 @@ __metadata: languageName: node linkType: hard -"app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend": - version: 0.0.0-use.local - resolution: "app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend" - languageName: node - linkType: soft - -"app@workspace:packages/app": +"app-legacy@workspace:packages/app-legacy": version: 0.0.0-use.local - resolution: "app@workspace:packages/app" + resolution: "app-legacy@workspace:packages/app-legacy" dependencies: "@backstage/app-defaults": "npm:^1.7.6" "@backstage/catalog-model": "npm:^1.7.7" @@ -15271,6 +13838,44 @@ __metadata: languageName: unknown linkType: soft +"app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend": + version: 0.0.0-use.local + resolution: "app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend" + languageName: node + linkType: soft + +"app@workspace:packages/app": + version: 0.0.0-use.local + resolution: "app@workspace:packages/app" + dependencies: + "@backstage/cli": "npm:^0.36.0" + "@backstage/core-components": "npm:^0.18.8" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/frontend-defaults": "npm:^0.5.0" + "@backstage/frontend-plugin-api": "npm:^0.17.2" + "@backstage/frontend-test-utils": "npm:^0.5.1" + "@backstage/plugin-app-react": "npm:^0.2.1" + "@backstage/plugin-catalog": "npm:^2.0.1" + "@backstage/plugin-user-settings": "npm:^0.9.1" + "@backstage/ui": "npm:^0.13.2" + "@mui/icons-material": "npm:5.18.0" + "@mui/material": "npm:5.18.0" + "@red-hat-developer-hub/backstage-plugin-theme": "npm:^0.14.0" + "@red-hat-developer-hub/backstage-plugin-translations": "workspace:^" + "@red-hat-developer-hub/backstage-plugin-translations-test": "workspace:^" + "@testing-library/dom": "npm:^9.0.0" + "@testing-library/jest-dom": "npm:^6.0.0" + "@testing-library/react": "npm:^14.0.0" + "@testing-library/user-event": "npm:^14.0.0" + "@types/react-dom": "npm:*" + cross-env: "npm:^7.0.0" + react: "npm:^18.0.2" + react-dom: "npm:^18.0.2" + react-router: "npm:^6.30.4" + react-router-dom: "npm:^6.3.0" + languageName: unknown + linkType: soft + "append-field@npm:^1.0.0": version: 1.0.0 resolution: "append-field@npm:1.0.0" @@ -15360,7 +13965,7 @@ __metadata: languageName: node linkType: hard -"aria-hidden@npm:^1.2.4": +"aria-hidden@npm:^1.2.3, aria-hidden@npm:^1.2.4": version: 1.2.6 resolution: "aria-hidden@npm:1.2.6" dependencies: @@ -18299,7 +16904,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.3, decimal.js@npm:^10.5.0, decimal.js@npm:^10.6.0": +"decimal.js@npm:^10.5.0, decimal.js@npm:^10.6.0": version: 10.6.0 resolution: "decimal.js@npm:10.6.0" checksum: 10c0/07d69fbcc54167a340d2d97de95f546f9ff1f69d2b45a02fd7a5292412df3cd9eb7e23065e532a318f5474a2e1bccf8392fdf0443ef467f97f3bf8cb0477e5aa @@ -20636,6 +19241,28 @@ __metadata: languageName: node linkType: hard +"framer-motion@npm:^12.42.2": + version: 12.42.2 + resolution: "framer-motion@npm:12.42.2" + dependencies: + motion-dom: "npm:^12.42.2" + motion-utils: "npm:^12.39.0" + tslib: "npm:^2.4.0" + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10c0/2e514e0e303c0c01bc7d6a1028f7722ec17fc307922c6770a8dc5f7782521c60254f9c265329b887a29b32e2c730742328ecae468be626406afa5db1e6c0aa01 + languageName: node + linkType: hard + "framer-motion@npm:^6.5.1": version: 6.5.1 resolution: "framer-motion@npm:6.5.1" @@ -22454,18 +21081,6 @@ __metadata: languageName: node linkType: hard -"intl-messageformat@npm:^10.1.0": - version: 10.7.16 - resolution: "intl-messageformat@npm:10.7.16" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.4" - "@formatjs/fast-memoize": "npm:2.2.7" - "@formatjs/icu-messageformat-parser": "npm:2.11.2" - tslib: "npm:^2.8.0" - checksum: 10c0/537735bf6439f0560f132895d117df6839957ac04cdd58d861f6da86803d40bfc19059e3d341ddb8de87214b73a6329b57f9acdb512bb0f745dcf08729507b9b - languageName: node - linkType: hard - "invariant@npm:^2.2.2": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -25206,6 +23821,15 @@ __metadata: languageName: node linkType: hard +"marked@npm:^15.0.12": + version: 15.0.12 + resolution: "marked@npm:15.0.12" + bin: + marked: bin/marked.js + checksum: 10c0/e09da211544b787ecfb25fed07af206060bf7cd6d9de6cb123f15c496a57f83b7aabea93340aaa94dae9c94e097ae129377cad6310abc16009590972e85f4212 + languageName: node + linkType: hard + "marked@npm:^4.0.14": version: 4.3.0 resolution: "marked@npm:4.3.0" @@ -26309,6 +24933,43 @@ __metadata: languageName: node linkType: hard +"motion-dom@npm:^12.42.2": + version: 12.42.2 + resolution: "motion-dom@npm:12.42.2" + dependencies: + motion-utils: "npm:^12.39.0" + checksum: 10c0/1bcee88df706e3aaa4e5b8e7d2ba0efd8e2304c142e7541411bbd6f03b0fbe8d25883ec157905fdebf284f51db02008245f6d4653d20a97de9acf44bbb7be79f + languageName: node + linkType: hard + +"motion-utils@npm:^12.39.0": + version: 12.39.0 + resolution: "motion-utils@npm:12.39.0" + checksum: 10c0/6d7a2a2cc0797b72410a666a9cc1c201c8e39bf9669670464e433fe1e72af5f0217154c869867b34fbadf3664cf222c0d022bbc4eed7927f201ae971918e7440 + languageName: node + linkType: hard + +"motion@npm:^12.0.0": + version: 12.42.2 + resolution: "motion@npm:12.42.2" + dependencies: + framer-motion: "npm:^12.42.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10c0/44c333efe50fadb8ede589e237694e05dd73bed09c66f26ebcf89ca8a7449e77e55a0d3f2df6c1bdc00ee8de7f4e6fe957ef219d8002008472d978f4979ddab5 + languageName: node + linkType: hard + "mri@npm:1.1.4": version: 1.1.4 resolution: "mri@npm:1.1.4" @@ -29079,7 +27740,17 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.1, qs@npm:^6.11.0, qs@npm:^6.11.2, qs@npm:^6.12.3, qs@npm:^6.14.0, qs@npm:^6.9.4, qs@npm:~6.14.0": +"qs@npm:^6.10.1, qs@npm:^6.11.0, qs@npm:^6.11.2, qs@npm:^6.12.3, qs@npm:^6.14.0, qs@npm:^6.15.2, qs@npm:^6.9.4": + version: 6.15.3 + resolution: "qs@npm:6.15.3" + dependencies: + es-define-property: "npm:^1.0.1" + side-channel: "npm:^1.1.1" + checksum: 10c0/8f3f6e45ece255347d57696628401cde29e9ec649fff698b53bd3150dea7cefdf33036e1bc1826b9f110bfa7cb0ec4ab9f5297eca628ce216c55af82c304e08e + languageName: node + linkType: hard + +"qs@npm:~6.14.0": version: 6.14.1 resolution: "qs@npm:6.14.1" dependencies: @@ -29301,96 +27972,40 @@ __metadata: languageName: node linkType: hard -"react-aria-components@npm:^1.14.0": - version: 1.16.0 - resolution: "react-aria-components@npm:1.16.0" +"react-aria-components@npm:^1.14.0, react-aria-components@npm:~1.17.0": + version: 1.17.0 + resolution: "react-aria-components@npm:1.17.0" dependencies: - "@internationalized/date": "npm:^3.12.0" - "@internationalized/string": "npm:^3.2.7" - "@react-aria/autocomplete": "npm:3.0.0-rc.6" - "@react-aria/collections": "npm:^3.0.3" - "@react-aria/dnd": "npm:^3.11.6" - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/live-announcer": "npm:^3.4.4" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/toolbar": "npm:3.0.0-beta.24" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/virtualizer": "npm:^4.1.13" - "@react-stately/autocomplete": "npm:3.0.0-beta.4" - "@react-stately/layout": "npm:^4.6.0" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/table": "npm:^3.15.4" - "@react-stately/utils": "npm:^3.11.0" - "@react-stately/virtualizer": "npm:^4.4.6" - "@react-types/form": "npm:^3.7.18" - "@react-types/grid": "npm:^3.3.8" - "@react-types/shared": "npm:^3.33.1" - "@react-types/table": "npm:^3.13.6" + "@internationalized/date": "npm:^3.12.1" + "@react-types/shared": "npm:^3.34.0" "@swc/helpers": "npm:^0.5.0" client-only: "npm:^0.0.1" - react-aria: "npm:^3.47.0" - react-stately: "npm:^3.45.0" - use-sync-external-store: "npm:^1.6.0" + react-aria: "npm:3.48.0" + react-stately: "npm:3.46.0" peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d71ebc84e68704c72ad5dca7455cc3705c231093161d88b6c41bd8e7609871955ab3f5d01b903588947e1786898faf705b824e0d10d9c0b643d393356245c3f1 - languageName: node - linkType: hard - -"react-aria@npm:^3.47.0": - version: 3.47.0 - resolution: "react-aria@npm:3.47.0" - dependencies: - "@internationalized/string": "npm:^3.2.7" - "@react-aria/breadcrumbs": "npm:^3.5.32" - "@react-aria/button": "npm:^3.14.5" - "@react-aria/calendar": "npm:^3.9.5" - "@react-aria/checkbox": "npm:^3.16.5" - "@react-aria/color": "npm:^3.1.5" - "@react-aria/combobox": "npm:^3.15.0" - "@react-aria/datepicker": "npm:^3.16.1" - "@react-aria/dialog": "npm:^3.5.34" - "@react-aria/disclosure": "npm:^3.1.3" - "@react-aria/dnd": "npm:^3.11.6" - "@react-aria/focus": "npm:^3.21.5" - "@react-aria/gridlist": "npm:^3.14.4" - "@react-aria/i18n": "npm:^3.12.16" - "@react-aria/interactions": "npm:^3.27.1" - "@react-aria/label": "npm:^3.7.25" - "@react-aria/landmark": "npm:^3.0.10" - "@react-aria/link": "npm:^3.8.9" - "@react-aria/listbox": "npm:^3.15.3" - "@react-aria/menu": "npm:^3.21.0" - "@react-aria/meter": "npm:^3.4.30" - "@react-aria/numberfield": "npm:^3.12.5" - "@react-aria/overlays": "npm:^3.31.2" - "@react-aria/progress": "npm:^3.4.30" - "@react-aria/radio": "npm:^3.12.5" - "@react-aria/searchfield": "npm:^3.8.12" - "@react-aria/select": "npm:^3.17.3" - "@react-aria/selection": "npm:^3.27.2" - "@react-aria/separator": "npm:^3.4.16" - "@react-aria/slider": "npm:^3.8.5" - "@react-aria/ssr": "npm:^3.9.10" - "@react-aria/switch": "npm:^3.7.11" - "@react-aria/table": "npm:^3.17.11" - "@react-aria/tabs": "npm:^3.11.1" - "@react-aria/tag": "npm:^3.8.1" - "@react-aria/textfield": "npm:^3.18.5" - "@react-aria/toast": "npm:^3.0.11" - "@react-aria/tooltip": "npm:^3.9.2" - "@react-aria/tree": "npm:^3.1.7" - "@react-aria/utils": "npm:^3.33.1" - "@react-aria/visually-hidden": "npm:^3.8.31" - "@react-types/shared": "npm:^3.33.1" + checksum: 10c0/b0804ac203511eed6875bcdcef1302ebd5ea7fd658255a103dc81dce3ebbaa111f53950d998bb8100dcd418d39a909133eaa9d435880eb54f0b36c6f0e0a8c8d + languageName: node + linkType: hard + +"react-aria@npm:3.48.0, react-aria@npm:~3.48.0": + version: 3.48.0 + resolution: "react-aria@npm:3.48.0" + dependencies: + "@internationalized/date": "npm:^3.12.1" + "@internationalized/number": "npm:^3.6.6" + "@internationalized/string": "npm:^3.2.8" + "@react-types/shared": "npm:^3.34.0" + "@swc/helpers": "npm:^0.5.0" + aria-hidden: "npm:^1.2.3" + clsx: "npm:^2.0.0" + react-stately: "npm:3.46.0" + use-sync-external-store: "npm:^1.6.0" peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9ec9a05d83dee25b5b0e7f97ec5ce86cfe00a0ae3f8507f3c414a44c5c7fc88dfd1430fe49f2b57333f964244f36122e255ebe795cca41a3562ea28e24d31ea5 + checksum: 10c0/908d30941f24510dd73eb744d9b83c102949e559ae17d972b880c564c464bcf708610d8defc708b8ff85db3996bd4f42818cb6d2b9be390a42265595522547f6 languageName: node linkType: hard @@ -29834,39 +28449,35 @@ __metadata: languageName: node linkType: hard -"react-stately@npm:^3.45.0": - version: 3.45.0 - resolution: "react-stately@npm:3.45.0" - dependencies: - "@react-stately/calendar": "npm:^3.9.3" - "@react-stately/checkbox": "npm:^3.7.5" - "@react-stately/collections": "npm:^3.12.10" - "@react-stately/color": "npm:^3.9.5" - "@react-stately/combobox": "npm:^3.13.0" - "@react-stately/data": "npm:^3.15.2" - "@react-stately/datepicker": "npm:^3.16.1" - "@react-stately/disclosure": "npm:^3.0.11" - "@react-stately/dnd": "npm:^3.7.4" - "@react-stately/form": "npm:^3.2.4" - "@react-stately/list": "npm:^3.13.4" - "@react-stately/menu": "npm:^3.9.11" - "@react-stately/numberfield": "npm:^3.11.0" - "@react-stately/overlays": "npm:^3.6.23" - "@react-stately/radio": "npm:^3.11.5" - "@react-stately/searchfield": "npm:^3.5.19" - "@react-stately/select": "npm:^3.9.2" - "@react-stately/selection": "npm:^3.20.9" - "@react-stately/slider": "npm:^3.7.5" - "@react-stately/table": "npm:^3.15.4" - "@react-stately/tabs": "npm:^3.8.9" - "@react-stately/toast": "npm:^3.1.3" - "@react-stately/toggle": "npm:^3.9.5" - "@react-stately/tooltip": "npm:^3.5.11" - "@react-stately/tree": "npm:^3.9.6" - "@react-types/shared": "npm:^3.33.1" +"react-stately@npm:3.46.0, react-stately@npm:~3.46.0": + version: 3.46.0 + resolution: "react-stately@npm:3.46.0" + dependencies: + "@internationalized/date": "npm:^3.12.1" + "@internationalized/number": "npm:^3.6.6" + "@internationalized/string": "npm:^3.2.8" + "@react-types/shared": "npm:^3.34.0" + "@swc/helpers": "npm:^0.5.0" + use-sync-external-store: "npm:^1.6.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/380b428c1a79766401e3f2472486b1c2a5e04d3d3a27a011cf7f7ee6b9a24c56026659ebea9e08b65495fbef02bd4a98817895ff7d84db5df4fc6ce23e01cba8 + languageName: node + linkType: hard + +"react-stately@npm:^3.46.0": + version: 3.48.0 + resolution: "react-stately@npm:3.48.0" + dependencies: + "@internationalized/date": "npm:^3.12.2" + "@internationalized/number": "npm:^3.6.7" + "@internationalized/string": "npm:^3.2.9" + "@react-types/shared": "npm:^3.36.0" + "@swc/helpers": "npm:^0.5.0" + use-sync-external-store: "npm:^1.6.0" peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/847d614e15d9928160664680707e885398f7b0d7d73e966edab821dec1a4abe55fe909c51a02b674aa4d75397028cb3c024bfc5d5201f01f346686b0503ba233 + checksum: 10c0/20fe0f423fc800d82b4ee1a3fb2e9184f4a95215918f51d4680c7703f5c2f0829e66aaebe6c105ac5813d925825924544b541991a5631e2c87d8562565b1e57c languageName: node linkType: hard @@ -31312,13 +29923,13 @@ __metadata: languageName: node linkType: hard -"side-channel-list@npm:^1.0.0": - version: 1.0.0 - resolution: "side-channel-list@npm:1.0.0" +"side-channel-list@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + object-inspect: "npm:^1.13.4" + checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 languageName: node linkType: hard @@ -31347,16 +29958,16 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4, side-channel@npm:^1.1.0": - version: 1.1.0 - resolution: "side-channel@npm:1.1.0" +"side-channel@npm:^1.0.4, side-channel@npm:^1.1.0, side-channel@npm:^1.1.1": + version: 1.1.1 + resolution: "side-channel@npm:1.1.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - side-channel-list: "npm:^1.0.0" + object-inspect: "npm:^1.13.4" + side-channel-list: "npm:^1.0.1" side-channel-map: "npm:^1.0.1" side-channel-weakmap: "npm:^1.0.2" - checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 + checksum: 10c0/dc0ab81d67f61bda9247d053ce93f41c3fd8ad2bdcb9cf9d8d2f8540d488f26d87a5e99ebfc07eea49ec025867b2452b705442d974b1478f0395e69f6bfb3270 languageName: node linkType: hard @@ -35094,10 +33705,10 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.25.76 || ^4.0.0": - version: 4.3.6 - resolution: "zod@npm:4.3.6" - checksum: 10c0/860d25a81ab41d33aa25f8d0d07b091a04acb426e605f396227a796e9e800c44723ed96d0f53a512b57be3d1520f45bf69c0cb3b378a232a00787a2609625307 +"zod@npm:^3.25.76 || ^4.0.0, zod@npm:^4.0.0": + version: 4.4.3 + resolution: "zod@npm:4.4.3" + checksum: 10c0/7ea31b558e88f9faf44f31dd185e2e1cbf51fed3081787fb96cc2534749b50c0acfc6da7f0922a7353ed092dd358c7d50c28ea96c94d04af64191bd33152eca3 languageName: node linkType: hard From 9c3a004e71bce383835337d509fee2915a1b784c Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 6 Jul 2026 16:01:43 +0530 Subject: [PATCH 2/3] updating e2e configs Signed-off-by: rohitratannagar --- workspaces/translations/.gitignore | 2 +- workspaces/translations/package.json | 8 ++- .../packages/app-legacy/e2e-tests/app.test.ts | 6 ++- workspaces/translations/playwright.config.ts | 42 ++++++++++----- workspaces/translations/yarn.lock | 51 ++++++++++++++++++- 5 files changed, 91 insertions(+), 18 deletions(-) diff --git a/workspaces/translations/.gitignore b/workspaces/translations/.gitignore index 2164e72f7d..e15d340e4a 100644 --- a/workspaces/translations/.gitignore +++ b/workspaces/translations/.gitignore @@ -50,7 +50,7 @@ site *.session.sql # E2E test reports -e2e-test-report/ +e2e-test-report*/ # Cache .cache/ diff --git a/workspaces/translations/package.json b/workspaces/translations/package.json index a77f5ad6cf..04d0aaadbe 100644 --- a/workspaces/translations/package.json +++ b/workspaces/translations/package.json @@ -7,7 +7,7 @@ }, "scripts": { "start": "backstage-cli repo start", - "start:legacy": "yarn workspace app-legacy start", + "start:legacy": "backstage-cli repo start packages/app-legacy packages/backend", "start-backend": "yarn workspace backend start", "build:backend": "yarn workspace backend build", "tsc": "tsc", @@ -21,6 +21,10 @@ "test": "backstage-cli repo test --detectOpenHandles", "test:all": "backstage-cli repo test --coverage --detectOpenHandles", "test:e2e": "playwright test", + "test:e2e:legacy": "APP_MODE=legacy playwright test", + "test:e2e:nfs": "APP_MODE=nfs playwright test", + "test:e2e:all": "yarn test:e2e:legacy && yarn test:e2e:nfs", + "playwright": "bash -c 'if [[ \"$*\" == \"test\" ]]; then yarn test:e2e:all; else npx playwright \"$@\"; fi' _", "fix": "backstage-cli repo fix", "lint": "backstage-cli repo lint --since origin/main", "lint:all": "backstage-cli repo lint", @@ -47,7 +51,9 @@ "@changesets/cli": "^2.27.1", "@jest/environment-jsdom-abstract": "^30.3.0", "@playwright/test": "1.60.0", + "@react-aria/interactions": "^3.27.1", "@react-stately/layout": "^4.7.1", + "@react-stately/overlays": "^3.6.23", "@types/jest": "^30.0.0", "@types/jsdom": "^27.0.0", "jest": "^30.3.0", diff --git a/workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts b/workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts index 2e20f77ccd..f9d0c01df4 100644 --- a/workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts +++ b/workspaces/translations/packages/app-legacy/e2e-tests/app.test.ts @@ -20,8 +20,10 @@ test('App should render the welcome page', async ({ page }) => { await page.goto('/'); const enterButton = page.getByRole('button', { name: 'Enter' }); - await expect(enterButton).toBeVisible(); + await expect(enterButton).toBeVisible({ timeout: 30_000 }); await enterButton.click(); - await expect(page.getByText('My Company Catalog')).toBeVisible(); + await expect(page.getByRole('link', { name: 'Home' }).first()).toBeVisible({ + timeout: 30_000, + }); }); diff --git a/workspaces/translations/playwright.config.ts b/workspaces/translations/playwright.config.ts index 1fcad7dacb..71a3577a11 100644 --- a/workspaces/translations/playwright.config.ts +++ b/workspaces/translations/playwright.config.ts @@ -1,5 +1,5 @@ /* - * Copyright The Backstage Authors + * Copyright Red Hat, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,27 +15,32 @@ */ import { defineConfig } from '@playwright/test'; -import { generateProjects } from '@backstage/e2e-test-utils/playwright'; -/** - * See https://playwright.dev/docs/test-configuration. - */ +const appMode = process.env.APP_MODE || 'legacy'; +const startCommand = appMode === 'legacy' ? 'yarn start:legacy' : 'yarn start'; + export default defineConfig({ - timeout: 60_000, + timeout: 2 * 60_000, expect: { timeout: 5_000, }, - // Run your local dev server before starting the tests webServer: process.env.PLAYWRIGHT_URL ? [] : [ { - command: 'yarn start', + command: startCommand, + port: 7007, + reuseExistingServer: true, + timeout: 120_000, + }, + { + command: + 'echo "frontend already started by the previous webServer entry"', port: 3000, reuseExistingServer: true, - timeout: 60_000, + timeout: 120_000, }, ], @@ -43,16 +48,27 @@ export default defineConfig({ retries: process.env.CI ? 2 : 0, - reporter: [['html', { open: 'never', outputFolder: 'e2e-test-report' }]], + reporter: [ + ['html', { open: 'never', outputFolder: `e2e-test-report-${appMode}` }], + ], use: { - actionTimeout: 0, baseURL: process.env.PLAYWRIGHT_URL ?? 'http://localhost:3000', screenshot: 'only-on-failure', trace: 'on-first-retry', + navigationTimeout: 60_000, + actionTimeout: 30_000, }, - outputDir: 'node_modules/.cache/e2e-test-results', + outputDir: `node_modules/.cache/e2e-test-results-${appMode}`, - projects: generateProjects(), // Find all packages with e2e-test folders + projects: [ + { + name: appMode, + testDir: 'packages/app-legacy/e2e-tests', + use: { + channel: 'chrome' as const, + }, + }, + ], }); diff --git a/workspaces/translations/yarn.lock b/workspaces/translations/yarn.lock index ff3f5423d0..dc0de64c77 100644 --- a/workspaces/translations/yarn.lock +++ b/workspaces/translations/yarn.lock @@ -5902,7 +5902,9 @@ __metadata: "@changesets/cli": "npm:^2.27.1" "@jest/environment-jsdom-abstract": "npm:^30.3.0" "@playwright/test": "npm:1.60.0" + "@react-aria/interactions": "npm:^3.27.1" "@react-stately/layout": "npm:^4.7.1" + "@react-stately/overlays": "npm:^3.6.23" "@types/jest": "npm:^30.0.0" "@types/jsdom": "npm:^27.0.0" jest: "npm:^30.3.0" @@ -9007,6 +9009,20 @@ __metadata: languageName: node linkType: hard +"@react-aria/interactions@npm:^3.27.1": + version: 3.28.1 + resolution: "@react-aria/interactions@npm:3.28.1" + dependencies: + "@react-types/shared": "npm:^3.34.0" + "@swc/helpers": "npm:^0.5.0" + react-aria: "npm:^3.48.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/55325471f4ac0829e77d344c3549b8806cda2d461ebf1a1fa6bdf469091cc50d3702e44896591adb7988d2909781962ce9bbbf510a1c66c948b901573311c2a6 + languageName: node + linkType: hard + "@react-hookz/deep-equal@npm:^1.0.4": version: 1.0.4 resolution: "@react-hookz/deep-equal@npm:1.0.4" @@ -9043,6 +9059,19 @@ __metadata: languageName: node linkType: hard +"@react-stately/overlays@npm:^3.6.23": + version: 3.7.1 + resolution: "@react-stately/overlays@npm:3.7.1" + dependencies: + "@swc/helpers": "npm:^0.5.0" + react-stately: "npm:^3.46.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/1c1a5a09965be5bc82c3c962c1e3d72fe5259eab99e73fee01b8e91cc57f4b96a7f3dae5a55fe5fd4169cc59cf0bee65bde02ed87f6664c1bb0d3ea7138ad2ec + languageName: node + linkType: hard + "@react-types/shared@npm:^3.34.0, @react-types/shared@npm:^3.36.0": version: 3.36.0 resolution: "@react-types/shared@npm:3.36.0" @@ -28009,6 +28038,26 @@ __metadata: languageName: node linkType: hard +"react-aria@npm:^3.48.0": + version: 3.50.0 + resolution: "react-aria@npm:3.50.0" + dependencies: + "@internationalized/date": "npm:^3.12.2" + "@internationalized/number": "npm:^3.6.7" + "@internationalized/string": "npm:^3.2.9" + "@react-types/shared": "npm:^3.36.0" + "@swc/helpers": "npm:^0.5.0" + aria-hidden: "npm:^1.2.3" + clsx: "npm:^2.0.0" + react-stately: "npm:3.48.0" + use-sync-external-store: "npm:^1.6.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/a7de127abcfcc91a8b69b30737d44842fd6fbe013ce14fff0975141937735f87f6274489f2bee498f3518b833c16799d64b13ea425ea731c89cf005d9a4ea655 + languageName: node + linkType: hard + "react-beautiful-dnd@npm:^13.0.0": version: 13.1.1 resolution: "react-beautiful-dnd@npm:13.1.1" @@ -28465,7 +28514,7 @@ __metadata: languageName: node linkType: hard -"react-stately@npm:^3.46.0": +"react-stately@npm:3.48.0, react-stately@npm:^3.46.0": version: 3.48.0 resolution: "react-stately@npm:3.48.0" dependencies: From 6822f69968e601bd04e64ecff9c19d085df9e729 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 6 Jul 2026 16:44:59 +0530 Subject: [PATCH 3/3] feat(translations): add NFS dev mode --- .../.changeset/add-nfs-support.md | 1 + .../plugins/translations-test/dev/index.tsx | 89 ++++++++++++++++--- .../plugins/translations-test/dev/legacy.tsx | 26 ++++++ .../plugins/translations-test/package.json | 6 +- .../src/components/I18NextCard.tsx | 17 +++- .../plugins/translations/dev/index.tsx | 87 +++++++++++++++--- .../plugins/translations/dev/legacy.tsx | 26 ++++++ .../plugins/translations/package.json | 7 +- workspaces/translations/yarn.lock | 9 +- 9 files changed, 242 insertions(+), 26 deletions(-) create mode 100644 workspaces/translations/plugins/translations-test/dev/legacy.tsx create mode 100644 workspaces/translations/plugins/translations/dev/legacy.tsx diff --git a/workspaces/translations/.changeset/add-nfs-support.md b/workspaces/translations/.changeset/add-nfs-support.md index a9707ac910..47b64d8d36 100644 --- a/workspaces/translations/.changeset/add-nfs-support.md +++ b/workspaces/translations/.changeset/add-nfs-support.md @@ -1,5 +1,6 @@ --- '@red-hat-developer-hub/backstage-plugin-translations': minor +'@red-hat-developer-hub/backstage-plugin-translations-test': minor --- Add NFS (New Frontend System) support and graduate to stable. NFS extensions include PageBlueprint, ApiBlueprint, TranslationBlueprint, and AppRootWrapperBlueprint. OFS exports are now available at `./legacy`. diff --git a/workspaces/translations/plugins/translations-test/dev/index.tsx b/workspaces/translations/plugins/translations-test/dev/index.tsx index 4bd6fc0664..fe6794bd24 100644 --- a/workspaces/translations/plugins/translations-test/dev/index.tsx +++ b/workspaces/translations/plugins/translations-test/dev/index.tsx @@ -13,14 +13,81 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { createDevApp } from '@backstage/dev-utils'; -import { translationsTestPlugin, TranslationsTestPage } from '../src/plugin'; - -createDevApp() - .registerPlugin(translationsTestPlugin) - .addPage({ - element: , - title: 'Root Page', - path: '/translations-test', - }) - .render(); + +/** + * New Frontend System dev mode for the Translations Test plugin. + */ + +import '@backstage/cli/asset-types'; +// eslint-disable-next-line @backstage/no-ui-css-imports-in-non-frontend +import '@backstage/ui/css/styles.css'; + +import ReactDOM from 'react-dom/client'; + +import { createApp } from '@backstage/frontend-defaults'; +import { createFrontendModule } from '@backstage/frontend-plugin-api'; +import { + Sidebar, + SidebarDivider, + SidebarGroup, + SidebarItem, + SidebarSpace, +} from '@backstage/core-components'; +import { NavContentBlueprint } from '@backstage/plugin-app-react'; +import { + SidebarLanguageSwitcher, + SidebarSignOutButton, +} from '@backstage/dev-utils'; +import ExtensionIcon from '@mui/icons-material/Extension'; +import ScienceIcon from '@mui/icons-material/Science'; +import { rhdhThemeModule } from '@red-hat-developer-hub/backstage-plugin-theme/alpha'; + +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import translationsPlugin, { + translationsApiModule, +} from '../../translations/src'; +import translationsTestPlugin from '../src'; + +const devSidebarContent = NavContentBlueprint.make({ + params: { + component: () => ( + + + + + + + + + + + ), + }, +}); + +const devNavModule = createFrontendModule({ + pluginId: 'app', + extensions: [devSidebarContent], +}); + +const app = createApp({ + features: [ + devNavModule, + translationsPlugin, + translationsApiModule, + translationsTestPlugin, + rhdhThemeModule, + ], +}); + +const root = app.createRoot(); + +ReactDOM.createRoot(document.getElementById('root')!).render(root); diff --git a/workspaces/translations/plugins/translations-test/dev/legacy.tsx b/workspaces/translations/plugins/translations-test/dev/legacy.tsx new file mode 100644 index 0000000000..4bd6fc0664 --- /dev/null +++ b/workspaces/translations/plugins/translations-test/dev/legacy.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { createDevApp } from '@backstage/dev-utils'; +import { translationsTestPlugin, TranslationsTestPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(translationsTestPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/translations-test', + }) + .render(); diff --git a/workspaces/translations/plugins/translations-test/package.json b/workspaces/translations/plugins/translations-test/package.json index b9dba0b300..fb2f4e1145 100644 --- a/workspaces/translations/plugins/translations-test/package.json +++ b/workspaces/translations/plugins/translations-test/package.json @@ -37,6 +37,7 @@ "sideEffects": false, "scripts": { "start": "backstage-cli package start", + "start:legacy": "backstage-cli package start --entrypoint dev/legacy.tsx", "build": "backstage-cli package build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", @@ -55,13 +56,16 @@ "@mui/icons-material": "5.18.0" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "*" }, "devDependencies": { "@backstage/cli": "^0.36.0", "@backstage/core-app-api": "^1.19.6", "@backstage/dev-utils": "^1.1.21", + "@backstage/frontend-defaults": "^0.5.3", "@backstage/test-utils": "^1.7.16", + "@red-hat-developer-hub/backstage-plugin-theme": "^0.14.8", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.0.0", diff --git a/workspaces/translations/plugins/translations-test/src/components/I18NextCard.tsx b/workspaces/translations/plugins/translations-test/src/components/I18NextCard.tsx index 0d7bf7a05e..d97fdd6a21 100644 --- a/workspaces/translations/plugins/translations-test/src/components/I18NextCard.tsx +++ b/workspaces/translations/plugins/translations-test/src/components/I18NextCard.tsx @@ -21,7 +21,22 @@ import type { i18n as I18n } from 'i18next'; export const I18NextCard = () => { const translationApi = useApi(translationApiRef); - const i18n: I18n = (translationApi as any).getI18nInstance(); + const api = translationApi as unknown as { getI18nInstance?: () => I18n }; + const i18n = + typeof api.getI18nInstance === 'function' + ? api.getI18nInstance() + : undefined; + + if (!i18n) { + return ( + + + i18next instance details are not available with the built-in + TranslationApi. + + + ); + } return ( diff --git a/workspaces/translations/plugins/translations/dev/index.tsx b/workspaces/translations/plugins/translations/dev/index.tsx index 0c09e8124d..754ee144f3 100644 --- a/workspaces/translations/plugins/translations/dev/index.tsx +++ b/workspaces/translations/plugins/translations/dev/index.tsx @@ -13,14 +13,79 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { createDevApp } from '@backstage/dev-utils'; -import { translationsPlugin, TranslationsPage } from '../src/plugin'; - -createDevApp() - .registerPlugin(translationsPlugin) - .addPage({ - element: , - title: 'Root Page', - path: '/translations', - }) - .render(); + +/** + * New Frontend System dev mode for the Translations plugin. + */ + +import '@backstage/cli/asset-types'; +// eslint-disable-next-line @backstage/no-ui-css-imports-in-non-frontend +import '@backstage/ui'; + +import ReactDOM from 'react-dom/client'; + +import { createApp } from '@backstage/frontend-defaults'; +import { createFrontendModule } from '@backstage/frontend-plugin-api'; +import { + Sidebar, + SidebarDivider, + SidebarGroup, + SidebarItem, + SidebarSpace, +} from '@backstage/core-components'; +import { NavContentBlueprint } from '@backstage/plugin-app-react'; +import { + SidebarLanguageSwitcher, + SidebarSignOutButton, +} from '@backstage/dev-utils'; +import ExtensionIcon from '@mui/icons-material/Extension'; +import ScienceIcon from '@mui/icons-material/Science'; +import { rhdhThemeModule } from '@red-hat-developer-hub/backstage-plugin-theme/alpha'; + +import translationsPlugin, { translationsApiModule } from '../src'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import translationsTestPlugin from '../../translations-test/src'; + +const devSidebarContent = NavContentBlueprint.make({ + params: { + component: () => ( + + + + + + + + + + + ), + }, +}); + +const devNavModule = createFrontendModule({ + pluginId: 'app', + extensions: [devSidebarContent], +}); + +const app = createApp({ + features: [ + devNavModule, + translationsPlugin, + translationsApiModule, + translationsTestPlugin, + rhdhThemeModule, + ], +}); + +const root = app.createRoot(); + +ReactDOM.createRoot(document.getElementById('root')!).render(root); diff --git a/workspaces/translations/plugins/translations/dev/legacy.tsx b/workspaces/translations/plugins/translations/dev/legacy.tsx new file mode 100644 index 0000000000..0c09e8124d --- /dev/null +++ b/workspaces/translations/plugins/translations/dev/legacy.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { createDevApp } from '@backstage/dev-utils'; +import { translationsPlugin, TranslationsPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(translationsPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/translations', + }) + .render(); diff --git a/workspaces/translations/plugins/translations/package.json b/workspaces/translations/plugins/translations/package.json index 06ec358dab..ecf953fc9f 100644 --- a/workspaces/translations/plugins/translations/package.json +++ b/workspaces/translations/plugins/translations/package.json @@ -61,6 +61,7 @@ "sideEffects": false, "scripts": { "start": "backstage-cli package start", + "start:legacy": "backstage-cli package start --entrypoint dev/legacy.tsx", "build": "backstage-cli package build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", @@ -83,14 +84,18 @@ "zen-observable": "^0.10.0" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "*" }, "devDependencies": { "@backstage/cli": "^0.36.0", "@backstage/config": "^1.3.7", "@backstage/core-app-api": "^1.19.6", "@backstage/dev-utils": "^1.1.21", + "@backstage/frontend-defaults": "^0.5.3", "@backstage/test-utils": "^1.7.16", + "@backstage/ui": "^0.16.0", + "@red-hat-developer-hub/backstage-plugin-theme": "^0.14.8", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.0.0", diff --git a/workspaces/translations/yarn.lock b/workspaces/translations/yarn.lock index dc0de64c77..2b1767a261 100644 --- a/workspaces/translations/yarn.lock +++ b/workspaces/translations/yarn.lock @@ -9081,7 +9081,7 @@ __metadata: languageName: node linkType: hard -"@red-hat-developer-hub/backstage-plugin-theme@npm:^0.14.0": +"@red-hat-developer-hub/backstage-plugin-theme@npm:^0.14.0, @red-hat-developer-hub/backstage-plugin-theme@npm:^0.14.8": version: 0.14.8 resolution: "@red-hat-developer-hub/backstage-plugin-theme@npm:0.14.8" dependencies: @@ -9128,6 +9128,7 @@ __metadata: "@backstage/core-components": "npm:^0.18.8" "@backstage/core-plugin-api": "npm:^1.12.4" "@backstage/dev-utils": "npm:^1.1.21" + "@backstage/frontend-defaults": "npm:^0.5.3" "@backstage/frontend-plugin-api": "npm:^0.17.2" "@backstage/plugin-app-react": "npm:^0.2.1" "@backstage/plugin-user-settings": "npm:^0.9.1" @@ -9135,6 +9136,7 @@ __metadata: "@backstage/theme": "npm:^0.7.2" "@backstage/ui": "npm:^0.13.2" "@mui/icons-material": "npm:5.18.0" + "@red-hat-developer-hub/backstage-plugin-theme": "npm:^0.14.8" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^14.0.0" "@testing-library/user-event": "npm:^14.0.0" @@ -9142,6 +9144,7 @@ __metadata: react: "npm:^16.13.1 || ^17.0.0 || ^18.0.0" peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: "*" languageName: unknown linkType: soft @@ -9155,14 +9158,17 @@ __metadata: "@backstage/core-components": "npm:^0.18.8" "@backstage/core-plugin-api": "npm:^1.12.4" "@backstage/dev-utils": "npm:^1.1.21" + "@backstage/frontend-defaults": "npm:^0.5.3" "@backstage/frontend-plugin-api": "npm:^0.17.2" "@backstage/plugin-app-react": "npm:^0.2.1" "@backstage/plugin-user-settings": "npm:^0.9.1" "@backstage/test-utils": "npm:^1.7.16" "@backstage/theme": "npm:^0.7.2" "@backstage/types": "npm:^1.2.2" + "@backstage/ui": "npm:^0.16.0" "@mui/icons-material": "npm:5.18.0" "@mui/material": "npm:5.18.0" + "@red-hat-developer-hub/backstage-plugin-theme": "npm:^0.14.8" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^14.0.0" "@testing-library/user-event": "npm:^14.0.0" @@ -9174,6 +9180,7 @@ __metadata: zen-observable: "npm:^0.10.0" peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: "*" languageName: unknown linkType: soft