chore: add missing React Native component exports#967
Merged
Conversation
Contributor
📖 Storybook Preview |
georgewrmarshall
commented
Mar 9, 2026
georgewrmarshall
left a comment
Contributor
Author
There was a problem hiding this comment.
Shouldn't export consts of any kind
|
|
||
| export { ButtonBase, ButtonBaseSize } from './ButtonBase'; | ||
| export type { ButtonBaseProps } from './ButtonBase'; | ||
| export { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase'; |
Contributor
Author
There was a problem hiding this comment.
Remove this
Suggested change
| export { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase'; |
Comment on lines
+183
to
+185
| TOAST_VISIBILITY_DURATION, | ||
| TOAST_ANIMATION_DURATION, | ||
| TOAST_BOTTOM_PADDING, |
Contributor
Author
There was a problem hiding this comment.
Remove these consts
Suggested change
| TOAST_VISIBILITY_DURATION, | |
| TOAST_ANIMATION_DURATION, | |
| TOAST_BOTTOM_PADDING, |
Contributor
📖 Storybook Preview |
Contributor
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Missing
SensitiveTextLengthexport from top-level barrel- Added
SensitiveTextLengthre-export topackages/design-system-react-native/src/components/index.tsto match the component barrel and docs.
- Added
Or push these changes by commenting:
@cursor push d9dc166baa
Preview (d9dc166baa)
diff --git a/packages/design-system-react-native/src/components/index.ts b/packages/design-system-react-native/src/components/index.ts
--- a/packages/design-system-react-native/src/components/index.ts
+++ b/packages/design-system-react-native/src/components/index.ts
@@ -148,7 +148,7 @@
export { Skeleton } from './Skeleton';
export type { SkeletonProps } from './Skeleton';
-export { SensitiveText } from './SensitiveText';
+export { SensitiveText, SensitiveTextLength } from './SensitiveText';
export type { SensitiveTextProps } from './SensitiveText';
export { TabEmptyState } from './TabEmptyState';
georgewrmarshall
commented
Mar 9, 2026
| export { BannerBase } from './BannerBase'; | ||
| export type { BannerBaseProps } from './BannerBase'; | ||
|
|
||
| export { BottomSheet } from './BottomSheet'; |
Contributor
Author
There was a problem hiding this comment.
Making BottomSheet and BottomSheetDialog available from library
georgewrmarshall
commented
Mar 9, 2026
Comment on lines
+61
to
+62
| BottomSheetRef, | ||
| BottomSheetPostCallback, |
Contributor
Author
There was a problem hiding this comment.
We likely won't need these types but it doesn't hurt
Contributor
📖 Storybook Preview |
kirillzyusko
previously approved these changes
Mar 9, 2026
fe63f0c to
fc695e0
Compare
Contributor
📖 Storybook Preview |
kirillzyusko
approved these changes
Mar 10, 2026
georgewrmarshall
added a commit
that referenced
this pull request
Mar 10, 2026
## Release 25.0.0 This release includes new components migrated from Extension and Mobile, breaking API improvements to ButtonIcon and Input components, and continued ADR-0003/0004 type migrations. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.4.0** - `@metamask/design-system-react`: **0.11.0** - `@metamask/design-system-react-native`: **0.11.0** ### 🔄 Shared Type Updates (0.4.0) #### Component Type Additions (#964, #955) Added shared types for newly migrated components following ADR-0003 and ADR-0004 patterns: **What Changed:** - Added `ButtonFilter` shared types with `ButtonFilterVariant` const object and `ButtonFilterPropsShared` - Added `BannerBase` shared types with `BannerBaseSeverity` const object and `BannerBasePropsShared` **Impact:** - Enables consistent ButtonFilter and BannerBase implementations across React and React Native - Continues ADR-0003/0004 const-object + string-union pattern adoption ### 🌐 React Web Updates (0.11.0) #### Added - Added `ButtonFilter` component for filter button functionality (#964) - Added `BannerBase` component for creating custom banner notifications (#961) #### Changed - **BREAKING:** Updated `ButtonIcon` API to use `variant` prop instead of `isInverse` and `isFloating` boolean props (#948) - Updated `Ai` icon to filled version for visual consistency (#970) ### 📱 React Native Updates (0.11.0) #### Added - Added `ButtonFilter` component (#964) - Added `BottomSheet` component for modal interactions (#963) - Added `MainActionButton` component for primary CTAs (#952) - Added `BannerBase` component for custom banners (#955) - Added `ListItem` component for standardized list rows (#958) - Added `TabEmptyState` component for empty states (#949) - Added `BottomSheetDialog` component for dialogs (#905) #### Changed - **BREAKING:** Updated `ButtonIcon` API to use `variant` prop instead of `isInverse` and `isFloating` boolean props (#948) - **BREAKING:** `Input` component now requires `value` prop and is controlled-only (#960) - Updated `Ai` icon to filled version (#970) #### Fixed - Fixed iOS placeholder alignment issue in `Input` component (#960) - Fixed missing component exports (#967) ###⚠️ Breaking Changes #### ButtonIcon Variant Prop (Both Platforms) **What Changed:** - Removed `isInverse` and `isFloating` boolean props - Added `variant` prop with three options: - `ButtonIconVariant.Default` (transparent background - default) - `ButtonIconVariant.Filled` (muted background with rounded corners - new) - `ButtonIconVariant.Floating` (colored background with inverse icon - replaces `isFloating`) **Migration:** ```tsx // Before <ButtonIcon name={IconName.Add} isFloating /> // After <ButtonIcon name={IconName.Add} variant={ButtonIconVariant.Floating} /> ``` See migration guides for complete instructions: - [React Migration Guide](./packages/design-system-react/MIGRATION.md#from-version-0100-to-0110) - [React Native Migration Guide](./packages/design-system-react-native/MIGRATION.md#from-version-0100-to-0110) #### Input Controlled-Only (React Native Only) **What Changed:** - Removed `defaultValue` prop - `value` prop is now required - All Input instances must be controlled with state management **Migration:** ```tsx // Before <Input placeholder="Enter text" defaultValue="Initial" onChange={handleChange} /> // After const [text, setText] = useState('Initial'); <Input placeholder="Enter text" value={text} onChange={setText} /> ``` **Impact:** - Affects `Input` and `TextField` components - Provides consistent behavior and fixes iOS placeholder alignment See [React Native Migration Guide](./packages/design-system-react-native/MIGRATION.md#from-version-0100-to-0110) for complete instructions. ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [x] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - design-system-shared: minor (0.3.0 → 0.4.0) - new shared types - design-system-react: minor (0.10.0 → 0.11.0) - new components + breaking ButtonIcon change - design-system-react-native: minor (0.10.0 → 0.11.0) - new components + breaking ButtonIcon and Input changes - [x] Breaking changes documented with migration guidance - [x] Migration guides updated with before/after examples - [x] PR references included in changelog entries <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Although this PR is mostly versioning/docs, it formalizes breaking public API changes (`ButtonIcon` and RN `Input`) that will require downstream updates and could cause consumer build failures if missed. > > **Overview** > Bumps the monorepo release to `25.0.0` and publishes new package versions (`@metamask/design-system-react@0.11.0`, `@metamask/design-system-react-native@0.11.0`, `@metamask/design-system-shared@0.4.0`) with updated changelogs. > > Documents newly added components/types (`ButtonFilter`, `BannerBase`, plus several React Native-only additions like `BottomSheet`, `ListItem`, etc.) and **breaking API changes**: `ButtonIcon` replaces `isInverse`/`isFloating` with a `variant` prop (React + RN), and React Native `Input` becomes controlled-only (requires `value`, removes `defaultValue`). Migration guides are updated with before/after examples and new compare links. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0148a27. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
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.

Description
Adds the missing public exports from
packages/design-system-react-native/src/components/index.tsso the top-level component barrel matches the component-level barrels.This includes the previously missing
BottomSheet,BottomSheetDialog,SensitiveText,temp-components/ImageOrSvg, andtemp-components/Spinnerexports, plus the related public types and existing RN symbols that were not being re-exported at the top level.Related issues
Fixes:
Manual testing steps
yarn build.yarn test.yarn lint.src/components/index.tsbarrel re-exports the same public symbols exposed by the component-levelindex.tsfiles.Screenshots/Recordings
Not applicable. Barrel export change only.
Before
Not applicable.
After
Not applicable.
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Low Risk
Low risk: only updates the React Native components barrel to re-export existing components/types, with no runtime logic changes beyond module export surface.
Overview
Aligns the top-level React Native
src/components/index.tsbarrel with component-level barrels by adding missing public exports.Newly re-exports
BottomSheet/BottomSheetDialog,SensitiveText, and temp componentsImageOrSvgandSpinner(plus their public types), and expands existing exports to includeBoxBorderWidthand additionalToastsymbols (ToastCloseButtonVariant,ToastContextWrapper,ToastProps).Written by Cursor Bugbot for commit fc695e0. This will update automatically on new commits. Configure here.