Release 20.0.0#931
Conversation
- Categorized all changelog entries per Keep a Changelog format (Added/Changed/Fixed) - Removed dev-only and revert entries from changelogs - Added consumer-focused descriptions for all new components and features - Updated @metamask/design-tokens peer dependency from ^8.1.0 to ^8.2.0 in design-system-react-native - Updated yarn.lock to reflect peer dependency change This fixes the issue that caused the original Release 20.0.0 publish to fail. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
| "peerDependencies": { | ||
| "@metamask/design-system-twrnc-preset": "^0.3.0", | ||
| "@metamask/design-tokens": "^8.1.0", | ||
| "@metamask/design-tokens": "^8.2.0", |
There was a problem hiding this comment.
Critical fix: This peer dependency change from ^8.1.0 to ^8.2.0 now has the corresponding yarn.lock update (see yarn.lock line 3414). The BottomSheetOverlay component uses the AnimationDuration enum which was exported in design-tokens@8.2.0, making this peer dependency update necessary.
|
|
||
| ## [0.7.0] | ||
|
|
||
| ### Added |
There was a problem hiding this comment.
This release includes 7 new components (Label, HeaderBase, Skeleton, Card, BottomSheetFooter, Toast, Input) that were merged to main after the original Release 20.0.0 failed. All entries are categorized per Keep a Changelog format with consumer-focused descriptions.
📖 Storybook Preview |
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Standardized non-icon enum runtime values to use kebab-case format ([#894](https://github.com/MetaMask/metamask-design-system/pull/894)) |
There was a problem hiding this comment.
Breaking change is well-documented with clear migration guidance. Most consumers can continue using enum constants without changes. Only apps that persist or transmit enum values need to update stored values from PascalCase to kebab-case format.
| @@ -3411,7 +3411,7 @@ __metadata: | |||
| typescript: "npm:~5.2.2" | |||
There was a problem hiding this comment.
This synchronized yarn.lock update fixes the original release failure. The peer dependency change in package.json now has its corresponding lockfile update, preventing the YN0028: The lockfile would have been modified error that blocked the first release attempt.
|
|
||
| ### Added | ||
|
|
||
| - Exported `AnimationDuration` enum for standardized animation timing values ([#897](https://github.com/MetaMask/metamask-design-system/pull/897)) |
There was a problem hiding this comment.
The AnimationDuration enum export is what necessitated the peer dependency bump to ^8.2.0 in the React Native package. The BottomSheetOverlay component uses these standardized animation timing values.
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Standardized non-icon enum runtime values to use kebab-case format ([#894](https://github.com/MetaMask/metamask-design-system/pull/894)) |
There was a problem hiding this comment.
BREAKING CHANGE: This enum standardization applies to both React and React Native packages. While migration is likely not needed if consumers use enum constants (e.g., ButtonVariant.Primary), teams that persist or transmit enum values (localStorage, databases, APIs) will need to handle the PascalCase → kebab-case change.
Release 20.0.0
This release includes updates to 4 packages with breaking changes, new features, and improvements.
Packages Being Released
Highlights
🎨 Design Tokens (8.2.0)
AnimationDurationenum for standardized animation timing values⚛️ Design System React (0.8.0)
CorporateFareiconInputcomponent@metamask/utilspeer dependency to 11.10.0📱 Design System React Native (0.7.0)
Label,HeaderBase,Skeleton,Card,BottomSheetFooter,Toast,InputCorporateFareiconBottomSheetOverlaycomponent for modal interactionsButtonBasesizing issues in flex layoutstw.style()for better type safety🔧 Other Packages
@metamask/utilsdependencyBreaking Changes
Enum Value Format Change (React & React Native)
All component enum values (except icon names) now use kebab-case format at runtime:
Migration:
ButtonVariant.Primary)'Primary'→'primary','TopRight'→'top-right')Context: This prepares for migration from enums to string union types per ADR #127
Critical Fix
This release includes the yarn.lock update that was missing from the original Release 20.0.0 attempt. The peer dependency change from
@metamask/design-tokens^8.1.0to^8.2.0now has the corresponding yarn.lock update, preventing the publish workflow failure.Context
This is a recreation of Release 20.0.0 after:
See PR #930 for revert details.
🤖 Generated with Claude Code
Note
Medium Risk
Mostly a release/versioning PR, but it includes a documented breaking change to enum runtime values and dependency range updates that can affect downstream consumers relying on persisted/transmitted enum strings.
Overview
Bumps the monorepo release to
20.0.0and publishes new versions of@metamask/design-tokens(8.2.0),@metamask/design-system-react(0.8.0),@metamask/design-system-react-native(0.7.0), and@metamask/design-system-shared(0.1.3).Updates changelogs to document the release contents (including a breaking kebab-case standardization for non-icon enum runtime values, new React/React Native components/icons, and the
AnimationDurationtoken export), and aligns@metamask/design-system-react-nativepeer dependency on@metamask/design-tokensto^8.2.0with the correspondingyarn.lockupdate.Written by Cursor Bugbot for commit f049d15. This will update automatically on new commits. Configure here.