Release/40.0.0#1173
Merged
Merged
Conversation
Contributor
📖 Storybook Preview |
kirillzyusko
approved these changes
May 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 40.0.0
This release updates the shared layer and both UI packages: new extension-aligned primitives and form helpers on web, new selection and multi-line input components on React Native, shared types and context for those APIs, coordinated
BannerBaseclose behavior, andButtonBasedefaults driven bysize(with migration guidance for wrappers that overrode label, icon, or spacing).Package versions
@metamask/design-system-shared: 0.18.0@metamask/design-system-react: 0.23.0@metamask/design-system-react-native: 0.25.0Shared type updates (0.18.0)
Component type additions (#1172, #1164, #1169, #1141)
What changed
SelectButtonshared props and variants (SelectButtonPropsShared,SelectButtonVariant,SelectButtonEndArrow).SegmentGroupshared props andSegmentGroupContext(SegmentGroupPropsShared,SegmentGroupContext,SegmentGroupContextValue).SensitiveTextshared types (SensitiveTextLength,SensitiveTextPropsShared, and related exports).HelpTextshared types (HelpTextSeverity,HelpTextPropsShared, and related exports).TextAreaPropsSharedfor multi-line input wrappers.Impact
React web updates (0.23.0)
Added
PopoverHeader— popover title rows and trailing actions, extension migration patterns (#1158).ModalHeader— modal title rows and accessory slots (#1144).Label— captions paired with form controls (#1152).SensitiveText— mask/reveal for sensitive strings with configurable visible length (#1164).HelpText— helper, success, warning, and error copy under inputs and controls (#1169).Changed
ButtonBase— labelTextvariant, start/end icon sizes, and internal spacing are derived fromsizefor eachButtonBaseSize(#1150). See Migration guide — ButtonBase.BannerBase— close behavior usesonCloseonly;closeButtonProps.onClickis not the dismiss API;closeButtonPropsis for customization (#1166).React Native updates (0.25.0)
Added
SelectButton,SegmentButton,SegmentGroup(#1172).SensitiveText, aligned with the shared contract (#1164).HeaderStandardAnimatedanduseHeaderStandardAnimated(#1151).TextArea(#1141).Changed
ButtonBase— same size-driven defaults as web (#1150). See Migration guide — ButtonBase.BannerBase— close behavior usesonCloseonly;closeButtonProps.onPressis not the dismiss API (#1166).Breaking changes
BannerBaseclose API (both platforms)What changed
onClosefor dismiss behavior.closeButtonProps.onClickis removed from that role. The close control is tied toonClose.closeButtonPropsremains for non-behavioral customization (e.g.data-testid, accessibility, styling hooks).onCloseinstead ofcloseButtonProps.onPressfor dismiss behavior.Migration
closeButtonProps.onClick/closeButtonProps.onPresstoonClose.closeButtonProps, also provideonClose.Impact
closeButtonPropsor showed a close button withoutonClosemust be updated.See:
ButtonBase: not called out here as a semver-breaking API change; consumers who overrode typography, icon size, or spacing onButtonBasewrappers should follow the ButtonBase migration sections linked above.Checklist
yarn changelog:validatepasses@metamask/design-system-shared: minor (0.17.x → 0.18.0) — new shared exports for select/segment, sensitive text, help text, text area@metamask/design-system-react: minor (0.22.x → 0.23.0) — new components;BannerBase/ButtonBasebehavior@metamask/design-system-react-native: minor (0.24.x → 0.25.0) — new components;BannerBase/ButtonBasebehaviorBannerBase) in MIGRATION with before/after examplesPre-merge author checklist
yarn build && yarn test && yarn lintyarn changelog:validatePre-merge reviewer checklist