chore: remove deprecated .eslintrc.js for ESLint 9.x compatibility

ESLint 9.x uses flat config (eslint.config.mjs) by default and doesn't look for .eslintrc.js files. The flat config already contains all the necessary configuration.

Michael Smith committed Feb 4, 2026 at 13:50 UTC 0f6ceed0464c6cc9bf6476c3916cc48e623b0085
1 file changed -214
.eslintrc.js deleted
-214
@@ -1,214 +0,0 @@
1 -module.exports = {
2 - root: true,
3 - ignorePatterns: ['.cache/', 'public/'],
4 - plugins: ['primer-react'], // github plugin now comes from flat config
5 - extends: ['@npmcli', 'react-app', 'eslint:recommended', 'plugin:react/recommended', 'prettier'],
6 - rules: {
7 - 'max-len': 'off',
8 - 'react/prop-types': 'off',
9 - 'primer-react/direct-slot-children': 'error',
10 - 'primer-react/no-system-props': ['error', {includeUtilityComponents: true}],
11 - 'primer-react/a11y-tooltip-interactive-trigger': 'error',
12 - 'primer-react/new-color-css-vars': 'error',
13 - 'primer-react/a11y-explicit-heading': 'error',
14 - 'primer-react/no-deprecated-props': 'warn',
15 - 'primer-react/a11y-remove-disable-tooltip': 'error',
16 - 'primer-react/a11y-use-accessible-tooltip': 'error',
17 - },
18 - settings: {
19 - 'import/resolver': {
20 - typescript: {},
21 - },
22 - },
23 - overrides: [
24 - {
25 - files: ['*.js'],
26 - extends: ['plugin:import/recommended'],
27 - },
28 - {
29 - files: ['src/shared.js'],
30 - rules: {
31 - 'react/no-unescaped-entities': 'off',
32 - },
33 - },
34 - {
35 - files: ['*.mdx'],
36 - plugins: ['mdx', 'prettier'],
37 - extends: ['plugin:mdx/recommended'],
38 - parserOptions: {
39 - sourceType: 'module',
40 - },
41 - globals: {
42 - Index: 'readonly',
43 - Note: 'readonly',
44 - Prompt: 'readonly',
45 - Screenshot: 'readonly',
46 - Link: 'readonly',
47 - YouTube: 'readonly',
48 - DataTable: 'readonly',
49 - InlineCode: 'readonly',
50 - Strikethrough: 'readonly',
51 - CliLink: 'readonly',
52 - },
53 - settings: {
54 - 'import/resolver': 'webpack',
55 - },
56 - rules: {
57 - 'no-irregular-whitespace': 'off',
58 - 'react/no-unescaped-entities': 'off',
59 - 'react/jsx-key': 'off',
60 - },
61 - },
62 - {
63 - files: ['*.mdx', 'src/shared.js', 'src/**/*.js'],
64 - rules: {
65 - 'react/forbid-elements': [
66 - 'error',
67 - {
68 - // See https://github.com/npm/documentation/pull/791
69 - // https://gist.githubusercontent.com/cecchi/99772a8483914b112400/raw/bcaecc4ba809caec518158bb46f9dead456ae5da/html-tags.json
70 - forbid: [
71 - 'abbr',
72 - 'acronym',
73 - 'address',
74 - 'applet',
75 - 'area',
76 - 'article',
77 - 'audio',
78 - 'b',
79 - 'base',
80 - 'basefont',
81 - 'bdi',
82 - 'bdo',
83 - 'big',
84 - 'blink',
85 - 'br',
86 - 'button',
87 - 'canvas',
88 - 'caption',
89 - 'center',
90 - 'cite',
91 - 'code',
92 - 'col',
93 - 'colgroup',
94 - 'content',
95 - 'data',
96 - 'datalist',
97 - 'dd',
98 - 'del',
99 - 'details',
100 - 'dfn',
101 - 'dialog',
102 - 'dir',
103 - // ok because Box is deprecated and styles are provided via CSS modules
104 - // 'div',
105 - 'dl',
106 - 'dt',
107 - 'element',
108 - 'em',
109 - 'embed',
110 - 'fieldset',
111 - 'figcaption',
112 - 'figure',
113 - 'footer',
114 - 'form',
115 - 'frame',
116 - 'frameset',
117 - 'h1',
118 - 'h2',
119 - 'h3',
120 - 'h4',
121 - 'h5',
122 - 'h6',
123 - 'head',
124 - // ok because Box is deprecated and styles are provided via CSS modules
125 - // 'header',
126 - 'hgroup',
127 - 'hr',
128 - // used in head
129 - // 'html',
130 - 'i',
131 - // ok because Box is deprecated and styles are provided via CSS modules
132 - // 'iframe',
133 - 'input',
134 - 'ins',
135 - 'isindex',
136 - 'kbd',
137 - 'keygen',
138 - 'label',
139 - 'legend',
140 - // ok because there is no mdx replacement and styles are provided via parent ul/ol
141 - // 'li',
142 - 'listing',
143 - // ok because Box is deprecated and styles are provided via CSS modules
144 - // 'main',
145 - 'map',
146 - 'mark',
147 - 'menu',
148 - 'menuitem',
149 - 'meter',
150 - // ok because Box is deprecated and styles are provided via CSS modules
151 - // 'nav',
152 - 'noembed',
153 - 'noscript',
154 - 'object',
155 - 'ol',
156 - 'optgroup',
157 - 'option',
158 - 'output',
159 - // ok because Box is deprecated and styles are provided via CSS modules
160 - // 'p',
161 - 'param',
162 - 'plaintext',
163 - // ok because Box is deprecated and styles are provided via CSS modules
164 - // 'pre',
165 - 'progress',
166 - 'q',
167 - 'rp',
168 - 'rt',
169 - 'rtc',
170 - 'ruby',
171 - 's',
172 - 'samp',
173 - 'script',
174 - 'section',
175 - 'select',
176 - 'shadow',
177 - 'small',
178 - 'source',
179 - 'spacer',
180 - 'span',
181 - 'strike',
182 - // ok since there is no mdx replacement
183 - // 'strong'
184 - 'style',
185 - 'sub',
186 - 'summary',
187 - 'sup',
188 - 'table',
189 - 'tbody',
190 - 'td',
191 - 'template',
192 - 'tfoot',
193 - 'th',
194 - 'thead',
195 - 'time',
196 - // used in head
197 - // 'title',
198 - 'tr',
199 - 'track',
200 - 'tt',
201 - 'u',
202 - // ok because Box is deprecated and styles are provided via CSS modules
203 - // 'ul',
204 - 'var',
205 - 'video',
206 - 'wbr',
207 - 'xmp',
208 - ],
209 - },
210 - ],
211 - },
212 - },
213 - ],
214 -}