diff --git a/docs/data/base/pages.ts b/docs/data/base/pages.ts index 22ee40931f1923..584511c135d432 100644 --- a/docs/data/base/pages.ts +++ b/docs/data/base/pages.ts @@ -18,7 +18,7 @@ const pages = [ title: 'Components', icon: standardNavIcons.ToggleOnIcon, children: [ - { pathname: '/base-ui/react-components', title: 'All components' }, + { pathname: '/base-ui/all-components', title: 'All components' }, { pathname: '/base-ui/components/inputs', subheader: 'inputs', diff --git a/docs/pages/base-ui/all-components/index.js b/docs/pages/base-ui/all-components/index.js new file mode 100644 index 00000000000000..2bb2c253929f6b --- /dev/null +++ b/docs/pages/base-ui/all-components/index.js @@ -0,0 +1,13 @@ +import * as React from 'react'; +import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2'; +import AppFrame from 'docs/src/modules/components/AppFrame'; +import * as pageProps from 'docs/data/base/components/all-components/all-components.md?@mui/markdown'; + +export default function Page(props) { + const { userLanguage, ...other } = props; + return ; +} + +Page.getLayout = (page) => { + return {page}; +}; diff --git a/docs/pages/base-ui/react-components/index.js b/docs/pages/base-ui/react-components/index.js deleted file mode 100644 index 88f83ec2f48d5e..00000000000000 --- a/docs/pages/base-ui/react-components/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import * as React from 'react'; -import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs'; -import * as pageProps from 'docs/data/base/components/all-components/all-components.md?@mui/markdown'; - -export default function Page() { - return ; -} diff --git a/docs/public/_redirects b/docs/public/_redirects index 7086d3bdff3c38..f37becc92dd5b3 100644 --- a/docs/public/_redirects +++ b/docs/public/_redirects @@ -484,6 +484,7 @@ https://v4.material-ui.com/* https://v4.mui.com/:splat 301! /material-ui/getting-started/overview/ /material-ui/getting-started/ 301 /joy-ui/getting-started/overview/ /joy-ui/getting-started/ 301 /base-ui/getting-started/overview/ /base-ui/getting-started/ 301 +/base-ui/react-components/ /base-ui/all-components/ 301 /system/getting-started/overview/ /system/getting-started/ 301 # Proxies diff --git a/docs/translations/translations.json b/docs/translations/translations.json index 19b4b35db9fd48..7940b5816da2f4 100644 --- a/docs/translations/translations.json +++ b/docs/translations/translations.json @@ -228,7 +228,7 @@ "/base-ui/getting-started/usage": "Usage", "/base-ui/getting-started/customization": "Customization", "/base-ui/react-": "Components", - "/base-ui/react-components": "All components", + "/base-ui/all-components": "All components", "inputs": "Inputs", "/base-ui/react-autocomplete": "Autocomplete", "/base-ui/react-button": "Button", diff --git a/packages/api-docs-builder/buildApiUtils.ts b/packages/api-docs-builder/buildApiUtils.ts index 708aa3b070a63e..0cd9813ed63e7a 100644 --- a/packages/api-docs-builder/buildApiUtils.ts +++ b/packages/api-docs-builder/buildApiUtils.ts @@ -689,13 +689,23 @@ export const getStaticPaths = () => { ${staticProps} `; - const componentPageDirectory = `docs/pages/${productName}-ui/react-${componentName}/`; + const componentPageDirectory = `docs/pages/${productName}-ui/${ + componentName !== 'all-components' ? 'react-' : '' + }${componentName}/`; if (!fs.existsSync(componentPageDirectory)) { fs.mkdirSync(componentPageDirectory, { recursive: true }); } const demosSourcePath = path.join(process.cwd(), `${componentPageDirectory}/index.js`); writePrettifiedFile(demosSourcePath, demosSource); + if ( + ((components ?? []).length === 0 && (hooks ?? []).length === 0) || + markdown.filename.endsWith('all-components.md') + ) { + // Early return if it's a markdown file without components/hooks. + return; + } + const docsTabsPagesDirectory = `${componentPageDirectory}/[docsTab]`; if (!fs.existsSync(docsTabsPagesDirectory)) { fs.mkdirSync(docsTabsPagesDirectory, { recursive: true });