diff --git a/packages/mui-system/src/Unstable_Grid/Grid.tsx b/packages/mui-system/src/Unstable_Grid/Grid.tsx index 216f3b2b12c676..29779fc6684b99 100644 --- a/packages/mui-system/src/Unstable_Grid/Grid.tsx +++ b/packages/mui-system/src/Unstable_Grid/Grid.tsx @@ -138,6 +138,29 @@ Grid.propTypes /* remove-proptypes */ = { PropTypes.func, PropTypes.object, ]), + /** + * @internal + * The level of the grid starts from `0` + * and increases when the grid nests inside another grid regardless of container or item. + * + * ```js + * // level 0 + * // level 1 + * // level 2 + * // level 1 + * ``` + * + * Only consecutive grid is considered nesting. + * A grid container will start at `0` if there are non-Grid element above it. + * + * ```js + * // level 0 + *
+ * // level 0 + * // level 1 + * ``` + */ + unstable_level: PropTypes.number, /** * Defines the `flex-wrap` style property. * It's applied for all screen sizes. diff --git a/scripts/generateProptypes.ts b/scripts/generateProptypes.ts index 2a5b7b373c881d..8bdc3b3e0bf733 100644 --- a/scripts/generateProptypes.ts +++ b/scripts/generateProptypes.ts @@ -324,14 +324,18 @@ async function run(argv: HandlerArgv) { const files = _.flatten(allFiles) .filter((filePath) => { - const folderName = path.basename(path.dirname(filePath)); + // Filter out files where the directory name and filename doesn't match + // Example: Modal/ModalManager.d.ts + let folderName = path.basename(path.dirname(filePath)); const fileName = path.basename(filePath).replace(/(\.d\.ts|\.tsx|\.ts)/g, ''); - return ( - // Filter out files where the directory name and filename doesn't match - // Example: Modal/ModalManager.d.ts - fileName === folderName - ); + // An exception is if the folder name starts with Unstable_/unstable_ + // Example: Unstable_Grid2/Grid2.tsx + if (/(u|U)nstable_/g.test(folderName)) { + folderName = folderName.slice(9); + } + + return fileName === folderName; }) .filter((filePath) => { return filePattern.test(filePath);