Repository: mui/material-ui
File: .eslintrc.js (JavaScript)

Code before:
    curly: ['error', 'all'],
    // Just as bad as "max components per file"
    'max-classes-per-file': 'off',
    // Too interruptive
    'no-alert': 'error',
    // Stylistic opinion
    'arrow-body-style': 'off',
    // Allow warn and error for dev environments
    'no-console': ['error', { allow: ['warn', 'error'] }],
    'no-param-reassign': 'off', // It's fine.
    // Airbnb use warn https://github.com/airbnb/javascript/blob/63098cbb6c05376dbefc9a91351f5727540c1ce1/packages/eslint-config-airbnb-base/rules/style.js#L97
    // but eslint recommands error
    'func-names': 'error',
    'no-restricted-imports': [
      'error',
      {
        patterns: [
          {
            group: [
              '@mui/*/*/*',
              '@pigment-css/*/*/*',
              '@base_ui/*/*/*',
              // Allow any import depth with any internal packages
              '!@mui/internal-*/**',
              '!@mui/docs/**',
            ],
            message: OneLevelImportMessage,
          },
        ],
      },
    ],
    'no-continue': 'off',
    'no-constant-condition': 'error',
    // Use the proptype inheritance chain
    'no-prototype-builtins': 'off',
    'no-underscore-dangle': 'error',
    'nonblock-statement-body-position': 'error',
    'prefer-arrow-callback': ['error', { allowNamedFunctions: true }],
    // Destructuring harm grep potential.
    'prefer-destructuring': 'off',

    '@typescript-eslint/no-use-before-define': [
      'error',
      {
        functions: false,
        classes: true,
        variables: true,
      },
    ],
    'no-use-before-define': 'off',


Review comment (suggestion):
We should rename this one to `@mui/internal-docs`. `@mui/docs` was exporting public packages, it's not the case anymore.

Code after:
    curly: ['error', 'all'],
    // Just as bad as "max components per file"
    'max-classes-per-file': 'off',
    // Too interruptive
    'no-alert': 'error',
    // Stylistic opinion
    'arrow-body-style': 'off',
    // Allow warn and error for dev environments
    'no-console': ['error', { allow: ['warn', 'error'] }],
    'no-param-reassign': 'off', // It's fine.
    // Airbnb use warn https://github.com/airbnb/javascript/blob/63098cbb6c05376dbefc9a91351f5727540c1ce1/packages/eslint-config-airbnb-base/rules/style.js#L97
    // but eslint recommands error
    'func-names': 'error',
    'no-restricted-imports': [
      'error',
      {
        patterns: [
          {
            group: [
              '@mui/*/*/*',
              '@pigment-css/*/*/*',
              '@base_ui/*/*/*',
              // Allow any import depth with any internal packages
              '!@mui/internal-*/**',
              // TODO delete, @mui/docs should be @mui/internal-docs
              '!@mui/docs/**',
            ],
            message: OneLevelImportMessage,
          },
        ],
      },
    ],
    'no-continue': 'off',
    'no-constant-condition': 'error',
    // Use the proptype inheritance chain
    'no-prototype-builtins': 'off',
    'no-underscore-dangle': 'error',
    'nonblock-statement-body-position': 'error',
    'prefer-arrow-callback': ['error', { allowNamedFunctions: true }],
    // Destructuring harm grep potential.
    'prefer-destructuring': 'off',

    '@typescript-eslint/no-use-before-define': [
      'error',
      {
        functions: false,
        classes: true,
        variables: true,
      },
    ],
    'no-use-before-define': 'off',