Harden MUI 4 → BUI codemods and expand recipe coverage#136
Open
schultzp2020 wants to merge 11 commits into
Open
Harden MUI 4 → BUI codemods and expand recipe coverage#136schultzp2020 wants to merge 11 commits into
schultzp2020 wants to merge 11 commits into
Conversation
Fix invalid Text variants, remove dead Surface Paper mapping, and improve button/field/menu transforms. Add Switch, Avatar, Skeleton, Card, Autocomplete, and Link packages plus a local recipe workflow for dry-runs. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Tighten Link coexistence/path skips, emit Paper default-elevation TODOs and outlined→secondary metrics, and document operator expectations after a full backstage dry-run. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace regex source rewrites in dialog, autocomplete, tabs, textfield, select, and styles CSS merge with ast-grep walks and range-based edits. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR hardens and expands the MUI 4 → BUI codemod suite by fixing several transform correctness issues, adding new component codemods, and updating the end-to-end migration recipe (including a local dry-run workflow).
Changes:
- Fix and harden existing transforms (Typography→Text variant mapping, Paper heuristic, IconButton/Button defaults + handler rewrites, AST-first rewrites in multiple codemods).
- Add new MUI→BUI codemod packages (Avatar, Skeleton, Card, Link, Autocomplete→Combobox/SearchAutocomplete, Switch) and wire them into the recipe workflows.
- Add/refresh operator-facing documentation (thin per-package READMEs) and changesets for release management.
Reviewed changes
Copilot reviewed 280 out of 284 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Add new workspace codemod packages to lockfile. |
| README.md | List new misc codemods and update descriptions. |
| codemods/v1.51.0/render-test-app-nav-migration/scripts/codemod.ts | Use generic parse<TSX>(...) helper pattern. |
| codemods/v1.50.0/migrate-permissioned-route/scripts/codemod.ts | Use generic parse<TSX>(...) helper pattern. |
| codemods/misc/remove-mui-dependencies/README.md | Add operator README stub for cleanup codemod. |
| codemods/misc/README.md | Update recommended ordering + local dry-run notes. |
| codemods/misc/mui4-to-bui-migration-recipe/workflow.yaml | Add new codemods to published recipe order. |
| codemods/misc/mui4-to-bui-migration-recipe/workflow.local.yaml | Add local-path workflow for pre-publish dry-runs. |
| codemods/misc/mui4-to-bui-migration-recipe/scripts/validate-workflows.sh | Validate both registry and local workflows. |
| codemods/misc/mui4-to-bui-migration-recipe/package.json | Run validation script in tests. |
| codemods/misc/mui4-to-bui-migration-recipe/.npmignore | Ensure workflow.local.yaml is not published. |
| codemods/misc/migrate-mui-typography-to-text/tests/preserve-children/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/noop-no-import/input.tsx | Update fixture to reflect new variant mapping behavior. |
| codemods/misc/migrate-mui-typography-to-text/tests/noop-no-import/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/named-barrel-import/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/merge-existing-bui/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/gutter-bottom-dropped/expected.tsx | Update expected mapping for gutterBottom case. |
| codemods/misc/migrate-mui-typography-to-text/tests/extra-props-preserved/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/dialog-content-text/expected.tsx | Update expected heading variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/tests/component-to-as/expected.tsx | Update expected variant mapping. |
| codemods/misc/migrate-mui-typography-to-text/scripts/codemod.ts | Revise Typography→Text variant map to valid TextVariants. |
| codemods/misc/migrate-mui-typography-to-text/README.md | Add operator README stub for Typography→Text codemod. |
| codemods/misc/migrate-mui-tooltip-to-bui-tooltip/README.md | Add operator README stub for Tooltip codemod. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/password-field/metrics.json | Add PasswordField fixture metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/password-field/input.tsx | Add password TextField fixture. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/password-field/expected.tsx | Expect PasswordField output + onChange rewrite. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/partial-barrel-import/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/number-field/metrics.json | Add NumberField fixture metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/number-field/input.tsx | Add number TextField fixture. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/number-field/expected.tsx | Expect NumberField output + onChange rewrite. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/named-barrel-import/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline/metrics.json | Add TextAreaField fixture metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline/input.tsx | Add multiline TextField fixture. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline/expected.tsx | Expect TextAreaField output. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline-todo/expected.tsx | Remove obsolete TODO-based expected output fixture. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/merge-existing-bui/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/disabled-and-fullwidth/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/basic-controlled/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/aliased-import/metrics.json | Include migrated component name in metrics. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/README.md | Add operator README stub for TextField codemod. |
| codemods/misc/migrate-mui-textfield-to-bui-textfield/codemod.yaml | Update package description for new coverage. |
| codemods/misc/migrate-mui-tabs-to-bui-tabs/scripts/codemod.ts | Switch to AST-first identifier rewriting for onChange handler transforms. |
| codemods/misc/migrate-mui-tabs-to-bui-tabs/README.md | Add operator README stub for Tabs codemod. |
| codemods/misc/migrate-mui-switch-to-bui-switch/workflow.yaml | Add workflow for Switch codemod. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tsconfig.json | Add TS config for Switch codemod package. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/noop-no-import/input.tsx | Add Switch noop fixture. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/noop-no-import/expected.tsx | Add Switch noop expected output. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/named-barrel-import/metrics.json | Add barrel-import Switch fixture metrics. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/named-barrel-import/input.tsx | Add FormControlLabel+Switch fixture. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/named-barrel-import/expected.tsx | Expect label + prop remaps in output. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/merge-existing-bui/metrics.json | Add merge-into-existing import fixture metrics. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/merge-existing-bui/input.tsx | Add merge-into-existing import fixture. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/merge-existing-bui/expected.tsx | Expect merged BUI import output. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/happy-path-standalone/metrics.json | Add happy-path Switch fixture metrics. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/happy-path-standalone/input.tsx | Add standalone Switch fixture. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/happy-path-standalone/expected.tsx | Expect prop renames in output. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/core-import/metrics.json | Add deep core import fixture metrics. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/core-import/input.tsx | Add deep core import fixture. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/core-import/expected.tsx | Expect deep import replacement. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/color-todo/metrics.json | Add TODO fixture for unsupported Switch color prop. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/color-todo/input.tsx | Add unsupported-prop fixture input. |
| codemods/misc/migrate-mui-switch-to-bui-switch/tests/color-todo/expected.tsx | Expect TODO insertion (no transform). |
| codemods/misc/migrate-mui-switch-to-bui-switch/README.md | Add operator README stub for Switch codemod. |
| codemods/misc/migrate-mui-switch-to-bui-switch/package.json | Add Switch codemod package manifest. |
| codemods/misc/migrate-mui-switch-to-bui-switch/codemod.yaml | Add Switch codemod registry metadata. |
| codemods/misc/migrate-mui-switch-to-bui-switch/CHANGELOG.md | Add Switch package changelog. |
| codemods/misc/migrate-mui-styles-to-bui-css-modules/scripts/codemod.ts | Replace regex CSS parsing with AST-based CSS parsing/merging. |
| codemods/misc/migrate-mui-styles-to-bui-css-modules/README.md | Add operator README stub + clarify coverage/TODOs. |
| codemods/misc/migrate-mui-slider-to-bui-slider/README.md | Add operator README stub for Slider codemod. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/workflow.yaml | Add workflow for Skeleton codemod. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tsconfig.json | Add TS config for Skeleton codemod package. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/noop-no-import/input.tsx | Add Skeleton noop fixture. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/noop-no-import/expected.tsx | Add Skeleton noop expected output. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/named-barrel-import/metrics.json | Add barrel import fixture metrics. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/named-barrel-import/input.tsx | Add barrel import fixture input. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/named-barrel-import/expected.tsx | Expect BUI import + usage output. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/merge-existing-bui/metrics.json | Add merge-existing import fixture metrics. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/merge-existing-bui/input.tsx | Add merge-existing import fixture. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/merge-existing-bui/expected.tsx | Expect merged BUI import output. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/happy-path-rect/metrics.json | Add rectangle variant fixture metrics. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/happy-path-rect/input.tsx | Add rectangle variant fixture input. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/happy-path-rect/expected.tsx | Expect variant drop/normalize output. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/core-import/metrics.json | Add deep import + circle variant fixture metrics. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/core-import/input.tsx | Add deep import fixture input. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/core-import/expected.tsx | Expect variant="circle" → rounded. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/animation-todo/metrics.json | Add TODO fixture for unsupported animation prop. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/animation-todo/input.tsx | Add unsupported-prop fixture input. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/tests/animation-todo/expected.tsx | Expect TODO insertion (no transform). |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/README.md | Add operator README stub for Skeleton codemod. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/package.json | Add Skeleton codemod package manifest. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/codemod.yaml | Add Skeleton codemod registry metadata. |
| codemods/misc/migrate-mui-skeleton-to-bui-skeleton/CHANGELOG.md | Add Skeleton package changelog. |
| codemods/misc/migrate-mui-select-family-to-bui-select/scripts/codemod.ts | Rewrite onChange handler transform to be AST-first (no regex). |
| codemods/misc/migrate-mui-select-family-to-bui-select/README.md | Add operator README stub for Select codemod. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-form-control-label-checkbox/metrics.json | Add standalone checkbox fixture metrics (via FormControlLabel). |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-form-control-label-checkbox/input.tsx | Add standalone checkbox fixture input. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-form-control-label-checkbox/expected.tsx | Expect BUI Checkbox with children label. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-checkbox/metrics.json | Add standalone checkbox fixture metrics (direct Checkbox). |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-checkbox/input.tsx | Add standalone checkbox fixture input. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/tests/standalone-checkbox/expected.tsx | Expect direct prop renames. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/scripts/codemod.ts | Add standalone Checkbox/FormControlLabel handling. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/README.md | Add operator README stub for radio/checkbox codemod. |
| codemods/misc/migrate-mui-radio-checkbox-to-bui/codemod.yaml | Update package description for new coverage. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-select-menuitem-noop/metrics.json | Add metrics for popover→popover path. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-select-menuitem-noop/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-select-menuitem-noop/expected.tsx | Expect Popover rewritten under DialogTrigger. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-menu-with-trigger/metrics.json | Add metrics for popover→menu heuristic. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-menu-with-trigger/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-menu-with-trigger/expected.tsx | Expect MenuTrigger/Menu output. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-with-trigger/metrics.json | Add metrics for popover content conversion. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-with-trigger/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-with-trigger/expected.tsx | Expect DialogTrigger+Popover output. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-no-trigger/metrics.json | Add metrics for TODO case (no trigger). |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-no-trigger/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/tests/popover-content-no-trigger/expected.tsx | Expect TODO insertion (no safe rewrite). |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/README.md | Add operator README stub for Menu/Popover codemod. |
| codemods/misc/migrate-mui-menu-popover-to-bui-menu/codemod.yaml | Update package description for heuristic behavior. |
| codemods/misc/migrate-mui-list-family-to-bui-list/README.md | Add operator README stub for List codemod. |
| codemods/misc/migrate-mui-link-to-bui-link/workflow.yaml | Add workflow for Link codemod. |
| codemods/misc/migrate-mui-link-to-bui-link/tsconfig.json | Add TS config for Link codemod package. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/underline-none-standalone/metrics.json | Add fixture metrics for underline→standalone mapping. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/underline-none-standalone/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/underline-none-standalone/expected.tsx | Expect standalone prop in output. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/skip-core-components/metrics.json | Add fixture metrics for core-components coexistence. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/skip-core-components/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/skip-core-components/expected.tsx | Expect alias import to avoid name conflict. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/simple-link/metrics.json | Add simple migration fixture metrics. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/simple-link/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/simple-link/expected.tsx | Expect basic migration output. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/noop-no-import/input.tsx | Add noop fixture input. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/noop-no-import/expected.tsx | Add noop fixture expected output. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/deep-core-link-alias/metrics.json | Add deep core-components import coexistence metrics. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/deep-core-link-alias/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/deep-core-link-alias/expected.tsx | Expect aliasing output. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/component-todo/metrics.json | Fix metrics namespace for Link TODO fixture. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/component-todo/input.tsx | Add TODO fixture for router polymorphic link. |
| codemods/misc/migrate-mui-link-to-bui-link/tests/component-todo/expected.tsx | Expect TODO insertion (no safe rewrite). |
| codemods/misc/migrate-mui-link-to-bui-link/README.md | Add operator README stub for Link codemod. |
| codemods/misc/migrate-mui-link-to-bui-link/package.json | Add Link codemod package manifest. |
| codemods/misc/migrate-mui-link-to-bui-link/codemod.yaml | Add Link codemod registry metadata. |
| codemods/misc/migrate-mui-link-to-bui-link/CHANGELOG.md | Add Link package changelog. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-simple/metrics.json | Update metrics for Paper→Box + TODO behavior. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-simple/expected.tsx | Expect Box output + default-elevation TODO. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like/metrics.json | Add Paper→Card fixture metrics. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like/input.tsx | Add Paper card-like fixture input. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like/expected.tsx | Expect Card output for card-like Paper. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like-bui-children/metrics.json | Add fixture metrics for card-like detection with BUI Card* children. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like-bui-children/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-layout-to-bui-layout/tests/paper-card-like-bui-children/expected.tsx | Expect Card wrapper + merged imports. |
| codemods/misc/migrate-mui-layout-to-bui-layout/scripts/codemod.ts | Implement Paper heuristic (Box/Card + TODO), remove Surface output. |
| codemods/misc/migrate-mui-layout-to-bui-layout/README.md | Add operator README stub describing Paper heuristic. |
| codemods/misc/migrate-mui-icons-to-remix-icons/README.md | Add operator README stub for Icons codemod. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/spread-props/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/named-barrel-import/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/merge-existing-bui/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/dropped-props/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/disabled-boolean/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-secondary/metrics.json | Add color mapping metrics. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-secondary/input.tsx | Add color mapping fixture input. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-secondary/expected.tsx | Expect color→variant mapping output. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-primary/metrics.json | Add color mapping metrics. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-primary/input.tsx | Add color mapping fixture input. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/color-primary/expected.tsx | Expect color→variant mapping output. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/className-preserved/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/tests/basic-migration/expected.tsx | Expect default variant insertion. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/scripts/codemod.ts | Map IconButton color→variant + default to tertiary; onClick→onPress. |
| codemods/misc/migrate-mui-icon-button-to-button-icon/README.md | Add operator README stub for IconButton codemod. |
| codemods/misc/migrate-mui-dialog-to-bui-dialog/scripts/codemod.ts | Switch footer close button detection/transform to AST-first. |
| codemods/misc/migrate-mui-dialog-to-bui-dialog/README.md | Add operator README stub for Dialog codemod. |
| codemods/misc/migrate-mui-chip-to-tag/README.md | Add operator README stub for Chip→Tag codemod. |
| codemods/misc/migrate-mui-card-to-bui-card/workflow.yaml | Add workflow for Card codemod. |
| codemods/misc/migrate-mui-card-to-bui-card/tsconfig.json | Add TS config for Card codemod package. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/simple-card/metrics.json | Add basic Card fixture metrics. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/simple-card/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/simple-card/expected.tsx | Expect CardBody migration output. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/noop-no-import/input.tsx | Add noop fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/noop-no-import/expected.tsx | Add noop fixture expected output. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/named-barrel-import/metrics.json | Add barrel import fixture metrics. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/named-barrel-import/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/named-barrel-import/expected.tsx | Expect mixed-import migration output. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/media-todo/metrics.json | Add TODO fixture metrics for CardMedia. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/media-todo/input.tsx | Add CardMedia fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/media-todo/expected.tsx | Expect TODO insertion for CardMedia. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/header-content-actions/metrics.json | Add CardHeader/CardFooter fixtures metrics. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/header-content-actions/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/header-content-actions/expected.tsx | Expect CardHeader/CardFooter migration output. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/complex-header-todo/metrics.json | Add TODO fixture metrics for complex CardHeader. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/complex-header-todo/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-card-to-bui-card/tests/complex-header-todo/expected.tsx | Expect TODO insertion for complex CardHeader. |
| codemods/misc/migrate-mui-card-to-bui-card/README.md | Add operator README stub for Card codemod. |
| codemods/misc/migrate-mui-card-to-bui-card/package.json | Add Card codemod package manifest. |
| codemods/misc/migrate-mui-card-to-bui-card/codemod.yaml | Add Card codemod registry metadata. |
| codemods/misc/migrate-mui-card-to-bui-card/CHANGELOG.md | Add Card package changelog. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/text-button/metrics.json | Add onClick→onPress metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/text-button/expected.tsx | Expect onPress output. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/start-icon/metrics.json | Add startIcon→iconStart fixture metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/start-icon/input.tsx | Add startIcon fixture input. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/start-icon/expected.tsx | Expect iconStart output + variant mapping. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/start-icon-todo/expected.tsx | Remove obsolete TODO-based expected output fixture. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/self-closing/metrics.json | Add outlined→secondary metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/outlined-button/metrics.json | Add onClick→onPress + outlined→secondary metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/outlined-button/expected.tsx | Expect onPress output. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/no-variant/metrics.json | Add onClick→onPress metrics for default-variant case. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/no-variant/expected.tsx | Expect default tertiary variant + onPress output. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/named-barrel-import/metrics.json | Add outlined→secondary metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/merge-existing-bui/metrics.json | Add onClick→onPress metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/merge-existing-bui/expected.tsx | Expect onPress output. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/href-button-link/metrics.json | Add ButtonLink fixture metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/href-button-link/input.tsx | Add href Button fixture input. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/href-button-link/expected.tsx | Expect ButtonLink output. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/end-icon/metrics.json | Add endIcon→iconEnd fixture metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/end-icon/input.tsx | Add endIcon fixture input. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/end-icon/expected.tsx | Expect iconEnd output + variant mapping. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/contained-button/metrics.json | Add onClick→onPress metrics. |
| codemods/misc/migrate-mui-button-to-bui-button/tests/contained-button/expected.tsx | Expect onPress output. |
| codemods/misc/migrate-mui-button-to-bui-button/README.md | Add operator README stub for Button/ButtonLink codemod. |
| codemods/misc/migrate-mui-button-to-bui-button/codemod.yaml | Update package description for new coverage. |
| codemods/misc/migrate-mui-bootstrap-to-bui/README.md | Add operator README stub for bootstrap codemod. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/workflow.yaml | Add workflow for Avatar codemod. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tsconfig.json | Add TS config for Avatar codemod package. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/noop-no-import/input.tsx | Add Avatar noop fixture. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/noop-no-import/expected.tsx | Add Avatar noop expected output. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/named-barrel-import/metrics.json | Add Avatar fixture metrics. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/named-barrel-import/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/named-barrel-import/expected.tsx | Expect alt→name + import rewrite. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/missing-name-todo/metrics.json | Fix metrics namespace for Avatar TODO fixture. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/missing-name-todo/input.tsx | Add missing-name fixture input. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/missing-name-todo/expected.tsx | Expect TODO insertion (no safe rewrite). |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/merge-existing-bui/metrics.json | Add merge-existing import fixture metrics. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/merge-existing-bui/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/merge-existing-bui/expected.tsx | Expect merged BUI import output. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/happy-path-alt-as-name/metrics.json | Add alt-as-name fixture metrics. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/happy-path-alt-as-name/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/happy-path-alt-as-name/expected.tsx | Expect name + src synthesis output. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/core-import/metrics.json | Add size mapping fixture metrics. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/core-import/input.tsx | Add style width/height fixture input. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/tests/core-import/expected.tsx | Expect size mapping output. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/README.md | Add operator README stub for Avatar codemod. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/package.json | Add Avatar codemod package manifest. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/codemod.yaml | Add Avatar codemod registry metadata. |
| codemods/misc/migrate-mui-avatar-to-bui-avatar/CHANGELOG.md | Add Avatar package changelog. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/workflow.yaml | Add workflow for Autocomplete codemod. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tsconfig.json | Add TS config for Autocomplete codemod package. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/search-autocomplete/metrics.json | Add SearchAutocomplete heuristic fixture metrics. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/search-autocomplete/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/search-autocomplete/expected.tsx | Expect SearchAutocomplete output. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/research-label-todo/metrics.json | Add ambiguous heuristic TODO fixture metrics. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/research-label-todo/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/research-label-todo/expected.tsx | Expect TODO insertion (ambiguous). |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/object-options-todo/metrics.json | Add object options TODO fixture metrics. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/object-options-todo/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/object-options-todo/expected.tsx | Expect TODO insertion (object options). |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/noop-no-import/input.tsx | Add noop fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/noop-no-import/expected.tsx | Add noop fixture expected output. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/combobox-success/metrics.json | Add Combobox heuristic fixture metrics. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/combobox-success/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/combobox-success/expected.tsx | Expect Combobox output. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/ambiguous-todo/metrics.json | Add ambiguous TODO fixture metrics. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/ambiguous-todo/input.tsx | Add fixture input. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/tests/ambiguous-todo/expected.tsx | Expect TODO insertion (ambiguous). |
| codemods/misc/migrate-mui-autocomplete-to-combobox/README.md | Add operator README stub for Autocomplete heuristic. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/package.json | Add Autocomplete codemod package manifest. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/codemod.yaml | Add Autocomplete codemod registry metadata. |
| codemods/misc/migrate-mui-autocomplete-to-combobox/CHANGELOG.md | Add Autocomplete package changelog. |
| codemods/misc/migrate-mui-alert-to-bui-alert/README.md | Add operator README stub for Alert codemod. |
| codemods/misc/migrate-mui-accordion-to-bui-accordion/README.md | Add operator README stub for Accordion codemod. |
| .gitignore | Update ignore patterns (needs fix). |
| .changeset/patch-mui4-bui-bugfixes.md | Changeset for bugfix transforms. |
| .changeset/parse-generic-tsx-helpers.md | Changeset for TSX parse helper change. |
| .changeset/minor-mui4-bui-new-packages.md | Changeset for new codemod packages + recipe updates. |
| .changeset/harden-mui4-to-bui-codemods.md | Changeset for hardened existing codemods. |
| .changeset/followup-mui4-bui-review-gaps.md | Changeset for follow-up gaps and docs. |
| .changeset/docs-mui4-bui-readme-stubs.md | Changeset for README stub additions. |
| .changeset/ast-first-mui-helpers.md | Changeset for AST-first helper rewrites. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Emit size="medium" for Button, ButtonIcon, TextField, and Tag when MUI omitted size, so BUI's small default does not silently shrink controls. Co-authored-by: Cursor <cursoragent@cursor.com>
Emit size="medium" by default for Select/Combobox/SearchAutocomplete, with FormControl and renderInput TextField size fallbacks when the control itself omits size. Co-authored-by: Cursor <cursoragent@cursor.com>
Fall back to parent FormControl size when TextField omits it, and treat ternary/expression size props as dynamic across TextField, Select, Autocomplete, and Chip. Co-authored-by: Cursor <cursoragent@cursor.com>
Map h5/h6 onto the BUI title scale and infer as from MUI variant defaults so Text stacks instead of collapsing to inline spans. Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Summary
Textvariants, Paper never emits removedSurface(bare →Box bg="neutral", card-like →Card), IconButton defaults totertiary, Button omitted-variant →tertiaryiconStart/ButtonLink/onPress), TextField (TextArea/Password/Number), Menu vs Popover heuristic, standalone Checkboxworkflow.local.yamlfor pre-publish dry-runscomponentTODO, layout post-Card children, Select MenuItem false positive)Test plan
yarn test(full monorepo)yarn lintyarn check:changedvsorigin/main../backstage/packages/core-componentsandplugins/user-settings(workflow.local.yaml --dry-run --no-interactive)Made with Cursor