@mdn/fred 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/.env-dist +4 -0
  2. package/CHANGELOG.md +25 -0
  3. package/build/eslint-fred.js +6 -4
  4. package/build/plugins/generate-element-map.js +3 -2
  5. package/build/utils.js +0 -23
  6. package/components/curriculum/module.css +1 -0
  7. package/components/curriculum-module/server.css +1 -0
  8. package/components/env/index.js +3 -0
  9. package/components/footer/server.js +1 -1
  10. package/components/live-sample-result/element.js +1 -0
  11. package/components/menu/base.css +2 -1
  12. package/components/menu/constants.js +443 -147
  13. package/components/menu/missing-docs.json +140 -0
  14. package/components/menu/server.js +78 -657
  15. package/components/menu/types.d.ts +50 -0
  16. package/components/menu/update-missing-docs.js +66 -0
  17. package/components/outer-layout/utils.js +2 -2
  18. package/components/play-runner/element.js +14 -6
  19. package/entry.client.js +1 -0
  20. package/hooks/ga-init.js +31 -0
  21. package/hooks/glean-init.js +2 -6
  22. package/l10n/fr.ftl +145 -1
  23. package/out/service-worker.js +1 -1
  24. package/out/service-worker.js.map +1 -1
  25. package/out/static/client/{6480.09f744cd2fb69ed8.js → 6480.c839ead24f125a7e.js} +3 -2
  26. package/out/static/client/{6480.09f744cd2fb69ed8.js.map → 6480.c839ead24f125a7e.js.map} +1 -1
  27. package/out/static/client/9914.021220acc0d3e777.js +11 -0
  28. package/out/static/client/9914.021220acc0d3e777.js.map +1 -0
  29. package/out/static/client/index.0f1f5c05b3c9458b.js +412 -0
  30. package/out/static/client/index.0f1f5c05b3c9458b.js.map +1 -0
  31. package/out/static/client/{runtime.b178b9749f31202a.js → runtime.f3c0cd5b45c6e874.js} +2 -2
  32. package/out/static/client/{runtime.b178b9749f31202a.js.map → runtime.f3c0cd5b45c6e874.js.map} +1 -1
  33. package/out/static/client/stats.json +116 -116
  34. package/out/static/client/styles-curriculum-landing.cbaf6ff367369a26.css.map +1 -1
  35. package/out/static/client/styles-curriculum-module.c7ec78d3e724cf64.css.map +1 -1
  36. package/out/static/client/{styles-global.fb7afecd89ca2dff.js → styles-global.52fa98f0e9ec0040.js} +1 -1
  37. package/out/static/client/{styles-global.684fd2c5254c94b8.css → styles-global.75b8c75561733419.css} +2 -2
  38. package/out/static/client/{styles-global.684fd2c5254c94b8.css.map → styles-global.75b8c75561733419.css.map} +1 -1
  39. package/out/static/client/styles-menu.c41c14be9597dcd9.css +2 -0
  40. package/out/static/client/styles-menu.c41c14be9597dcd9.css.map +1 -0
  41. package/out/static/legacy/asset-manifest.json +5 -5
  42. package/out/static/legacy/{index.ad3600b01e18974e.html → index.4d5b9af908771553.html} +1 -1
  43. package/out/static/legacy/{index.5592b02d966df8ba.js → index.e275f57e34e5ad42.js} +3 -3
  44. package/out/static/legacy/{index.5592b02d966df8ba.js.map → index.e275f57e34e5ad42.js.map} +1 -1
  45. package/out/static/legacy/stats.json +10 -10
  46. package/out/static/legacy/{yari.8ce0be252d1ae155.js → yari.28c752c4002c881d.js} +3 -3
  47. package/out/static/legacy/{yari.8ce0be252d1ae155.js.map → yari.28c752c4002c881d.js.map} +1 -1
  48. package/out/static/ssr/index.js +306 -580
  49. package/out/static/ssr/index.js.map +1 -1
  50. package/out/static/ssr/stats.json +4 -4
  51. package/package.json +9 -9
  52. package/utils/dnt-helper.js +59 -0
  53. package/utils/name-transformation.js +40 -0
  54. package/utils/telemetry-opt-out.js +12 -0
  55. package/components/menu/check-missing-docs.js +0 -44
  56. package/out/static/client/9914.251fe19f0038e97b.js +0 -11
  57. package/out/static/client/9914.251fe19f0038e97b.js.map +0 -1
  58. package/out/static/client/index.26176fe4ab13dce5.js +0 -268
  59. package/out/static/client/index.26176fe4ab13dce5.js.map +0 -1
  60. package/out/static/client/styles-menu.5193bf2642ae7d64.css +0 -2
  61. package/out/static/client/styles-menu.5193bf2642ae7d64.css.map +0 -1
  62. /package/out/static/client/{6480.09f744cd2fb69ed8.js.LICENSE.txt → 6480.c839ead24f125a7e.js.LICENSE.txt} +0 -0
  63. /package/out/static/client/{index.26176fe4ab13dce5.js.LICENSE.txt → index.0f1f5c05b3c9458b.js.LICENSE.txt} +0 -0
  64. /package/out/static/legacy/{index.5592b02d966df8ba.js.LICENSE.txt → index.e275f57e34e5ad42.js.LICENSE.txt} +0 -0
  65. /package/out/static/legacy/{yari.8ce0be252d1ae155.js.LICENSE.txt → yari.28c752c4002c881d.js.LICENSE.txt} +0 -0
