Repository navigation
Conversation
…nd classes Props without a description were silently dropped from the API pages, and slots and classes were published with an empty description. The API docs builder now reports all of them per component and fails. `@internal` hides an item like `@ignore`. Refs mui/mui-public#1059
Deploy previewBundle size
PerformanceNo regressions in 32 benchmarks · ran 4m 20s · details Check out the code infra dashboard for more information about this PR. |
Undocumented DOM event handlers are hidden instead of failing the check.
Slot and class errors come from parseSlotsAndClasses, which knows the slots interface and where the classes are declared. The hide tags and the @ignore hint live in one place, and CSS variables and data attributes honor @internal too. The DOM event handler list is checked against React.DOMAttributes.
An undocumented prop is hidden when it is only declared in dependencies, like React's DOM attributes, and fails when the project declares it. This replaces the list of DOM event handler names, which also hid a component's own callbacks such as onChange.
The API docs builder now hides undocumented props that come from dependencies and fails on undocumented props declared in the repo, so the generator no longer adds `@ignore` to every prop without JSDoc. Documents or explicitly ignores the 26 props this exposed.
Janpot
marked this pull request as ready for review
October 28, 2026 16:23
A className that also accepts a function of the state, like in the Data Grid toolbar components, is component-specific API and stays listed.
This was referenced Oct 29, 2026
…-hard-check # Conflicts: # packages-internal/api-docs-builder/src/utils/extractInfoFromEnum.ts # packages-internal/api-docs-builder/src/utils/extractInfoFromType.ts # packages-internal/api-docs-builder/src/utils/getPropsFromComponentNode.ts # packages-internal/api-docs-builder/src/utils/parseSlotsAndClasses.ts
This branch has not been deployed
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.
The API docs builder now fails when a prop, slot, or CSS class has no description. Before, undocumented props were silently left off the API page and slots and classes were published with an empty description (for example https://mui.com/x/api/date-pickers/pickers-section-list/#slots).
@ignore.className(as a string),style(as an object), andrefare never listed, so their JSDoc can stay in the types for IntelliSense. AclassNamewith another type, like the Data Grid toolbar components that accept a function of the state, is listed.generateProptypesno longer adds@ignoreto every prop without JSDoc, otherwise the check would never fire in Material UI.@internalnow hides an item like@ignore. It only worked before by accident.Merge after the MUI X fixes that link here, so the builder bump in MUI X goes through.
Known trade-offs, not fixed here:
classesprop" without naming the interface.classesresolves through several signatures, the description of the last one wins, so an empty one can fail the check. Nothing hits this today.HIDDEN_JSDOC_TAGS,isHiddenFromApiDocs, andIGNORE_HINTare exported from the package throughbuildApiUtils. It is an internal package.StandardProps.classNamehas no JSDoc, onlyCommonProps.classNamedoes. This only affects IntelliSense.className,style, andrefskip the@defaultcheck, andChartsText.styleloses its description.ButtonBasetabIndexshows@default 0on components that inherit it but manage it themselves, likeTab. This is the same for every inherited default.pnpm docs:apileaves the API JSON half deleted, because it cleans the folder first. Failures are just more frequent now.pnpm docs:apiin CI covers them.Error:in the middle of the message.Refs mui/mui-public#1059