From a6285dde5e38a14c747291333741d61a318e5c75 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Mon, 8 Dec 2025 21:11:32 +0000 Subject: [PATCH] chore(site): mark MUI components and Stack as deprecated (#20973) Adds deprecation markers for MUI components and the custom Stack component to guide migration to shadcn/ui and Tailwind CSS. Changes: - Added JSDoc @deprecated tags to Stack component and type definitions - Added deprecation comments to MUI imports in theme files - Expanded Biome noRestrictedImports rules to flag all MUI component imports --------- Co-authored-by: Claude --- biome.jsonc | 81 ++++++++++++++++++++++++----- site/.storybook/preview.tsx | 1 - site/src/@types/mui.d.ts | 1 - site/src/components/Alert/Alert.tsx | 1 - site/src/components/Stack/Stack.tsx | 6 +++ site/src/contexts/ThemeProvider.tsx | 4 +- site/src/theme/dark/mui.ts | 7 ++- site/src/theme/index.ts | 2 +- site/src/theme/light/mui.ts | 7 ++- site/src/theme/mui.ts | 9 +++- 10 files changed, 98 insertions(+), 21 deletions(-) diff --git a/biome.jsonc b/biome.jsonc index 42a920eeea..d45b5cabb2 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -17,12 +17,12 @@ "useSemanticElements": "off", "noStaticElementInteractions": "off" }, - "correctness": { - "noUnusedImports": "warn", + "correctness": { + "noUnusedImports": "warn", "useUniqueElementIds": "off", // TODO: This is new but we want to fix it "noNestedComponentDefinitions": "off", // TODO: Investigate, since it is used by shadcn components - "noUnusedVariables": { - "level": "warn", + "noUnusedVariables": { + "level": "warn", "options": { "ignoreRestSiblings": true } @@ -40,19 +40,76 @@ "useNumberNamespace": "error", "noInferrableTypes": "error", "noUselessElse": "error", - "noRestrictedImports": { - "level": "error", + "noRestrictedImports": { + "level": "error", "options": { "paths": { - "@mui/material": "Use @mui/material/ instead. See: https://material-ui.com/guides/minimizing-bundle-size/.", + // "@mui/material/Alert": "Use components/Alert/Alert instead.", + // "@mui/material/AlertTitle": "Use components/Alert/Alert instead.", + // "@mui/material/Autocomplete": "Use shadcn/ui Combobox instead.", "@mui/material/Avatar": "Use components/Avatar/Avatar instead.", - "@mui/material/Alert": "Use components/Alert/Alert instead.", + "@mui/material/Box": "Use a
with Tailwind classes instead.", + "@mui/material/Button": "Use components/Button/Button instead.", + // "@mui/material/Card": "Use shadcn/ui Card component instead.", + // "@mui/material/CardActionArea": "Use shadcn/ui Card component instead.", + // "@mui/material/CardContent": "Use shadcn/ui Card component instead.", + // "@mui/material/Checkbox": "Use shadcn/ui Checkbox component instead.", + // "@mui/material/Chip": "Use components/Badge or Tailwind styles instead.", + // "@mui/material/CircularProgress": "Use components/Spinner/Spinner instead.", + // "@mui/material/Collapse": "Use shadcn/ui Collapsible instead.", + // "@mui/material/CssBaseline": "Use Tailwind CSS base styles instead.", + // "@mui/material/Dialog": "Use shadcn/ui Dialog component instead.", + // "@mui/material/DialogActions": "Use shadcn/ui Dialog component instead.", + // "@mui/material/DialogContent": "Use shadcn/ui Dialog component instead.", + // "@mui/material/DialogContentText": "Use shadcn/ui Dialog component instead.", + // "@mui/material/DialogTitle": "Use shadcn/ui Dialog component instead.", + // "@mui/material/Divider": "Use shadcn/ui Separator or
with Tailwind instead.", + // "@mui/material/Drawer": "Use shadcn/ui Sheet component instead.", + // "@mui/material/FormControl": "Use native form elements with Tailwind instead.", + // "@mui/material/FormControlLabel": "Use shadcn/ui Label with form components instead.", + // "@mui/material/FormGroup": "Use a
with Tailwind classes instead.", + // "@mui/material/FormHelperText": "Use a

with Tailwind classes instead.", + // "@mui/material/FormLabel": "Use shadcn/ui Label component instead.", + // "@mui/material/Grid": "Use Tailwind grid utilities instead.", + // "@mui/material/IconButton": "Use components/Button/Button with variant='icon' instead.", + // "@mui/material/InputAdornment": "Use Tailwind positioning in input wrapper instead.", + // "@mui/material/InputBase": "Use shadcn/ui Input component instead.", + // "@mui/material/LinearProgress": "Use a progress bar with Tailwind instead.", + // "@mui/material/Link": "Use React Router Link or native tags instead.", + // "@mui/material/List": "Use native