Skip to content

feat: MUI 4 to BUI migration - form control codemods (#122, #123, #124, #125, #126)#131

Open
schultzp2020 wants to merge 6 commits into
mainfrom
feat/mui4-to-bui-form-controls
Open

feat: MUI 4 to BUI migration - form control codemods (#122, #123, #124, #125, #126)#131
schultzp2020 wants to merge 6 commits into
mainfrom
feat/mui4-to-bui-form-controls

Conversation

@schultzp2020

@schultzp2020 schultzp2020 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Add 5 form control codemods for the MUI 4 to BUI migration:

Codemod Issue Description
@backstage/migrate-mui-select-family-to-bui-select #122 FormControl/InputLabel/Select/MenuItem→BUI Select
@backstage/migrate-mui-textfield-to-bui-textfield #123 TextField with onChange rewriting
@backstage/migrate-mui-accordion-to-bui-accordion #124 Accordion/AccordionSummary/AccordionDetails→BUI equivalents
@backstage/migrate-mui-radio-checkbox-to-bui #125 RadioGroup/FormGroup/FormControlLabel→BUI RadioGroup/CheckboxGroup
@backstage/migrate-mui-slider-to-bui-slider #126 Slider with min→minValue, max→maxValue, onChange rewriting

Note: the radio/checkbox codemod package is intentionally named @backstage/migrate-mui-radio-checkbox-to-bui (not ...-groups-to-bui-groups) to satisfy npm's 50-character package name limit.

All codemods use AST-based transforms (JSSG/ast-grep). All tests pass. All workflows validate.

Closes #122
Closes #123
Closes #124
Closes #125
Closes #126

schultzp2020 and others added 3 commits June 24, 2026 21:22
Add 5 form control codemods:
- migrate-mui-select-family-to-bui-select (#122)
- migrate-mui-textfield-to-bui-textfield (#123)
- migrate-mui-accordion-to-bui-accordion (#124)
- migrate-mui-radio-checkbox-groups-to-bui-groups (#125)
- migrate-mui-slider-to-bui-slider (#126)

Closes #122, #123, #124, #125, #126
Use Promise.resolve returns and remove non-null assertions to satisfy
oxlint --deny-warnings in CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rename @backstage/migrate-mui-radio-checkbox-groups-to-bui-groups (58 chars)
to @backstage/migrate-mui-radio-checkbox-to-bui (44 chars) and regenerate README.

Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds five new AST-based codemods under codemods/misc/ to support the Backstage MUI v4 → BUI form-control migration (Select family, TextField, Accordion, Radio/Checkbox groups, Slider), along with tests, workflows, and repository documentation/changesets.

Changes:

  • Introduces new codemod packages (scripts, workflows, metadata) for the five form-control migrations.
  • Adds fixture-based tests + metrics snapshots for each codemod’s expected transformations/TODO behavior.
  • Updates root documentation and workspace metadata (README, changeset, yarn.lock) to include the new codemods.

Reviewed changes

Copilot reviewed 132 out of 133 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
yarn.lock Adds workspace entries for the five new misc codemod packages.
README.md Lists the new misc codemods in the repository index.
.changeset/mui-to-bui-form-controls.md Changeset covering initial minor releases for the five new codemod packages.
codemods/misc/migrate-mui-textfield-to-bui-textfield/workflow.yaml Workflow definition for the TextField codemod.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tsconfig.json TypeScript config for the TextField codemod scripts.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/noop-no-import/input.tsx No-op fixture when already using BUI TextField (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/noop-no-import/expected.tsx No-op fixture when already using BUI TextField (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline-todo/metrics.json Metrics snapshot for multiline TODO behavior.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline-todo/input.tsx Multiline TextField fixture (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/multiline-todo/expected.tsx Multiline TextField fixture with TODO marker (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/merge-existing-bui/metrics.json Metrics snapshot for merging into existing @backstage/ui import.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/merge-existing-bui/input.tsx Fixture for merging BUI import and rewriting onChange (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/merge-existing-bui/expected.tsx Fixture for merging BUI import and rewriting onChange (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/disabled-and-fullwidth/metrics.json Metrics snapshot for disabled/fullWidth handling.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/disabled-and-fullwidth/input.tsx Disabled + fullWidth fixture (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/disabled-and-fullwidth/expected.tsx Disabled + fullWidth fixture w/ TODO and prop rename (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/complex-on-change-todo/metrics.json Metrics snapshot for complex onChange TODO behavior.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/complex-on-change-todo/input.tsx Complex onChange fixture (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/complex-on-change-todo/expected.tsx Complex onChange fixture with TODO marker (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/basic-controlled/metrics.json Metrics snapshot for basic controlled TextField migration.
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/basic-controlled/input.tsx Basic controlled TextField fixture (input).
codemods/misc/migrate-mui-textfield-to-bui-textfield/tests/basic-controlled/expected.tsx Basic controlled TextField fixture (expected).
codemods/misc/migrate-mui-textfield-to-bui-textfield/scripts/codemod.ts AST-based transform for migrating MUI TextField → BUI TextField.
codemods/misc/migrate-mui-textfield-to-bui-textfield/package.json Declares the TextField codemod workspace package and test script.
codemods/misc/migrate-mui-textfield-to-bui-textfield/codemod.yaml Codemod registry metadata for the TextField migration.
codemods/misc/migrate-mui-textfield-to-bui-textfield/CHANGELOG.md Initializes changelog for the TextField codemod.
codemods/misc/migrate-mui-slider-to-bui-slider/workflow.yaml Workflow definition for the Slider codemod.
codemods/misc/migrate-mui-slider-to-bui-slider/tsconfig.json TypeScript config for the Slider codemod scripts.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/value-label-todo/metrics.json Metrics snapshot for value label TODO behavior.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/value-label-todo/input.tsx Slider with valueLabelDisplay fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/value-label-todo/expected.tsx Slider with valueLabelDisplay fixture w/ TODO (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/step-and-default-value/metrics.json Metrics snapshot for min/max rename and step/defaultValue passthrough.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/step-and-default-value/input.tsx Slider step/defaultValue fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/step-and-default-value/expected.tsx Slider step/defaultValue fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/on-change-committed-todo/metrics.json Metrics snapshot for onChangeCommitted → onChangeEnd rewrite.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/on-change-committed-todo/input.tsx onChangeCommitted fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/on-change-committed-todo/expected.tsx onChangeCommitted → onChangeEnd fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/noop-no-import/input.tsx No-op fixture when already using BUI Slider (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/noop-no-import/expected.tsx No-op fixture when already using BUI Slider (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/no-min-max/metrics.json Metrics snapshot for slider migration without min/max.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/no-min-max/input.tsx Slider without min/max fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/no-min-max/expected.tsx Slider without min/max fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/named-barrel-import/metrics.json Metrics snapshot for named barrel import case.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/named-barrel-import/input.tsx Named barrel import fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/named-barrel-import/expected.tsx Named barrel import fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/merge-existing-bui/metrics.json Metrics snapshot for merging into existing @backstage/ui import.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/merge-existing-bui/input.tsx Merge-existing-bui fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/merge-existing-bui/expected.tsx Merge-existing-bui fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/marks-todo/metrics.json Metrics snapshot for marks TODO behavior.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/marks-todo/input.tsx Slider marks fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/marks-todo/expected.tsx Slider marks fixture w/ TODO (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/disabled-and-aria/metrics.json Metrics snapshot for disabled + aria passthrough.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/disabled-and-aria/input.tsx Disabled + aria fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/disabled-and-aria/expected.tsx Disabled + aria fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/complex-on-change-todo/metrics.json Metrics snapshot for complex onChange TODO behavior.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/complex-on-change-todo/input.tsx Complex onChange fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/complex-on-change-todo/expected.tsx Complex onChange fixture w/ TODO (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/basic-slider/metrics.json Metrics snapshot for basic slider migration.
codemods/misc/migrate-mui-slider-to-bui-slider/tests/basic-slider/input.tsx Basic slider fixture (input).
codemods/misc/migrate-mui-slider-to-bui-slider/tests/basic-slider/expected.tsx Basic slider fixture (expected).
codemods/misc/migrate-mui-slider-to-bui-slider/scripts/codemod.ts AST-based transform for migrating MUI Slider → BUI Slider.
codemods/misc/migrate-mui-slider-to-bui-slider/package.json Declares the Slider codemod workspace package and test script.
codemods/misc/migrate-mui-slider-to-bui-slider/codemod.yaml Codemod registry metadata for the Slider migration.
codemods/misc/migrate-mui-slider-to-bui-slider/CHANGELOG.md Initializes changelog for the Slider codemod.
codemods/misc/migrate-mui-select-family-to-bui-select/workflow.yaml Workflow definition for the Select-family codemod.
codemods/misc/migrate-mui-select-family-to-bui-select/tsconfig.json TypeScript config for the Select-family codemod scripts.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/noop-no-import/input.tsx No-op fixture when already using BUI Select (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/noop-no-import/expected.tsx No-op fixture when already using BUI Select (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/named-barrel-import/metrics.json Metrics snapshot for named barrel import migration.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/named-barrel-import/input.tsx Named barrel import Select-wrapper fixture (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/named-barrel-import/expected.tsx Named barrel import Select-wrapper fixture (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/multiple-select-todo/metrics.json Metrics snapshot for multiple-select TODO behavior.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/multiple-select-todo/input.tsx Multiple-select fixture (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/multiple-select-todo/expected.tsx Multiple-select fixture w/ TODO marker (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/merge-existing-bui/metrics.json Metrics snapshot for merging into existing @backstage/ui import.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/merge-existing-bui/input.tsx Merge-existing-bui Select-wrapper fixture (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/merge-existing-bui/expected.tsx Merge-existing-bui Select-wrapper fixture (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/helper-text-todo/metrics.json Metrics snapshot for helper-text TODO behavior.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/helper-text-todo/input.tsx Helper text wrapper fixture (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/helper-text-todo/expected.tsx Helper text wrapper fixture w/ TODO marker (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/basic-form-control/metrics.json Metrics snapshot for basic wrapper migration.
codemods/misc/migrate-mui-select-family-to-bui-select/tests/basic-form-control/input.tsx Basic wrapper migration fixture (input).
codemods/misc/migrate-mui-select-family-to-bui-select/tests/basic-form-control/expected.tsx Basic wrapper migration fixture (expected).
codemods/misc/migrate-mui-select-family-to-bui-select/scripts/codemod.ts AST-based transform for collapsing MUI Select wrappers into BUI Select.
codemods/misc/migrate-mui-select-family-to-bui-select/package.json Declares the Select-family codemod workspace package and test script.
codemods/misc/migrate-mui-select-family-to-bui-select/codemod.yaml Codemod registry metadata for the Select-family migration.
codemods/misc/migrate-mui-select-family-to-bui-select/CHANGELOG.md Initializes changelog for the Select-family codemod.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/workflow.yaml Workflow definition for radio/checkbox group codemod.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tsconfig.json TypeScript config for radio/checkbox group codemod scripts.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-radio-group/metrics.json Metrics snapshot for simple RadioGroup migration.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-radio-group/input.tsx Simple RadioGroup fixture (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-radio-group/expected.tsx Simple RadioGroup fixture (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-checkbox-group/metrics.json Metrics snapshot for simple FormGroup→CheckboxGroup migration.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-checkbox-group/input.tsx Simple checkbox group fixture (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/simple-checkbox-group/expected.tsx Simple checkbox group fixture (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/noop-no-import/input.tsx No-op fixture when already using BUI RadioGroup/Radio (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/noop-no-import/expected.tsx No-op fixture when already using BUI RadioGroup/Radio (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/named-barrel-import/metrics.json Metrics snapshot for named barrel import case.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/named-barrel-import/input.tsx Named barrel import RadioGroup fixture (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/named-barrel-import/expected.tsx Named barrel import RadioGroup fixture (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/merge-existing-bui/metrics.json Metrics snapshot for merging into existing @backstage/ui import.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/merge-existing-bui/input.tsx Merge-existing-bui RadioGroup fixture (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/merge-existing-bui/expected.tsx Merge-existing-bui RadioGroup fixture (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/complex-form-group-todo/metrics.json Metrics snapshot for complex form group TODO behavior.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/complex-form-group-todo/input.tsx Complex FormGroup fixture (input).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/tests/complex-form-group-todo/expected.tsx Complex FormGroup fixture w/ TODO marker (expected).
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/scripts/codemod.ts AST-based transform for migrating MUI choice groups to BUI groups.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/package.json Declares the radio/checkbox group codemod workspace package and test script.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/codemod.yaml Codemod registry metadata for the radio/checkbox group migration.
codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/CHANGELOG.md Initializes changelog for the radio/checkbox group codemod.
codemods/misc/migrate-mui-accordion-to-bui-accordion/workflow.yaml Workflow definition for the Accordion codemod.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tsconfig.json TypeScript config for the Accordion codemod scripts.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/simple-accordion/metrics.json Metrics snapshot for simple Accordion migration.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/simple-accordion/input.tsx Simple Accordion fixture (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/simple-accordion/expected.tsx Simple Accordion fixture (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/noop-no-import/input.tsx No-op fixture when already using BUI Accordion (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/noop-no-import/expected.tsx No-op fixture when already using BUI Accordion (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/named-barrel-import/metrics.json Metrics snapshot for named barrel import case.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/named-barrel-import/input.tsx Named barrel import Accordion fixture (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/named-barrel-import/expected.tsx Named barrel import Accordion fixture (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/merge-existing-bui/metrics.json Metrics snapshot for merging into existing @backstage/ui import.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/merge-existing-bui/input.tsx Merge-existing-bui Accordion fixture (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/merge-existing-bui/expected.tsx Merge-existing-bui Accordion fixture (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/controlled-todo/metrics.json Metrics snapshot for controlled Accordion TODO behavior.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/controlled-todo/input.tsx Controlled Accordion fixture (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/controlled-todo/expected.tsx Controlled Accordion fixture w/ TODO marker (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/complex-summary-todo/metrics.json Metrics snapshot for complex summary TODO behavior.
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/complex-summary-todo/input.tsx Complex summary fixture (input).
codemods/misc/migrate-mui-accordion-to-bui-accordion/tests/complex-summary-todo/expected.tsx Complex summary fixture w/ TODO marker (expected).
codemods/misc/migrate-mui-accordion-to-bui-accordion/scripts/codemod.ts AST-based transform for migrating MUI Accordion → BUI Accordion components.
codemods/misc/migrate-mui-accordion-to-bui-accordion/package.json Declares the Accordion codemod workspace package and test script.
codemods/misc/migrate-mui-accordion-to-bui-accordion/codemod.yaml Codemod registry metadata for the Accordion migration.
codemods/misc/migrate-mui-accordion-to-bui-accordion/CHANGELOG.md Initializes changelog for the Accordion codemod.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread codemods/misc/migrate-mui-slider-to-bui-slider/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-slider-to-bui-slider/scripts/codemod.ts
Comment thread codemods/misc/migrate-mui-slider-to-bui-slider/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-select-family-to-bui-select/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-select-family-to-bui-select/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-accordion-to-bui-accordion/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-textfield-to-bui-textfield/scripts/codemod.ts Outdated
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 134 changed files in this pull request and generated 5 comments.

Comment thread codemods/misc/migrate-mui-accordion-to-bui-accordion/scripts/codemod.ts Outdated
Comment thread codemods/misc/migrate-mui-select-family-to-bui-select/scripts/codemod.ts Outdated
Replace removable MUI imports with BUI imports when no anchor exists,
escape accordion/select string attrs via JSON.stringify, and update
fixtures for clean import removal.

Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 134 changed files in this pull request and generated 7 comments.

Comment on lines +375 to +378
const checkedRaw = getPropRawValue(controlEl, 'checked')
if (checkedRaw !== null) {
props.push(`isSelected=${checkedRaw}`)
}
Comment thread codemods/misc/migrate-mui-radio-checkbox-groups-to-bui-groups/codemod.yaml Outdated
Comment thread codemods/misc/migrate-mui-accordion-to-bui-accordion/codemod.yaml Outdated
Comment thread codemods/misc/migrate-mui-slider-to-bui-slider/codemod.yaml Outdated
Comment thread codemods/misc/migrate-mui-textfield-to-bui-textfield/codemod.yaml Outdated
Comment thread codemods/misc/migrate-mui-select-family-to-bui-select/codemod.yaml Outdated
Comment on lines +274 to +281
const valueText = valueParam.text()
const body = arrow.field('body')
if (!body) {
return null
}

const bodyText = body.text()
return `{${valueText} => ${bodyText}}`
Handle bare Checkbox checked attributes, extract slider handler param
identifiers without type annotations, and dedupe codemod.yaml keywords.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment