Release 30.0.0#1057
Conversation
📖 Storybook Preview |
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Updated `IconSize` underlying string values to semantic t-shirt size tokens; normal use is unaffected ([#1049](https://github.com/MetaMask/metamask-design-system/pull/1049)) |
There was a problem hiding this comment.
Why is IconSize marked BREAKING if normal use is unaffected?
IconSize is a TypeScript enum (nominal type), so consumers using IconSize.Md etc. are completely isolated from the underlying string value change ('20' → 'md'). Raw string literals were never assignable due to TypeScript's enum nominal typing. The BREAKING label is technically correct (the emitted JS values changed) but in practice no consumer code needs updating.
| ### Changed | ||
|
|
||
| - **BREAKING:** Updated `IconSize` underlying string values to semantic t-shirt size tokens; normal use is unaffected ([#1049](https://github.com/MetaMask/metamask-design-system/pull/1049)) | ||
| - **BREAKING:** Updated `AvatarToken` and `AvatarAccount` exports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected ([#1009](https://github.com/MetaMask/metamask-design-system/pull/1009), [#1015](https://github.com/MetaMask/metamask-design-system/pull/1015)) |
There was a problem hiding this comment.
ADR-0003/ADR-0004 migration pattern
This follows the established pattern from 0.14.0's AvatarBase migration — shared const objects with derived string unions replace platform-local definitions, giving both React and React Native a single source of truth in @metamask/design-system-shared. The BREAKING label is required because the type definitions change, but since consumers import from the platform package (@metamask/design-system-react-native) and the const names are unchanged, no migration is needed.
📖 Storybook Preview |
|
|
||
| ### Added | ||
|
|
||
| - Added `AvatarToken` shared types (`AvatarTokenSize`, `AvatarTokenPropsShared`) for cross-platform use ([#1009](https://github.com/MetaMask/metamask-design-system/pull/1009)) |
There was a problem hiding this comment.
Asymmetry between AvatarToken and AvatarAccount shared types
AvatarToken gains both AvatarTokenSize (const object) and AvatarTokenPropsShared, while AvatarAccount only gains AvatarAccountPropsShared — no size const. This is intentional: AvatarAccount reuses the existing AvatarBaseSize from shared rather than defining its own size enum.
## Release 30.0.0 This release adds the `NoPhotography` icon and continues ADR-0003/ADR-0004 type migrations for `AvatarToken` and `AvatarAccount` across all platforms, plus an internal `IconSize` token alignment in React Native. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.8.0** - `@metamask/design-system-react`: **0.15.0** - `@metamask/design-system-react-native`: **0.15.0** ### 🔄 Shared Type Updates (0.8.0) #### AvatarToken and AvatarAccount Type Additions ([#1009](#1009), [#1015](#1015)) **What Changed:** - Added `AvatarToken` shared types (`AvatarTokenSize`, `AvatarTokenPropsShared`) - Added `AvatarAccount` shared types (`AvatarAccountPropsShared`) **Impact:** - Enables consistent `AvatarToken` and `AvatarAccount` implementations across React and React Native - Continues ADR-0003/ADR-0004 const-object + string-union pattern adoption ### 🌐 React Web Updates (0.15.0) #### Added - Added `NoPhotography` icon ([#1056](#1056)) #### Changed - **BREAKING:** Updated `AvatarToken` and `AvatarAccount` exports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected ([#1009](#1009), [#1015](#1015)) ### 📱 React Native Updates (0.15.0) #### Added - Added `NoPhotography` icon ([#1056](#1056)) #### Changed - **BREAKING:** Updated `IconSize` underlying string values to semantic t-shirt size tokens; normal use is unaffected ([#1049](#1049)) - **BREAKING:** Updated `AvatarToken` and `AvatarAccount` exports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected ([#1009](#1009), [#1015](#1015)) ###⚠️ Breaking Changes All breaking changes in this release are internal type/value alignment changes. Normal consumer usage is unaffected. ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [x] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: minor (0.7.0 → 0.8.0) - new shared types added - [x] design-system-react: minor (0.14.0 → 0.15.0) - new icon + type migrations - [x] design-system-react-native: minor (0.14.0 → 0.15.0) - new icon + type migrations - [x] Breaking changes documented in changelogs - [x] PR references included in changelog entries ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) - [x] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [ ] All tests pass (`yarn build && yarn test && yarn lint`) - [x] Changelog validation passes (`yarn changelog:validate`) ## **Pre-merge reviewer checklist** - [ ] I've reviewed the [Reviewing Release PRs](./docs/reviewing-release-prs.md) guide - [ ] Package versions follow semantic versioning - [ ] Changelog entries are consumer-facing (not commit message regurgitation) - [ ] Breaking changes are documented with examples - [ ] All unreleased changes are accounted for in changelogs <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Only version bumps and changelog updates; no runtime code changes, so risk is low aside from potential downstream impact of publishing new package versions. > > **Overview** > Bumps the monorepo release to `30.0.0` and increments package versions for `@metamask/design-system-react` and `@metamask/design-system-react-native` to `0.15.0`, and `@metamask/design-system-shared` to `0.8.0`. > > Updates the package changelogs to document the new release entries (including `NoPhotography` icon and ADR-0003/ADR-0004 type export migrations, plus React Native `IconSize` token alignment) and advances the `[Unreleased]` compare links accordingly. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit a1d8f0e. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## Release 30.0.0 This release adds the `NoPhotography` icon and continues ADR-0003/ADR-0004 type migrations for `AvatarToken` and `AvatarAccount` across all platforms, plus an internal `IconSize` token alignment in React Native. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.8.0** - `@metamask/design-system-react`: **0.15.0** - `@metamask/design-system-react-native`: **0.15.0** ### 🔄 Shared Type Updates (0.8.0) #### AvatarToken and AvatarAccount Type Additions ([#1009](#1009), [#1015](#1015)) **What Changed:** - Added `AvatarToken` shared types (`AvatarTokenSize`, `AvatarTokenPropsShared`) - Added `AvatarAccount` shared types (`AvatarAccountPropsShared`) **Impact:** - Enables consistent `AvatarToken` and `AvatarAccount` implementations across React and React Native - Continues ADR-0003/ADR-0004 const-object + string-union pattern adoption ### 🌐 React Web Updates (0.15.0) #### Added - Added `NoPhotography` icon ([#1056](#1056)) #### Changed - **BREAKING:** Updated `AvatarToken` and `AvatarAccount` exports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected ([#1009](#1009), [#1015](#1015)) ### 📱 React Native Updates (0.15.0) #### Added - Added `NoPhotography` icon ([#1056](#1056)) #### Changed - **BREAKING:** Updated `IconSize` underlying string values to semantic t-shirt size tokens; normal use is unaffected ([#1049](#1049)) - **BREAKING:** Updated `AvatarToken` and `AvatarAccount` exports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected ([#1009](#1009), [#1015](#1015)) ###⚠️ Breaking Changes All breaking changes in this release are internal type/value alignment changes. Normal consumer usage is unaffected. ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [x] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: minor (0.7.0 → 0.8.0) - new shared types added - [x] design-system-react: minor (0.14.0 → 0.15.0) - new icon + type migrations - [x] design-system-react-native: minor (0.14.0 → 0.15.0) - new icon + type migrations - [x] Breaking changes documented in changelogs - [x] PR references included in changelog entries ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) - [x] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [ ] All tests pass (`yarn build && yarn test && yarn lint`) - [x] Changelog validation passes (`yarn changelog:validate`) ## **Pre-merge reviewer checklist** - [ ] I've reviewed the [Reviewing Release PRs](./docs/reviewing-release-prs.md) guide - [ ] Package versions follow semantic versioning - [ ] Changelog entries are consumer-facing (not commit message regurgitation) - [ ] Breaking changes are documented with examples - [ ] All unreleased changes are accounted for in changelogs <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Only version bumps and changelog updates; no runtime code changes, so risk is low aside from potential downstream impact of publishing new package versions. > > **Overview** > Bumps the monorepo release to `30.0.0` and increments package versions for `@metamask/design-system-react` and `@metamask/design-system-react-native` to `0.15.0`, and `@metamask/design-system-shared` to `0.8.0`. > > Updates the package changelogs to document the new release entries (including `NoPhotography` icon and ADR-0003/ADR-0004 type export migrations, plus React Native `IconSize` token alignment) and advances the `[Unreleased]` compare links accordingly. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit a1d8f0e. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
Release 30.0.0
This release adds the
NoPhotographyicon and continues ADR-0003/ADR-0004 type migrations forAvatarTokenandAvatarAccountacross all platforms, plus an internalIconSizetoken alignment in React Native.📦 Package Versions
@metamask/design-system-shared: 0.8.0@metamask/design-system-react: 0.15.0@metamask/design-system-react-native: 0.15.0🔄 Shared Type Updates (0.8.0)
AvatarToken and AvatarAccount Type Additions (#1009, #1015)
What Changed:
AvatarTokenshared types (AvatarTokenSize,AvatarTokenPropsShared)AvatarAccountshared types (AvatarAccountPropsShared)Impact:
AvatarTokenandAvatarAccountimplementations across React and React Native🌐 React Web Updates (0.15.0)
Added
NoPhotographyicon (#1056)Changed
AvatarTokenandAvatarAccountexports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected (#1009, #1015)📱 React Native Updates (0.15.0)
Added
NoPhotographyicon (#1056)Changed
IconSizeunderlying string values to semantic t-shirt size tokens; normal use is unaffected (#1049)AvatarTokenandAvatarAccountexports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected (#1009, #1015)All breaking changes in this release are internal type/value alignment changes. Normal consumer usage is unaffected.
✅ Checklist
yarn changelog:validate)Pre-merge author checklist
yarn build && yarn test && yarn lint)yarn changelog:validate)Pre-merge reviewer checklist
Note
Low Risk
Only version bumps and changelog updates; no runtime code changes, so risk is low aside from potential downstream impact of publishing new package versions.
Overview
Bumps the monorepo release to
30.0.0and increments package versions for@metamask/design-system-reactand@metamask/design-system-react-nativeto0.15.0, and@metamask/design-system-sharedto0.8.0.Updates the package changelogs to document the new release entries (including
NoPhotographyicon and ADR-0003/ADR-0004 type export migrations, plus React NativeIconSizetoken alignment) and advances the[Unreleased]compare links accordingly.Reviewed by Cursor Bugbot for commit a1d8f0e. Bugbot is set up for automated code reviews on this repo. Configure here.