Merge branch 'backstage:master' into fix-gitlab-get-projectid

This commit is contained in:
Captain Fizzbin
2025-06-18 10:00:51 -04:00
committed by GitHub
1013 changed files with 29747 additions and 11942 deletions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': minor
---
We are updating the default size of the Button component in Canon to be small instead of medium.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch
---
Migrate actions to new format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
table actions header support i18n
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/catalog-client': patch
---
Fixed `CatalogClient` error responses for `refreshEntity` and `addLocation`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Migrate to new action format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-azure': patch
---
Migrating `azure` actions to using the new `zod` schema format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': patch
---
Add min-width: 0; by default on every Flex components in Canon to help support truncated texts inside flex elements.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
---
Migrate `bitbucket-cloud` to new actions format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Migrate to using new actions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': minor
---
We set the default size for IconButton in Canon to be small instead of medium.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
render details for composite property schemas
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/plugin-scaffolder-node-test-utils': minor
---
**BREAKING CHANGES**
Because of the removal of the `logStream` property to the `ActionsContext` this has been removed from the `createMockActionContext` method.
You can remove this as it's no longer supported in the scaffolder actions.
-21
View File
@@ -1,21 +0,0 @@
---
'@backstage/plugin-catalog-unprocessed-entities': patch
'@backstage/plugin-app-visualizer': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-notifications': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-devtools': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-signals': patch
'@backstage/plugin-search': patch
'@backstage/plugin-home': patch
'@backstage/plugin-app': patch
'@backstage/plugin-org': patch
---
Added the `info.packageJson` option to the plugin instance for the new frontend system.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/repo-tools': patch
---
Fixed a bug where linting would fail with the generated clients when defining top-level `enum` schema values.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-node': patch
---
Use `LoggerService` instead of `Logger`. This is a non-breaking change, as the `LoggerService` is a subset of the `Logger` interface.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
---
Migrate the actions to the new format
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Added user feedback when opening config docs in browser. The command now clearly indicates what it's doing and provides fallback instructions if the browser fails to open.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': patch
---
Fix styling for the title4 prop on the Heading component in Canon.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
The `BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE` flag has been removed. Existing users are encouraged to switch to `EXPERIMENTAL_RSPACK` instead.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Migrating to latest action format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/repo-tools': patch
---
Fix an issue where errors were not printed to console when running `backstage-repo-tools schema openapi generate` without the `--watch` flag.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-yeoman': patch
---
Migrate to new actions format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/repo-tools': patch
---
Add missing highlight language for the `package-docs` command.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
'@backstage/plugin-scaffolder-node': patch
---
Update pull request creation filter to include .gitignore files in the created pull request
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-notifications': patch
'@backstage/plugin-scaffolder': patch
---
Remove React import form notification and scaffolder plugin
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-techdocs': patch
---
Improved Keyboard accessibility in techdocs.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-notifications-backend-module-email': patch
'@backstage/plugin-notifications-backend': patch
---
Internal changes to switch to the non-alpha `catalogServiceRef`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': patch
---
Added a render prop to the Button component in Canon to use it as a link.
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/plugin-catalog': minor
---
Add support to customize the about card icon links via `EntityIconLinkBlueprint` and provide a default catalog view catalog source, launch scaffolder template and read techdocs docs icon links extensions.
**BREAKING ALPHA**
The `Scaffolder` launch template and `TechDocs` read documentation icons have been extracted from the default `Catalog` about card links and are now provided respectively by the `Scaffolder` and `TechDocs` plugins in the new frontend system. It means that they will not be available unless you install the `TechDocs` and `Scaffolder` plugins. Also If you are using translation for these icon link titles other than the default, you should now translate them using the scaffolder translation reference or the TechDocs translation reference (the translation keys are still the same, `aboutCard.viewTechdocs` and `aboutCard.launchTemplate`).
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-org': patch
---
Org plugin support i18n
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gerrit': patch
---
Migrating to use new format for actions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-user-settings': patch
---
Add some translation to user-setting plugin
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-techdocs': minor
---
**New Frontend System Only:**
The `TechDocs` plugin is now responsible for providing an entity icon link extension to read documentation from the catalog entity page.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': minor
---
**BREAKING CHANGE**: User and Group discovery will default to ingesting all users in sub groups that belong to the specified root group in config. Disable by setting `restrictUsersToGroup: true` in app-config under your module settings.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Switched to using the `ModuleFederationPlugin` from `@module-federation/enhanced/rspack` for Rspack, rather than the built-in one.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-sentry': patch
---
Migrate to new actions format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
You can now specify an optional value when applying the `HAS_LABEL` permission rule, similar to the `HAS_ANNOTATION` permission rule.
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-notifications': patch
'@backstage/plugin-notifications-backend': patch
'@backstage/plugin-notifications-common': patch
'@backstage/plugin-notifications': patch
---
Adds ability for user to turn on/off notifications for specific topics within an origin.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search-backend-module-techdocs': patch
---
Exports the default document collator for use in document transformation during search indexing.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-notifications': patch
---
Removed `octokit` dependency as it was not being used
-49
View File
@@ -1,49 +0,0 @@
---
'@backstage/plugin-catalog-react': minor
---
Introduces a new `EntityIconLinkBlueprint` that customizes the `About` card icon links on the `Catalog` entity page.
The blueprint currently accepts a `useProps` hook as `param` and this function returns the following props that will be passed to the icon link component:
| Name | Description | Type | Default Value |
| ---------- | --------------------------------------------------- | ------------- | ------------- |
| `icon` | The icon to display. | `JSX.Element` | N/A |
| `label` | The label for the element. | `string` | N/A |
| `title` | The title for the element. | `string` | N/A |
| `disabled` | Whether the element is disabled. | `boolean` | `false` |
| `href` | The URL to navigate to when the element is clicked. | `string` | N/A |
| `onClick` | A function to call when the element is clicked. | `() => void` | N/A |
Here is an usage example:
```tsx
import { EntityIconLinkBlueprint } from '@backstage/plugin-catalog-react/alpha';
//...
EntityIconLinkBlueprint.make({
name: 'my-icon-link',
params: {
useProps() {
const { t } = useTranslationRef(myIconLinkTranslationRef);
return {
label: t('myIconLink.label'),
icon: <MyIconLinkIcon />,
href: '/my-plugin',
};
},
},
});
```
Additionally, the `app-config.yaml` file allows you to override some of the default icon link parameters, including `label` and `title` values. Here's how to set them:
```yaml
app:
extensions:
- entity-icon-link:my-plugin/my-icon-link:
config:
label: 'My Custom Icon Link label'
```
Finally, you can disable all links if you want to hide the About card header completely (useful, for example, when links are displayed on separate cards). The header is hidden when no icon links extensions are enabled.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-rails': patch
---
Migrate to new actions format
-29
View File
@@ -1,29 +0,0 @@
---
'@backstage/frontend-plugin-api': patch
---
Added a new optional `info` option to `createFrontendPlugin` that lets you provide a loaders for different sources of metadata information about the plugin.
There are two available loaders. The first one is `info.packageJson`, which can be used to point to a `package.json` file for the plugin. This is recommended for any plugin that is defined within its own package, especially all plugins that are published to a package registry. Typical usage looks like this:
```ts
export default createFrontendPlugin({
pluginId: '...',
info: {
packageJson: () => import('../package.json'),
},
});
```
The second loader is `info.manifest`, which can be used to point to an opaque plugin manifest. This **MUST ONLY** be used by plugins that are intended for use within a single organization. Plugins that are published to an open package registry should **NOT** use this loader. The loader is useful for adding additional internal metadata associated with the plugin, and it is up to the Backstage app to decide how these manifests are parsed and used. The default manifest parser in an app created with `createApp` from `@backstage/frontend-defaults` is able to parse the default `catalog-info.yaml` format and built-in fields such as `spec.owner`.
Typical usage looks like this:
```ts
export default createFrontendPlugin({
pluginId: '...',
info: {
manifest: () => import('../catalog-info.yaml'),
},
});
```
-255
View File
@@ -1,255 +0,0 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"example-app": "0.2.109",
"@backstage/app-defaults": "1.6.2",
"example-app-next": "0.0.23",
"app-next-example-plugin": "0.0.23",
"example-backend": "0.0.38",
"@backstage/backend-app-api": "1.2.3",
"@backstage/backend-defaults": "0.10.0",
"@backstage/backend-dev-utils": "0.1.5",
"@backstage/backend-dynamic-feature-service": "0.7.0",
"@backstage/backend-openapi-utils": "0.5.3",
"@backstage/backend-plugin-api": "1.3.1",
"@backstage/backend-test-utils": "1.5.0",
"@backstage/canon": "0.4.0",
"@backstage/catalog-client": "1.10.0",
"@backstage/catalog-model": "1.7.4",
"@backstage/cli": "0.32.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.0",
"@backstage/core-compat-api": "0.4.2",
"@backstage/core-components": "0.17.2",
"@backstage/core-plugin-api": "1.10.7",
"@backstage/create-app": "0.6.2",
"@backstage/dev-utils": "1.1.10",
"e2e-test": "0.2.28",
"@backstage/e2e-test-utils": "0.1.1",
"@backstage/errors": "1.2.7",
"@backstage/eslint-plugin": "0.1.10",
"@backstage/frontend-app-api": "0.11.2",
"@backstage/frontend-defaults": "0.2.2",
"@backstage/frontend-dynamic-feature-loader": "0.1.1",
"@internal/frontend": "0.0.9",
"@backstage/frontend-plugin-api": "0.10.2",
"@backstage/frontend-test-utils": "0.3.2",
"@backstage/integration": "1.17.0",
"@backstage/integration-aws-node": "0.1.16",
"@backstage/integration-react": "1.2.7",
"@internal/opaque": "0.0.1",
"@backstage/release-manifests": "0.0.13",
"@backstage/repo-tools": "0.13.3",
"@internal/scaffolder": "0.0.9",
"@techdocs/cli": "1.9.3",
"techdocs-cli-embedded-app": "0.2.108",
"@backstage/test-utils": "1.7.8",
"@backstage/theme": "0.6.6",
"@backstage/types": "1.2.1",
"@backstage/version-bridge": "1.0.11",
"yarn-plugin-backstage": "0.0.5",
"@backstage/plugin-api-docs": "0.12.7",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.10",
"@backstage/plugin-app": "0.1.9",
"@backstage/plugin-app-backend": "0.5.2",
"@backstage/plugin-app-node": "0.1.33",
"@backstage/plugin-app-visualizer": "0.1.19",
"@backstage/plugin-auth-backend": "0.25.0",
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-auth0-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.8",
"@backstage/plugin-auth-backend-module-bitbucket-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-github-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-gitlab-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-google-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.8",
"@backstage/plugin-auth-backend-module-microsoft-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-oauth2-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.8",
"@backstage/plugin-auth-backend-module-oidc-provider": "0.4.3",
"@backstage/plugin-auth-backend-module-okta-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-onelogin-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-pinniped-provider": "0.3.3",
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.5.3",
"@backstage/plugin-auth-node": "0.6.3",
"@backstage/plugin-auth-react": "0.1.15",
"@backstage/plugin-bitbucket-cloud-common": "0.3.0",
"@backstage/plugin-catalog": "1.30.0",
"@backstage/plugin-catalog-backend": "2.0.0",
"@backstage/plugin-catalog-backend-module-aws": "0.4.11",
"@backstage/plugin-catalog-backend-module-azure": "0.3.5",
"@backstage/plugin-catalog-backend-module-backstage-openapi": "0.5.2",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.4.8",
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.4.1",
"@backstage/plugin-catalog-backend-module-gcp": "0.3.8",
"@backstage/plugin-catalog-backend-module-gerrit": "0.3.2",
"@backstage/plugin-catalog-backend-module-gitea": "0.1.0",
"@backstage/plugin-catalog-backend-module-github": "0.9.0",
"@backstage/plugin-catalog-backend-module-github-org": "0.3.10",
"@backstage/plugin-catalog-backend-module-gitlab": "0.6.6",
"@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.9",
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.7.0",
"@backstage/plugin-catalog-backend-module-ldap": "0.11.5",
"@backstage/plugin-catalog-backend-module-logs": "0.1.10",
"@backstage/plugin-catalog-backend-module-msgraph": "0.7.0",
"@backstage/plugin-catalog-backend-module-openapi": "0.2.10",
"@backstage/plugin-catalog-backend-module-puppetdb": "0.2.10",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.8",
"@backstage/plugin-catalog-backend-module-unprocessed": "0.6.0",
"@backstage/plugin-catalog-common": "1.1.4",
"@backstage/plugin-catalog-graph": "0.4.19",
"@backstage/plugin-catalog-import": "0.13.0",
"@backstage/plugin-catalog-node": "1.17.0",
"@backstage/plugin-catalog-react": "1.18.0",
"@backstage/plugin-catalog-unprocessed-entities": "0.2.17",
"@backstage/plugin-catalog-unprocessed-entities-common": "0.0.8",
"@backstage/plugin-config-schema": "0.1.68",
"@backstage/plugin-devtools": "0.1.27",
"@backstage/plugin-devtools-backend": "0.5.5",
"@backstage/plugin-devtools-common": "0.1.16",
"@backstage/plugin-events-backend": "0.5.2",
"@backstage/plugin-events-backend-module-aws-sqs": "0.4.11",
"@backstage/plugin-events-backend-module-azure": "0.2.20",
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.20",
"@backstage/plugin-events-backend-module-bitbucket-server": "0.1.1",
"@backstage/plugin-events-backend-module-gerrit": "0.2.20",
"@backstage/plugin-events-backend-module-github": "0.4.0",
"@backstage/plugin-events-backend-module-gitlab": "0.3.1",
"@backstage/plugin-events-backend-module-google-pubsub": "0.1.0",
"@backstage/plugin-events-backend-test-utils": "0.1.44",
"@backstage/plugin-events-node": "0.4.11",
"@internal/plugin-todo-list": "1.0.39",
"@internal/plugin-todo-list-backend": "1.0.39",
"@internal/plugin-todo-list-common": "1.0.25",
"@backstage/plugin-gateway-backend": "1.0.1",
"@backstage/plugin-home": "0.8.8",
"@backstage/plugin-home-react": "0.1.26",
"@backstage/plugin-kubernetes": "0.12.7",
"@backstage/plugin-kubernetes-backend": "0.19.6",
"@backstage/plugin-kubernetes-cluster": "0.0.25",
"@backstage/plugin-kubernetes-common": "0.9.5",
"@backstage/plugin-kubernetes-node": "0.3.0",
"@backstage/plugin-kubernetes-react": "0.5.7",
"@backstage/plugin-notifications": "0.5.5",
"@backstage/plugin-notifications-backend": "0.5.6",
"@backstage/plugin-notifications-backend-module-email": "0.3.9",
"@backstage/plugin-notifications-backend-module-slack": "0.1.1",
"@backstage/plugin-notifications-common": "0.0.8",
"@backstage/plugin-notifications-node": "0.2.15",
"@backstage/plugin-org": "0.6.39",
"@backstage/plugin-org-react": "0.1.38",
"@backstage/plugin-permission-backend": "0.7.0",
"@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.8",
"@backstage/plugin-permission-common": "0.9.0",
"@backstage/plugin-permission-node": "0.10.0",
"@backstage/plugin-permission-react": "0.4.34",
"@backstage/plugin-proxy-backend": "0.6.2",
"@backstage/plugin-proxy-node": "0.1.4",
"@backstage/plugin-scaffolder": "1.31.0",
"@backstage/plugin-scaffolder-backend": "1.33.0",
"@backstage/plugin-scaffolder-backend-module-azure": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.10",
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.9",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.10",
"@backstage/plugin-scaffolder-backend-module-gcp": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-gitea": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-github": "0.7.1",
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.9.1",
"@backstage/plugin-scaffolder-backend-module-notifications": "0.1.10",
"@backstage/plugin-scaffolder-backend-module-rails": "0.5.9",
"@backstage/plugin-scaffolder-backend-module-sentry": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.10",
"@backstage/plugin-scaffolder-common": "1.5.11",
"@backstage/plugin-scaffolder-node": "0.8.2",
"@backstage/plugin-scaffolder-node-test-utils": "0.2.2",
"@backstage/plugin-scaffolder-react": "1.16.0",
"@backstage/plugin-search": "1.4.26",
"@backstage/plugin-search-backend": "2.0.2",
"@backstage/plugin-search-backend-module-catalog": "0.3.4",
"@backstage/plugin-search-backend-module-elasticsearch": "1.7.2",
"@backstage/plugin-search-backend-module-explore": "0.3.2",
"@backstage/plugin-search-backend-module-pg": "0.5.44",
"@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.9",
"@backstage/plugin-search-backend-module-techdocs": "0.4.2",
"@backstage/plugin-search-backend-node": "1.3.11",
"@backstage/plugin-search-common": "1.2.18",
"@backstage/plugin-search-react": "1.9.0",
"@backstage/plugin-signals": "0.0.19",
"@backstage/plugin-signals-backend": "0.3.4",
"@backstage/plugin-signals-node": "0.1.20",
"@backstage/plugin-signals-react": "0.0.13",
"@backstage/plugin-techdocs": "1.12.6",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.48",
"@backstage/plugin-techdocs-backend": "2.0.2",
"@backstage/plugin-techdocs-common": "0.1.0",
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.24",
"@backstage/plugin-techdocs-node": "1.13.3",
"@backstage/plugin-techdocs-react": "1.2.17",
"@backstage/plugin-user-settings": "0.8.22",
"@backstage/plugin-user-settings-backend": "0.3.2",
"@backstage/plugin-user-settings-common": "0.0.1"
},
"changesets": [
"bitter-pants-watch",
"brave-facts-pay",
"cold-meals-like",
"create-app-1748956288",
"curvy-peaches-relate",
"dull-buttons-press",
"eight-pigs-post",
"eight-planets-see",
"evil-cooks-watch",
"famous-streets-stay",
"few-streets-accept",
"fresh-brooms-follow",
"good-paths-act",
"grumpy-dryers-act",
"honest-moles-bet",
"khaki-horses-chew",
"late-buttons-strive",
"lazy-rice-dream",
"long-suits-obey",
"mean-tigers-rush",
"new-beers-sell",
"olive-buses-serve",
"petite-candies-tan",
"puny-pillows-wave",
"red-vans-march",
"ripe-squids-sink",
"salty-worlds-float",
"scaffolder-breakages-1",
"scaffolder-breakages-2",
"scaffolder-breakages-3",
"scaffolder-deprecations-1",
"seven-beans-appear",
"shiny-bags-bet",
"six-mangos-yell",
"slow-impalas-wear",
"small-dots-march",
"smooth-eels-think",
"spotty-cases-show",
"stupid-flies-speak",
"stupid-pens-serve",
"sweet-ducks-wait",
"sweet-squids-dig",
"three-boats-sort",
"tough-heads-knock",
"true-tools-play",
"warm-taxes-show",
"wet-bars-report",
"wet-bars-reporting",
"yummy-donuts-peel"
]
}
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/frontend-plugin-api': patch
---
Added a new `useAppNode` hook, which can be used to get a reference to the `AppNode` from by the closest `ExtensionBoundary`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
Added appropriate message when global templating function metadata is absent.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder': minor
---
**New Frontend System Only:**
The `Scaffolder` plugin is now responsible for providing an entity icon link extension to launch templates from the catalog entity page.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gitea': patch
---
Migrate to new actions format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
The experimental `FORCE_REACT_DEVELOPMENT` flag has been removed.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': minor
---
Add .cache directory to shipped gitignore.
-27
View File
@@ -1,27 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': major
---
**BREAKING CHANGES**
Removal of deprecated re-exports from module packages.
The following functions have been re-exported from the `scaffolder-backend` plugin for quite some time, and now it's time to clean them up. They've been moved as follows:
- `createPublishAzureAction` should be imported from `@backstage/plugin-scaffolder-backend-module-azure` instead.
- `createPublishBitbucketCloudAction` should be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud` instead.
- `createPublishBitbucketServerAction` and `createPublishBitbucketServerPullRequestAction` can be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket-server` instead.
- `createPublishBitbucketAction` should be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket` instead.
- `createPublishGerritAction` and `createPublishGerritReviewAction` can be imported from `@backstage/plugin-scaffolder-backend-module-gerrit` instead.
- `createGithubActionsDispatchAction`, `createGithubDeployKeyAction`, `createGithubEnvironmentAction`, `createGithubIssuesLabelAction`, `CreateGithubPullRequestActionOptions`, `createGithubRepoCreateAction`, `createGithubRepoPushAction`, `createGithubWebhookAction`, and `createPublishGithubAction` can be imported from `@backstage/plugin-scaffolder-backend-module-github` instead.
- `createPublishGitlabAction` should be imported from `@backstage/plugin-scaffolder-backend-module-gitlab` instead.
- `ActionContext`. `createTemplateAction`, `executeShellCommand`, `ExecuteShellCommandOptions`, `fetchContents`, `TaskSecrets`, and `TemplateAction` should be imported from `@backstage/plugin-scaffolder-node` instead.
- `ScaffolderEntitiesProcessor` should be imported from `@backstage/plugin-catalog-backend-module-scaffolder-entity-model` instead.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': major
---
**BREAKING ALPHA**: The `/alpha` export no longer exports the plugin. Please use `import('@backstage/plugin-scaffolder-backend')` instead as this has been removed.
**BREAKING CHANGES**: The old `createRouter` function which was used in the old backend system has been removed along with the `RouterOptions` type.
-11
View File
@@ -1,11 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': major
---
**BREAKING CHANGES**
The following functions have been re-exported from the `scaffolder-backend` plugin for quite some time, and now it's time to clean them up. They've been moved as follows:
- `SerializedTask`, `SerializedTaskEvent`, `TaskBroker`, `TaskBrokerDispatchOptions`, `TaskBrokerDispatchResult`, `TaskCompletionState`, `TaskContext`, `TaskEventType`, `TaskStatus`, `TemplateFilter`, and `TemplateGlobal` should be imported from `@backstage/plugin-scaffolder-node` instead.
- The deprecated `copyWithoutRender` option has been removed from `fetch:template` action. You should rename the option to `copyWithoutTemplating` instead.
-60
View File
@@ -1,60 +0,0 @@
---
'@backstage/plugin-scaffolder-node': minor
---
**BREAKING CHANGES**
The legacy methods to define `createTemplateActions` have been replaced with the new native `zod` approaches for defining input and output schemas.
You can migrate actions that look like the following with the below examples:
```ts
// really old legacy json schema
createTemplateAction<{ repoUrl: string }, { repoOutput: string }>({
id: 'test',
schema: {
input: {
type: 'object'
required: ['repoUrl']
properties: {
repoUrl: {
type: 'string',
description: 'repository url description'
}
}
}
}
});
// old zod method
createTemplateAction({
id: 'test'
schema: {
input: {
repoUrl: z.string({ description: 'repository url description' })
}
}
})
// new method:
createTemplateAction({
id: 'test',
schema: {
input: {
repoUrl: z => z.string({ description: 'repository url description' })
}
}
})
// or for more complex zod types like unions
createTemplateAction({
id: 'test',
schema: {
input: z => z.object({
repoUrl: z.string({ description: 'repository url description' })
})
}
})
```
This breaking change also means that `logStream` has been removed entirely from `ActionsContext`, and that the `logger` is now just a `LoggerService` implementation instead. There is no replacement for the `logStream`, if you wish to still keep using a `logStream` we recommend that you create your own stream that writes to `ctx.logger` instead.
-36
View File
@@ -1,36 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': minor
---
**BREAKING CHANGES**
The `createGithubEnvironmentAction` action no longer requires an `AuthService`, and now accepts a `CatalogService` instead of `CatalogClient`.
Unless you're providing your own override action to the default, this should be a non-breaking change.
You can migrate using the following if you're getting typescript errors:
```ts
import { catalogServiceRef } from '@backstage/plugin-catalog-node';
import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
export const myModule = createBackendModule({
pluginId: 'scaffolder',
moduleId: 'test',
register({ registerInit }) {
registerInit({
deps: {
scaffolder: scaffolderActionsExtensionPoint,
catalog: catalogServiceRef,
},
async init({ scaffolder, catalog }) {
scaffolder.addActions(
createGithubEnvironmentAction({
catalog,
}),
);
},
});
},
});
```
-42
View File
@@ -1,42 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': major
---
**BREAKING CHANGES**
- The `createBuiltinActions` method has been removed, as this should no longer be needed with the new backend system route, and was only useful when passing the default list of actions again in the old backend system. You should be able to rely on the default behaviour of the new backend system which is to merge the actions.
- The `createCatalogRegisterAction` and `createFetchCatalogEntityAction` actions no longer require an `AuthService`, and now accepts a `CatalogService` instead of `CatalogClient`.
Unless you're providing your own override action to the default, this should be a non-breaking change.
You can migrate using the following if you're getting typescript errors:
```ts
import { catalogServiceRef } from '@backstage/plugin-catalog-node';
import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
export const myModule = createBackendModule({
pluginId: 'scaffolder',
moduleId: 'test',
register({ registerInit }) {
registerInit({
deps: {
scaffolder: scaffolderActionsExtensionPoint,
catalog: catalogServiceRef,
},
async init({ scaffolder, catalog }) {
scaffolder.addActions(
createCatalogRegisterAction({
catalog,
}),
createFetchCatalogEntityAction({
catalog,
integrations,
}),
);
},
});
},
});
```
-20
View File
@@ -1,20 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
**DEPRECATIONS**
The following types and implementations have been deprecated, either because they're no longer relevant, or because upcoming changes to the `scaffolder-backend` after `2.0.0` will influence the changes to these API surfaces.
- `CreateWorkerOptions`
- `DatabaseTaskStore`
- `DatabaseTaskStoreOptions`
- `TaskManager`
- `TaskStoreCreateTaskOptions`
- `TaskStoreCreateTaskResult`
- `TaskStoreEmitOptions`
- `TaskStoreListEventsOptions`
- `TaskStoreRecoverTaskOptions`
- `TaskStoreShutDownTaskOptions`
There is no current path off deprecation, these types are going to be removed and rethought with a better way to define workers in the new backend system.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': patch
---
Implement retry for GitLab API calls to handle rate limiting
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket': patch
---
Migrating `bitbucket` actions to use the new `zod` format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/repo-tools': minor
---
Add support for caching the per-package output from the `package-docs` command.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-import': patch
---
Catalog import plugin full support i18n
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Only use the caching Jest module loader for frontend packages in order to avoid breaking real ESM module imports.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Support merge request labels in publish:gitlab:merge-request
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-techdocs': minor
'@backstage/plugin-techdocs-react': minor
'@backstage/plugin-catalog': minor
'@backstage/plugin-techdocs-common': patch
---
Introduced `backstage.io/techdocs-entity-path` annotation which allows deep linking into another entities TechDocs in conjunction with `backstage.io/techdocs-entity`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': minor
---
**BREAKING**: `BitbucketCloudEntityProvider` now accepts a `CatalogService` instead of a `CatalogApi`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-home': patch
---
Fixed the `WelcomeTitle` to properly default to the previous value of `inherit`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/frontend-defaults': patch
---
Forwarded the new `pluginInfoResolver` option for `createApp`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Updating the scaffolder action boilerplate to use new `zod` schema
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/frontend-app-api': patch
---
Implemented support for the `plugin.info()` method in specialized apps with a default resolved for `package.json` and `catalog-info.yaml`. The default resolution logic can be overridden via the `pluginInfoResolver` option to `createSpecializedApp`, and plugin-specific overrides can be applied via the new `app.pluginOverrides` key in static configuration.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Added `backstage.pluginId` field in `package.json` to all default plugin package templates for the `new` command.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Internal refactor to combine alpha `build` and `start` modules.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-test-utils': minor
---
Added mock implementations for `ActionsService` and `ActionsRegistryService`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
---
Migrate using new actions format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
fix: merge eslint reports when using json format
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Update `refresh_state_references.id` to be a big int
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
---
Fix `bitbucketCloudBranchRestrictions` API calls to accept null to prevent 400 errors for some branch restriction kinds defined.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search-react': patch
---
SearchBar clear button support i18n
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': minor
---
Fixes spacing props on layout components and aligned on naming for the Grid component. You should now call the Grid root component using <Grid.Root /> instead of just <Grid />.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-plugin-api': minor
---
Added `coreServices.actionsRegistry` and `coreServices.actions` to allow registration of distributed actions from plugins, and the ability to invoke these actions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-defaults': patch
---
Added some default implementations for the `ActionsService` and `ActionsRegistryService` that allow registration of actions for a particular plugin.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/canon': patch
---
Remove leftover console.log from Container component.
+19 -1
View File
@@ -18,8 +18,26 @@ var path = require('path');
module.exports = {
root: true,
plugins: ['@spotify', 'notice', 'react', 'testing-library'],
plugins: ['@spotify', 'notice', 'react', 'testing-library', '@backstage'],
rules: {
'@backstage/no-mixed-plugin-imports': [
'error',
{
// TODO: Fix these either by right role or by moving things to new packages
excludedTargetPackages: [
'@backstage/plugin-catalog',
'@backstage/plugin-techdocs',
'@backstage/plugin-app',
'@backstage/plugin-catalog-backend',
'@backstage/test-utils',
'@backstage/plugin-auth-backend',
'@backstage/plugin-permission-backend',
'@backstage/plugin-kubernetes-backend',
'@backstage/config-loader',
'@backstage/plugin-app-backend'
],
}
],
'react/react-in-jsx-scope': 'off',
'notice/notice': [
'error',
+5
View File
@@ -35,6 +35,11 @@
rangeStrategy: 'replace',
matchSourceUrls: ['https://github.com/gregberge/svgr{/,}**'],
},
{
groupName: 'Module-federation monorepo packages',
rangeStrategy: 'replace',
matchSourceUrls: ['https://github.com/module-federation/core{/,}**'],
},
// We update yarn packages manually as it's gzip'd and we don't want to pollute the repository too much.
{
matchSourceUrls: ['https://github.com/yarnpkg/berry'],
@@ -433,6 +433,7 @@ statefulsets
stdout
storable
storages
Streamable
stringified
stringify
subcommand
+1 -1
View File
@@ -62,7 +62,7 @@ jobs:
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Build and push
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: './example-app'
file: ./example-app/packages/backend/Dockerfile
+2 -2
View File
@@ -321,12 +321,12 @@ jobs:
name: storybook
path: microsite/build/storybook
- uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: stable-reference-beta
path: microsite/build/api/stable/
- uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: next-reference-beta
path: microsite/build/api/next/
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
- name: Run Prettier on ADOPTERS.md
uses: creyD/prettier_action@31355f8eef017f8aeba2e0bc09d8502b13dbbad1 # v4.3
uses: creyD/prettier_action@8c18391fdc98ed0d884c6345f03975edac71b8f0 # v4.6
with:
# Modifies commit only if prettier autofixed the ADOPTERS.md
prettier_options: --config docs/prettier.config.js --write ADOPTERS.md
+2 -2
View File
@@ -325,13 +325,13 @@ jobs:
working-directory: microsite
- name: download stable reference (beta)
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: stable-reference-beta
path: api/stable/
- name: download next reference (beta)
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: next-reference-beta
path: api/next/
+1 -1
View File
@@ -54,7 +54,7 @@ jobs:
- run: yarn --cwd packages/canon build-storybook
- uses: chromaui/action@e8cc4c31775280b175a3c440076c00d19a9014d7 # v11
- uses: chromaui/action@1cfa065cbdab28f6ca3afaeb3d761383076a35aa # v11
with:
token: ${{ secrets.GITHUB_TOKEN }}
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
+12 -12
View File
@@ -56,6 +56,18 @@ Scope: The Backstage design system, component library, as well as surrounding to
| Charles de Dreuille | Spotify | | [cdedreuille](https://github.com/cdedreuille) | `cdedreuille` |
| Patrik Oldsberg | Spotify | Cubic Belugas | [Rugvip](https://github.com/Rugvip) | `Rugvip` |
### Documentation
Team: @backstage/documentation-maintainers
Scope: The Backstage Documentation and Microsite, excluding the plugins listing
| Name | Organization | GitHub | Discord |
| --------------- | ------------- | ----------------------------------------------------- | ------------- |
| Andre Wanlin | Spotify | [awanlin](https://github.com/awanlin) | `ahhhndre` |
| Aramis Sennyey | DoorDash | [aramissennyeydd](https://github.com/aramissennyeydd) | `Aramis#7984` |
| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
### Framework
Team: @backstage/framework-maintainers
@@ -208,18 +220,6 @@ Scope: Tooling and Community Repo Maintainers for the Backstage [Community Plugi
| Vincenzo Scamporlino | Spotify | [vinzscam](https://github.com/vinzscam) | `vinzscam` |
| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
### Documentation
Team: @backstage/documentation-maintainers
Scope: The Backstage Documentation and Microsite, excluding the plugins listing
| Name | Organization | GitHub | Discord |
| --------------- | ------------- | ----------------------------------------------------- | ------------- |
| Andre Wanlin | Spotify | [awanlin](https://github.com/awanlin) | `ahhhndre` |
| Aramis Sennyey | DoorDash | [aramissennyeydd](https://github.com/aramissennyeydd) | `Aramis#7984` |
| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
### Events
Team: @backstage/events-maintainers
+6
View File
@@ -36,6 +36,12 @@ backend:
# keys:
# - secret: ${BACKEND_SECRET}
# Used for testing rate limiting locally
# rateLimit:
# windowMs: 1m
# incomingRequestLimit: 1
# ipAllowList: []
auth:
# TODO: once plugins have been migrated we can remove this, but right now it
# is require for the backend-next to work in this repo
+5
View File
@@ -8,6 +8,11 @@ const nextConfig = {
images: {
unoptimized: true,
},
typescript: {
// Ignore TypeScript errors during build - safe for React 18/19 compatibility issues
// These are type-level conflicts that don't affect runtime behavior
ignoreBuildErrors: true,
},
};
const withMDX = createMDX({});
+13 -7
View File
@@ -8,19 +8,25 @@
"lint": "next lint",
"start": "npm run build:css && next dev"
},
"resolutions": {
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6"
},
"dependencies": {
"@codemirror/lang-sass": "^6.0.2",
"@lezer/highlight": "^1.2.1",
"@mdx-js/loader": "^3.1.0",
"@mdx-js/react": "^3.1.0",
"@next/mdx": "^15.1.4",
"@next/mdx": "15.3.3",
"@storybook/react": "^8.6.8",
"@uiw/codemirror-themes": "^4.23.7",
"@uiw/react-codemirror": "^4.23.7",
"html-react-parser": "^5.2.5",
"motion": "^12.4.1",
"next": "14.2.26",
"react": "^18.0.2",
"react-dom": "^18.0.2",
"next": "15.3.3",
"next-mdx-remote-client": "^2.1.2",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-frame-component": "^5.2.7",
"shiki": "^1.26.1",
"storybook": "^8.6.8"
@@ -28,10 +34,10 @@
"devDependencies": {
"@types/mdx": "^2.0.13",
"@types/node": "^20",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"eslint": "^8",
"eslint-config-next": "14.2.23",
"eslint-config-next": "15.3.3",
"lightningcss": "^1.28.2",
"typescript": "^5"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,13 @@
import { Changelog } from '@/components/Changelog';
# Changelog
<Changelog />
## Version 0.1.0
We're excited to share the initial release of Canon 💚 In this first alpha version,
you'll find the foundation of our design system: a set of versatile layout components
and a handful of essential atomic elements to help you get started. While Canon is
still in its early stages, it's ready for exploration and we'd love for you to give
it a try and share your feedback.
@@ -0,0 +1,25 @@
import { components, layoutComponents } from '@/utils/data';
export default async function Page({
params,
}: {
params: Promise<{ slug: string }>;
}) {
const { slug } = await params;
const { default: Component } = await import(
`@/content/components/${slug}.mdx`
);
return <Component />;
}
export function generateStaticParams() {
const list = [...components, ...layoutComponents];
return list.map(component => ({
slug: component.slug,
}));
}
export const dynamicParams = false;
@@ -1,75 +0,0 @@
import { PropsTable } from '@/components/PropsTable';
import { Snippet } from '@/components/Snippet';
import { Tabs } from '@/components/Tabs';
import { CodeBlock } from '@/components/CodeBlock';
import { AvatarSnippet } from '@/snippets/stories-snippets';
import { avatarPropDefs } from './props';
# Avatar
An avatar component with a fallback for initials.
<Snippet
align="center"
py={4}
preview={<AvatarSnippet story="Default" />}
code={`<Avatar src="https://avatars.githubusercontent.com/u/1540635?v=4" name="Charles de Dreuille" />`}
/>
<Tabs.Root>
<Tabs.List>
<Tabs.Tab>Usage</Tabs.Tab>
<Tabs.Tab>Theming</Tabs.Tab>
</Tabs.List>
<Tabs.Panel>
<CodeBlock
code={`import { Avatar } from '@backstage/canon';
<Avatar src="https://avatars.githubusercontent.com/u/1540635?v=4" name="Charles de Dreuille" />`}
/>
</Tabs.Panel>
<Tabs.Panel>
We recommend starting with our [global tokens](/theme/theming) 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.
- `canon-AvatarRoot`
- `canon-AvatarRoot[data-size='small']`
- `canon-AvatarRoot[data-size='medium']`
- `canon-AvatarRoot[data-size='large']`
- `canon-AvatarImage`
- `canon-AvatarFallback`
</Tabs.Panel>
</Tabs.Root>
## API reference
<PropsTable data={avatarPropDefs} />
## Examples
### Sizes
Avatar sizes can be set using the `size` prop.
<Snippet
align="center"
py={4}
open
preview={<AvatarSnippet story="Sizes" />}
code={`<Flex gap="4" direction="column">
<Avatar src="https://avatars.githubusercontent.com/u/1540635?v=4" name="Charles de Dreuille" size="small" />
<Avatar src="https://avatars.githubusercontent.com/u/1540635?v=4" name="Charles de Dreuille" size="medium" />
<Avatar src="https://avatars.githubusercontent.com/u/1540635?v=4" name="Charles de Dreuille" size="large" />
</Flex>`}
/>
### Fallback
If the image is not available, the avatar will show the initials of the name.
<Snippet
align="center"
py={4}
open
preview={<AvatarSnippet story="Fallback" />}
code={`<Avatar src="https://avatars.githubusercontent.com/u/15406AAAAAAAAA" name="Charles de Dreuille" />`}
/>
@@ -1,19 +0,0 @@
import { classNamePropDefs, stylePropDefs } from '@/utils/propDefs';
import type { PropDef } from '@/utils/propDefs';
export const avatarPropDefs: Record<string, PropDef> = {
src: {
type: 'string',
},
name: {
type: 'string',
},
size: {
type: 'enum',
values: ['small', 'medium', 'large'],
default: 'medium',
responsive: true,
},
...classNamePropDefs,
...stylePropDefs,
};
@@ -1,24 +0,0 @@
import {
classNamePropDefs,
displayPropDefs,
heightPropDefs,
positionPropDefs,
stylePropDefs,
widthPropDefs,
} from '../../../../utils/propDefs';
import type { PropDef } from '../../../../utils/propDefs';
export const boxPropDefs: Record<string, PropDef> = {
as: {
type: 'enum',
values: ['div', 'span'],
default: 'div',
responsive: true,
},
...widthPropDefs,
...heightPropDefs,
...positionPropDefs,
...displayPropDefs,
...classNamePropDefs,
...stylePropDefs,
};

Some files were not shown because too many files have changed in this diff Show More