Release 42.0.0#1195
Conversation
Transform the auto-generated Uncategorized changelog entries into consumer-facing Keep a Changelog sections for design-system-shared (0.20.0), design-system-react (0.24.0), and design-system-react-native (0.27.0). Drop dev-only noise (auto-changelog bump, dependency alignment, migration-docs-only PRs). Flag the two React Native breaking changes for 0.27.0 — the panGestureHandlerProps removal (RNGH v2 migration) and the HeaderBase variant API removal — and split the accumulating "0.24.0 to 0.x.0" migration placeholder into concrete 0.26.0 to 0.27.0 and 0.24.0 to 0.25.0 sections. Remove the stale panGestureHandlerProps documentation from the BottomSheet and BottomSheetDialog READMEs now that the prop no longer exists.
📖 Storybook Preview |
|
|
||
| ### Added | ||
|
|
||
| - Added `FlashFilled` icon (filled lightning bolt) to `IconName`, keeping the centralized icon set aligned across React and React Native ([#1191](https://github.com/MetaMask/metamask-design-system/pull/1191)) |
There was a problem hiding this comment.
This groups only additive shared type and icon exports, which lets reviewers verify the cross-platform contract without treating this release commit as the source of runtime implementation changes.
|
|
||
| ### Added | ||
|
|
||
| - Added `TextField` for labeled text entry with optional helper and validation text, exposing `TextFieldSize` and `TextFieldType` ([#1170](https://github.com/MetaMask/metamask-design-system/pull/1170)) |
There was a problem hiding this comment.
React web is additive in this release: the shared changelog records the type contract while this entry records the exported component surface reviewers should expect consumers to import.
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Removed `panGestureHandlerProps` from `BottomSheet` and `BottomSheetDialog` following the migration to the `react-native-gesture-handler` v2 `GestureDetector`/`Gesture.Pan()` API ([#1165](https://github.com/MetaMask/metamask-design-system/pull/1165)) |
There was a problem hiding this comment.
This is marked breaking because the public prop is gone even though its only intended simultaneousHandlers path was not functioning; the migration guide gives the consumer-facing before and after.
| <!-- TODO: Replace 0.x.0 with the actual next released version when this BannerBase follow-up ships. --> | ||
|
|
||
| ### From version 0.24.0 to 0.x.0 | ||
| ### From version 0.26.0 to 0.27.0 |
There was a problem hiding this comment.
The release window starts at 0.26.0 so the 0.27.0 guide only covers breaking changes shipped in this release; older BannerBase guidance is preserved under its original 0.25.0 section below.
| <BottomSheet goBack={goBack}>{children}</BottomSheet> | ||
| ``` | ||
|
|
||
| If you were relying on `simultaneousHandlers` for nested scroll behaviour, this was not functioning correctly in the previous version. First-class support for simultaneous gesture handling will be addressed in a follow-up. |
There was a problem hiding this comment.
The simultaneousHandlers note explains why removing this escape hatch should not regress a working consumer path, while still calling out that first-class nested gesture support is a separate follow-up.
| </BottomSheet>; | ||
| ``` | ||
|
|
||
| ### `twClassName` |
There was a problem hiding this comment.
Missed in the PR to remove panGestureHandlerProps. The removed README section would now contradict the migration guide because BottomSheet no longer forwards a PanGestureHandler shim through to the dialog.
| </BottomSheetDialog>; | ||
| ``` | ||
|
|
||
| ### `twClassName` |
There was a problem hiding this comment.
This README now lists only the props still available after the RNGH v2 migration, so consumers are not pointed at the removed patch-only gesture escape hatch. Was missed in PR.
|
|
||
| ### From version 0.24.0 to 0.25.0 | ||
|
|
||
| #### BannerBase: `onClose` is now the only close-button behavior API |
There was a problem hiding this comment.
BannerBase is kept in the migration guide but moved under 0.24.0 to 0.25.0 because that API change shipped in the prior RN release; this keeps 0.27.0 focused on the breaking changes consumers encounter when upgrading from 0.26.0.
Release 42.0.0
This release curates the changelogs for three published packages into consumer-facing Keep a Changelog entries. It adds the
FlashFilledicon andSelectButtonSizeacross platforms, adds theTextFieldcomponent to React web, and ships two React Native breaking changes: thepanGestureHandlerPropsremoval (part of thereact-native-gesture-handlerv2 migration) and the removal of the variant-based title API fromHeaderBase/BottomSheetHeader.📦 Package Versions
@metamask/design-system-shared: 0.20.0 (was 0.19.0)@metamask/design-system-react: 0.24.0 (was 0.23.1)@metamask/design-system-react-native: 0.27.0 (was 0.26.0)🔄 Shared Type Updates (0.20.0)
Component Type Additions (#1191, #1177, #1170)
What Changed:
FlashFilledto theIconNameconst so the filled lightning bolt is available on both platforms.SelectButtonSizesoSelectButtonexposes a semantic size type shared across platforms.TextFieldPropsSharedfor the cross-platform text field input contract.Impact:
🌐 React Web Updates (0.24.0)
Added
TextFieldfor labeled text entry with optional helper and validation text, exposingTextFieldSizeandTextFieldType(feat:TextFieldmigration (extension) #1170)FlashFilledicon (filled lightning bolt) toIconName(feat(shared,react,react-native): add FlashFilled icon #1191)📱 React Native Updates (0.27.0)
Added
FlashFilledicon (filled lightning bolt) toIconName(feat(shared,react,react-native): add FlashFilled icon #1191)SelectButtonSizesoSelectButtonexposes a semantic size type (feat(rn): add SelectButtonSize and align SelectButton with Figma #1177)Changed
panGestureHandlerPropsfromBottomSheetandBottomSheetDialogfollowing the migration to thereact-native-gesture-handlerv2GestureDetector/Gesture.Pan()API (chore: Align React Native and Expo dependencies with mobile #1165)HeaderBaseandBottomSheetHeader—variant,HeaderBaseVariant,BottomSheetHeaderVariant, andHeaderBase'stitleTestID(refactor(rn): simplify HeaderBase text API #1103)HeadingSmtreatment; pass customchildrenfor bespoke title layouts and usetextProps.testIDin place oftitleTestIDSegmentGroupsegment spacing fromgap-3togap-1for tighter grouped segments (refactor: updated segment group style and gap #1194)Fixed
HeaderStandardAnimatedruntime crash under React Native Reanimated 4 by inlining the scroll-handler worklet (fix(HeaderStandardAnimated): inline scroll update to fix Reanimated 4 UI-thread error #1185)BottomSheet,BottomSheetOverlay,Icon, and the animatedButtonAnimatedandSpinnercomponents (fix(rn): web rendering compatibility for BottomSheet, BottomSheetOverlay, Icon, and animated components #1187)Removed
panGestureHandlerPropsfromBottomSheet/BottomSheetDialog(React Native Only)What Changed:
panGestureHandlerPropsprop. The components migrated from the deprecated RNGH v1PanGestureHandlerJSX component to the v2GestureDetector+Gesture.Pan()API.simultaneousHandlers(the only real-world use case) was never wired up under the old shim, so no working behavior is lost.Migration:
Removed variant-based title API from
HeaderBase/BottomSheetHeader(React Native Only)What Changed:
variant,HeaderBaseVariant,BottomSheetHeaderVariant, andHeaderBase'stitleTestID.HeadingSmtreatment; custom layouts usechildren, andtitleTestIDis replaced bytextProps.testID.Migration:
See migration guide for complete instructions:
🔗 Consumer note: MetaMask Mobile
MetaMask Mobile currently consumes
@metamask/design-system-react-native@0.20.0and applies a local yarn patch —.yarn/patches/@metamask-design-system-react-native-npm-0.20.0-2ae4d6f1dd.patch— to migrateBottomSheetDialogfromPanGestureHandlertoGestureDetectorfor its React Native Reanimated 4 upgrade (MetaMask/metamask-mobile#29470).This release upstreams that exact migration natively (#1165). Once mobile bumps to
0.27.0, it can drop that yarn patch — the package now uses the RNGH v2GestureDetector/Gesture.Pan()API on its own.Compatibility note: the package keeps
react-native-reanimatedatpeerDependencies: >=3.17.0(unchanged). It was validated against mobile's current Reanimated 3.19 and is forward-compatible with the incoming Reanimated 4.1.x (the #1185 worklet fix works on both), so no peer-dependency bump is required.✅ Checklist
yarn changelog:validate)TextFieldcomponent + iconPre-merge author checklist
yarn build && yarn test && yarn lint)yarn changelog:validate)Pre-merge reviewer checklist
Note
Medium Risk
No runtime code in the diff, but the published React Native 0.27.0 changelog documents breaking BottomSheet and Header API changes that require consumer migrations.
Overview
Release 42.0.0 bumps the monorepo to 42.0.0 and publishes @metamask/design-system-shared@0.20.0, @metamask/design-system-react@0.24.0, and @metamask/design-system-react-native@0.27.0 with finalized Keep a Changelog entries and compare links.
The diff is mostly release packaging: version fields in root and package
package.jsonfiles, new changelog sections for those versions, and doc updates. React Native docs droppanGestureHandlerPropsfromBottomSheet/BottomSheetDialogREADMEs;MIGRATION.mdadds a 0.26.0 → 0.27.0 section (bottom-sheet gesture prop removal, header title API) and moves BannerBase guidance under 0.24.0 → 0.25.0.What consumers get in this release (documented in changelogs, not new code in this PR): shared
FlashFilled,SelectButtonSize,TextFieldPropsShared; webTextFieldandFlashFilled; nativeFlashFilled,SelectButtonSize, two breaking API removals (panGestureHandlerProps, headervariant/titleTestID), tighterSegmentGroupspacing, Reanimated 4 / RN Web fixes.Reviewed by Cursor Bugbot for commit 6710621. Bugbot is set up for automated code reviews on this repo. Configure here.