Merge branch 'master' of github.com:backstage/backstage into kurtaking/bep-telemetry-service
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-org': patch
|
||||
---
|
||||
|
||||
Added OwnershipCard, ComponentsGrid and UserProfileCard components to the `overridableComponents`.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Fixed an issue causing TechDocs to not properly handle initial redirect.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
---
|
||||
|
||||
Catalog graph plugin support i18n
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/canon': patch
|
||||
---
|
||||
|
||||
We are consolidating all css files into a single styles.css in Canon.
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': major
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
**BREAKING:** The experimental `catalog.useUrlReadersSearch` configuration flag (introduced in v1.36) has been removed.
|
||||
|
||||
The `UrlReaderProcessor` now always uses the `search` method of `UrlReaders`. Built-in `UrlReaderService` implementations have been updated accordingly.
|
||||
If you use custom `UrlReaderService` implementations, you need to adapt their `search` method to correctly handle both specific URLs and potential
|
||||
search patterns (see changes on built-in readers [in the original PR](https://github.com/backstage/backstage/pull/28379/files#diff-68b0452f173ee54bdd40f7b5e047a9cb8bb59200425622c212c217b76dac1d1b)).
|
||||
|
||||
Previous behavior was to call the `search` method only if the parsed Git URL's filename contained a wildcard and use `readUrl` otherwise. Each `UrlReaderService` must implement this logic in the `search` method instead.
|
||||
|
||||
This allows each `UrlReaderService` implementation to check whether it's a search URL (that contains a wildcard pattern) or not using logic that is specific to each provider.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/canon': patch
|
||||
---
|
||||
|
||||
Add new `RadioGroup` + `Radio` component to Canon
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Support `filter` parameter on the `EntityHeaderBlueprint`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/ui': patch
|
||||
---
|
||||
|
||||
Update styling of Tooltip element
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-defaults': patch
|
||||
'@backstage/backend-test-utils': minor
|
||||
---
|
||||
|
||||
Add a standard `toString` on credentials objects
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Adding `type` as an override to the `convertLegacyEntityCardExtension`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-azure': patch
|
||||
---
|
||||
|
||||
`host` should be optional in `config` schema
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Adding a more sensible default order to the default filters
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Support multiple headers in new frontend system, and don't render a header until the entity has finished loading
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-node-test-utils': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
'@backstage/plugin-scaffolder-node': patch
|
||||
---
|
||||
|
||||
An internal refactor which adds additional types to experimental checkpoints
|
||||
+200
-187
@@ -2,206 +2,219 @@
|
||||
"mode": "pre",
|
||||
"tag": "next",
|
||||
"initialVersions": {
|
||||
"example-app": "0.2.110",
|
||||
"@backstage/app-defaults": "1.6.3",
|
||||
"example-app-next": "0.0.24",
|
||||
"app-next-example-plugin": "0.0.24",
|
||||
"example-backend": "0.0.39",
|
||||
"@backstage/backend-app-api": "1.2.4",
|
||||
"@backstage/backend-defaults": "0.11.0",
|
||||
"example-app": "0.2.111",
|
||||
"@backstage/app-defaults": "1.6.4",
|
||||
"example-app-next": "0.0.25",
|
||||
"app-next-example-plugin": "0.0.25",
|
||||
"example-backend": "0.0.40",
|
||||
"@backstage/backend-app-api": "1.2.5",
|
||||
"@backstage/backend-defaults": "0.11.1",
|
||||
"@backstage/backend-dev-utils": "0.1.5",
|
||||
"@backstage/backend-dynamic-feature-service": "0.7.1",
|
||||
"@backstage/backend-openapi-utils": "0.5.4",
|
||||
"@backstage/backend-plugin-api": "1.4.0",
|
||||
"@backstage/backend-test-utils": "1.6.0",
|
||||
"@backstage/canon": "0.5.0",
|
||||
"@backstage/catalog-client": "1.10.1",
|
||||
"@backstage/catalog-model": "1.7.4",
|
||||
"@backstage/cli": "0.33.0",
|
||||
"@backstage/backend-dynamic-feature-service": "0.7.2",
|
||||
"@backstage/backend-openapi-utils": "0.5.5",
|
||||
"@backstage/backend-plugin-api": "1.4.1",
|
||||
"@backstage/backend-test-utils": "1.7.0",
|
||||
"@backstage/canon": "0.6.0",
|
||||
"@backstage/catalog-client": "1.10.2",
|
||||
"@backstage/catalog-model": "1.7.5",
|
||||
"@backstage/cli": "0.33.1",
|
||||
"@backstage/cli-common": "0.1.15",
|
||||
"@backstage/cli-node": "0.2.13",
|
||||
"@backstage/codemods": "0.1.52",
|
||||
"@backstage/config": "1.3.2",
|
||||
"@backstage/config-loader": "1.10.1",
|
||||
"@backstage/core-app-api": "1.17.1",
|
||||
"@backstage/core-compat-api": "0.4.3",
|
||||
"@backstage/core-components": "0.17.3",
|
||||
"@backstage/core-plugin-api": "1.10.8",
|
||||
"@backstage/create-app": "0.7.0",
|
||||
"@backstage/dev-utils": "1.1.11",
|
||||
"e2e-test": "0.2.29",
|
||||
"@backstage/config": "1.3.3",
|
||||
"@backstage/config-loader": "1.10.2",
|
||||
"@backstage/core-app-api": "1.18.0",
|
||||
"@backstage/core-compat-api": "0.4.4",
|
||||
"@backstage/core-components": "0.17.4",
|
||||
"@backstage/core-plugin-api": "1.10.9",
|
||||
"@backstage/create-app": "0.7.1",
|
||||
"@backstage/dev-utils": "1.1.12",
|
||||
"e2e-test": "0.2.30",
|
||||
"@backstage/e2e-test-utils": "0.1.1",
|
||||
"@backstage/errors": "1.2.7",
|
||||
"@backstage/eslint-plugin": "0.1.11",
|
||||
"@backstage/frontend-app-api": "0.11.3",
|
||||
"@backstage/frontend-defaults": "0.2.3",
|
||||
"@backstage/frontend-dynamic-feature-loader": "0.1.2",
|
||||
"@internal/frontend": "0.0.10",
|
||||
"@backstage/frontend-plugin-api": "0.10.3",
|
||||
"@backstage/frontend-test-utils": "0.3.3",
|
||||
"@backstage/integration": "1.17.0",
|
||||
"@backstage/integration-aws-node": "0.1.16",
|
||||
"@backstage/integration-react": "1.2.8",
|
||||
"@backstage/frontend-app-api": "0.11.4",
|
||||
"@backstage/frontend-defaults": "0.2.4",
|
||||
"@backstage/frontend-dynamic-feature-loader": "0.1.3",
|
||||
"@internal/frontend": "0.0.11",
|
||||
"@backstage/frontend-plugin-api": "0.10.4",
|
||||
"@backstage/frontend-test-utils": "0.3.4",
|
||||
"@backstage/integration": "1.17.1",
|
||||
"@backstage/integration-aws-node": "0.1.17",
|
||||
"@backstage/integration-react": "1.2.9",
|
||||
"@internal/opaque": "0.0.1",
|
||||
"@backstage/release-manifests": "0.0.13",
|
||||
"@backstage/repo-tools": "0.14.0",
|
||||
"@internal/scaffolder": "0.0.10",
|
||||
"@techdocs/cli": "1.9.4",
|
||||
"techdocs-cli-embedded-app": "0.2.109",
|
||||
"@backstage/test-utils": "1.7.9",
|
||||
"@backstage/theme": "0.6.6",
|
||||
"@backstage/repo-tools": "0.15.0",
|
||||
"@internal/scaffolder": "0.0.11",
|
||||
"@techdocs/cli": "1.9.5",
|
||||
"techdocs-cli-embedded-app": "0.2.110",
|
||||
"@backstage/test-utils": "1.7.10",
|
||||
"@backstage/theme": "0.6.7",
|
||||
"@backstage/types": "1.2.1",
|
||||
"@backstage/ui": "0.6.0",
|
||||
"@backstage/version-bridge": "1.0.11",
|
||||
"yarn-plugin-backstage": "0.0.6",
|
||||
"@backstage/plugin-api-docs": "0.12.8",
|
||||
"yarn-plugin-backstage": "0.0.7",
|
||||
"@backstage/plugin-api-docs": "0.12.9",
|
||||
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.10",
|
||||
"@backstage/plugin-app": "0.1.10",
|
||||
"@backstage/plugin-app-backend": "0.5.3",
|
||||
"@backstage/plugin-app-node": "0.1.34",
|
||||
"@backstage/plugin-app-visualizer": "0.1.20",
|
||||
"@backstage/plugin-auth-backend": "0.25.1",
|
||||
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-auth0-provider": "0.2.4",
|
||||
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.9",
|
||||
"@backstage/plugin-auth-backend-module-bitbucket-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.2.4",
|
||||
"@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-github-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-gitlab-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-google-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.9",
|
||||
"@backstage/plugin-auth-backend-module-microsoft-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-oauth2-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.9",
|
||||
"@backstage/plugin-auth-backend-module-oidc-provider": "0.4.4",
|
||||
"@backstage/plugin-auth-backend-module-okta-provider": "0.2.4",
|
||||
"@backstage/plugin-auth-backend-module-onelogin-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-pinniped-provider": "0.3.4",
|
||||
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.5.4",
|
||||
"@backstage/plugin-auth-node": "0.6.4",
|
||||
"@backstage/plugin-auth-react": "0.1.16",
|
||||
"@backstage/plugin-bitbucket-cloud-common": "0.3.0",
|
||||
"@backstage/plugin-catalog": "1.31.0",
|
||||
"@backstage/plugin-catalog-backend": "2.1.0",
|
||||
"@backstage/plugin-catalog-backend-module-aws": "0.4.12",
|
||||
"@backstage/plugin-catalog-backend-module-azure": "0.3.6",
|
||||
"@backstage/plugin-catalog-backend-module-backstage-openapi": "0.5.3",
|
||||
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.5.0",
|
||||
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.5.0",
|
||||
"@backstage/plugin-catalog-backend-module-gcp": "0.3.9",
|
||||
"@backstage/plugin-catalog-backend-module-gerrit": "0.3.3",
|
||||
"@backstage/plugin-catalog-backend-module-gitea": "0.1.1",
|
||||
"@backstage/plugin-catalog-backend-module-github": "0.10.0",
|
||||
"@backstage/plugin-catalog-backend-module-github-org": "0.3.11",
|
||||
"@backstage/plugin-catalog-backend-module-gitlab": "0.7.0",
|
||||
"@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.10",
|
||||
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.7.1",
|
||||
"@backstage/plugin-catalog-backend-module-ldap": "0.11.6",
|
||||
"@backstage/plugin-catalog-backend-module-logs": "0.1.11",
|
||||
"@backstage/plugin-catalog-backend-module-msgraph": "0.7.1",
|
||||
"@backstage/plugin-catalog-backend-module-openapi": "0.2.11",
|
||||
"@backstage/plugin-catalog-backend-module-puppetdb": "0.2.11",
|
||||
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.9",
|
||||
"@backstage/plugin-catalog-backend-module-unprocessed": "0.6.1",
|
||||
"@backstage/plugin-catalog-common": "1.1.4",
|
||||
"@backstage/plugin-catalog-graph": "0.4.20",
|
||||
"@backstage/plugin-catalog-import": "0.13.1",
|
||||
"@backstage/plugin-catalog-node": "1.17.1",
|
||||
"@backstage/plugin-catalog-react": "1.19.0",
|
||||
"@backstage/plugin-catalog-unprocessed-entities": "0.2.18",
|
||||
"@backstage/plugin-catalog-unprocessed-entities-common": "0.0.8",
|
||||
"@backstage/plugin-config-schema": "0.1.69",
|
||||
"@backstage/plugin-devtools": "0.1.28",
|
||||
"@backstage/plugin-devtools-backend": "0.5.6",
|
||||
"@backstage/plugin-devtools-common": "0.1.16",
|
||||
"@backstage/plugin-events-backend": "0.5.3",
|
||||
"@backstage/plugin-events-backend-module-aws-sqs": "0.4.12",
|
||||
"@backstage/plugin-events-backend-module-azure": "0.2.21",
|
||||
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.21",
|
||||
"@backstage/plugin-events-backend-module-bitbucket-server": "0.1.2",
|
||||
"@backstage/plugin-events-backend-module-gerrit": "0.2.21",
|
||||
"@backstage/plugin-events-backend-module-github": "0.4.1",
|
||||
"@backstage/plugin-events-backend-module-gitlab": "0.3.2",
|
||||
"@backstage/plugin-events-backend-module-google-pubsub": "0.1.1",
|
||||
"@backstage/plugin-events-backend-module-kafka": "0.1.0",
|
||||
"@backstage/plugin-events-backend-test-utils": "0.1.45",
|
||||
"@backstage/plugin-events-node": "0.4.12",
|
||||
"@internal/plugin-todo-list": "1.0.40",
|
||||
"@internal/plugin-todo-list-backend": "1.0.40",
|
||||
"@internal/plugin-todo-list-common": "1.0.25",
|
||||
"@backstage/plugin-gateway-backend": "1.0.2",
|
||||
"@backstage/plugin-home": "0.8.9",
|
||||
"@backstage/plugin-home-react": "0.1.27",
|
||||
"@backstage/plugin-kubernetes": "0.12.8",
|
||||
"@backstage/plugin-kubernetes-backend": "0.19.7",
|
||||
"@backstage/plugin-kubernetes-cluster": "0.0.26",
|
||||
"@backstage/plugin-kubernetes-common": "0.9.5",
|
||||
"@backstage/plugin-kubernetes-node": "0.3.1",
|
||||
"@backstage/plugin-kubernetes-react": "0.5.8",
|
||||
"@backstage/plugin-mcp-actions-backend": "0.1.0",
|
||||
"@backstage/plugin-notifications": "0.5.6",
|
||||
"@backstage/plugin-notifications-backend": "0.5.7",
|
||||
"@backstage/plugin-notifications-backend-module-email": "0.3.10",
|
||||
"@backstage/plugin-notifications-backend-module-slack": "0.1.2",
|
||||
"@backstage/plugin-notifications-common": "0.0.9",
|
||||
"@backstage/plugin-notifications-node": "0.2.16",
|
||||
"@backstage/plugin-org": "0.6.40",
|
||||
"@backstage/plugin-org-react": "0.1.39",
|
||||
"@backstage/plugin-permission-backend": "0.7.1",
|
||||
"@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.9",
|
||||
"@backstage/plugin-permission-common": "0.9.0",
|
||||
"@backstage/plugin-permission-node": "0.10.1",
|
||||
"@backstage/plugin-permission-react": "0.4.35",
|
||||
"@backstage/plugin-proxy-backend": "0.6.3",
|
||||
"@backstage/plugin-proxy-node": "0.1.5",
|
||||
"@backstage/plugin-scaffolder": "1.32.0",
|
||||
"@backstage/plugin-scaffolder-backend": "2.0.0",
|
||||
"@backstage/plugin-scaffolder-backend-module-azure": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-gcp": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-gitea": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-github": "0.8.0",
|
||||
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.9.2",
|
||||
"@backstage/plugin-scaffolder-backend-module-notifications": "0.1.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-rails": "0.5.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-sentry": "0.2.10",
|
||||
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.11",
|
||||
"@backstage/plugin-scaffolder-common": "1.5.11",
|
||||
"@backstage/plugin-scaffolder-node": "0.9.0",
|
||||
"@backstage/plugin-scaffolder-node-test-utils": "0.3.0",
|
||||
"@backstage/plugin-scaffolder-react": "1.17.0",
|
||||
"@backstage/plugin-search": "1.4.27",
|
||||
"@backstage/plugin-search-backend": "2.0.3",
|
||||
"@backstage/plugin-search-backend-module-catalog": "0.3.5",
|
||||
"@backstage/plugin-search-backend-module-elasticsearch": "1.7.3",
|
||||
"@backstage/plugin-search-backend-module-explore": "0.3.3",
|
||||
"@backstage/plugin-search-backend-module-pg": "0.5.45",
|
||||
"@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.10",
|
||||
"@backstage/plugin-search-backend-module-techdocs": "0.4.3",
|
||||
"@backstage/plugin-search-backend-node": "1.3.12",
|
||||
"@backstage/plugin-search-common": "1.2.18",
|
||||
"@backstage/plugin-search-react": "1.9.1",
|
||||
"@backstage/plugin-signals": "0.0.20",
|
||||
"@backstage/plugin-signals-backend": "0.3.5",
|
||||
"@backstage/plugin-signals-node": "0.1.21",
|
||||
"@backstage/plugin-signals-react": "0.0.14",
|
||||
"@backstage/plugin-techdocs": "1.13.0",
|
||||
"@backstage/plugin-techdocs-addons-test-utils": "1.0.49",
|
||||
"@backstage/plugin-techdocs-backend": "2.0.3",
|
||||
"@backstage/plugin-app": "0.1.11",
|
||||
"@backstage/plugin-app-backend": "0.5.4",
|
||||
"@backstage/plugin-app-node": "0.1.35",
|
||||
"@backstage/plugin-app-visualizer": "0.1.21",
|
||||
"@backstage/plugin-auth-backend": "0.25.2",
|
||||
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-auth0-provider": "0.2.5",
|
||||
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.10",
|
||||
"@backstage/plugin-auth-backend-module-bitbucket-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.2.5",
|
||||
"@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-github-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-gitlab-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-google-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.10",
|
||||
"@backstage/plugin-auth-backend-module-microsoft-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-oauth2-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.10",
|
||||
"@backstage/plugin-auth-backend-module-oidc-provider": "0.4.5",
|
||||
"@backstage/plugin-auth-backend-module-okta-provider": "0.2.5",
|
||||
"@backstage/plugin-auth-backend-module-onelogin-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-pinniped-provider": "0.3.5",
|
||||
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.5.5",
|
||||
"@backstage/plugin-auth-node": "0.6.5",
|
||||
"@backstage/plugin-auth-react": "0.1.17",
|
||||
"@backstage/plugin-bitbucket-cloud-common": "0.3.1",
|
||||
"@backstage/plugin-catalog": "1.31.1",
|
||||
"@backstage/plugin-catalog-backend": "3.0.0",
|
||||
"@backstage/plugin-catalog-backend-module-aws": "0.4.13",
|
||||
"@backstage/plugin-catalog-backend-module-azure": "0.3.7",
|
||||
"@backstage/plugin-catalog-backend-module-backstage-openapi": "0.5.4",
|
||||
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.5.1",
|
||||
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.5.1",
|
||||
"@backstage/plugin-catalog-backend-module-gcp": "0.3.10",
|
||||
"@backstage/plugin-catalog-backend-module-gerrit": "0.3.4",
|
||||
"@backstage/plugin-catalog-backend-module-gitea": "0.1.2",
|
||||
"@backstage/plugin-catalog-backend-module-github": "0.10.1",
|
||||
"@backstage/plugin-catalog-backend-module-github-org": "0.3.12",
|
||||
"@backstage/plugin-catalog-backend-module-gitlab": "0.7.1",
|
||||
"@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.11",
|
||||
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.7.2",
|
||||
"@backstage/plugin-catalog-backend-module-ldap": "0.11.7",
|
||||
"@backstage/plugin-catalog-backend-module-logs": "0.1.12",
|
||||
"@backstage/plugin-catalog-backend-module-msgraph": "0.7.2",
|
||||
"@backstage/plugin-catalog-backend-module-openapi": "0.2.12",
|
||||
"@backstage/plugin-catalog-backend-module-puppetdb": "0.2.12",
|
||||
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.10",
|
||||
"@backstage/plugin-catalog-backend-module-unprocessed": "0.6.2",
|
||||
"@backstage/plugin-catalog-common": "1.1.5",
|
||||
"@backstage/plugin-catalog-graph": "0.4.21",
|
||||
"@backstage/plugin-catalog-import": "0.13.3",
|
||||
"@backstage/plugin-catalog-node": "1.17.2",
|
||||
"@backstage/plugin-catalog-react": "1.19.1",
|
||||
"@backstage/plugin-catalog-unprocessed-entities": "0.2.19",
|
||||
"@backstage/plugin-catalog-unprocessed-entities-common": "0.0.9",
|
||||
"@backstage/plugin-config-schema": "0.1.70",
|
||||
"@backstage/plugin-devtools": "0.1.29",
|
||||
"@backstage/plugin-devtools-backend": "0.5.7",
|
||||
"@backstage/plugin-devtools-common": "0.1.17",
|
||||
"@backstage/plugin-events-backend": "0.5.4",
|
||||
"@backstage/plugin-events-backend-module-aws-sqs": "0.4.13",
|
||||
"@backstage/plugin-events-backend-module-azure": "0.2.22",
|
||||
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.22",
|
||||
"@backstage/plugin-events-backend-module-bitbucket-server": "0.1.3",
|
||||
"@backstage/plugin-events-backend-module-gerrit": "0.2.22",
|
||||
"@backstage/plugin-events-backend-module-github": "0.4.2",
|
||||
"@backstage/plugin-events-backend-module-gitlab": "0.3.3",
|
||||
"@backstage/plugin-events-backend-module-google-pubsub": "0.1.2",
|
||||
"@backstage/plugin-events-backend-module-kafka": "0.1.1",
|
||||
"@backstage/plugin-events-backend-test-utils": "0.1.46",
|
||||
"@backstage/plugin-events-node": "0.4.13",
|
||||
"@internal/plugin-todo-list": "1.0.41",
|
||||
"@internal/plugin-todo-list-backend": "1.0.41",
|
||||
"@internal/plugin-todo-list-common": "1.0.26",
|
||||
"@backstage/plugin-gateway-backend": "1.0.3",
|
||||
"@backstage/plugin-home": "0.8.10",
|
||||
"@backstage/plugin-home-react": "0.1.28",
|
||||
"@backstage/plugin-kubernetes": "0.12.9",
|
||||
"@backstage/plugin-kubernetes-backend": "0.19.8",
|
||||
"@backstage/plugin-kubernetes-cluster": "0.0.27",
|
||||
"@backstage/plugin-kubernetes-common": "0.9.6",
|
||||
"@backstage/plugin-kubernetes-node": "0.3.2",
|
||||
"@backstage/plugin-kubernetes-react": "0.5.9",
|
||||
"@backstage/plugin-mcp-actions-backend": "0.1.1",
|
||||
"@backstage/plugin-notifications": "0.5.7",
|
||||
"@backstage/plugin-notifications-backend": "0.5.8",
|
||||
"@backstage/plugin-notifications-backend-module-email": "0.3.11",
|
||||
"@backstage/plugin-notifications-backend-module-slack": "0.1.3",
|
||||
"@backstage/plugin-notifications-common": "0.0.10",
|
||||
"@backstage/plugin-notifications-node": "0.2.17",
|
||||
"@backstage/plugin-org": "0.6.41",
|
||||
"@backstage/plugin-org-react": "0.1.40",
|
||||
"@backstage/plugin-permission-backend": "0.7.2",
|
||||
"@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.10",
|
||||
"@backstage/plugin-permission-common": "0.9.1",
|
||||
"@backstage/plugin-permission-node": "0.10.2",
|
||||
"@backstage/plugin-permission-react": "0.4.36",
|
||||
"@backstage/plugin-proxy-backend": "0.6.4",
|
||||
"@backstage/plugin-proxy-node": "0.1.6",
|
||||
"@backstage/plugin-scaffolder": "1.33.0",
|
||||
"@backstage/plugin-scaffolder-backend": "2.1.0",
|
||||
"@backstage/plugin-scaffolder-backend-module-azure": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.12",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.13",
|
||||
"@backstage/plugin-scaffolder-backend-module-gcp": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-gitea": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-github": "0.8.1",
|
||||
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.9.3",
|
||||
"@backstage/plugin-scaffolder-backend-module-notifications": "0.1.12",
|
||||
"@backstage/plugin-scaffolder-backend-module-rails": "0.5.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-sentry": "0.2.11",
|
||||
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.12",
|
||||
"@backstage/plugin-scaffolder-common": "1.6.0",
|
||||
"@backstage/plugin-scaffolder-node": "0.10.0",
|
||||
"@backstage/plugin-scaffolder-node-test-utils": "0.3.1",
|
||||
"@backstage/plugin-scaffolder-react": "1.18.0",
|
||||
"@backstage/plugin-search": "1.4.28",
|
||||
"@backstage/plugin-search-backend": "2.0.4",
|
||||
"@backstage/plugin-search-backend-module-catalog": "0.3.6",
|
||||
"@backstage/plugin-search-backend-module-elasticsearch": "1.7.4",
|
||||
"@backstage/plugin-search-backend-module-explore": "0.3.4",
|
||||
"@backstage/plugin-search-backend-module-pg": "0.5.46",
|
||||
"@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.11",
|
||||
"@backstage/plugin-search-backend-module-techdocs": "0.4.4",
|
||||
"@backstage/plugin-search-backend-node": "1.3.13",
|
||||
"@backstage/plugin-search-common": "1.2.19",
|
||||
"@backstage/plugin-search-react": "1.9.2",
|
||||
"@backstage/plugin-signals": "0.0.21",
|
||||
"@backstage/plugin-signals-backend": "0.3.6",
|
||||
"@backstage/plugin-signals-node": "0.1.22",
|
||||
"@backstage/plugin-signals-react": "0.0.15",
|
||||
"@backstage/plugin-techdocs": "1.13.2",
|
||||
"@backstage/plugin-techdocs-addons-test-utils": "1.0.51",
|
||||
"@backstage/plugin-techdocs-backend": "2.0.4",
|
||||
"@backstage/plugin-techdocs-common": "0.1.1",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.25",
|
||||
"@backstage/plugin-techdocs-node": "1.13.4",
|
||||
"@backstage/plugin-techdocs-react": "1.3.0",
|
||||
"@backstage/plugin-user-settings": "0.8.23",
|
||||
"@backstage/plugin-user-settings-backend": "0.3.3",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.26",
|
||||
"@backstage/plugin-techdocs-node": "1.13.5",
|
||||
"@backstage/plugin-techdocs-react": "1.3.1",
|
||||
"@backstage/plugin-user-settings": "0.8.24",
|
||||
"@backstage/plugin-user-settings-backend": "0.3.4",
|
||||
"@backstage/plugin-user-settings-common": "0.0.1"
|
||||
},
|
||||
"changesets": []
|
||||
"changesets": [
|
||||
"blue-apples-pump",
|
||||
"create-app-1753196727",
|
||||
"evil-phones-unite",
|
||||
"funny-dancers-start",
|
||||
"hot-clowns-behave",
|
||||
"huge-heads-occur",
|
||||
"nice-actors-cheer",
|
||||
"nice-crabs-clean",
|
||||
"spotty-icons-shake",
|
||||
"tender-crabs-stay",
|
||||
"twenty-pumas-brush"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
'@backstage/canon': minor
|
||||
---
|
||||
|
||||
**BREAKING CHANGES**
|
||||
|
||||
We’re updating our Button component to provide better support for button links.
|
||||
|
||||
- We’re introducing a new `ButtonLink` component, which replaces the previous render prop pattern.
|
||||
- To maintain naming consistency across components, `IconButton` is being renamed to `ButtonIcon`.
|
||||
- Additionally, the render prop will be removed from all button-related components.
|
||||
|
||||
These changes aim to simplify usage and improve clarity in our component API.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-mcp-actions-backend': patch
|
||||
---
|
||||
|
||||
Fixed the example in the README for generating a static token by adding a subject field
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Replaced deprecated uses of `@backstage/backend-common` with the equivalents in `@backstage/backend-defaults` and `@backstage/backend-plugin-api`.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/canon': patch
|
||||
---
|
||||
|
||||
Added placeholder prop to TextField component.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
|
||||
---
|
||||
|
||||
Fixing the typescript issue with using `z.unknown()`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-defaults': patch
|
||||
---
|
||||
|
||||
Added support for passing through `allowUnknownExtensionConfig` as a flag
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-import': patch
|
||||
---
|
||||
|
||||
Fixed bug with error message since ResponseError is now thrown from CatalogClient
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/ui': minor
|
||||
---
|
||||
|
||||
**Breaking** We are upgrading our `Text` component to support all font sizes making the `Heading` component redundant. The new `Text` component introduces 4 sizes for title and 4 sizes for body text. All of these work in multiple colors and font weights. We improved the `as` prop to include all possible values. The `Link` component has also been updated to match the new `Text` component.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/canon': patch
|
||||
---
|
||||
|
||||
adding export for ButtonLink so it's importable
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/integration-react': patch
|
||||
---
|
||||
|
||||
Separated gitlab `write_repository` and `api` scope to pass checks in `RefreshingAuthSessionManager`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/ui': patch
|
||||
---
|
||||
|
||||
Adds onTabSelectionChange to ui header component.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend': patch
|
||||
---
|
||||
|
||||
Error messages should not contain backend SQL query strings in the API response, this change will ensure that messages are logged and empty response is returned to the user
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-defaults': patch
|
||||
'@backstage/integration': patch
|
||||
---
|
||||
|
||||
Fixed bug where the GitLab user token and GitLab integration token were being merged together
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
**/.git/**
|
||||
**/public/**
|
||||
**/microsite/**
|
||||
**/canon-docs/**
|
||||
**/docs-ui/**
|
||||
**/templates/**
|
||||
**/sample-templates/**
|
||||
playwright.config.ts
|
||||
|
||||
@@ -40,6 +40,7 @@ yarn.lock @backstage/maintainers @backst
|
||||
/packages/repo-tools @backstage/tooling-maintainers
|
||||
/packages/techdocs-cli @backstage/techdocs-maintainers
|
||||
/packages/techdocs-cli-embedded-app @backstage/techdocs-maintainers
|
||||
/packages/ui @backstage/design-system-maintainers
|
||||
/packages/yarn-plugin @backstage/tooling-maintainers
|
||||
/plugins/app @backstage/framework-maintainers
|
||||
/plugins/app-* @backstage/framework-maintainers
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
This is a TypeScript project structured as a monorepo using Yarn workspaces.
|
||||
|
||||
## Code Standards
|
||||
|
||||
The following files contain guidelines for the project:
|
||||
|
||||
- `/STYLE.md`: guidelines for code style.
|
||||
- `/REVIEWING.md`: guidelines for pull requests.
|
||||
- `/SECURITY.md`: guidelines for security.
|
||||
- `/docs/architecture-decisions/`: contains the architecture decisions for the project.
|
||||
|
||||
## Development Flow
|
||||
|
||||
Before any of these commands can be run, you need to run `yarn install` in the project root.
|
||||
|
||||
- Build: There is no need to build the project during development, and it is verified automatically in the CI pipeline.
|
||||
- Test: Use `yarn test <path>` in the project root to run tests. The path can be either a single file or a directory, and be omitted to run tests for all changed files.
|
||||
- Type checking: Use `yarn tsc` in the project root to run the type checker.
|
||||
- Code formatting: Use `yarn prettier --write <path>` to format code.
|
||||
- Lint: Use `yarn lint --fix` in the project root to run the linter.
|
||||
- API reports: Before submitting a pull request with changes to any package in the workspace, run `yarn build:api-reports` in the project root to generate API reports for all packages.
|
||||
|
||||
You MUST NOT create a release by running `yarn changesets version` or `yarn release` as part of any changes. Releases are created by separate workflows.
|
||||
|
||||
All changes that affect the published version of packages in the `/packages` and `/plugins` directories must be accompanied by a changeset. See the guidelines in `/REVIEWING.md` for information on how to write good changesets. Changesets are stored in the `/.changeset` directory. Breaking changes must be accompanied by a `minor` version bump for packages that below version `1.0.0`, or a `major` version bump for packages that are at version `1.0.0` or higher.
|
||||
|
||||
Never update ESLint, Prettier, or TypeScript configuration files unless specifically requested.
|
||||
|
||||
## Repository Structure
|
||||
|
||||
See `/docs/contribute/project-structure.md` for a detailed description of the repository structure.
|
||||
@@ -10,6 +10,7 @@ Airbrakes
|
||||
ajv
|
||||
Alaria
|
||||
Alef
|
||||
allowedHosts
|
||||
allowlisted
|
||||
Anddddd
|
||||
Apdex
|
||||
@@ -43,6 +44,7 @@ bugfixes
|
||||
builtins
|
||||
bundler
|
||||
bundlers
|
||||
bursty
|
||||
callout
|
||||
CDNs
|
||||
Chai
|
||||
@@ -102,6 +104,8 @@ deliverables
|
||||
denormalized
|
||||
dependabot
|
||||
deps
|
||||
dequeue
|
||||
dequeueing
|
||||
deserialization
|
||||
destructured
|
||||
destructuring
|
||||
@@ -111,8 +115,6 @@ devcontainer
|
||||
devcontainers
|
||||
devops
|
||||
devs
|
||||
dequeue
|
||||
dequeueing
|
||||
dialogs
|
||||
disambiguator
|
||||
discoverability
|
||||
@@ -150,8 +152,8 @@ FireHydrant
|
||||
Firekube
|
||||
Firestore
|
||||
Fiverr
|
||||
Flightcontrol
|
||||
flightcontrol
|
||||
Flightcontrol
|
||||
Francesco
|
||||
Frontside
|
||||
Gaurav
|
||||
@@ -175,8 +177,8 @@ Hackathons
|
||||
haproxy
|
||||
hardcoded
|
||||
hardcoding
|
||||
Harness
|
||||
harness
|
||||
Harness
|
||||
Helidon
|
||||
Henneke
|
||||
Heroku
|
||||
@@ -199,9 +201,10 @@ Indal
|
||||
indexable
|
||||
ingestors
|
||||
inlined
|
||||
inlining
|
||||
inlinehilite
|
||||
inlining
|
||||
integrator's
|
||||
intellij
|
||||
interop
|
||||
interoperate
|
||||
iterable
|
||||
@@ -312,8 +315,8 @@ OpenSearch
|
||||
OpenShift
|
||||
openssl
|
||||
orgs
|
||||
Overridable
|
||||
overridable
|
||||
Overridable
|
||||
padding
|
||||
paddings
|
||||
pagerduty
|
||||
@@ -380,10 +383,10 @@ retryable
|
||||
reusability
|
||||
Reusability
|
||||
roadmaps
|
||||
rollbar
|
||||
rollout
|
||||
Roboto
|
||||
rollbar
|
||||
Rollbar
|
||||
rollout
|
||||
Rollup
|
||||
routable
|
||||
Routable
|
||||
@@ -399,9 +402,10 @@ sanitization
|
||||
scaffolded
|
||||
scaffolder
|
||||
Scaffolder
|
||||
scrollbar
|
||||
SCM
|
||||
SCMs
|
||||
scrollable
|
||||
scrollbar
|
||||
sdks
|
||||
seb
|
||||
semlas
|
||||
@@ -409,14 +413,15 @@ semver
|
||||
sendmail
|
||||
serializable
|
||||
Serverless
|
||||
severities
|
||||
shoutout
|
||||
SIG
|
||||
signoff
|
||||
SIGs
|
||||
siloed
|
||||
Sinon
|
||||
snackbars
|
||||
snackbar
|
||||
snackbars
|
||||
Snyk
|
||||
Sonarqube
|
||||
sourcemaps
|
||||
@@ -487,6 +492,7 @@ transpiled
|
||||
transpiler
|
||||
transpilers
|
||||
truthy
|
||||
tsconfig
|
||||
TSDoc
|
||||
typeahead
|
||||
ui
|
||||
@@ -537,7 +543,3 @@ zod
|
||||
Zolotusky
|
||||
zoomable
|
||||
zsh
|
||||
scrollable
|
||||
severities
|
||||
intellij
|
||||
tsconfig
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
comment-cache-key: ${{ steps.hash.outputs.COMMENT_FILE_HASH }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
disable-sudo: true
|
||||
egress-policy: block
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
name: Test ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Install ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
name: Verify ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -131,6 +131,10 @@ jobs:
|
||||
- name: build canon
|
||||
run: yarn --cwd packages/canon build
|
||||
|
||||
# For now BUI has a custom build script and needs to be built separately
|
||||
- name: build BUI
|
||||
run: yarn --cwd packages/ui build
|
||||
|
||||
- name: verify type dependencies
|
||||
run: yarn lint:type-deps
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -135,7 +135,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -246,7 +246,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -114,6 +114,10 @@ jobs:
|
||||
- name: build canon
|
||||
run: yarn --cwd packages/canon build
|
||||
|
||||
# For now BUI has a custom build script and needs to be built separately
|
||||
- name: build BUI
|
||||
run: yarn --cwd packages/ui build
|
||||
|
||||
- name: verify type dependencies
|
||||
run: yarn lint:type-deps
|
||||
|
||||
@@ -151,7 +155,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
steps:
|
||||
# Inspired by https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage' && ( github.event.pull_request || github.event.issue.pull_request )
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ on:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
sync-canon-docs:
|
||||
sync-docs-ui:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -26,11 +26,11 @@ jobs:
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v20.x
|
||||
|
||||
- name: Checkout backstage/canon-docs
|
||||
- name: Checkout backstage/docs-ui
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
repository: backstage/canon-docs
|
||||
path: canon-external-docs
|
||||
repository: backstage/docs-ui
|
||||
path: bui-external-docs
|
||||
token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
|
||||
- name: Configure Git
|
||||
@@ -39,22 +39,22 @@ jobs:
|
||||
git config --global user.name 'Github Canon Docs workflow'
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: canon-docs
|
||||
working-directory: docs-ui
|
||||
run: yarn install
|
||||
|
||||
- name: Build Canon Docs
|
||||
working-directory: canon-docs
|
||||
- name: Build Docs UI
|
||||
working-directory: docs-ui
|
||||
run: |
|
||||
yarn build
|
||||
|
||||
- name: Replace contents of canon-external-docs repo with docs build output
|
||||
working-directory: canon-external-docs
|
||||
- name: Replace contents of bui-external-docs repo with docs build output
|
||||
working-directory: bui-external-docs
|
||||
run: |
|
||||
git rm -rf .
|
||||
cp -R ../canon-docs/dist/. .
|
||||
cp -R ../docs-ui/dist/. .
|
||||
|
||||
- name: Commit to canon-storybook repo
|
||||
working-directory: canon-external-docs
|
||||
working-directory: bui-external-docs
|
||||
run: |
|
||||
git add .
|
||||
git commit -am "Canon Docs build for backstage/backstage@${{ github.sha }}"
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'dependabot[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
name: E2E Linux ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
name: E2E Linux ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
name: Techdocs
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
name: E2E Windows ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
name: E2E Windows ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
name: Microsite
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -240,7 +240,7 @@ jobs:
|
||||
name: Microsite
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Storybook
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Storybook
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -49,10 +49,10 @@ jobs:
|
||||
run: yarn install --immutable
|
||||
working-directory: storybook
|
||||
|
||||
# Only for verification, the canon one is what we upload to Chromatic
|
||||
# Only for verification, the BUI one is what we upload to Chromatic
|
||||
- run: yarn build-storybook
|
||||
|
||||
- run: yarn --cwd packages/canon build-storybook
|
||||
- run: yarn --cwd packages/ui build-storybook
|
||||
|
||||
- uses: chromaui/action@1cfa065cbdab28f6ca3afaeb3d761383076a35aa # v11
|
||||
with:
|
||||
@@ -60,5 +60,5 @@ jobs:
|
||||
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
|
||||
# https://www.chromatic.com/docs/custom-ci-provider#run-chromatic-on-external-forks-of-open-source-projects
|
||||
projectToken: chpt_dab72dc0f97d55b
|
||||
workingDir: packages/canon
|
||||
workingDir: packages/ui
|
||||
storybookBuildDir: storybook-static
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
.yarn
|
||||
dist
|
||||
microsite
|
||||
canon-docs/.next
|
||||
canon-docs/public
|
||||
canon-docs/out
|
||||
packages/canon/css
|
||||
docs-ui/.next
|
||||
docs-ui/public
|
||||
docs-ui/out
|
||||
packages/ui/css
|
||||
coverage
|
||||
*.hbs
|
||||
templates
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
canon.backstage.io
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB |
File diff suppressed because one or more lines are too long
@@ -1,34 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { bundle } = require('lightningcss');
|
||||
|
||||
const source = '../../packages/canon/src/css';
|
||||
const destination = '../public';
|
||||
|
||||
const source1 = path.join(__dirname, `${source}/styles.css`);
|
||||
const destination1 = path.join(__dirname, `${destination}/styles.css`);
|
||||
|
||||
// Function to bundle and copy the CSS file
|
||||
const bundleAndCopyFile = async (source, destination) => {
|
||||
try {
|
||||
const result = await bundle({
|
||||
filename: source,
|
||||
minify: true,
|
||||
});
|
||||
|
||||
fs.writeFileSync(destination, result.code);
|
||||
console.log('File bundled and copied successfully!');
|
||||
} catch (err) {
|
||||
console.error('Error bundling file:', err);
|
||||
}
|
||||
};
|
||||
|
||||
// Initial bundle and copy
|
||||
Promise.all([bundleAndCopyFile(source1, destination1)])
|
||||
.then(() => {
|
||||
// Add an empty line after all operations are complete - It looks better in the terminal :)
|
||||
console.log('');
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('Error in processing files:', err);
|
||||
});
|
||||
@@ -1,6 +0,0 @@
|
||||
.pageContainer {
|
||||
width: 100%;
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 0 24px 64px;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
import styles from './layout.module.css';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Canon',
|
||||
description: 'UI library for Backstage',
|
||||
};
|
||||
|
||||
export default function DocsLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return <div className={styles.pageContainer}>{children}</div>;
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { ReactNode } from 'react';
|
||||
import { Grid, Flex, Text } from '../../../../../packages/canon';
|
||||
import { screenSizes } from '@/utils/data';
|
||||
import { Frame } from '@/components/Frame';
|
||||
import { usePlayground } from '@/utils/playground-context';
|
||||
import {
|
||||
ButtonSnippet,
|
||||
CheckboxSnippet,
|
||||
HeadingSnippet,
|
||||
TextSnippet,
|
||||
} from '@/snippets/stories-snippets';
|
||||
|
||||
import styles from './styles.module.css';
|
||||
|
||||
export default function PlaygroundPage() {
|
||||
const { selectedScreenSizes } = usePlayground();
|
||||
|
||||
const filteredScreenSizes = screenSizes.filter(item =>
|
||||
selectedScreenSizes.includes(item.slug),
|
||||
);
|
||||
|
||||
if (filteredScreenSizes.length === 0) {
|
||||
return (
|
||||
<div className={styles.containerEmpty}>
|
||||
<Content />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
{filteredScreenSizes.map(screenSize => (
|
||||
<div
|
||||
className={styles.breakpointContainer}
|
||||
style={{ width: screenSize.width }}
|
||||
key={screenSize.slug}
|
||||
>
|
||||
<Text>
|
||||
{screenSize.title} - {screenSize.width}px
|
||||
</Text>
|
||||
<div className={styles.breakpointContent}>
|
||||
<Frame>
|
||||
<Content />
|
||||
</Frame>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const Content = () => {
|
||||
const { selectedComponents } = usePlayground();
|
||||
|
||||
return (
|
||||
<Flex direction="column" gap="4">
|
||||
{selectedComponents.find(c => c === 'button') && (
|
||||
<Line content={<ButtonSnippet story="Playground" />} title="Button" />
|
||||
)}
|
||||
{selectedComponents.find(c => c === 'checkbox') && (
|
||||
<Line
|
||||
content={<CheckboxSnippet story="Playground" />}
|
||||
title="Checkbox"
|
||||
/>
|
||||
)}
|
||||
{selectedComponents.find(c => c === 'heading') && (
|
||||
<Line content={<HeadingSnippet story="Playground" />} title="Heading" />
|
||||
)}
|
||||
{selectedComponents.find(c => c === 'text') && (
|
||||
<Line content={<TextSnippet story="Playground" />} title="Text" />
|
||||
)}
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
const Line = ({ content, title }: { content: ReactNode; title: string }) => {
|
||||
return (
|
||||
<Grid.Root gap={{ xs: '2', md: '4' }}>
|
||||
<Grid.Item colSpan="2">
|
||||
<Text>{title}</Text>
|
||||
</Grid.Item>
|
||||
<Grid.Item colSpan="10">{content}</Grid.Item>
|
||||
</Grid.Root>
|
||||
);
|
||||
};
|
||||
@@ -1,36 +0,0 @@
|
||||
.container {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 24px;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
||||
.containerEmpty {
|
||||
padding: 78px 40px;
|
||||
}
|
||||
|
||||
.breakpointContainer {
|
||||
flex-shrink: 0;
|
||||
margin-top: 40px;
|
||||
height: calc(100vh - 86px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 48px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-right: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.breakpointContent {
|
||||
height: 100%;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--border);
|
||||
background-color: var(--bg);
|
||||
padding: 16px;
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
import type { Metadata } from 'next';
|
||||
import { Sidebar } from '../components/Sidebar';
|
||||
import { Toolbar } from '@/components/Toolbar';
|
||||
import { Providers } from './providers';
|
||||
import { CustomTheme } from '@/components/CustomTheme';
|
||||
import styles from '../css/page.module.css';
|
||||
|
||||
import '../css/globals.css';
|
||||
import '/public/core.css';
|
||||
import '/public/components.css';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Canon',
|
||||
description: 'UI library for Backstage',
|
||||
metadataBase: new URL('https://canon.backstage.io'),
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html
|
||||
lang="en"
|
||||
data-theme="light"
|
||||
data-theme-name="default"
|
||||
suppressHydrationWarning
|
||||
>
|
||||
<body>
|
||||
<Providers>
|
||||
<div className={styles.global}>
|
||||
<Sidebar />
|
||||
<div className={styles.container}>
|
||||
<Toolbar />
|
||||
{children}
|
||||
</div>
|
||||
<CustomTheme />
|
||||
</div>
|
||||
</Providers>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
import { changelog } from '@/utils/changelog';
|
||||
import { MDXRemote } from 'next-mdx-remote-client/rsc';
|
||||
import { formattedMDXComponents } from '@/mdx-components';
|
||||
|
||||
export function Changelog() {
|
||||
// Group changelog entries by version
|
||||
const groupedChangelog = changelog.reduce((acc, entry) => {
|
||||
if (!acc[entry.version]) {
|
||||
acc[entry.version] = [];
|
||||
}
|
||||
acc[entry.version].push(entry);
|
||||
return acc;
|
||||
}, {} as Record<string, typeof changelog>);
|
||||
|
||||
// Sort versions in descending order
|
||||
const sortedVersions = Object.keys(groupedChangelog).sort((a, b) =>
|
||||
b.localeCompare(a),
|
||||
);
|
||||
|
||||
const content = sortedVersions
|
||||
.map(version => {
|
||||
const entries = groupedChangelog[version];
|
||||
|
||||
return `## Version ${version}
|
||||
|
||||
${entries
|
||||
.map(e => {
|
||||
const prs =
|
||||
e.prs.length > 0 &&
|
||||
e.prs
|
||||
.map(
|
||||
pr =>
|
||||
`[#${pr}](https://github.com/backstage/backstage/pull/${pr})`,
|
||||
)
|
||||
.join(', ');
|
||||
return `- ${e.description} ${prs}`;
|
||||
})
|
||||
.join('\n')}`;
|
||||
})
|
||||
.join('\n');
|
||||
|
||||
return <MDXRemote components={formattedMDXComponents} source={content} />;
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
import { Tabs } from '@/components/Tabs';
|
||||
import { CodeBlock } from '@/components/CodeBlock';
|
||||
import type { ComponentInfosProps } from './types';
|
||||
import styles from '@/css/mdx.module.css';
|
||||
import Link from 'next/link';
|
||||
import { changelog } from '@/utils/changelog';
|
||||
import { MDXRemote } from 'next-mdx-remote-client/rsc';
|
||||
import { formattedMDXComponents } from '@/mdx-components';
|
||||
|
||||
export const ComponentInfos = ({
|
||||
usageCode,
|
||||
component,
|
||||
classNames,
|
||||
}: ComponentInfosProps) => {
|
||||
const componentChangelog = changelog.filter(c =>
|
||||
c.components.includes(component),
|
||||
);
|
||||
|
||||
return (
|
||||
<Tabs.Root>
|
||||
<Tabs.List>
|
||||
<Tabs.Tab>Usage</Tabs.Tab>
|
||||
{classNames && classNames.length > 0 && <Tabs.Tab>Theming</Tabs.Tab>}
|
||||
<Tabs.Tab>Changelog</Tabs.Tab>
|
||||
</Tabs.List>
|
||||
<Tabs.Panel>
|
||||
<CodeBlock code={usageCode} />
|
||||
</Tabs.Panel>
|
||||
{classNames && classNames.length > 0 && (
|
||||
<Tabs.Panel>
|
||||
<p className={styles.p}>
|
||||
We recommend starting with our{' '}
|
||||
<Link className={styles.a} href="/theme/theming">
|
||||
global tokens
|
||||
</Link>{' '}
|
||||
to customize the library and align it with your brand. For
|
||||
additional flexibility, you can use the provided class names for
|
||||
each element listed below.
|
||||
</p>
|
||||
<MDXRemote
|
||||
components={formattedMDXComponents}
|
||||
source={`${classNames
|
||||
?.map(className => `- \`${className}\``)
|
||||
.join('\n')}`}
|
||||
/>
|
||||
</Tabs.Panel>
|
||||
)}
|
||||
<Tabs.Panel>
|
||||
<MDXRemote
|
||||
components={formattedMDXComponents}
|
||||
source={`${componentChangelog
|
||||
?.map(change => {
|
||||
const prs =
|
||||
change.prs.length > 0 &&
|
||||
change.prs
|
||||
.map(
|
||||
pr =>
|
||||
`[#${pr}](https://github.com/backstage/backstage/pull/${pr})`,
|
||||
)
|
||||
.join(', ');
|
||||
return `- \`${change.version}\` - ${change.description} ${prs}`;
|
||||
})
|
||||
.join('\n')}`}
|
||||
/>
|
||||
</Tabs.Panel>
|
||||
</Tabs.Root>
|
||||
);
|
||||
};
|
||||
@@ -1 +0,0 @@
|
||||
export { ComponentInfos } from './ComponentInfos';
|
||||
@@ -1,9 +0,0 @@
|
||||
import type { Component } from '@/utils/changelog';
|
||||
import { ReactNode } from 'react';
|
||||
|
||||
export interface ComponentInfosProps {
|
||||
usageCode?: string;
|
||||
classNames?: string[];
|
||||
component: Component;
|
||||
children: ReactNode;
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { useEffect, useState } from 'react';
|
||||
import ReactFrame from 'react-frame-component';
|
||||
|
||||
export const Frame = ({ children }: { children: React.ReactNode }) => {
|
||||
const [show, setShow] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
setShow(true);
|
||||
}, []);
|
||||
|
||||
if (!show) return null;
|
||||
|
||||
return (
|
||||
<ReactFrame
|
||||
loading="lazy"
|
||||
style={{ width: '100%', height: '100%' }}
|
||||
initialContent={`<!DOCTYPE html><html data-theme="light"><head></head><body><div class="frame-root"></div></body></html>`}
|
||||
mountTarget=".frame-root"
|
||||
head={
|
||||
<>
|
||||
<link rel="stylesheet" href="/core.css" />
|
||||
<link rel="stylesheet" href="/components.css" />
|
||||
<link rel="stylesheet" href="/backstage.css" />
|
||||
</>
|
||||
}
|
||||
>
|
||||
{children}
|
||||
</ReactFrame>
|
||||
);
|
||||
};
|
||||
@@ -1,82 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import Link from 'next/link';
|
||||
import { components, overview, layoutComponents, theme } from '@/utils/data';
|
||||
import { motion } from 'motion/react';
|
||||
import styles from './Sidebar.module.css';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { Fragment } from 'react';
|
||||
|
||||
const data = [
|
||||
{
|
||||
title: 'Overview',
|
||||
content: overview,
|
||||
url: '',
|
||||
},
|
||||
{
|
||||
title: 'Theme',
|
||||
content: theme,
|
||||
url: '/theme',
|
||||
},
|
||||
{
|
||||
title: 'Layout Components',
|
||||
content: layoutComponents,
|
||||
url: '/components',
|
||||
},
|
||||
{
|
||||
title: 'Components',
|
||||
content: components,
|
||||
url: '/components',
|
||||
},
|
||||
];
|
||||
|
||||
export const Docs = () => {
|
||||
const pathname = usePathname();
|
||||
const isPlayground = pathname.includes('/playground');
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
className={styles.section}
|
||||
animate={{
|
||||
x: isPlayground ? -10 : 0,
|
||||
opacity: isPlayground ? 0 : 1,
|
||||
visibility: isPlayground ? 'hidden' : 'visible',
|
||||
}}
|
||||
initial={{
|
||||
x: isPlayground ? -10 : 0,
|
||||
opacity: isPlayground ? 0 : 1,
|
||||
visibility: isPlayground ? 'hidden' : 'visible',
|
||||
}}
|
||||
transition={{ duration: 0.2 }}
|
||||
>
|
||||
{data.map(section => {
|
||||
return (
|
||||
<Fragment key={section.title}>
|
||||
<div className={styles.sectionTitle}>{section.title}</div>
|
||||
|
||||
{section.content.map(item => {
|
||||
const isActive = pathname === `${section.url}/${item.slug}`;
|
||||
|
||||
return (
|
||||
<Link
|
||||
href={`${section.url}/${item.slug}`}
|
||||
key={item.slug}
|
||||
className={`${styles.line} ${isActive ? styles.active : ''}`}
|
||||
>
|
||||
<div className={styles.lineTitle}>{item.title}</div>
|
||||
<div className={styles.lineStatus}>
|
||||
{item.status === 'alpha' && 'Alpha'}
|
||||
{item.status === 'beta' && 'Beta'}
|
||||
{item.status === 'inProgress' && 'In Progress'}
|
||||
{item.status === 'stable' && 'Stable'}
|
||||
{item.status === 'deprecated' && 'Deprecated'}
|
||||
</div>
|
||||
</Link>
|
||||
);
|
||||
})}
|
||||
</Fragment>
|
||||
);
|
||||
})}
|
||||
</motion.div>
|
||||
);
|
||||
};
|
||||
@@ -1,39 +0,0 @@
|
||||
import styles from './Sidebar.module.css';
|
||||
import { Docs } from './docs';
|
||||
import { Playground } from './playground';
|
||||
import Link from 'next/link';
|
||||
import { ScrollArea } from '@base-ui-components/react/scroll-area';
|
||||
|
||||
export const Sidebar = () => {
|
||||
return (
|
||||
<div className={styles.sidebar}>
|
||||
<ScrollArea.Root className={styles.root}>
|
||||
<ScrollArea.Viewport className={styles.viewport}>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.logoContainer}>
|
||||
<Link href="/">
|
||||
<svg
|
||||
width="89"
|
||||
height="27"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={styles.logo}
|
||||
>
|
||||
<path d="M77.414 9.71h3.036v2.992l-.264-.022c.279-.88.748-1.65 1.408-2.31.675-.66 1.533-.99 2.574-.99 1.086 0 1.9.352 2.442 1.056.558.689.836 1.598.836 2.728v7.502H84.41v-6.6c0-.66-.117-1.159-.352-1.496-.234-.338-.623-.506-1.166-.506-.601 0-1.122.271-1.562.814a4.321 4.321 0 0 0-.88 1.848v5.94h-3.036V9.71ZM69.868 21.04c-1.13 0-2.142-.257-3.036-.77a5.547 5.547 0 0 1-2.068-2.09c-.484-.895-.726-1.892-.726-2.992 0-1.115.242-2.112.726-2.992a5.503 5.503 0 0 1 2.068-2.112c.88-.514 1.892-.77 3.036-.77 1.144 0 2.156.256 3.036.77a5.347 5.347 0 0 1 2.046 2.112c.498.88.748 1.87.748 2.97 0 1.114-.25 2.12-.748 3.014a5.343 5.343 0 0 1-2.068 2.09c-.88.513-1.885.77-3.014.77Zm0-2.618c.557 0 1.048-.132 1.474-.396a2.79 2.79 0 0 0 .99-1.144c.234-.499.352-1.064.352-1.694 0-.63-.118-1.188-.352-1.672a2.764 2.764 0 0 0-.99-1.166c-.426-.279-.917-.418-1.474-.418-.558 0-1.05.14-1.474.418a2.764 2.764 0 0 0-.99 1.166c-.22.484-.33 1.041-.33 1.672 0 .63.11 1.195.33 1.694.234.484.564.865.99 1.144.425.264.916.396 1.474.396ZM52.385 9.71h3.036v2.992l-.264-.022c.279-.88.748-1.65 1.408-2.31.675-.66 1.533-.99 2.574-.99 1.085 0 1.9.352 2.442 1.056.557.689.836 1.598.836 2.728v7.502h-3.036v-6.6c0-.66-.117-1.159-.352-1.496-.235-.338-.623-.506-1.166-.506-.601 0-1.122.271-1.562.814a4.321 4.321 0 0 0-.88 1.848v5.94h-3.036V9.71ZM43.904 20.952c-1.026 0-1.87-.308-2.53-.924-.66-.616-.99-1.416-.99-2.398 0-1.115.418-2.01 1.254-2.684.85-.69 2.105-1.034 3.762-1.034h2.75l-.924.352v-.462c0-.572-.176-1.02-.528-1.342-.352-.338-.931-.506-1.738-.506-.69 0-1.386.154-2.09.462-.704.308-1.29.69-1.76 1.144v-2.882c.47-.352 1.1-.66 1.892-.924a7.942 7.942 0 0 1 2.486-.396c1.599 0 2.78.41 3.542 1.232.778.806 1.166 1.914 1.166 3.322v5.742c0 .176.008.352.022.528.03.161.066.322.11.484h-3.014v-3.3l.044 1.386a4.044 4.044 0 0 1-1.32 1.606c-.572.396-1.283.594-2.134.594Zm.858-2.156c.558 0 1.049-.206 1.474-.616.44-.426.77-.954.99-1.584v-.792h-1.562c-.762 0-1.334.146-1.716.44-.381.278-.572.674-.572 1.188 0 .41.125.74.374.99.264.25.602.374 1.012.374ZM34.66 21.04c-1.525 0-2.874-.345-4.047-1.034-1.174-.704-2.09-1.68-2.75-2.926-.646-1.247-.968-2.662-.968-4.246 0-1.584.322-2.992.968-4.224.66-1.232 1.576-2.193 2.75-2.882 1.173-.704 2.522-1.056 4.048-1.056.968 0 1.818.11 2.552.33.748.22 1.356.506 1.826.858v3.498c-.396-.484-.96-.895-1.694-1.232-.719-.338-1.51-.506-2.376-.506-.939 0-1.775.22-2.508.66-.719.44-1.284 1.056-1.694 1.848-.396.792-.594 1.694-.594 2.706 0 1.026.198 1.943.594 2.75.41.792.975 1.408 1.694 1.848.733.44 1.57.66 2.508.66.88 0 1.68-.162 2.398-.484.718-.323 1.276-.726 1.672-1.21v3.41a5.686 5.686 0 0 1-1.87.902c-.704.22-1.54.33-2.508.33ZM11.275 6.271c.276.526.019 1.152-.464 1.498a5.846 5.846 0 0 0 1.004 10.082c.454.205.789.632.789 1.13v6.206a.837.837 0 0 1-.838.837C5.33 26.024.112 20.804.112 14.366V.862C.112.399.487.024.95.024c4.483 0 8.376 2.533 10.325 6.247Z" />
|
||||
<path d="M14.037 16.729a4.237 4.237 0 0 0 4.234-4.24 4.237 4.237 0 0 0-4.234-4.242 4.237 4.237 0 0 0-4.234 4.241 4.237 4.237 0 0 0 4.234 4.24Z" />
|
||||
</svg>
|
||||
</Link>
|
||||
</div>
|
||||
<div className={styles.menu}>
|
||||
<Docs />
|
||||
<Playground />
|
||||
</div>
|
||||
</div>
|
||||
</ScrollArea.Viewport>
|
||||
<ScrollArea.Scrollbar className={styles.scrollbar}>
|
||||
<ScrollArea.Thumb className={styles.thumb} />
|
||||
</ScrollArea.Scrollbar>
|
||||
</ScrollArea.Root>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,77 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { components } from '@/utils/data';
|
||||
import { Checkbox } from '@backstage/canon';
|
||||
import { motion } from 'motion/react';
|
||||
import styles from './Sidebar.module.css';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { screenSizes } from '@/utils/data';
|
||||
import { usePlayground } from '@/utils/playground-context';
|
||||
|
||||
export const Playground = () => {
|
||||
const pathname = usePathname();
|
||||
const isPlayground = pathname.includes('/playground');
|
||||
const {
|
||||
selectedScreenSizes,
|
||||
setSelectedScreenSizes,
|
||||
selectedComponents,
|
||||
setSelectedComponents,
|
||||
} = usePlayground();
|
||||
|
||||
const handleComponentCheckboxChange = (slug: string) => {
|
||||
if (selectedComponents.find(item => item === slug)) {
|
||||
const res = selectedComponents.filter(item => item !== slug);
|
||||
setSelectedComponents(res);
|
||||
} else {
|
||||
setSelectedComponents([...selectedComponents, slug]);
|
||||
}
|
||||
};
|
||||
|
||||
const handleCheckboxChange = (slug: string) => {
|
||||
if (selectedScreenSizes.find(item => item === slug)) {
|
||||
const res = selectedScreenSizes.filter(item => item !== slug);
|
||||
setSelectedScreenSizes(res);
|
||||
} else {
|
||||
setSelectedScreenSizes([...selectedScreenSizes, slug]);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
className={styles.section}
|
||||
animate={{
|
||||
opacity: isPlayground ? 1 : 0,
|
||||
x: isPlayground ? 0 : 20,
|
||||
visibility: isPlayground ? 'visible' : 'hidden',
|
||||
}}
|
||||
initial={{
|
||||
opacity: isPlayground ? 1 : 0,
|
||||
x: isPlayground ? 0 : 20,
|
||||
visibility: isPlayground ? 'visible' : 'hidden',
|
||||
}}
|
||||
transition={{ duration: 0.2 }}
|
||||
style={{ position: 'absolute' }}
|
||||
>
|
||||
<div className={styles.sectionTitle}>Components</div>
|
||||
{components.map(({ slug, title }) => (
|
||||
<div className={styles.line} key={slug}>
|
||||
<div className={styles.lineTitle}>{title}</div>
|
||||
<Checkbox
|
||||
checked={selectedComponents.includes(slug)}
|
||||
onChange={() => handleComponentCheckboxChange(slug)}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
<div className={styles.sectionTitle}> Screen sizes</div>
|
||||
{screenSizes.map(({ slug, title }) => (
|
||||
<div className={styles.line} key={slug}>
|
||||
<div className={styles.lineTitle}>{title}</div>
|
||||
<Checkbox
|
||||
checked={selectedScreenSizes.includes(slug)}
|
||||
onChange={() => handleCheckboxChange(slug)}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</motion.div>
|
||||
);
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
.root {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.list {
|
||||
display: flex;
|
||||
gap: var(--canon-space-6);
|
||||
border-bottom: 1px solid var(--border);
|
||||
position: relative;
|
||||
margin-bottom: var(--canon-space-6);
|
||||
}
|
||||
|
||||
.tab {
|
||||
all: unset;
|
||||
cursor: pointer;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.indicator {
|
||||
position: absolute;
|
||||
bottom: -1px;
|
||||
left: var(--active-tab-left);
|
||||
width: var(--active-tab-width);
|
||||
height: 1px;
|
||||
background-color: var(--primary);
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
import { ThemeSelector } from './theme';
|
||||
import { ThemeNameSelector } from './theme-name';
|
||||
import styles from './styles.module.css';
|
||||
import { Nav } from './nav';
|
||||
|
||||
export const Toolbar = () => {
|
||||
return (
|
||||
<div className={styles.toolbar}>
|
||||
<div>
|
||||
<Nav />
|
||||
</div>
|
||||
<div className={styles.actions}>
|
||||
<ThemeNameSelector />
|
||||
<ThemeSelector />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,78 +0,0 @@
|
||||
.tabs {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.tabs {
|
||||
display: block;
|
||||
height: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
.tabsTheme {
|
||||
width: 142px;
|
||||
border-radius: 0.375rem;
|
||||
background-color: var(--bg);
|
||||
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
.list {
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
gap: var(--canon-space-8);
|
||||
}
|
||||
|
||||
.tab {
|
||||
all: unset;
|
||||
height: 60px;
|
||||
color: var(--secondary);
|
||||
font-size: var(--canon-font-size-3);
|
||||
font-weight: var(--canon-font-weight-bold);
|
||||
cursor: pointer;
|
||||
transition: color 0.2s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
&[data-selected] {
|
||||
color: var(--primary);
|
||||
|
||||
& p {
|
||||
color: var(--primary);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0.25rem 0;
|
||||
border-radius: 0.25rem;
|
||||
outline: 2px solid var(--panel);
|
||||
outline-offset: -1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab p {
|
||||
color: var(--secondary) !important;
|
||||
}
|
||||
|
||||
.indicator {
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
left: 0;
|
||||
bottom: -1px;
|
||||
translate: var(--active-tab-left) -50%;
|
||||
width: var(--active-tab-width);
|
||||
height: 1px;
|
||||
border-radius: 0.25rem;
|
||||
background-color: var(--primary);
|
||||
transition-property: translate, width, background-color;
|
||||
transition-duration: 200ms;
|
||||
transition-timing-function: ease-in-out;
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { Tabs } from '@base-ui-components/react/tabs';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import styles from './nav.module.css';
|
||||
|
||||
export const Nav = () => {
|
||||
const pathname = usePathname();
|
||||
const router = useRouter();
|
||||
|
||||
const onValueChange = (value: string) => {
|
||||
if (value === 'docs') {
|
||||
router.push('/');
|
||||
} else {
|
||||
router.push('/playground');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Tabs.Root
|
||||
className={styles.tabs}
|
||||
value={pathname.includes('playground') ? 'playground' : 'docs'}
|
||||
onValueChange={onValueChange}
|
||||
>
|
||||
<Tabs.List className={styles.list}>
|
||||
<Tabs.Tab
|
||||
className={styles.tab}
|
||||
value="docs"
|
||||
onClick={() => {
|
||||
router.push('/');
|
||||
}}
|
||||
>
|
||||
Documentation
|
||||
</Tabs.Tab>
|
||||
<Tabs.Tab
|
||||
className={styles.tab}
|
||||
value="playground"
|
||||
onClick={() => {
|
||||
router.push('/playground');
|
||||
}}
|
||||
>
|
||||
Playground
|
||||
</Tabs.Tab>
|
||||
<Tabs.Indicator className={styles.indicator} />
|
||||
</Tabs.List>
|
||||
</Tabs.Root>
|
||||
);
|
||||
};
|
||||
@@ -1,23 +0,0 @@
|
||||
.toolbar {
|
||||
position: sticky;
|
||||
top: 16px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-radius: 8px;
|
||||
z-index: 10;
|
||||
background-color: var(--panel);
|
||||
height: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 var(--canon-space-6);
|
||||
transition: background-color 0.2s ease-in-out;
|
||||
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.025);
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--canon-space-4);
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
import { PropsTable } from '@/components/PropsTable';
|
||||
import { HeadingSnippet } from '@/snippets/stories-snippets';
|
||||
import { Snippet } from '@/components/Snippet';
|
||||
import { CodeBlock } from '@/components/CodeBlock';
|
||||
import {
|
||||
headingPropDefs,
|
||||
headingUsageSnippet,
|
||||
headingDefaultSnippet,
|
||||
headingVariantsSnippet,
|
||||
headingTruncateSnippet,
|
||||
headingResponsiveSnippet,
|
||||
} from './heading.props';
|
||||
import { ComponentInfos } from '@/components/ComponentInfos';
|
||||
|
||||
# Heading
|
||||
|
||||
Headings are used to structure the content of your page.
|
||||
|
||||
<Snippet
|
||||
py={4}
|
||||
preview={<HeadingSnippet story="Title1" />}
|
||||
code={headingDefaultSnippet}
|
||||
/>
|
||||
|
||||
<ComponentInfos
|
||||
component="heading"
|
||||
classNames={['canon-Heading']}
|
||||
usageCode={headingUsageSnippet}
|
||||
/>
|
||||
|
||||
## API reference
|
||||
|
||||
<PropsTable data={headingPropDefs} />
|
||||
|
||||
## Examples
|
||||
|
||||
### All variants
|
||||
|
||||
The `Heading` component has a `variant` prop that can be used to change the
|
||||
appearance of the heading.
|
||||
|
||||
<Snippet
|
||||
py={2}
|
||||
open
|
||||
preview={<HeadingSnippet story="AllVariants" />}
|
||||
code={headingVariantsSnippet}
|
||||
/>
|
||||
|
||||
### Truncate
|
||||
|
||||
The `Heading` component has a `truncate` prop that can be used to truncate the
|
||||
heading.
|
||||
|
||||
<Snippet
|
||||
py={2}
|
||||
open
|
||||
preview={<HeadingSnippet story="Truncate" />}
|
||||
code={headingTruncateSnippet}
|
||||
/>
|
||||
|
||||
### Responsive
|
||||
|
||||
You can also use the `variant` prop to change the appearance of the text based
|
||||
on the screen size.
|
||||
|
||||
<CodeBlock code={headingResponsiveSnippet} />
|
||||
@@ -1,48 +0,0 @@
|
||||
import {
|
||||
classNamePropDefs,
|
||||
stylePropDefs,
|
||||
type PropDef,
|
||||
} from '@/utils/propDefs';
|
||||
|
||||
export const headingPropDefs: Record<string, PropDef> = {
|
||||
variant: {
|
||||
type: 'enum',
|
||||
values: ['display', 'title1', 'title2', 'title3', 'title4', 'title5'],
|
||||
responsive: true,
|
||||
},
|
||||
children: {
|
||||
type: 'enum',
|
||||
values: ['ReactNode'],
|
||||
responsive: false,
|
||||
},
|
||||
truncate: {
|
||||
type: 'boolean',
|
||||
default: 'false',
|
||||
},
|
||||
...classNamePropDefs,
|
||||
...stylePropDefs,
|
||||
};
|
||||
|
||||
export const headingUsageSnippet = `import { Heading } from '@backstage/canon';
|
||||
|
||||
<Heading />`;
|
||||
|
||||
export const headingDefaultSnippet = `<Heading variant="title1">Hello World!</Heading>`;
|
||||
|
||||
export const headingVariantsSnippet = `<Flex direction="column" gap="4">
|
||||
<Heading variant="display">Display</Heading>
|
||||
<Heading variant="title1">Title 1</Heading>
|
||||
<Heading variant="title2">Title 2</Heading>
|
||||
<Heading variant="title3">Title 3</Heading>
|
||||
<Heading variant="title4">Title 4</Heading>
|
||||
</Flex>`;
|
||||
|
||||
export const headingTruncateSnippet = `<Heading style={{ maxWidth: '400px' }} truncate>
|
||||
A man looks at a painting in a museum and says, "Brothers and sisters I
|
||||
have none, but that man's father is my father's son." Who is
|
||||
in the painting?
|
||||
</Heading>`;
|
||||
|
||||
export const headingResponsiveSnippet = `<Heading variant={{ initial: 'title2', lg: 'title1' }}>
|
||||
Responsive heading
|
||||
</Heading>`;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user