All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Complete MMDS Component List: MMDS Usage sheet now shows all available MMDS components, including those with 0 instances
- Previously only showed components that were actively used
- Now displays the full component list with usage counts, making it easier to identify available but unused components
- Helps track MMDS component adoption opportunities
-
Totals Rows: All sheets now include totals at the bottom for easy summary analysis
- Migration Progress: Shows total deprecated instances, total MMDS instances, and overall migration percentage (with accurate deduplication)
- Intermediate Migrations: Shows total instances awaiting intermediate migration
- MMDS Usage: Shows total MMDS component instances across all components
- No Replacement: Shows total instances of components without direct replacements
- Console output now displays these totals for quick visibility
-
Grouped Display with Summary Rows: Migration Progress sheet now groups deprecated components by their MMDS replacement
- Components mapping to the same MMDS component are displayed together (e.g., all Icon variants grouped together)
- Individual rows show deprecated component details with "-" for MMDS instances and percentage to avoid misleading duplicates
- Summary rows (format: "→ Component Total") show aggregated deprecated count, MMDS instances, and accurate migration percentage for each group
- Single-mapping components continue to display normally with all columns filled
- Provides much more accurate and meaningful migration percentages
-
Migration Progress Totals: Fixed duplicate counting when multiple deprecated components map to the same MMDS component
- Each MMDS component is counted only once in the total, providing accurate migration percentage
- Individual rows still show correct per-component breakdown
-
Test Suite: Updated tests to work with date-stamped output files
- Added helper function to dynamically find generated XLSX files
- All 14 tests passing
- Version Number: Corrected CLI version number in index.js to match package.json version (was incorrectly set to "3.0.0")
- Output File Date Stamps: Generated XLSX files now automatically include today's date in the filename
- Format:
{project}-component-metrics-YYYY-MM-DD.xlsx - Example:
extension-component-metrics-2026-02-21.xlsx - Makes it easier to track metrics over time and compare historical data
- Format:
-
Extension Component Mappings: Corrected replacement targets to reflect actual migration state
- Set 30+ component-library versions as most up to date with no MMDS replacement: BannerAlert, BannerBase, BannerTip, FileUploader, FormTextField, HeaderBase, HelpText, Input, Label, LottieAnimation, Modal components (7), PickerNetwork, SelectButton, SelectOption, SelectWrapper, SensitiveText, Skeleton, Tag, TagUrl, Textarea, TextFieldSearch
- Added intermediate migrations to component-library: Chip→Tag, FormField→FormTextField, Menu→Popover
- Fixed replacement targets: SiteOrigin→AvatarFavicon (was Text), ButtonLink→TextButton (was ButtonBase), ActionableMessage/Callout→BannerAlert (was BannerBase)
-
Mobile Component Mappings: Updated 60+ components to reflect actual migration state
- Set component-library versions as most up to date with no MMDS replacement: Accordion, AccountBalance, AccountBase, AccountCell, ActionListItem, AggregatedPercentage, Avatar, Badge, BadgeBase, Banner components (3), BottomSheet components (3), ButtonFilter, ButtonHero, ButtonPill, ButtonSemantic, ButtonToggle, Card, Cell components (5), ConditionalScrollView, ContractBox components (2), CustomInput, CustomSpendCap, Header components (5), HelpText, Input, KeyValueRow, Label, ListItem components (6), Loader, MainActionButton, Modal components (2), Multichain components (4), MultiSelectItem, PercentageChange, Picker components (3), QuickAction components (2), RadioButton, SegmentedControl, Select components (4), SensitiveText, Skeleton, Tab components (6), Tag components (3), TextField, TextFieldSearch, TextWithPrefixIcon, TitleLeft, Toast
- Added intermediate migrations to component-library: SheetBottom→BottomSheet, SheetHeader→BottomSheetHeader
- Fixed replacement targets: ButtonLink→TextButton (was ButtonBase), BadgeNotifications→BadgeCount
- Component replacement mappings now accurately reflect which components are the most current implementations
- Intermediate migration paths correctly identify multi-step migrations through component-library before eventual MMDS migration
- Mobile Components: Added 10 missing components to mobile deprecatedComponents list:
- BadgeNotifications
- HeaderBase
- ListItemMultiSelect
- ListItemSelect
- RadioButton
- SelectButton
- SelectOption
- SelectValue
- SensitiveText
- Skeleton
- Documentation: Added Future Feature Ideas section to README
- Props Audit concept
- Team Adoption Metrics using CODEOWNERS
- Mobile Components: Updated to 110 deprecated components (from 100)
- CHANGELOG: Corrected inaccuracies in version history
- Removed duplicate 2.0.0 entry
- Fixed dates and component counts
- Clarified that 2.1.0 did not include the 10 mobile components
- Documentation: CHANGELOG.md created with full version history from 1.0.0 through 2.1.0
2.0.0 - 2026-01-21
This release represents a complete architectural overhaul to better align with migration tracking goals.
- Explicit Component Lists: Introduced
deprecatedComponentsandcurrentComponentsarrays per project - Missing Components: Added 5 components to Extension tracking:
- FileUploader
- LottieAnimation
- Skeleton
- SensitiveText
- Textarea (restored)
- Comprehensive Test Suite: Added Jest test suite with 8 passing tests
- Test fixtures for deprecated, current, and mixed usage
- Tests for source separation and file path tracking
- JSON output format testing
- Test Scripts: Added
yarn testandyarn test:watchcommands - Jest Configuration: Added jest.config.js for proper test execution
- BREAKING: Simplified from 4 projects to 2 (extension and mobile only)
- BREAKING: Removed
design-system-reactanddesign-system-react-nativeproject configs - BREAKING: Split
componentsarray intodeprecatedComponentsandcurrentComponents - Architecture: Local
/component-libraryimports now map todeprecatedComponents - Architecture: NPM package imports now map to
currentComponents - Extension Components: Now tracks 47 deprecated + 24 current components
- Mobile Components: Now tracks 100 deprecated + 25 current components
- Component Lists: Updated to match actual folder structure and NPM package exports
- Removed AvatarAccount from Extension deprecatedComponents (only exists in NPM package)
- Component lists now accurately reflect the actual local component-library folders
- Test expectations now match actual component usage patterns
- All 8 tests passing
- Updated README.md with new architecture
- Clarified two-project structure (extension and mobile)
- Documented
deprecatedComponentsvscurrentComponentsmental model
- Dependency updates via Dependabot
1.0.1 - 2024-10-04
- Added missing component
- Updated dependencies
- Updated brace-expansion
- Updated cross-spawn
1.0.0 - 2024-10-04 - Initial Release
- Initial CLI tool for design system metrics
- Support for Extension and Mobile projects
- CSV and JSON output formats
- Component usage tracking via AST parsing
- Babel-based JSX parsing
- Commander-based CLI interface
If you were using v1.x, here's what changed:
Before (v1.x):
{
"projects": {
"extension": {
"components": ["Button", "Icon", ...]
}
}
}After (v2.0.0):
{
"projects": {
"extension": {
"deprecatedComponents": ["Button", "Icon", ...],
"currentComponents": ["Button", "Icon", ...]
}
}
}The following projects were removed:
design-system-reactdesign-system-react-native
To audit the design system packages themselves, run the tool directly in those repositories.
Output file naming remains the same:
{project}-component-metrics-deprecated.csv{project}-component-metrics-current.csv
- ✅ Clearer separation between deprecated and current components
- ✅ More accurate component lists matching actual codebase
- ✅ Better migration tracking (old vs new)
- ✅ Comprehensive test coverage
- ✅ Simpler, more focused architecture