From 2a4aba049666bd918997518e489c73a64903f6f4 Mon Sep 17 00:00:00 2001
From: Albert Yu <albert@albertyu.co>
Date: Wed, 22 Jan 2025 20:45:32 +0800
Subject: [PATCH] [docs] Fix `/base-ui` redirect and prune links (#45083)

---
 .../joy/components/accordion/accordion.md     |  1 +
 docs/data/joy/components/badge/badge.md       |  1 -
 docs/data/joy/components/button/button.md     |  1 -
 docs/data/joy/components/checkbox/checkbox.md |  1 +
 docs/data/joy/components/divider/divider.md   |  1 +
 docs/data/joy/components/input/input.md       |  2 +-
 docs/data/joy/components/menu/menu.md         |  2 +-
 docs/data/joy/components/modal/modal.md       |  1 +
 .../components/radio-button/radio-button.md   |  1 +
 docs/data/joy/components/select/select.md     |  2 +-
 docs/data/joy/components/slider/slider.md     |  2 +-
 docs/data/joy/components/switch/switch.md     |  2 +-
 docs/data/joy/components/tabs/tabs.md         |  2 +-
 .../joy/components/text-field/text-field.md   |  1 +
 docs/data/joy/components/textarea/textarea.md |  1 -
 .../toggle-button-group.md                    |  1 +
 docs/data/joy/components/tooltip/tooltip.md   |  1 +
 .../click-away-listener.md                    |  2 +-
 .../data/material/components/no-ssr/no-ssr.md |  2 +-
 .../data/material/components/portal/portal.md |  2 +-
 .../textarea-autosize/textarea-autosize.md    |  2 +-
 .../getting-started/overview/overview.md      |  2 +-
 .../getting-started/overview/overview.md      |  4 +-
 docs/next.config.mjs                          |  9 ++++
 docs/pages/base-ui.tsx                        | 47 -------------------
 docs/public/_redirects                        |  2 +-
 .../components/productCore/CoreProducts.tsx   | 10 +---
 27 files changed, 32 insertions(+), 73 deletions(-)
 delete mode 100644 docs/pages/base-ui.tsx

diff --git a/docs/data/joy/components/accordion/accordion.md b/docs/data/joy/components/accordion/accordion.md
index 001b36fdab6..c1277c31268 100644
--- a/docs/data/joy/components/accordion/accordion.md
+++ b/docs/data/joy/components/accordion/accordion.md
@@ -4,6 +4,7 @@ title: React Accordion component
 components: Accordion, AccordionDetails, AccordionGroup, AccordionSummary
 githubLabel: 'component: accordion'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/accordion/
+unstyled: https://base-ui.com/react/components/accordion
 ---
 
 # Accordion
diff --git a/docs/data/joy/components/badge/badge.md b/docs/data/joy/components/badge/badge.md
index e5ba349dfea..25c2487f64f 100644
--- a/docs/data/joy/components/badge/badge.md
+++ b/docs/data/joy/components/badge/badge.md
@@ -3,7 +3,6 @@ productId: joy-ui
 title: React Badge component
 components: Badge
 githubLabel: 'component: badge'
-unstyled: /base-ui/react-badge/
 ---
 
 # Badge
diff --git a/docs/data/joy/components/button/button.md b/docs/data/joy/components/button/button.md
index b6bed946b95..e74eb854d02 100644
--- a/docs/data/joy/components/button/button.md
+++ b/docs/data/joy/components/button/button.md
@@ -4,7 +4,6 @@ title: React Button component
 components: Button, IconButton
 githubLabel: 'component: button'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/button/
-unstyled: /base-ui/react-button/
 ---
 
 # Button
diff --git a/docs/data/joy/components/checkbox/checkbox.md b/docs/data/joy/components/checkbox/checkbox.md
index 4583812b0d8..1f0d1698b77 100644
--- a/docs/data/joy/components/checkbox/checkbox.md
+++ b/docs/data/joy/components/checkbox/checkbox.md
@@ -4,6 +4,7 @@ title: React Checkbox component
 components: Checkbox
 githubLabel: 'component: checkbox'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/
+unstyled: https://base-ui.com/react/components/checkbox
 ---
 
 # Checkbox
diff --git a/docs/data/joy/components/divider/divider.md b/docs/data/joy/components/divider/divider.md
index 60917da7cba..2f56d0d77e0 100644
--- a/docs/data/joy/components/divider/divider.md
+++ b/docs/data/joy/components/divider/divider.md
@@ -3,6 +3,7 @@ productId: joy-ui
 title: React Divider component
 components: Divider
 githubLabel: 'component: divider'
+unstyled: https://base-ui.com/react/components/separator
 ---
 
 # Divider
diff --git a/docs/data/joy/components/input/input.md b/docs/data/joy/components/input/input.md
index 27575fa6d3b..433c0a9f69f 100644
--- a/docs/data/joy/components/input/input.md
+++ b/docs/data/joy/components/input/input.md
@@ -2,7 +2,7 @@
 productId: joy-ui
 title: React Input component
 components: FormControl, FormHelperText, FormLabel, Input
-unstyled: /base-ui/react-input/
+unstyled: https://base-ui.com/react/components/input
 ---
 
 # Input
diff --git a/docs/data/joy/components/menu/menu.md b/docs/data/joy/components/menu/menu.md
index 48382e99f39..b76b35c12af 100644
--- a/docs/data/joy/components/menu/menu.md
+++ b/docs/data/joy/components/menu/menu.md
@@ -4,7 +4,7 @@ title: React Menu component
 components: Menu, MenuItem, MenuList, MenuButton
 githubLabel: 'component: menu'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/
-unstyled: /base-ui/react-menu/
+unstyled: https://base-ui.com/react/components/menu
 ---
 
 # Menu
diff --git a/docs/data/joy/components/modal/modal.md b/docs/data/joy/components/modal/modal.md
index fd7ff920193..5a085d57e46 100644
--- a/docs/data/joy/components/modal/modal.md
+++ b/docs/data/joy/components/modal/modal.md
@@ -4,6 +4,7 @@ title: React Modal component
 components: Modal, ModalClose, ModalDialog, ModalOverflow, DialogTitle, DialogContent, DialogActions
 githubLabel: 'component: modal'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
+unstyled: https://base-ui.com/react/components/dialog
 ---
 
 # Modal
diff --git a/docs/data/joy/components/radio-button/radio-button.md b/docs/data/joy/components/radio-button/radio-button.md
index b0726b188a1..215d0559056 100644
--- a/docs/data/joy/components/radio-button/radio-button.md
+++ b/docs/data/joy/components/radio-button/radio-button.md
@@ -4,6 +4,7 @@ title: React Radio Button component
 components: Radio, RadioGroup
 githubLabel: 'component: radio'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/radio/
+unstyled: https://base-ui.com/react/components/radio
 ---
 
 # Radio
diff --git a/docs/data/joy/components/select/select.md b/docs/data/joy/components/select/select.md
index ecfd4ace803..4b984c5e016 100644
--- a/docs/data/joy/components/select/select.md
+++ b/docs/data/joy/components/select/select.md
@@ -4,7 +4,7 @@ title: React Select component
 components: Select, Option
 githubLabel: 'component: select'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
-unstyled: /base-ui/react-select/
+unstyled: https://base-ui.com/react/components/select
 ---
 
 # Select
diff --git a/docs/data/joy/components/slider/slider.md b/docs/data/joy/components/slider/slider.md
index 79507714863..5b99afbc3de 100644
--- a/docs/data/joy/components/slider/slider.md
+++ b/docs/data/joy/components/slider/slider.md
@@ -3,7 +3,7 @@ productId: joy-ui
 title: React Slider component
 components: Slider
 githubLabel: 'component: slider'
-unstyled: /base-ui/react-slider/
+unstyled: https://base-ui.com/react/components/slider
 ---
 
 # Slider
diff --git a/docs/data/joy/components/switch/switch.md b/docs/data/joy/components/switch/switch.md
index be49a207cf0..d2f3c3bf711 100644
--- a/docs/data/joy/components/switch/switch.md
+++ b/docs/data/joy/components/switch/switch.md
@@ -3,7 +3,7 @@ productId: joy-ui
 title: React Switch component
 components: Switch
 githubLabel: 'component: switch'
-unstyled: /base-ui/react-switch/
+unstyled: https://base-ui.com/react/components/switch
 ---
 
 # Switch
diff --git a/docs/data/joy/components/tabs/tabs.md b/docs/data/joy/components/tabs/tabs.md
index a0370ad6719..932f7665681 100644
--- a/docs/data/joy/components/tabs/tabs.md
+++ b/docs/data/joy/components/tabs/tabs.md
@@ -4,7 +4,7 @@ title: React Tabs component
 components: Tab, TabList, TabPanel, Tabs
 githubLabel: 'component: tabs'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/tabs/
-unstyled: /base-ui/react-tabs/
+unstyled: https://base-ui.com/react/components/menu
 ---
 
 # Tabs
diff --git a/docs/data/joy/components/text-field/text-field.md b/docs/data/joy/components/text-field/text-field.md
index d2adcae1ab4..6ea1ebedce4 100644
--- a/docs/data/joy/components/text-field/text-field.md
+++ b/docs/data/joy/components/text-field/text-field.md
@@ -2,6 +2,7 @@
 productId: joy-ui
 title: React Text Field component
 githubLabel: 'component: text field'
+unstyled: https://base-ui.com/react/components/field
 ---
 
 # Text Field
diff --git a/docs/data/joy/components/textarea/textarea.md b/docs/data/joy/components/textarea/textarea.md
index c51b872cad7..3302bdfac3d 100644
--- a/docs/data/joy/components/textarea/textarea.md
+++ b/docs/data/joy/components/textarea/textarea.md
@@ -3,7 +3,6 @@ productId: joy-ui
 title: React Textarea component
 components: Textarea
 githubLabel: 'component: TextareaAutosize'
-unstyled: /base-ui/react-textarea-autosize/
 ---
 
 # Textarea
diff --git a/docs/data/joy/components/toggle-button-group/toggle-button-group.md b/docs/data/joy/components/toggle-button-group/toggle-button-group.md
index b4d7a232279..94ae80b5402 100644
--- a/docs/data/joy/components/toggle-button-group/toggle-button-group.md
+++ b/docs/data/joy/components/toggle-button-group/toggle-button-group.md
@@ -3,6 +3,7 @@ productId: joy-ui
 title: React Toggle Button Group component
 githubLabel: 'component: toggle button'
 components: ToggleButtonGroup, Button, IconButton
+unstyled: https://base-ui.com/react/components/toggle-group
 ---
 
 # Toggle Button Group
diff --git a/docs/data/joy/components/tooltip/tooltip.md b/docs/data/joy/components/tooltip/tooltip.md
index 958b6ce3ab2..c00e1d433d3 100644
--- a/docs/data/joy/components/tooltip/tooltip.md
+++ b/docs/data/joy/components/tooltip/tooltip.md
@@ -4,6 +4,7 @@ title: React Tooltip component
 components: Tooltip
 githubLabel: 'component: tooltip'
 waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/
+unstyled: https://base-ui.com/react/components/tooltip
 ---
 
 # Tooltip
diff --git a/docs/data/material/components/click-away-listener/click-away-listener.md b/docs/data/material/components/click-away-listener/click-away-listener.md
index 8068a953195..eeeb0a89e33 100644
--- a/docs/data/material/components/click-away-listener/click-away-listener.md
+++ b/docs/data/material/components/click-away-listener/click-away-listener.md
@@ -14,6 +14,6 @@ githubLabel: 'component: ClickAwayListener'
 :::warning
 Please refer to the [Click-Away Listener](/base-ui/react-click-away-listener/) component page in the MUI Base docs for demos and details on usage.
 
-Click-Away Listener is a part of the standalone [MUI Base](/base-ui/) component library.
+Click-Away Listener is a part of the standalone MUI Base component library.
 It is currently re-exported from `@mui/material` for your convenience, but it will be removed from this package in a future major version after MUI Base gets a stable release.
 :::
diff --git a/docs/data/material/components/no-ssr/no-ssr.md b/docs/data/material/components/no-ssr/no-ssr.md
index 303431b46ce..ac2611539eb 100644
--- a/docs/data/material/components/no-ssr/no-ssr.md
+++ b/docs/data/material/components/no-ssr/no-ssr.md
@@ -13,6 +13,6 @@ components: NoSsr
 :::warning
 Please refer to the [No-SSR](/base-ui/react-no-ssr/) component page in the MUI Base docs for demos and details on usage.
 
-No-SSR is a part of the standalone [MUI Base](/base-ui/) component library.
+No-SSR is a part of the standalone MUI Base component library.
 It is currently re-exported from `@mui/material` for your convenience, but it will be removed from this package in a future major version after MUI Base gets a stable release.
 :::
diff --git a/docs/data/material/components/portal/portal.md b/docs/data/material/components/portal/portal.md
index ebbc93a309a..d8e92c4db26 100644
--- a/docs/data/material/components/portal/portal.md
+++ b/docs/data/material/components/portal/portal.md
@@ -14,6 +14,6 @@ githubLabel: 'component: Portal'
 :::warning
 Please refer to the [Portal](/base-ui/react-portal/) component page in the MUI Base docs for demos and details on usage.
 
-Portal is a part of the standalone [MUI Base](/base-ui/) component library.
+Portal is a part of the standalone MUI Base component library.
 It is currently re-exported from `@mui/material` for your convenience, but it will be removed from this package in a future major version after MUI Base gets a stable release.
 :::
diff --git a/docs/data/material/components/textarea-autosize/textarea-autosize.md b/docs/data/material/components/textarea-autosize/textarea-autosize.md
index cc0f203a61d..be947db10d8 100644
--- a/docs/data/material/components/textarea-autosize/textarea-autosize.md
+++ b/docs/data/material/components/textarea-autosize/textarea-autosize.md
@@ -14,6 +14,6 @@ githubLabel: 'component: TextareaAutosize'
 :::warning
 Please refer to the [Textarea Autosize](/base-ui/react-textarea-autosize/) component page in the MUI Base docs for demos and details on usage.
 
-Textarea Autosize is a part of the standalone [MUI Base](/base-ui/) component library.
+Textarea Autosize is a part of the standalone MUI Base component library.
 It is currently re-exported from `@mui/material` for your convenience, but it will be removed from this package in a future major version after MUI Base gets a stable release.
 :::
diff --git a/docs/data/material/getting-started/overview/overview.md b/docs/data/material/getting-started/overview/overview.md
index cce86cda4ae..f6d1a386e51 100644
--- a/docs/data/material/getting-started/overview/overview.md
+++ b/docs/data/material/getting-started/overview/overview.md
@@ -32,7 +32,7 @@ You can follow [this GitHub issue](https://github.com/mui/material-ui/issues/293
 
 ### Material UI vs. MUI Base
 
-Material UI and [MUI Base](/base-ui/) feature many of the same UI components, but MUI Base comes without any default styles or styling solutions.
+Material UI and MUI Base feature many of the same UI components, but MUI Base comes without any default styles or styling solutions.
 
 Material UI is _comprehensive_ in that it comes packaged with default styles, and is optimized to work with [Emotion](https://emotion.sh/docs/introduction) (or [styled-components](https://styled-components.com/)).
 
diff --git a/docs/data/system/getting-started/overview/overview.md b/docs/data/system/getting-started/overview/overview.md
index e2c9f2e65bf..4c56a1414e7 100644
--- a/docs/data/system/getting-started/overview/overview.md
+++ b/docs/data/system/getting-started/overview/overview.md
@@ -10,7 +10,7 @@ title: Overview
 
 MUI System is a set of CSS utilities to help you build custom designs more efficiently.
 It's used internally by libraries like [Material UI](/material-ui/), [Joy UI](/joy-ui/getting-started/).
-It can also be used to style [MUI Base](/base-ui/) components.
+It can also be used to style MUI Base components.
 
 MUI System gives you a set of flexible, generic wrapper components like [`Box`](/system/react-box/) and [`Container`](/system/react-container/) that can be quickly customized using the `sx` prop.
 This prop lets you define styles directly within the components themselves, rather than creating bulky and redundant `const` definitions with styled-components.
@@ -26,7 +26,7 @@ Learn more on [the `sx` prop page](/system/getting-started/the-sx-prop/).
 
 ## MUI System vs. MUI Base
 
-[MUI Base](/base-ui/) is a library of "unstyled" React components, while MUI System is a set of utilities for quickly applying styles to those components (as well as our other component libraries like Material UI and Joy UI).
+MUI Base is a library of "unstyled" React components, while MUI System is a set of utilities for quickly applying styles to those components (as well as our other component libraries like Material UI and Joy UI).
 
 MUI Base is a standalone component library, whereas MUI System is _supplemental_ in that it's designed to be paired with MUI Base or any third-party components.
 See the [Custom components page](/system/getting-started/custom-components/) for details on how to use MUI System.
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index aaf5919d1c1..98446dadd04 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -260,6 +260,15 @@ export default withDocsInfra({
 
     return map;
   },
+  redirects: async () => {
+    return [
+      {
+        source: '/base-ui/',
+        destination: 'https://base-ui.com',
+        permanent: true,
+      },
+    ];
+  },
   // Used to signal we run pnpm build
   ...(process.env.NODE_ENV === 'production'
     ? {
diff --git a/docs/pages/base-ui.tsx b/docs/pages/base-ui.tsx
deleted file mode 100644
index 83112507bf8..00000000000
--- a/docs/pages/base-ui.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import * as React from 'react';
-import Divider from '@mui/material/Divider';
-import Head from 'docs/src/modules/components/Head';
-import BrandingCssVarsProvider from 'docs/src/BrandingCssVarsProvider';
-import AppHeader from 'docs/src/layouts/AppHeader';
-import AppFooter from 'docs/src/layouts/AppFooter';
-import AppHeaderBanner from 'docs/src/components/banner/AppHeaderBanner';
-import BaseUIHero from 'docs/src/components/productBaseUI/BaseUIHero';
-import BaseUISummary from 'docs/src/components/productBaseUI/BaseUISummary';
-import BaseUIComponents from 'docs/src/components/productBaseUI/BaseUIComponents';
-import BaseUICustomization from 'docs/src/components/productBaseUI/BaseUICustomization';
-import BaseUIEnd from 'docs/src/components/productBaseUI/BaseUIEnd';
-import BaseUITestimonial from 'docs/src/components/productBaseUI/BaseUITestimonial';
-
-export default function BaseUI() {
-  return (
-    <BrandingCssVarsProvider>
-      <Head
-        title="MUI Base: Unstyled React components and low-level hooks"
-        description='MUI Base is a library of headless ("unstyled") React components and low-level hooks. You gain complete control over your app&apos;s CSS and accessibility features.'
-        card="/static/social-previews/baseui-preview.jpg"
-      >
-        {/* eslint-disable-next-line @next/next/no-page-custom-font */}
-        <link
-          href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap"
-          rel="stylesheet"
-        />
-      </Head>
-      <AppHeaderBanner />
-      <AppHeader gitHubRepository="https://github.com/mui/base-ui" />
-      <main id="main-content">
-        <BaseUIHero />
-        <BaseUISummary />
-        <Divider />
-        <BaseUIComponents />
-        <Divider />
-        <BaseUICustomization />
-        <Divider />
-        <BaseUITestimonial />
-        <Divider />
-        <BaseUIEnd />
-        <Divider />
-      </main>
-      <AppFooter />
-    </BrandingCssVarsProvider>
-  );
-}
diff --git a/docs/public/_redirects b/docs/public/_redirects
index 7a249e1d56c..98b9636d692 100644
--- a/docs/public/_redirects
+++ b/docs/public/_redirects
@@ -509,7 +509,7 @@ https://v4.material-ui.com/* https://v4.mui.com/:splat 301!
 /material-ui/experimental-api/css-theme-variables/overview/ /material-ui/customization/css-theme-variables/overview/ 301
 /material-ui/experimental-api/css-theme-variables/usage/ /material-ui/customization/css-theme-variables/usage/ 301
 /material-ui/experimental-api/css-theme-variables/customization/ /material-ui/customization/css-theme-variables/configuration/ 301
-/base-ui https://base-ui.com 301
+/base-ui/ https://base-ui.com/ 301
 
 # Proxies
 
diff --git a/docs/src/components/productCore/CoreProducts.tsx b/docs/src/components/productCore/CoreProducts.tsx
index 0706a0b44ea..6f1adb0f36e 100644
--- a/docs/src/components/productCore/CoreProducts.tsx
+++ b/docs/src/components/productCore/CoreProducts.tsx
@@ -4,7 +4,6 @@ import Section from 'docs/src/layouts/Section';
 import { InfoCard } from '@mui/docs/InfoCard';
 import { Theme } from '@mui/material/styles';
 import SvgMuiLogomark from 'docs/src/icons/SvgMuiLogomark';
-import SvgBaseUiLogo from 'docs/src/icons/SvgBaseUiLogo';
 import StyleRoundedIcon from '@mui/icons-material/StyleRounded';
 import WebRoundedIcon from '@mui/icons-material/WebRounded';
 
@@ -35,13 +34,6 @@ const content = [
       "An open-source React component library that implements MUI's own in-house design principles.",
     link: '/joy-ui/getting-started/',
   },
-  {
-    icon: <SvgBaseUiLogo width={14} height={14} sx={logoColor} />,
-    title: 'MUI Base',
-    description:
-      "A library of unstyled React components and low-level hooks. With MUI Base, you gain complete control over your app's CSS and accessibility features.",
-    link: '/base-ui/',
-  },
   {
     icon: <StyleRoundedIcon sx={iconStyles} />,
     title: 'MUI System',
@@ -56,7 +48,7 @@ export default function CoreProducts() {
     <Section cozy>
       <Grid container spacing={2}>
         {content.map(({ icon, title, description, link }) => (
-          <Grid key={title} size={{ xs: 12, md: 6 }}>
+          <Grid key={title} size={{ xs: 12, md: 4 }}>
             <InfoCard
               icon={icon}
               link={link}