@@ -1,151 +1,447 @@
1
+ import missingDocs from "./missing-docs.json" with { type: "json" };
2
+
3
+ /** @type {import("./types.js").MenuTab[]}*/
4
+ export const TABS = [
5
+ {
6
+ id: "html",
7
+ buttonText: "HTML",
8
+ panelTitle: {
9
+ slug: "Web/HTML",
10
+ text: "HTML: Markup language",
11
+ },
12
+ panelGroups: [
13
+ {
14
+ title: "HTML reference",
15
+ items: [
16
+ { slug: "Web/HTML/Reference/Elements", text: "Elements" },
17
+ {
18
+ slug: "Web/HTML/Reference/Global_attributes",
19
+ text: "Global attributes",
20
+ },
21
+ { slug: "Web/HTML/Reference/Attributes", text: "Attributes" },
22
+ {
23
+ slug: "Web/HTML/Reference",
24
+ text: "See all…",
25
+ label: "See all HTML references",
26
+ },
27
+ ],
28
+ },
29
+ {
30
+ title: "HTML guides",
31
+ items: [
32
+ {
33
+ slug: "Web/HTML/Guides/Responsive_images",
34
+ text: "Responsive images",
35
+ },
36
+ { slug: "Web/HTML/Guides/Cheatsheet", text: "HTML cheatsheet" },
37
+ {
38
+ slug: "Web/HTML/Guides/Date_and_time_formats",
39
+ text: "Date & time formats",
40
+ },
41
+ {
42
+ slug: "Web/HTML/Guides",
43
+ text: "See all…",
44
+ label: "See all HTML guides",
45
+ },
46
+ ],
47
+ },
48
+ {
49
+ title: "Markup languages",
50
+ items: [
51
+ { slug: "Web/SVG", text: "SVG" },
52
+ { slug: "Web/MathML", text: "MathML" },
53
+ { slug: "Web/XML", text: "XML" },
54
+ ],
55
+ },
56
+ ],
57
+ },
58
+ {
59
+ id: "css",
60
+ buttonText: "CSS",
61
+ panelTitle: {
62
+ slug: "Web/CSS",
63
+ text: "CSS: Styling language",
64
+ },
65
+ panelGroups: [
66
+ {
67
+ title: "CSS reference",
68
+ items: [
69
+ { slug: "Web/CSS/Properties", text: "Properties" },
70
+ { slug: "Web/CSS/CSS_selectors", text: "Selectors" },
71
+ { slug: "Web/CSS/CSS_syntax/At-rule", text: "At-rules" },
72
+ { slug: "Web/CSS/CSS_values_and_units", text: "Values & units" },
73
+ {
74
+ slug: "Web/CSS/Reference",
75
+ text: "See all…",
76
+ label: "See all CSS references",
77
+ },
78
+ ],
79
+ },
80
+ {
81
+ title: "CSS guides",
82
+ items: [
83
+ {
84
+ slug: "Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model",
85
+ text: "Box model",
86
+ },
87
+ {
88
+ slug: "Web/CSS/CSS_animations/Using_CSS_animations",
89
+ text: "Animations",
90
+ },
91
+ {
92
+ slug: "Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox",
93
+ text: "Flexbox",
94
+ },
95
+ { slug: "Web/CSS/CSS_colors", text: "Colors" },
96
+ {
97
+ slug: "Web/CSS/Guides",
98
+ text: "See all…",
99
+ label: "See all CSS guides",
100
+ },
101
+ ],
102
+ },
103
+ {
104
+ title: "Layout cookbook",
105
+ items: [
106
+ {
107
+ slug: "Web/CSS/Layout_cookbook/Column_layouts",
108
+ text: "Column layouts",
109
+ },
110
+ {
111
+ slug: "Web/CSS/Layout_cookbook/Center_an_element",
112
+ text: "Centering an element",
113
+ },
114
+ { slug: "Web/CSS/Layout_cookbook/Card", text: "Card component" },
115
+ { slug: "Web/CSS/Layout_cookbook", text: "See all…" },
116
+ ],
117
+ },
118
+ ],
119
+ },
120
+ {
121
+ id: "javascript",
122
+ buttonText: {
123
+ long: "JavaScript",
124
+ short: "JS",
125
+ },
126
+ panelTitle: {
127
+ slug: "Web/JavaScript",
128
+ text: "JavaScript: Scripting language",
129
+ },
130
+ panelGroups: [
131
+ {
132
+ title: "JS reference",
133
+ items: [
134
+ {
135
+ slug: "Web/JavaScript/Reference/Global_Objects",
136
+ text: "Standard built-in objects",
137
+ },
138
+ {
139
+ slug: "Web/JavaScript/Reference/Operators",
140
+ text: "Expressions & operators",
141
+ },
142
+ {
143
+ slug: "Web/JavaScript/Reference/Statements",
144
+ text: "Statements & declarations",
145
+ },
146
+ { slug: "Web/JavaScript/Reference/Functions", text: "Functions" },
147
+ {
148
+ slug: "Web/JavaScript/Reference",
149
+ text: "See all…",
150
+ label: "See all JavaScript references",
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ title: "JS guides",
156
+ items: [
157
+ {
158
+ slug: "Web/JavaScript/Guide/Control_flow_and_error_handling",
159
+ text: "Control flow & error handing",
160
+ },
161
+ {
162
+ slug: "Web/JavaScript/Guide/Loops_and_iteration",
163
+ text: "Loops and iteration",
164
+ },
165
+ {
166
+ slug: "Web/JavaScript/Guide/Working_with_objects",
167
+ text: "Working with objects",
168
+ },
169
+ {
170
+ slug: "Web/JavaScript/Guide/Using_classes",
171
+ text: "Using classes",
172
+ },
173
+ {
174
+ slug: "Web/JavaScript/Guide",
175
+ text: "See all…",
176
+ label: "See all JavaScript guides",
177
+ },
178
+ ],
179
+ },
180
+ ],
181
+ },
182
+ {
183
+ id: "webapis",
184
+ buttonText: "Web APIs",
185
+ panelTitle: {
186
+ slug: "Web/API",
187
+ text: "Web APIs: Programming interfaces",
188
+ },
189
+ panelGroups: [
190
+ {
191
+ title: "Web API reference",
192
+ items: [
193
+ { slug: "Web/API/File_System_API", text: "File system API" },
194
+ { slug: "Web/API/Fetch_API", text: "Fetch API" },
195
+ { slug: "Web/API/Geolocation_API", text: "Geolocation API" },
196
+ { slug: "Web/API/HTML_DOM_API", text: "HTML DOM API" },
197
+ { slug: "Web/API/Push_API", text: "Push API" },
198
+ {
199
+ slug: "Web/API/Service_Worker_API",
200
+ text: "Service worker API",
201
+ },
202
+ {
203
+ slug: "Web/API",
204
+ text: "See all…",
205
+ label: "See all Web API guides",
206
+ },
207
+ ],
208
+ },
209
+ {
210
+ title: "Web API guides",
211
+ items: [
212
+ {
213
+ slug: "Web/API/Web_Animations_API/Using_the_Web_Animations_API",
214
+ text: "Using the Web animation API",
215
+ },
216
+ {
217
+ slug: "Web/API/Fetch_API/Using_Fetch",
218
+ text: "Using the Fetch API",
219
+ },
220
+ {
221
+ slug: "Web/API/History_API/Working_with_the_History_API",
222
+ text: "Working with the History API",
223
+ },
224
+ {
225
+ slug: "Web/API/Web_Speech_API/Using_the_Web_Speech_API",
226
+ text: "Using the Web speech API",
227
+ },
228
+ {
229
+ slug: "Web/API/Web_Workers_API/Using_web_workers",
230
+ text: "Using web workers",
231
+ },
232
+ ],
233
+ },
234
+ ],
235
+ },
236
+ {
237
+ id: "all",
238
+ buttonText: "All",
239
+ panelTitle: {
240
+ slug: "Web",
241
+ text: "All web technology",
242
+ },
243
+ panelGroups: [
244
+ {
245
+ title: "Technologies",
246
+ items: [
247
+ { slug: "Web/Accessibility", text: "Accessibility" },
248
+ { slug: "Web/HTTP", text: "HTTP" },
249
+ { slug: "Web/URI", text: "URI" },
250
+ { slug: "Mozilla/Add-ons/WebExtensions", text: "Web extensions" },
251
+ { slug: "WebAssembly", text: "WebAssembly" },
252
+ { slug: "Web/WebDriver", text: "WebDriver" },
253
+ {
254
+ slug: "Web",
255
+ text: "See all…",
256
+ label: "See all web technology references",
257
+ },
258
+ ],
259
+ },
260
+ {
261
+ title: "Topics",
262
+ items: [
263
+ { slug: "Web/Media", text: "Media" },
264
+ { slug: "Web/API/Performance", text: "Performance" },
265
+ { slug: "Web/Privacy", text: "Privacy" },
266
+ { slug: "Web/Security", text: "Security" },
267
+ {
268
+ slug: "Web/Progressive_web_apps",
269
+ text: "Progressive web apps",
270
+ },
271
+ ],
272
+ },
273
+ ],
274
+ },
275
+ {
276
+ id: "learn",
277
+ buttonText: "Learn",
278
+ panelTitle: {
279
+ slug: "Learn_web_development",
280
+ text: "Learn web development",
281
+ },
282
+ panelGroups: [
283
+ {
284
+ title: "Frontend developer course",
285
+ items: [
286
+ {
287
+ slug: "Learn_web_development/Getting_started",
288
+ text: "Getting started",
289
+ },
290
+ { slug: "Learn_web_development/Howto", text: "Common questions" },
291
+ {
292
+ href: "/en-US/curriculum/",
293
+ text: "Curriculum",
294
+ },
295
+ ],
296
+ },
297
+ {
298
+ title: "Learn HTML",
299
+ items: [
300
+ {
301
+ slug: "Learn_web_development/Core/Structuring_content",
302
+ text: "Introduction to HTML",
303
+ },
304
+ {
305
+ slug: "Learn_web_development/Core/Structuring_content/Basic_HTML_syntax",
306
+ text: "Getting started with HTML",
307
+ },
308
+ ],
309
+ },
310
+ {
311
+ title: "Learn CSS",
312
+ items: [
313
+ {
314
+ slug: "Learn_web_development/Core/Styling_basics/What_is_CSS",
315
+ text: "What is CSS",
316
+ },
317
+ {
318
+ slug: "Learn_web_development/Core/Styling_basics/Getting_started",
319
+ text: "Getting started with CSS",
320
+ },
321
+ ],
322
+ },
323
+ {
324
+ title: "Learn JavaScript",
325
+ items: [
326
+ {
327
+ slug: "Web/HTML/How_to/Use_data_attributes",
328
+ text: "How to use data attributes",
329
+ },
330
+ {
331
+ slug: "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
332
+ text: "Add JavaScript to your web page",
333
+ },
334
+ ],
335
+ },
336
+ ],
337
+ },
338
+ {
339
+ id: "tools",
340
+ buttonText: "Tools",
341
+ panelTitle: {
342
+ text: "Discover our tools",
343
+ },
344
+ panelGroups: [
345
+ {
346
+ items: [
347
+ {
348
+ href: "/en-US/play",
349
+ text: "Playground",
350
+ icon: "circle-play",
351
+ },
352
+ {
353
+ href: "/en-US/observatory",
354
+ text: "HTTP Observatory",
355
+ icon: "shield-check",
356
+ },
357
+ ],
358
+ },
359
+ {
360
+ items: [
361
+ {
362
+ slug: "Web/CSS/CSS_backgrounds_and_borders/Border-image_generator",
363
+ text: "Border-image generator",
364
+ },
365
+ {
366
+ slug: "Web/CSS/CSS_backgrounds_and_borders/Border-radius_generator",
367
+ text: "Border-radius generator",
368
+ },
369
+ {
370
+ slug: "Web/CSS/CSS_backgrounds_and_borders/Box-shadow_generator",
371
+ text: "Box-shadow generator",
372
+ },
373
+ {
374
+ slug: "Web/CSS/CSS_colors/Color_format_converter",
375
+ text: "Color format converter",
376
+ },
377
+ { slug: "Web/CSS/CSS_colors/Color_mixer", text: "Color mixer" },
378
+ {
379
+ slug: "Web/CSS/CSS_shapes/Shape_generator",
380
+ text: "Shape generator",
381
+ },
382
+ ],
383
+ },
384
+ ],
385
+ },
386
+ {
387
+ id: "about",
388
+ buttonText: "About",
389
+ panelTitle: {
390
+ text: "Get to know MDN better",
391
+ },
392
+ panelGroups: [
393
+ {
394
+ items: [
395
+ {
396
+ href: "/en-US/about",
397
+ text: "About MDN",
398
+ icon: "mdn-m",
399
+ },
400
+ {
401
+ href: "/en-US/advertising",
402
+ text: "Advertise with us",
403
+ icon: "chart-no-axes-combined",
404
+ },
405
+ ],
406
+ },
407
+ {
408
+ items: [
409
+ {
410
+ href: "/en-US/community",
411
+ text: "Community",
412
+ icon: "users",
413
+ },
414
+ {
415
+ href: "https://github.com/mdn",
416
+ text: "MDN on GitHub",
417
+ icon: "github",
418
+ },
419
+ ],
420
+ },
421
+ ],
422
+ },
423
+ {
424
+ id: "blog",
425
+ buttonText: "Blog",
426
+ href: "/en-US/blog/",
427
+ },
428
+ ];
429
+
1
430
  /**
2
431
  * Lists untranslated menu pages per locale.
3
432
  *
4
- * Tip: Run `node check-missing-docs.js` to check.
5
- *
6
- * @type {Record<string, string[]>}
433
+ * Tip: Run `node update-missing-docs.js` to update.
7
434
  */
8
- export const MISSING_DOCS = {
9
- es: [
10
- "Web/API/HTML_DOM_API",
11
- "Web/API/History_API/Working_with_the_History_API",
12
- "Web/API/Web_Animations_API/Using_the_Web_Animations_API",
13
- "Web/CSS/CSS_values_and_units",
14
- "Web/CSS/CSS_backgrounds_and_borders/Box-shadow_generator",
15
- "Web/CSS/CSS_colors/Color_mixer",
16
- "Web/CSS/CSS_shapes/Shape_generator",
17
- "Web/CSS/Guides",
18
- "Web/CSS/Layout_cookbook/Card",
19
- "Web/CSS/Layout_cookbook/Center_an_element",
20
- "Web/CSS/Layout_cookbook/Column_layouts",
21
- "Web/CSS/Properties",
22
- "Web/HTML/Guides",
23
- "Web/HTML/Guides/Cheatsheet",
24
- "Web/HTML/Guides/Date_and_time_formats",
25
- "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
26
- "Web/JavaScript/Guide/Using_classes",
27
- "Web/Privacy",
28
- "Web/URI",
29
- "Web/WebDriver",
30
- ],
31
- fr: [
32
- "Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model",
33
- "Web/CSS/CSS_shapes/Shape_generator",
34
- ],
35
- ja: ["Web/CSS/CSS_colors/Color_mixer", "Web/CSS/CSS_shapes/Shape_generator"],
36
- ko: [
37
- "Web/API/Performance",
38
- "Web/API/Web_Animations_API/Using_the_Web_Animations_API",
39
- "Web/API/Web_Speech_API/Using_the_Web_Speech_API",
40
- "Web/API/Web_Workers_API/Using_web_workers",
41
- "Web/CSS/CSS_colors/Color_mixer",
42
- "Web/CSS/CSS_shapes/Shape_generator",
43
- "Web/CSS/Guides",
44
- "Web/CSS/Layout_cookbook",
45
- "Web/CSS/Layout_cookbook/Card",
46
- "Web/CSS/Layout_cookbook/Column_layouts",
47
- "Web/CSS/Properties",
48
- "Web/HTML/Guides",
49
- "Web/HTML/Guides/Cheatsheet",
50
- "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
51
- "Web/JavaScript/Guide/Using_classes",
52
- "Web/URI",
53
- "Web/WebDriver",
54
- ],
55
- "pt-BR": [
56
- "Learn_web_development/Getting_started",
57
- "Web/API/File_System_API",
58
- "Web/API/HTML_DOM_API",
59
- "Web/API/Performance",
60
- "Web/API/Web_Speech_API/Using_the_Web_Speech_API",
61
- "Web/API/Web_Workers_API/Using_web_workers",
62
- "Web/CSS/CSS_values_and_units",
63
- "Web/CSS/CSS_backgrounds_and_borders/Box-shadow_generator",
64
- "Web/CSS/CSS_colors",
65
- "Web/CSS/CSS_colors/Color_mixer",
66
- "Web/CSS/CSS_shapes/Shape_generator",
67
- "Web/CSS/Guides",
68
- "Web/CSS/Layout_cookbook/Card",
69
- "Web/CSS/Layout_cookbook/Center_an_element",
70
- "Web/CSS/Layout_cookbook/Column_layouts",
71
- "Web/CSS/Properties",
72
- "Web/HTML/Guides",
73
- "Web/HTML/Guides/Cheatsheet",
74
- "Web/HTML/Guides/Date_and_time_formats",
75
- "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
76
- "Web/JavaScript/Guide/Using_classes",
77
- "Web/Media",
78
- "Web/Privacy",
79
- "Web/URI",
80
- "Web/WebDriver",
81
- "Web/XML",
82
- ],
83
- ru: [
84
- "Learn_web_development/Getting_started",
85
- "Web/API/HTML_DOM_API",
86
- "Web/CSS/CSS_values_and_units",
87
- "Web/CSS/CSS_colors/Color_mixer",
88
- "Web/CSS/CSS_shapes/Shape_generator",
89
- "Web/CSS/Guides",
90
- "Web/CSS/Layout_cookbook/Card",
91
- "Web/CSS/Layout_cookbook/Center_an_element",
92
- "Web/CSS/Layout_cookbook/Column_layouts",
93
- "Web/CSS/Properties",
94
- "Web/HTML/Guides",
95
- "Web/HTML/Guides/Cheatsheet",
96
- "Web/HTML/Guides/Date_and_time_formats",
97
- "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
98
- "Web/JavaScript/Guide/Using_classes",
99
- "Web/Media",
100
- "Web/Privacy",
101
- "Web/WebDriver",
102
- ],
103
- "zh-CN": [
104
- "Web/CSS/CSS_colors/Color_mixer",
105
- "Web/CSS/CSS_shapes/Shape_generator",
106
- "Web/CSS/Properties",
107
- ],
108
- "zh-TW": [
109
- "Learn_web_development/Getting_started",
110
- "Web/API/File_System_API",
111
- "Web/API/HTML_DOM_API",
112
- "Web/API/History_API/Working_with_the_History_API",
113
- "Web/API/Performance",
114
- "Web/API/Push_API",
115
- "Web/API/Service_Worker_API",
116
- "Web/API/Web_Animations_API/Using_the_Web_Animations_API",
117
- "Web/API/Web_Speech_API/Using_the_Web_Speech_API",
118
- "Web/CSS/CSS_values_and_units",
119
- "Web/CSS/CSS_backgrounds_and_borders/Border-image_generator",
120
- "Web/CSS/CSS_backgrounds_and_borders/Border-radius_generator",
121
- "Web/CSS/CSS_backgrounds_and_borders/Box-shadow_generator",
122
- "Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model",
123
- "Web/CSS/CSS_colors",
124
- "Web/CSS/CSS_colors/Color_mixer",
125
- "Web/CSS/CSS_shapes/Shape_generator",
126
- "Web/CSS/CSS_syntax/At-rule",
127
- "Web/CSS/Guides",
128
- "Web/CSS/Layout_cookbook",
129
- "Web/CSS/Layout_cookbook/Card",
130
- "Web/CSS/Layout_cookbook/Center_an_element",
131
- "Web/CSS/Layout_cookbook/Column_layouts",
132
- "Web/CSS/Properties",
133
- "Web/CSS/Reference",
134
- "Web/HTML/Guides",
135
- "Web/HTML/Guides/Cheatsheet",
136
- "Web/HTML/Guides/Date_and_time_formats",
137
- "Web/HTML/Guides/Responsive_images",
138
- "Web/HTML/How_to/Add_JavaScript_to_your_web_page",
139
- "Web/HTML/How_to/Use_data_attributes",
140
- "Web/HTML/Reference/Elements",
141
- "Web/HTML/Reference/Global_attributes",
142
- "Web/JavaScript/Guide/Using_classes",
143
- "Web/JavaScript/Guide/Working_with_objects",
144
- "Web/JavaScript/Reference/Functions",
145
- "Web/JavaScript/Reference/Statements",
146
- "Web/Privacy",
147
- "Web/URI",
148
- "Web/WebDriver",
149
- "Web/XML",
150
- ],
151
- };
435
+ /** @type {Record<string, string[]>} */
436
+ export const MISSING_DOCS = Object.freeze(missingDocs);
437
+
438
+ export const TRANSLATED_LOCALES = [
439
+ "es",
440
+ "fr",
441
+ "ja",
442
+ "ko",
443
+ "pt-BR",
444
+ "ru",
445
+ "zh-CN",
446
+ "zh-TW",
447
+ ];