Skip to content

Release 21.0.0 (corrected)#940

Merged
georgewrmarshall merged 8 commits into
mainfrom
release/21.0.0
Feb 25, 2026
Merged

Release 21.0.0 (corrected)#940
georgewrmarshall merged 8 commits into
mainfrom
release/21.0.0

Conversation

@georgewrmarshall

@georgewrmarshall georgewrmarshall commented Feb 25, 2026

Copy link
Copy Markdown
Contributor

Release 21.0.0

This release includes breaking changes, new features, and refactoring improvements across the design system packages.

Note: This is a corrected resubmission of #938 without peer dependency updates that caused yarn.lock modifications in CI.

📦 Package Versions

  • @metamask/design-system-react: 0.9.0
  • @metamask/design-system-react-native: 0.8.0
  • @metamask/design-system-shared: 0.2.0

⚠️ Breaking Changes

BadgeStatus Migration to String Union Types (#912)

The BadgeStatus component has been migrated from TypeScript enums to string union types with const objects:

What Changed:

  • BadgeStatusStatus and BadgeStatusSize enums replaced with const objects
  • No migration required - continue importing from your current package
  • Const object values remain the same: BadgeStatusStatus.Active still works
  • String literals now also accepted: 'active' works where BadgeStatusStatus.Active is expected
  • We are still evaluating best practices for const objects vs string literals

Affected Packages:

  • @metamask/design-system-react@0.9.0
  • @metamask/design-system-react-native@0.8.0
  • @metamask/design-system-shared@0.2.0

Learn More:

✨ New Features

RadioButton Component (#926)

  • Added RadioButton component to React Native
  • Supports checked, disabled, read-only, and danger states
  • Full accessibility support with role="radio" and accessibilityState
  • Optional label rendering

🔨 Refactoring

BottomSheetFooter Reorganization (#933)

  • Moved BottomSheetFooter from BottomSheets/BottomSheetFooter/ to BottomSheetFooter/
  • Updated import paths and Storybook title
  • No breaking changes - all package imports continue to work

✅ Checklist

  • All changelogs updated with human-readable descriptions
  • Breaking changes clearly documented
  • Changelog validation passed (yarn changelog:validate)
  • All packages built successfully
  • Migration paths provided for breaking changes
  • No peer dependency changes to avoid yarn.lock modifications

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com


Note

Low Risk
This PR only updates version numbers and changelog entries; it does not change runtime code, but it communicates a breaking change for consumers in the release notes.

Overview
Bumps the monorepo version to 21.0.0 and increments package versions (@metamask/design-system-react to 0.9.0, @metamask/design-system-react-native to 0.8.0, and @metamask/design-system-shared to 0.2.0).

Updates changelogs to record the release contents, including a breaking BadgeStatus migration from TS enums to const objects/string-union types, plus React Native notes for the new RadioButton component and a BottomSheetFooter location refactor.

Written by Cursor Bugbot for commit 7428463. This will update automatically on new commits. Configure here.

georgewrmarshall and others added 7 commits February 25, 2026 09:02
Updated changelogs for @metamask/design-system-react v0.9.0,
@metamask/design-system-react-native v0.8.0, and
@metamask/design-system-shared v0.2.0 to provide clear,
human-readable descriptions of changes.

Key updates:
- Properly categorized BadgeStatus migration as BREAKING change
- Added detailed migration notes for enum to string union migration
- Documented ADR-0003 and ADR-0004 implementation
- Moved RadioButton feature to Added section with description
- Categorized BottomSheetFooter refactor in Changed section
- Added BadgeStatus types to design-system-shared Added section

All changes validated with yarn changelog:validate.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…rsions

Updated peer dependency versions to match the current package versions
in the monorepo:
- @metamask/design-system-tailwind-preset: ^0.6.0 → ^0.6.1
- @metamask/design-tokens: ^8.1.0 → ^8.2.0

This ensures consumers get the correct peer dependency warnings and
install compatible versions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updated changelogs to be more user-focused and less confusing:
- Removed internal architecture details about design-system-shared
- Clarified that users should continue importing from their current
  packages (design-system-react or design-system-react-native)
- Simplified migration guidance to focus on "no migration required"
- Added note that we're still evaluating best practices for const
  objects vs string literals

Users don't need to know about internal package structure - they
should just continue using the packages as usual.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added links to ADR-0003 and ADR-0004 in changelogs to provide
architectural context for the enum to string union migration.

Maintains user-friendly migration guidance while linking to
deeper technical documentation for those interested.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@georgewrmarshall georgewrmarshall requested a review from a team as a code owner February 25, 2026 21:09
@georgewrmarshall georgewrmarshall enabled auto-merge (squash) February 25, 2026 22:04
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

@georgewrmarshall georgewrmarshall merged commit b4d1eeb into main Feb 25, 2026
42 checks passed
@georgewrmarshall georgewrmarshall deleted the release/21.0.0 branch February 25, 2026 22:08
georgewrmarshall added a commit that referenced this pull request Mar 3, 2026
## Release 21.0.0

This release includes breaking changes, new features, and refactoring
improvements across the design system packages.

**Note:** This is a corrected resubmission of #938 without peer
dependency updates that caused yarn.lock modifications in CI.

### 📦 Package Versions

- `@metamask/design-system-react`: **0.9.0**
- `@metamask/design-system-react-native`: **0.8.0**
- `@metamask/design-system-shared`: **0.2.0**

### ⚠️ Breaking Changes

#### BadgeStatus Migration to String Union Types (#912)

The `BadgeStatus` component has been migrated from TypeScript enums to
string union types with const objects:

**What Changed:**
- `BadgeStatusStatus` and `BadgeStatusSize` enums replaced with const
objects
- **No migration required** - continue importing from your current
package
- Const object values remain the same: `BadgeStatusStatus.Active` still
works
- String literals now also accepted: `'active'` works where
`BadgeStatusStatus.Active` is expected
- We are still evaluating best practices for const objects vs string
literals

**Affected Packages:**
- `@metamask/design-system-react@0.9.0`
- `@metamask/design-system-react-native@0.8.0`
- `@metamask/design-system-shared@0.2.0`

**Learn More:**
- [ADR-0003: Enum to String Union
Migration](https://github.com/MetaMask/decisions/blob/main/decisions/design-system/0003-enum-to-string-union-migration.md)
- [ADR-0004: Centralized Types
Architecture](https://github.com/MetaMask/decisions/blob/main/decisions/design-system/0004-centralized-types-architecture.md)

### ✨ New Features

#### RadioButton Component (#926)
- Added `RadioButton` component to React Native
- Supports checked, disabled, read-only, and danger states
- Full accessibility support with `role="radio"` and
`accessibilityState`
- Optional label rendering

### 🔨 Refactoring

#### BottomSheetFooter Reorganization (#933)
- Moved `BottomSheetFooter` from `BottomSheets/BottomSheetFooter/` to
`BottomSheetFooter/`
- Updated import paths and Storybook title
- No breaking changes - all package imports continue to work

### ✅ Checklist

- [x] All changelogs updated with human-readable descriptions
- [x] Breaking changes clearly documented
- [x] Changelog validation passed (`yarn changelog:validate`)
- [x] All packages built successfully
- [x] Migration paths provided for breaking changes
- [x] No peer dependency changes to avoid yarn.lock modifications

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> This PR only changes package versions and changelog entries; no
runtime code is modified.
> 
> **Overview**
> Bumps the monorepo release to `21.0.0` and updates package versions
for `@metamask/design-system-react` to `0.9.0`,
`@metamask/design-system-react-native` to `0.8.0`, and
`@metamask/design-system-shared` to `0.2.0`.
> 
> Updates the React and React Native changelogs to document a
**breaking** `BadgeStatus` type migration (enums → const objects +
derived string unions), plus RN-only release notes for adding
`RadioButton` and a `BottomSheetFooter` location refactor; also updates
changelog compare links to start from the new versions.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
35569fb. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants