@mdn/fred 0.1.0 → 0.2.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 (640) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/build/render.js +3 -3
  3. package/build/server-worker.js +2 -2
  4. package/build/types.d.ts +2 -2
  5. package/components/a11y-menu/server.css +1 -1
  6. package/components/about-tabs/element.css +3 -1
  7. package/components/about-tabs/element.js +8 -0
  8. package/components/advertising/server.css +1 -1
  9. package/components/article-footer/server.css +0 -4
  10. package/components/article-footer/server.js +13 -16
  11. package/components/baseline-indicator/server.css +5 -6
  12. package/components/baseline-indicator/server.js +1 -6
  13. package/components/blog-index/server.css +2 -2
  14. package/components/blog-post/server.css +3 -3
  15. package/components/breadcrumbs-bar/server.js +26 -7
  16. package/components/button/pure.js +6 -3
  17. package/components/code-example/common.css +47 -3
  18. package/components/code-example/element.js +4 -5
  19. package/components/code-example/prism.css +62 -59
  20. package/components/color/area.css +11 -0
  21. package/components/color/border.css +1 -1
  22. package/components/color/global.css +5 -4
  23. package/components/color-theme/element.css +4 -0
  24. package/components/color-theme/element.js +19 -30
  25. package/components/compat-table/index-common.css +4 -2
  26. package/components/content-section/server.css +137 -23
  27. package/components/contributor-spotlight/server.css +4 -4
  28. package/components/curriculum/assets/curriculum-landing-top.svg +1 -1
  29. package/components/curriculum/layout.css +81 -13
  30. package/components/curriculum/module-list.css +5 -5
  31. package/components/curriculum/module.css +3 -3
  32. package/components/curriculum/shared.css +14 -47
  33. package/components/curriculum/sidebar.css +66 -294
  34. package/components/curriculum/toc.css +9 -23
  35. package/components/curriculum/utils.js +47 -58
  36. package/components/curriculum/vars.css +68 -39
  37. package/components/curriculum-about/server.css +17 -3
  38. package/components/curriculum-about/server.js +18 -15
  39. package/components/curriculum-default/server.css +11 -0
  40. package/components/curriculum-default/server.js +17 -14
  41. package/components/curriculum-landing/server.css +7 -7
  42. package/components/curriculum-module/server.css +75 -73
  43. package/components/curriculum-module/server.js +19 -17
  44. package/components/curriculum-overview/server.css +11 -0
  45. package/components/curriculum-overview/server.js +60 -24
  46. package/components/dropdown/element.js +3 -1
  47. package/components/featured-articles/server.css +1 -1
  48. package/components/font/README.md +11 -0
  49. package/components/font/fonts/jetbrains-mono-cyrillic.woff2 +0 -0
  50. package/components/font/fonts/jetbrains-mono-italic-cyrillic.woff2 +0 -0
  51. package/components/font/fonts/jetbrains-mono-italic-latin-extended.woff2 +0 -0
  52. package/components/font/fonts/jetbrains-mono-italic-latin.woff2 +0 -0
  53. package/components/font/fonts/jetbrains-mono-latin-extended.woff2 +0 -0
  54. package/components/font/fonts/jetbrains-mono-latin.woff2 +0 -0
  55. package/components/font/fonts/jetbrains-mono-nl.patch +4758 -0
  56. package/components/font/fonts/source/jetbrains-mono-italic.ttf +0 -0
  57. package/components/font/fonts/source/jetbrains-mono.ttf +0 -0
  58. package/components/font/global.css +3 -0
  59. package/components/font/inter.css +6 -0
  60. package/components/footer/server.css +20 -3
  61. package/components/footer/server.js +3 -0
  62. package/components/generic-about/server.css +16 -14
  63. package/components/generic-community/server.css +16 -16
  64. package/components/generic-community/server.js +11 -4
  65. package/components/generic-content/server.css +1 -1
  66. package/components/generic-sidebar/server.css +2 -2
  67. package/components/generic-sidebar/server.js +14 -5
  68. package/components/generic-toc/server.css +2 -2
  69. package/components/homepage-search/element.css +14 -17
  70. package/components/html/global.css +3 -0
  71. package/components/icon/chart-no-axes-combined.svg +1 -0
  72. package/components/icon/circle-play.svg +1 -0
  73. package/components/icon/log-in.svg +1 -0
  74. package/components/icon/mdn-m.svg +1 -0
  75. package/components/icon/shield-check.svg +1 -0
  76. package/components/icon/users.svg +1 -0
  77. package/components/interactive-example/element.css +3 -1
  78. package/components/issues-table/element.css +2 -2
  79. package/components/ix-tab/element.css +1 -1
  80. package/components/language-switcher/element.css +2 -1
  81. package/components/language-switcher/element.js +1 -0
  82. package/components/latest-news/server.css +1 -1
  83. package/components/left-sidebar/server.css +12 -15
  84. package/components/live-sample-result/element.css +1 -0
  85. package/components/live-sample-result/element.js +10 -2
  86. package/components/logo/server.css +5 -0
  87. package/components/mandala/server.css +2 -2
  88. package/components/media/index.css +3 -0
  89. package/components/menu/base.css +40 -11
  90. package/components/menu/desktop.css +1 -1
  91. package/components/menu/mobile.css +1 -1
  92. package/components/menu/server.js +34 -45
  93. package/components/modal/element.js +1 -1
  94. package/components/navigation/base.css +0 -8
  95. package/components/navigation/desktop.css +22 -5
  96. package/components/navigation/mobile.css +25 -6
  97. package/components/navigation/server.js +5 -2
  98. package/components/not-found/element.css +1 -0
  99. package/components/not-found/element.js +1 -1
  100. package/components/observatory/colors.css +64 -0
  101. package/components/observatory/common.css +5 -0
  102. package/components/observatory-comparison-table/element.css +6 -6
  103. package/components/observatory-form/element.css +6 -11
  104. package/components/observatory-header-link/element.css +1 -9
  105. package/components/observatory-human-duration/element.css +1 -0
  106. package/components/observatory-human-duration/element.js +4 -3
  107. package/components/observatory-landing/server.css +208 -1
  108. package/components/observatory-landing/server.js +76 -66
  109. package/components/observatory-rescan-button/element.css +1 -0
  110. package/components/observatory-rescan-button/element.js +11 -3
  111. package/components/observatory-results/element.css +38 -42
  112. package/components/observatory-results/server.css +119 -1
  113. package/components/observatory-results/server.js +47 -43
  114. package/components/observatory-tests-and-scores/element.css +3 -1
  115. package/components/outer-layout/server.js +8 -2
  116. package/components/placement-sidebar/element.css +1 -1
  117. package/components/play-console/element.css +1 -1
  118. package/components/play-runner/element.css +3 -0
  119. package/components/playground/element.css +35 -9
  120. package/components/playground/element.js +63 -3
  121. package/components/prev-next/index.css +32 -3
  122. package/components/radius/global.css +6 -0
  123. package/components/reference-layout/server.css +4 -4
  124. package/components/reference-layout/server.js +6 -3
  125. package/components/reference-toc/server.css +2 -2
  126. package/components/scrim-inline/element.css +2 -2
  127. package/components/scrim-inline/global.css +1 -1
  128. package/components/search-button/element.css +7 -1
  129. package/components/search-modal/element.css +61 -27
  130. package/components/search-modal/element.js +14 -0
  131. package/components/sidebar-filter/element.css +1 -1
  132. package/components/site-search/element.css +6 -7
  133. package/components/specifications-list/index.js +18 -26
  134. package/components/switch/element.css +1 -1
  135. package/components/user-menu/base.css +0 -7
  136. package/components/user-menu/desktop.css +15 -3
  137. package/components/user-menu/element.js +10 -2
  138. package/components/user-menu/mobile.css +2 -14
  139. package/components/utils/index.js +9 -0
  140. package/components/vars/global.css +1 -1
  141. package/components/writer-open-editor/element.js +31 -0
  142. package/components/writer-toolbar/server.css +11 -0
  143. package/components/writer-toolbar/server.js +27 -0
  144. package/dist/client/{1048.7f6f1de50a1fda0d.js → 1048.9db1491a9a9f26c3.js} +2 -2
  145. package/dist/client/{1048.7f6f1de50a1fda0d.js.map → 1048.9db1491a9a9f26c3.js.map} +1 -1
  146. package/dist/client/1197.65020044d7ef7add.css +32 -0
  147. package/dist/client/1197.65020044d7ef7add.css.map +1 -0
  148. package/dist/client/1241.691b26f66d52ce68.css +2 -0
  149. package/dist/client/1241.691b26f66d52ce68.css.map +1 -0
  150. package/dist/client/{1342.b05de4cd80d4c221.js → 1342.a66390274e8adda1.js} +8 -8
  151. package/dist/client/{1342.b05de4cd80d4c221.js.map → 1342.a66390274e8adda1.js.map} +1 -1
  152. package/dist/client/1624.98ead28526f7a6a1.js +69 -0
  153. package/dist/client/{1624.5694c64f5e45232c.js.map → 1624.98ead28526f7a6a1.js.map} +1 -1
  154. package/dist/client/1739.8793c189d4f57b38.js +8 -0
  155. package/dist/client/{1739.505aa54ed62222c8.js.map → 1739.8793c189d4f57b38.js.map} +1 -1
  156. package/dist/client/{1916.bc7551ab839d52f8.js → 1916.53595bf8d5201723.js} +3 -3
  157. package/dist/client/{1916.bc7551ab839d52f8.js.map → 1916.53595bf8d5201723.js.map} +1 -1
  158. package/dist/client/2254.85c84b41fe477e9f.css +2 -0
  159. package/dist/client/2254.85c84b41fe477e9f.css.map +1 -0
  160. package/dist/client/2299.15bde599f83bc9f8.js +2 -0
  161. package/dist/client/2299.15bde599f83bc9f8.js.map +1 -0
  162. package/dist/client/{2448.92286b4e96ad1c02.js → 2448.34e8a46d8ac913b9.js} +7 -7
  163. package/dist/client/2448.34e8a46d8ac913b9.js.map +1 -0
  164. package/dist/client/{2656.0009ef5e53d43860.js → 2656.9ffeb69f976e1ada.js} +3 -3
  165. package/dist/client/{2656.0009ef5e53d43860.js.map → 2656.9ffeb69f976e1ada.js.map} +1 -1
  166. package/dist/client/268.5b8cf50cd9481947.js +50 -0
  167. package/dist/client/268.5b8cf50cd9481947.js.map +1 -0
  168. package/dist/client/2826.d61ca617ff379ad4.js +29 -0
  169. package/dist/client/2826.d61ca617ff379ad4.js.map +1 -0
  170. package/dist/client/{9632.b317ca4ae5930b4a.js → 3536.38f4b1a8002b53e2.js} +30 -2
  171. package/dist/client/3536.38f4b1a8002b53e2.js.map +1 -0
  172. package/dist/client/{3580.bf3f2a7896833bd8.js → 3580.92db5b07a85b0961.js} +2 -2
  173. package/dist/client/{3580.bf3f2a7896833bd8.js.map → 3580.92db5b07a85b0961.js.map} +1 -1
  174. package/dist/client/37.d890a50de1313ae7.js +120 -0
  175. package/dist/client/37.d890a50de1313ae7.js.map +1 -0
  176. package/dist/client/{3769.d1f1fcf335099c33.js → 3769.f46716bd58921c06.js} +6 -5
  177. package/dist/client/3769.f46716bd58921c06.js.map +1 -0
  178. package/dist/client/3892.db79ccfcc2e8b5a2.js +5 -0
  179. package/dist/client/3892.db79ccfcc2e8b5a2.js.map +1 -0
  180. package/dist/client/391.947b429ccac6ca45.js +8 -0
  181. package/dist/client/391.947b429ccac6ca45.js.map +1 -0
  182. package/dist/client/{4036.5ca9997e4c034473.js → 4036.4aa9a690073ccbac.js} +11 -7
  183. package/dist/client/4036.4aa9a690073ccbac.js.map +1 -0
  184. package/dist/client/4045.ec4c143648ab2280.js +8 -0
  185. package/dist/client/4045.ec4c143648ab2280.js.map +1 -0
  186. package/dist/client/4531.5f4701b319065b2b.js +34 -0
  187. package/dist/client/4531.5f4701b319065b2b.js.map +1 -0
  188. package/dist/client/{476.0de6391161b814ad.js → 476.67faa1bd02f2479c.js} +3 -3
  189. package/dist/client/{476.0de6391161b814ad.js.map → 476.67faa1bd02f2479c.js.map} +1 -1
  190. package/dist/client/{4849.4da5f274175b7cc7.js → 4849.2d0d91db57dc6419.js} +2 -2
  191. package/dist/client/{4849.4da5f274175b7cc7.js.map → 4849.2d0d91db57dc6419.js.map} +1 -1
  192. package/dist/client/{5066.31235bae47282d5a.js → 5066.c3b69e4601465269.js} +9 -9
  193. package/dist/client/{5066.31235bae47282d5a.js.map → 5066.c3b69e4601465269.js.map} +1 -1
  194. package/dist/client/{533.518751bfb02cbcee.js → 533.43be64a8c12d5411.js} +2 -2
  195. package/dist/client/{533.518751bfb02cbcee.js.map → 533.43be64a8c12d5411.js.map} +1 -1
  196. package/dist/client/5531.ff59053d35a9ebc5.js +387 -0
  197. package/dist/client/{5531.3f07c9b4290520c7.js.map → 5531.ff59053d35a9ebc5.js.map} +1 -1
  198. package/dist/client/{5557.247c4c4c61d91b4d.js → 5557.3923ba7ade67d4c8.js} +4 -4
  199. package/dist/client/{5557.247c4c4c61d91b4d.js.map → 5557.3923ba7ade67d4c8.js.map} +1 -1
  200. package/dist/client/{5837.52bd8ccde0085adc.js → 5837.2173cfac5b28fb95.js} +2 -2
  201. package/dist/client/5837.2173cfac5b28fb95.js.map +1 -0
  202. package/dist/client/5911.7dd68675e0a4ff43.js +2 -0
  203. package/dist/client/5911.7dd68675e0a4ff43.js.map +1 -0
  204. package/dist/client/614.b7c7bcd4ee6e4f7d.css +2 -0
  205. package/dist/client/614.b7c7bcd4ee6e4f7d.css.map +1 -0
  206. package/dist/client/6213.ba167b80474036f0.js +20 -0
  207. package/dist/client/6213.ba167b80474036f0.js.map +1 -0
  208. package/dist/client/665.7d96ffb19066da27.js +34 -0
  209. package/dist/client/665.7d96ffb19066da27.js.map +1 -0
  210. package/dist/client/6681.51b917ef9762ead2.js +6 -0
  211. package/dist/client/{6681.4bc549fb34f3fd5c.js.map → 6681.51b917ef9762ead2.js.map} +1 -1
  212. package/dist/client/6955.3de7286d9ee3c36f.js +33 -0
  213. package/dist/client/6955.3de7286d9ee3c36f.js.map +1 -0
  214. package/dist/client/{7326.b1ad5a6bece08bb2.js → 7326.9d0d137e939223ba.js} +2 -2
  215. package/dist/client/7326.9d0d137e939223ba.js.map +1 -0
  216. package/dist/client/{736.c130ba990b1ed252.js → 736.0fa146c2a494e88c.js} +5 -5
  217. package/dist/client/{736.c130ba990b1ed252.js.map → 736.0fa146c2a494e88c.js.map} +1 -1
  218. package/dist/client/7461.7d6383069ad3bded.js +35 -0
  219. package/dist/client/7461.7d6383069ad3bded.js.map +1 -0
  220. package/dist/client/7509.c7697df525e5b425.js +9 -0
  221. package/dist/client/7509.c7697df525e5b425.js.map +1 -0
  222. package/dist/client/{7731.401da89d94c0e064.js → 7731.dab635045f8c8801.js} +2 -2
  223. package/dist/client/{7731.401da89d94c0e064.js.map → 7731.dab635045f8c8801.js.map} +1 -1
  224. package/dist/client/{7816.086a6f46f1339f10.js → 7816.fcae90f472f6a101.js} +2 -2
  225. package/dist/client/{7816.086a6f46f1339f10.js.map → 7816.fcae90f472f6a101.js.map} +1 -1
  226. package/dist/client/833.a99cc1ff95a9361c.js +5 -0
  227. package/dist/client/833.a99cc1ff95a9361c.js.map +1 -0
  228. package/dist/client/{8468.add3c4feb6c9e926.js → 8468.f45cbbf88e617172.js} +3 -3
  229. package/dist/client/{8468.add3c4feb6c9e926.js.map → 8468.f45cbbf88e617172.js.map} +1 -1
  230. package/dist/client/{8483.e69da156837fde23.js → 8483.42cb8809ffb7c809.js} +3 -3
  231. package/dist/client/{8483.e69da156837fde23.js.map → 8483.42cb8809ffb7c809.js.map} +1 -1
  232. package/dist/client/{8551.4cf05a456e8b9b36.js → 8551.88765e00cf64cda8.js} +2 -2
  233. package/dist/client/{8551.4cf05a456e8b9b36.js.map → 8551.88765e00cf64cda8.js.map} +1 -1
  234. package/dist/client/{8684.538d49e436a77c37.js → 8684.9d7a1ac15f75f143.js} +5 -5
  235. package/dist/client/{8684.538d49e436a77c37.js.map → 8684.9d7a1ac15f75f143.js.map} +1 -1
  236. package/dist/client/8896.c876205851967073.js +9 -0
  237. package/dist/client/8896.c876205851967073.js.map +1 -0
  238. package/dist/client/{8911.e1fd0ac2f979c2ea.js → 8911.74685697a6189123.js} +7 -7
  239. package/dist/client/8911.74685697a6189123.js.map +1 -0
  240. package/dist/client/9021.3d43ecdc365948b8.js +16 -0
  241. package/dist/client/9021.3d43ecdc365948b8.js.map +1 -0
  242. package/dist/client/917.f2551a4b63ec4d86.js +17 -0
  243. package/dist/client/917.f2551a4b63ec4d86.js.map +1 -0
  244. package/dist/client/9222.a2d629b05b5c3c7e.js +104 -0
  245. package/dist/client/9222.a2d629b05b5c3c7e.js.LICENSE.txt +5 -0
  246. package/dist/client/9222.a2d629b05b5c3c7e.js.map +1 -0
  247. package/dist/client/chart-no-axes-combined.aee09a7064cb8b35.svg +1 -0
  248. package/dist/client/{circle-alert.4199b283585ef0bb.svg → circle-play.6ed4ac1fb3c93a04.svg} +1 -1
  249. package/dist/client/{curriculum-about-covered.74e453cf7e1a86c2.svg → curriculum-about-covered.a0e620d9fa0a96bb.svg} +1 -1
  250. package/dist/client/{curriculum-about-detail.515f645950e2300b.svg → curriculum-about-detail.73feb705e269ebbe.svg} +1 -1
  251. package/dist/client/{curriculum-about-educators.91685cbbd58c65fb.svg → curriculum-about-educators.03744c34dabd5fe7.svg} +1 -1
  252. package/dist/client/{curriculum-about-not.42caac16e07477b5.svg → curriculum-about-not.aa3c2baa11be115d.svg} +1 -1
  253. package/dist/client/{curriculum-about-students.36ca88cba5f00272.svg → curriculum-about-students.842af9608002c05a.svg} +1 -1
  254. package/dist/client/{curriculum-bullet.934e76f0055c7737.svg → curriculum-bullet.ae8de1d4f7e37953.svg} +1 -1
  255. package/dist/client/{curriculum-landing-about-beginner.c283306531a0a760.svg → curriculum-landing-about-beginner.9603b098f49dfb52.svg} +1 -1
  256. package/dist/client/{curriculum-landing-about-bullet.329a46667f2b7b1c.svg → curriculum-landing-about-bullet.1a31ffce2d5917cb.svg} +1 -1
  257. package/dist/client/{curriculum-landing-about-free.860c02f993720011.svg → curriculum-landing-about-free.1ff3ec55692670ba.svg} +1 -1
  258. package/dist/client/{curriculum-landing-about-pace.caf53bc7642d2d9e.svg → curriculum-landing-about-pace.04fd0a480b4ef342.svg} +1 -1
  259. package/dist/client/{curriculum-landing-arrow.37d9469e2da628fb.svg → curriculum-landing-arrow.b4d5ba21e3dc087e.svg} +1 -1
  260. package/dist/client/{curriculum-landing-started-advanced.6aa084114d4a009d.svg → curriculum-landing-started-advanced.bd07b9246e350d6f.svg} +1 -1
  261. package/dist/client/{curriculum-landing-started-beginner.684ee16fbad28594.svg → curriculum-landing-started-beginner.62cf58049310b5c1.svg} +1 -1
  262. package/dist/client/{curriculum-landing-started-educator.1fc04ca1f8ce8d38.svg → curriculum-landing-started-educator.779ce85811a81d19.svg} +1 -1
  263. package/dist/client/{curriculum-landing-started-employment.ad9634ce6c19f3ba.svg → curriculum-landing-started-employment.4e7b977d45493058.svg} +1 -1
  264. package/dist/client/{curriculum-mdn-resource.f452724542f874b8.svg → curriculum-mdn-resource.335ee2e480d302fb.svg} +1 -1
  265. package/dist/client/{curriculum-partner-bg.247900de90ec7d1e.svg → curriculum-partner-bg.70de155df588311a.svg} +1 -1
  266. package/dist/client/{curriculum-scrim-bg.66afaab49246fbd9.svg → curriculum-scrim-bg.29a27117721ff3e9.svg} +1 -1
  267. package/dist/client/index.31463704d14e154c.js +260 -0
  268. package/dist/client/index.31463704d14e154c.js.LICENSE.txt +25 -0
  269. package/dist/client/index.31463704d14e154c.js.map +1 -0
  270. package/dist/client/jetbrains-mono-cyrillic.577e793cdf179ae1.woff2 +0 -0
  271. package/dist/client/jetbrains-mono-italic-cyrillic.8d00711fdb1702e0.woff2 +0 -0
  272. package/dist/client/jetbrains-mono-italic-latin-extended.c25d5e1f309ed948.woff2 +0 -0
  273. package/dist/client/jetbrains-mono-italic-latin.55b330522e5e3ed9.woff2 +0 -0
  274. package/dist/client/jetbrains-mono-latin-extended.01c891f9c832ce28.woff2 +0 -0
  275. package/dist/client/jetbrains-mono-latin.119994ed445212c7.woff2 +0 -0
  276. package/dist/client/mdn-m.70aac857e4a908d0.svg +1 -0
  277. package/dist/client/{runtime.51020603a07b972d.js → runtime.ee03d594ff24ae70.js} +2 -2
  278. package/dist/client/runtime.ee03d594ff24ae70.js.map +1 -0
  279. package/dist/client/shield-check.07bdc37f20ac5cc6.svg +1 -0
  280. package/dist/client/stats.json +1096 -1024
  281. package/dist/client/styles-a11y-menu.5796ee87cb69f93f.css +2 -0
  282. package/dist/client/styles-a11y-menu.5796ee87cb69f93f.css.map +1 -0
  283. package/dist/client/styles-a11y-menu.c408da1c50de7848.js +1 -0
  284. package/dist/client/styles-advertising.4c00484729f959ad.js +1 -0
  285. package/dist/client/{styles-advertising.c54670419b34708a.css → styles-advertising.c4692f68b3c61df1.css} +2 -2
  286. package/dist/client/{styles-advertising.c54670419b34708a.css.map → styles-advertising.c4692f68b3c61df1.css.map} +1 -1
  287. package/dist/client/styles-article-footer.81ae18c89fc527dc.css +2 -0
  288. package/dist/client/styles-article-footer.81ae18c89fc527dc.css.map +1 -0
  289. package/dist/client/styles-article-footer.f591a23b879db7bc.js +1 -0
  290. package/dist/client/styles-banner.cce5a46592f9ae9c.js +1 -0
  291. package/dist/client/{styles-baseline-indicator.32a52f7b51085fbb.css → styles-baseline-indicator.083aba7301c6f745.css} +2 -2
  292. package/dist/client/styles-baseline-indicator.083aba7301c6f745.css.map +1 -0
  293. package/dist/client/styles-baseline-indicator.35315666a6ff6562.js +1 -0
  294. package/dist/client/styles-blog-index.65525134178d64fd.js +1 -0
  295. package/dist/client/styles-blog-index.acbe792e1ec96930.css +2 -0
  296. package/dist/client/styles-blog-index.acbe792e1ec96930.css.map +1 -0
  297. package/dist/client/styles-blog-post.0cc5813f0a44aff0.js +1 -0
  298. package/dist/client/styles-blog-post.5085aa38dc1ab3a3.css +2 -0
  299. package/dist/client/styles-blog-post.5085aa38dc1ab3a3.css.map +1 -0
  300. package/dist/client/styles-breadcrumbs-bar.740212452ad4a93e.js +1 -0
  301. package/dist/client/{styles-breadcrumbs-bar.b7a94abe36578bab.css → styles-breadcrumbs-bar.e2fa6dfb04a38166.css} +2 -2
  302. package/dist/client/{styles-breadcrumbs-bar.b7a94abe36578bab.css.map → styles-breadcrumbs-bar.e2fa6dfb04a38166.css.map} +1 -1
  303. package/dist/client/{styles-breadcrumbs.d07ccd5520eeea01.css → styles-breadcrumbs.0afde562052673c5.css} +2 -2
  304. package/dist/client/{styles-breadcrumbs.d07ccd5520eeea01.css.map → styles-breadcrumbs.0afde562052673c5.css.map} +1 -1
  305. package/dist/client/styles-breadcrumbs.3b39fd6a3c2edb2e.js +1 -0
  306. package/dist/client/styles-button.a58118f8ded7e527.js +1 -0
  307. package/dist/client/styles-content-section.06ab08df9b9e047e.js +1 -0
  308. package/dist/client/styles-content-section.ffa19ece6d4fa70f.css +2 -0
  309. package/dist/client/styles-content-section.ffa19ece6d4fa70f.css.map +1 -0
  310. package/dist/client/styles-contributor-spotlight.38657357f29e301d.css +2 -0
  311. package/dist/client/styles-contributor-spotlight.38657357f29e301d.css.map +1 -0
  312. package/dist/client/styles-contributor-spotlight.5303aa09b91c2b0f.js +1 -0
  313. package/dist/client/styles-curriculum-about.75e3406bfe012d87.css +2 -0
  314. package/dist/client/styles-curriculum-about.75e3406bfe012d87.css.map +1 -0
  315. package/dist/client/styles-curriculum-about.c7d034c5eb1cedfc.js +1 -0
  316. package/dist/client/styles-curriculum-default.425c715d690a611c.js +1 -0
  317. package/dist/client/styles-curriculum-default.ceb6f07d1ba3a1fe.css +2 -0
  318. package/dist/client/styles-curriculum-default.ceb6f07d1ba3a1fe.css.map +1 -0
  319. package/dist/client/styles-curriculum-landing.1558840404f90c97.js +1 -0
  320. package/dist/client/styles-curriculum-landing.4c266be210279754.css +2 -0
  321. package/dist/client/styles-curriculum-landing.4c266be210279754.css.map +1 -0
  322. package/dist/client/styles-curriculum-module.7e5cd517e846d594.js +1 -0
  323. package/dist/client/styles-curriculum-module.986c101af5734725.css +2 -0
  324. package/dist/client/styles-curriculum-module.986c101af5734725.css.map +1 -0
  325. package/dist/client/styles-curriculum-overview.4c7cb02c1ddc853e.js +1 -0
  326. package/dist/client/styles-curriculum-overview.5e1cf930403c07b3.css +2 -0
  327. package/dist/client/styles-curriculum-overview.5e1cf930403c07b3.css.map +1 -0
  328. package/dist/client/styles-featured-articles.b4ecc71ab736bd5b.css +2 -0
  329. package/dist/client/styles-featured-articles.b4ecc71ab736bd5b.css.map +1 -0
  330. package/dist/client/styles-featured-articles.e307bb8142f33739.js +1 -0
  331. package/dist/client/styles-footer.a2850e459e2d290b.css +2 -0
  332. package/dist/client/{styles-footer.c1a53f0a58f04928.css.map → styles-footer.a2850e459e2d290b.css.map} +1 -1
  333. package/dist/client/styles-footer.c29033543af832fb.js +1 -0
  334. package/dist/client/styles-generic-about.2d4dc610496035b0.js +1 -0
  335. package/dist/client/styles-generic-about.766241910cf1bfdf.css +2 -0
  336. package/dist/client/styles-generic-about.766241910cf1bfdf.css.map +1 -0
  337. package/dist/client/styles-generic-community.76b2cea1e9b36907.js +1 -0
  338. package/dist/client/styles-generic-community.aa93fe32626f89a4.css +2 -0
  339. package/dist/client/styles-generic-community.aa93fe32626f89a4.css.map +1 -0
  340. package/dist/client/{styles-generic-content.7960b980b98f1d3d.css → styles-generic-content.3c8089706edb022d.css} +2 -2
  341. package/dist/client/{styles-generic-content.7960b980b98f1d3d.css.map → styles-generic-content.3c8089706edb022d.css.map} +1 -1
  342. package/dist/client/styles-generic-content.95822f3a7d72b2af.js +1 -0
  343. package/dist/client/styles-generic-layout.42a5e62407bd0066.css +2 -0
  344. package/dist/client/{styles-generic-layout.55441b1a560f5c9f.css.map → styles-generic-layout.42a5e62407bd0066.css.map} +1 -1
  345. package/dist/client/styles-generic-layout.e3b1cbc7db109acc.js +1 -0
  346. package/dist/client/styles-generic-sidebar.2e998de436f774c4.css +2 -0
  347. package/dist/client/styles-generic-sidebar.2e998de436f774c4.css.map +1 -0
  348. package/dist/client/styles-generic-sidebar.9767d319bbbde061.js +1 -0
  349. package/dist/client/styles-generic-toc.109e07ffeb20bc67.css +2 -0
  350. package/dist/client/styles-generic-toc.109e07ffeb20bc67.css.map +1 -0
  351. package/dist/client/styles-generic-toc.56e46052fca1042a.js +1 -0
  352. package/dist/client/styles-global.50c705928b5966d2.css +2 -0
  353. package/dist/client/styles-global.50c705928b5966d2.css.map +1 -0
  354. package/dist/client/styles-global.5928df920ab8d790.js +1 -0
  355. package/dist/client/styles-heading-anchor.0eec5185ab9425b7.css +2 -0
  356. package/dist/client/{styles-heading-anchor.f2760897211efe98.css.map → styles-heading-anchor.0eec5185ab9425b7.css.map} +1 -1
  357. package/dist/client/styles-heading-anchor.69440b0832b0c7b6.js +1 -0
  358. package/dist/client/styles-homepage-body.a1dd591dfd38a0e2.js +1 -0
  359. package/dist/client/{styles-homepage-contributor-spotlight.f02bdd82c7536b72.css → styles-homepage-contributor-spotlight.38935642cba8718d.css} +2 -2
  360. package/dist/client/{styles-homepage-contributor-spotlight.f02bdd82c7536b72.css.map → styles-homepage-contributor-spotlight.38935642cba8718d.css.map} +1 -1
  361. package/dist/client/styles-homepage-contributor-spotlight.a872f7a5144621ce.js +1 -0
  362. package/dist/client/styles-homepage-footer.56ccee76430fb4b6.js +1 -0
  363. package/dist/client/styles-homepage-header.ef7007190d01e72b.js +1 -0
  364. package/dist/client/styles-homepage-hero.db4057884586bcc0.js +1 -0
  365. package/dist/client/styles-homepage.643e215e9b541f48.js +1 -0
  366. package/dist/client/styles-latest-news.b28826e707e5a793.js +1 -0
  367. package/dist/client/styles-latest-news.ef3b9e57333a87bc.css +2 -0
  368. package/dist/client/styles-latest-news.ef3b9e57333a87bc.css.map +1 -0
  369. package/dist/client/styles-left-sidebar.07f68fb381233e5e.css +2 -0
  370. package/dist/client/styles-left-sidebar.07f68fb381233e5e.css.map +1 -0
  371. package/dist/client/styles-left-sidebar.689072b681b6085c.js +1 -0
  372. package/dist/client/styles-logo.5fe2004c01665043.js +1 -0
  373. package/dist/client/styles-logo.f9c13d56f40d50b6.css +2 -0
  374. package/dist/client/styles-logo.f9c13d56f40d50b6.css.map +1 -0
  375. package/dist/client/styles-mandala.39843b917e3341c1.js +1 -0
  376. package/dist/client/styles-mandala.8fbfeb0567dbde40.css +2 -0
  377. package/dist/client/styles-mandala.8fbfeb0567dbde40.css.map +1 -0
  378. package/dist/client/styles-menu.0df94f3d4546f4e2.js +1 -0
  379. package/dist/client/styles-menu.5193bf2642ae7d64.css +2 -0
  380. package/dist/client/styles-menu.5193bf2642ae7d64.css.map +1 -0
  381. package/dist/client/styles-navigation.013b4a4ed330892a.css +2 -0
  382. package/dist/client/styles-navigation.013b4a4ed330892a.css.map +1 -0
  383. package/dist/client/styles-navigation.f10f27bc66c78348.js +1 -0
  384. package/dist/client/styles-not-found.db6d6367152f676d.js +1 -0
  385. package/dist/client/styles-observatory-landing.28dd60cf0de05bec.js +1 -0
  386. package/dist/client/styles-observatory-landing.7b47ee0004877825.css +2 -0
  387. package/dist/client/styles-observatory-landing.7b47ee0004877825.css.map +1 -0
  388. package/dist/client/styles-observatory-results.36b6175e7444ec4e.css +2 -0
  389. package/dist/client/styles-observatory-results.36b6175e7444ec4e.css.map +1 -0
  390. package/dist/client/styles-observatory-results.7ce6d37475f9cf58.js +1 -0
  391. package/dist/client/styles-page-layout.0d53ebc97d7b7bf1.js +1 -0
  392. package/dist/client/styles-page-layout.e52a43c97f04cf90.css +2 -0
  393. package/dist/client/{styles-page-layout.5db9be57df19de0c.css.map → styles-page-layout.e52a43c97f04cf90.css.map} +1 -1
  394. package/dist/client/styles-pagination.19bf90db76d7d8d3.css +2 -0
  395. package/dist/client/{styles-pagination.0b3aa3fd6f6d3808.css.map → styles-pagination.19bf90db76d7d8d3.css.map} +1 -1
  396. package/dist/client/styles-pagination.e6fa33b9eadd8ab2.js +1 -0
  397. package/dist/client/styles-playground.59775225856ba2c6.js +1 -0
  398. package/dist/client/styles-recent-contributions.c51e066b59d22fca.js +1 -0
  399. package/dist/client/styles-reference-layout.0ab1a4d92d4a0966.css +2 -0
  400. package/dist/client/styles-reference-layout.0ab1a4d92d4a0966.css.map +1 -0
  401. package/dist/client/styles-reference-layout.218edbd3288fad71.js +1 -0
  402. package/dist/client/styles-reference-toc.67439c41e5f07bef.js +1 -0
  403. package/dist/client/{styles-reference-toc.5ce4f97dbe6e3ed0.css → styles-reference-toc.9b9bd019efd16b86.css} +2 -2
  404. package/dist/client/{styles-reference-toc.5ce4f97dbe6e3ed0.css.map → styles-reference-toc.9b9bd019efd16b86.css.map} +1 -1
  405. package/dist/client/styles-sandbox.22c29067838f22d9.js +1 -0
  406. package/dist/client/styles-site-search.5d4b622a11b82915.js +1 -0
  407. package/dist/client/styles-site-search.ec3b6780533a8750.css +2 -0
  408. package/dist/client/{styles-site-search.cf345ef99e0d06b5.css.map → styles-site-search.ec3b6780533a8750.css.map} +1 -1
  409. package/dist/client/styles-translation-banner.b923aed537f60120.js +1 -0
  410. package/dist/client/styles-writer-toolbar.00468688f6144393.js +1 -0
  411. package/dist/client/styles-writer-toolbar.70bdeddd3734ab11.css +2 -0
  412. package/dist/client/styles-writer-toolbar.70bdeddd3734ab11.css.map +1 -0
  413. package/dist/client/styles.7fb7069c86aa338c.js +2 -0
  414. package/dist/client/styles.7fb7069c86aa338c.js.map +1 -0
  415. package/dist/client/users.f7e6f1f213744762.svg +1 -0
  416. package/dist/legacy/{1284.0939e1a7de12c23c.js → 1284.9609d9ed70761e2f.js} +3 -3
  417. package/dist/legacy/{1284.0939e1a7de12c23c.js.map → 1284.9609d9ed70761e2f.js.map} +1 -1
  418. package/dist/legacy/3957.798f0651121f0fa7.js.map +1 -1
  419. package/dist/legacy/{7664.eee0fe67e04785f4.js → 7664.7bf14ff753e36b72.js} +3 -3
  420. package/dist/legacy/7664.7bf14ff753e36b72.js.map +1 -0
  421. package/dist/legacy/{8716.9fde41ad50c3078d.js → 8716.0a9d049bf166f65a.js} +7 -7
  422. package/dist/legacy/{8716.9fde41ad50c3078d.js.map → 8716.0a9d049bf166f65a.js.map} +1 -1
  423. package/dist/legacy/afree.da56b83d257902e0.png +0 -0
  424. package/dist/legacy/{index.9db2264bb6151226.css → index.92ea4d5b7af91171.css} +2 -2
  425. package/dist/legacy/index.92ea4d5b7af91171.css.map +1 -0
  426. package/dist/legacy/{index.b760891bfcc63977.js → index.dd25b33b92ab6c72.js} +5 -5
  427. package/dist/legacy/index.dd25b33b92ab6c72.js.map +1 -0
  428. package/dist/legacy/stats.json +12 -12
  429. package/dist/ssr/index.js +483 -485
  430. package/dist/ssr/index.js.map +1 -1
  431. package/dist/ssr/results-icon.b469eb939df034e7.svg +1 -0
  432. package/dist/ssr/stats.json +54 -46
  433. package/dist/ssr/summary-icon.eff7a61e59b7e02f.svg +1 -0
  434. package/entry.client.js +1 -1
  435. package/entry.ssr.js +3 -4
  436. package/hooks/dialog-closedby.js +42 -0
  437. package/l10n/de.ftl +2 -2
  438. package/l10n/en-US.ftl +10 -10
  439. package/legacy/index.tsx +1 -0
  440. package/legacy/legacy.css +5 -0
  441. package/package.json +22 -21
  442. package/rspack.config.js +27 -11
  443. package/server.js +37 -3
  444. package/svgo.config.js +22 -11
  445. package/types/element-map.d.ts +1 -0
  446. package/types/fred.ts +5 -1
  447. package/components/css-formal-syntax/index.css +0 -10
  448. package/components/observatory/index.css +0 -406
  449. package/components/observatory-landing/faq.js +0 -16
  450. package/components/observatory-landing/feedback.js +0 -16
  451. package/dist/client/1197.25090f81ab4208bc.css +0 -32
  452. package/dist/client/1197.25090f81ab4208bc.css.map +0 -1
  453. package/dist/client/1624.5694c64f5e45232c.js +0 -69
  454. package/dist/client/1739.505aa54ed62222c8.js +0 -8
  455. package/dist/client/2254.5fbfe2d0124ff3ba.css +0 -2
  456. package/dist/client/2254.5fbfe2d0124ff3ba.css.map +0 -1
  457. package/dist/client/2448.92286b4e96ad1c02.js.map +0 -1
  458. package/dist/client/2826.2162e19b0f72cf75.js +0 -29
  459. package/dist/client/2826.2162e19b0f72cf75.js.map +0 -1
  460. package/dist/client/3536.d17eba9caa4089c1.js +0 -30
  461. package/dist/client/3536.d17eba9caa4089c1.js.map +0 -1
  462. package/dist/client/37.feff9590370f461a.js +0 -102
  463. package/dist/client/37.feff9590370f461a.js.map +0 -1
  464. package/dist/client/3769.d1f1fcf335099c33.js.map +0 -1
  465. package/dist/client/3892.62b28110dbb3645e.js +0 -5
  466. package/dist/client/3892.62b28110dbb3645e.js.map +0 -1
  467. package/dist/client/391.ead0b358d96c9c13.js +0 -8
  468. package/dist/client/391.ead0b358d96c9c13.js.map +0 -1
  469. package/dist/client/4036.5ca9997e4c034473.js.map +0 -1
  470. package/dist/client/4045.c0fd898eab0b2a5c.js +0 -8
  471. package/dist/client/4045.c0fd898eab0b2a5c.js.map +0 -1
  472. package/dist/client/4531.4ae011f8a64a2b27.js +0 -34
  473. package/dist/client/4531.4ae011f8a64a2b27.js.map +0 -1
  474. package/dist/client/5531.3f07c9b4290520c7.js +0 -387
  475. package/dist/client/5837.52bd8ccde0085adc.js.map +0 -1
  476. package/dist/client/614.01075c8e848f77c4.css +0 -2
  477. package/dist/client/614.01075c8e848f77c4.css.map +0 -1
  478. package/dist/client/6213.32f53c1c3ef65496.js +0 -20
  479. package/dist/client/6213.32f53c1c3ef65496.js.map +0 -1
  480. package/dist/client/665.bfa5abb72f818c34.js +0 -34
  481. package/dist/client/665.bfa5abb72f818c34.js.map +0 -1
  482. package/dist/client/6681.4bc549fb34f3fd5c.js +0 -6
  483. package/dist/client/6955.90a316f179d37d80.js +0 -52
  484. package/dist/client/6955.90a316f179d37d80.js.map +0 -1
  485. package/dist/client/7326.b1ad5a6bece08bb2.js.map +0 -1
  486. package/dist/client/7345.6d89013575f169db.js +0 -16
  487. package/dist/client/7345.6d89013575f169db.js.map +0 -1
  488. package/dist/client/7461.c7551ade83fa6056.js +0 -35
  489. package/dist/client/7461.c7551ade83fa6056.js.map +0 -1
  490. package/dist/client/7509.780e429ccb3e9290.js +0 -9
  491. package/dist/client/7509.780e429ccb3e9290.js.map +0 -1
  492. package/dist/client/781.389e02e257b52721.css +0 -2
  493. package/dist/client/781.389e02e257b52721.css.map +0 -1
  494. package/dist/client/7898.7fd3ac2396a8dd7b.js +0 -45
  495. package/dist/client/7898.7fd3ac2396a8dd7b.js.map +0 -1
  496. package/dist/client/8877.6b7cc9370ff77f02.js +0 -2
  497. package/dist/client/8877.6b7cc9370ff77f02.js.map +0 -1
  498. package/dist/client/8896.85df788778cc02ca.js +0 -9
  499. package/dist/client/8896.85df788778cc02ca.js.map +0 -1
  500. package/dist/client/8911.e1fd0ac2f979c2ea.js.map +0 -1
  501. package/dist/client/917.f2371f7a8ef08c84.js +0 -17
  502. package/dist/client/917.f2371f7a8ef08c84.js.map +0 -1
  503. package/dist/client/9222.f3820fec7e0a91be.js +0 -104
  504. package/dist/client/9222.f3820fec7e0a91be.js.map +0 -1
  505. package/dist/client/9632.b317ca4ae5930b4a.js.map +0 -1
  506. package/dist/client/index.e36c34deca671725.js +0 -251
  507. package/dist/client/index.e36c34deca671725.js.map +0 -1
  508. package/dist/client/jetbrains-mono-cyrillic.4be0050294dbaee4.woff2 +0 -0
  509. package/dist/client/jetbrains-mono-italic-cyrillic.789710e9fe5a2b03.woff2 +0 -0
  510. package/dist/client/jetbrains-mono-italic-latin-extended.58430489c22fda09.woff2 +0 -0
  511. package/dist/client/jetbrains-mono-italic-latin.80ad93ea1dcec528.woff2 +0 -0
  512. package/dist/client/jetbrains-mono-latin-extended.2b8ab8f35e622fdb.woff2 +0 -0
  513. package/dist/client/jetbrains-mono-latin.eaa3472268346b6c.woff2 +0 -0
  514. package/dist/client/runtime.51020603a07b972d.js.map +0 -1
  515. package/dist/client/styles-a11y-menu.53797029a4c05806.css +0 -2
  516. package/dist/client/styles-a11y-menu.53797029a4c05806.css.map +0 -1
  517. package/dist/client/styles-a11y-menu.8c2ae6bc250fdde3.js +0 -1
  518. package/dist/client/styles-advertising.f01a816ffb81826d.js +0 -1
  519. package/dist/client/styles-article-footer.3bc45ecc7223c0ee.css +0 -2
  520. package/dist/client/styles-article-footer.3bc45ecc7223c0ee.css.map +0 -1
  521. package/dist/client/styles-article-footer.abc86d1bc28dbbea.js +0 -1
  522. package/dist/client/styles-banner.dd24262bb896879a.js +0 -1
  523. package/dist/client/styles-baseline-indicator.26595fbb926e3339.js +0 -1
  524. package/dist/client/styles-baseline-indicator.32a52f7b51085fbb.css.map +0 -1
  525. package/dist/client/styles-blog-index.7af1563c6077a7be.css +0 -2
  526. package/dist/client/styles-blog-index.7af1563c6077a7be.css.map +0 -1
  527. package/dist/client/styles-blog-index.805cf1995d84466a.js +0 -1
  528. package/dist/client/styles-blog-post.5824db4f15723a68.css +0 -2
  529. package/dist/client/styles-blog-post.5824db4f15723a68.css.map +0 -1
  530. package/dist/client/styles-blog-post.87f4fe5450147ce8.js +0 -1
  531. package/dist/client/styles-breadcrumbs-bar.474628c11d128ace.js +0 -1
  532. package/dist/client/styles-breadcrumbs.b0241eed8398fe84.js +0 -1
  533. package/dist/client/styles-button.bd90715982da863b.js +0 -1
  534. package/dist/client/styles-content-section.a1f8a5f77270d1dc.js +0 -1
  535. package/dist/client/styles-content-section.f47b61c45a723af0.css +0 -2
  536. package/dist/client/styles-content-section.f47b61c45a723af0.css.map +0 -1
  537. package/dist/client/styles-contributor-spotlight.a77d55cfef159e66.css +0 -2
  538. package/dist/client/styles-contributor-spotlight.a77d55cfef159e66.css.map +0 -1
  539. package/dist/client/styles-contributor-spotlight.a992b1d366637c5d.js +0 -1
  540. package/dist/client/styles-curriculum-about.4b80aa2f2b88e8e4.js +0 -1
  541. package/dist/client/styles-curriculum-about.b8d113b14323c909.css +0 -2
  542. package/dist/client/styles-curriculum-about.b8d113b14323c909.css.map +0 -1
  543. package/dist/client/styles-curriculum-default.190eba828fd99e0a.js +0 -1
  544. package/dist/client/styles-curriculum-default.ef46db3751d8e999.css +0 -0
  545. package/dist/client/styles-curriculum-landing.56209b30561d82e0.css +0 -2
  546. package/dist/client/styles-curriculum-landing.56209b30561d82e0.css.map +0 -1
  547. package/dist/client/styles-curriculum-landing.e73c9557dd2057aa.js +0 -1
  548. package/dist/client/styles-curriculum-module.7fc982bc6793fa48.js +0 -1
  549. package/dist/client/styles-curriculum-module.c7271eb90af85eba.css +0 -2
  550. package/dist/client/styles-curriculum-module.c7271eb90af85eba.css.map +0 -1
  551. package/dist/client/styles-curriculum-overview.d00ecdc305f40125.js +0 -1
  552. package/dist/client/styles-curriculum-overview.ef46db3751d8e999.css +0 -0
  553. package/dist/client/styles-featured-articles.27e767c8b538f066.js +0 -1
  554. package/dist/client/styles-featured-articles.c518f93ad0470cdf.css +0 -2
  555. package/dist/client/styles-featured-articles.c518f93ad0470cdf.css.map +0 -1
  556. package/dist/client/styles-footer.c1a53f0a58f04928.css +0 -2
  557. package/dist/client/styles-footer.e86ec0a935d5937f.js +0 -1
  558. package/dist/client/styles-generic-about.27a13c39db15963c.js +0 -1
  559. package/dist/client/styles-generic-about.481f176f22ba0def.css +0 -2
  560. package/dist/client/styles-generic-about.481f176f22ba0def.css.map +0 -1
  561. package/dist/client/styles-generic-community.44405e7e3938a4b6.js +0 -1
  562. package/dist/client/styles-generic-community.ddbcb9e0488bf017.css +0 -2
  563. package/dist/client/styles-generic-community.ddbcb9e0488bf017.css.map +0 -1
  564. package/dist/client/styles-generic-content.a2ddd6aac780a65f.js +0 -1
  565. package/dist/client/styles-generic-layout.55441b1a560f5c9f.css +0 -2
  566. package/dist/client/styles-generic-layout.670f75c4f806be84.js +0 -1
  567. package/dist/client/styles-generic-sidebar.515ed6dc89aec542.css +0 -2
  568. package/dist/client/styles-generic-sidebar.515ed6dc89aec542.css.map +0 -1
  569. package/dist/client/styles-generic-sidebar.d1528b01acb49222.js +0 -1
  570. package/dist/client/styles-generic-toc.88e45e1e72c77b73.css +0 -2
  571. package/dist/client/styles-generic-toc.88e45e1e72c77b73.css.map +0 -1
  572. package/dist/client/styles-generic-toc.db854e6e0376fb6b.js +0 -1
  573. package/dist/client/styles-global.698ebe57a5418ca2.css +0 -2
  574. package/dist/client/styles-global.698ebe57a5418ca2.css.map +0 -1
  575. package/dist/client/styles-global.cb63a51fc1146957.js +0 -1
  576. package/dist/client/styles-heading-anchor.6ffff34f5421dc9f.js +0 -1
  577. package/dist/client/styles-heading-anchor.f2760897211efe98.css +0 -2
  578. package/dist/client/styles-homepage-body.4a9eaf99a6d5a434.js +0 -1
  579. package/dist/client/styles-homepage-contributor-spotlight.a91a262ee949a587.js +0 -1
  580. package/dist/client/styles-homepage-footer.cddd4004e597dbdf.js +0 -1
  581. package/dist/client/styles-homepage-header.6fc6295b2124ce59.js +0 -1
  582. package/dist/client/styles-homepage-hero.d56f468fb0364b60.js +0 -1
  583. package/dist/client/styles-homepage.be456abdb86e4bd2.js +0 -1
  584. package/dist/client/styles-latest-news.1b5fd7a95688fea4.css +0 -2
  585. package/dist/client/styles-latest-news.1b5fd7a95688fea4.css.map +0 -1
  586. package/dist/client/styles-latest-news.f725dd4127faabc2.js +0 -1
  587. package/dist/client/styles-left-sidebar.135a5bc6ad04c4f0.css +0 -2
  588. package/dist/client/styles-left-sidebar.135a5bc6ad04c4f0.css.map +0 -1
  589. package/dist/client/styles-left-sidebar.6cdadac4a1db951d.js +0 -1
  590. package/dist/client/styles-logo.8e7830628a9d7ef5.js +0 -1
  591. package/dist/client/styles-logo.a89a79f82f933ef6.css +0 -2
  592. package/dist/client/styles-logo.a89a79f82f933ef6.css.map +0 -1
  593. package/dist/client/styles-mandala.41af6b0b37aa7987.js +0 -1
  594. package/dist/client/styles-mandala.96281d90e09ea84c.css +0 -2
  595. package/dist/client/styles-mandala.96281d90e09ea84c.css.map +0 -1
  596. package/dist/client/styles-menu.786218f8a3e51b45.js +0 -1
  597. package/dist/client/styles-menu.d6b6e63ef2bff0d6.css +0 -2
  598. package/dist/client/styles-menu.d6b6e63ef2bff0d6.css.map +0 -1
  599. package/dist/client/styles-navigation.94adc2be697cca49.css +0 -2
  600. package/dist/client/styles-navigation.94adc2be697cca49.css.map +0 -1
  601. package/dist/client/styles-navigation.fac8722caf14abc8.js +0 -1
  602. package/dist/client/styles-not-found.f42949546ffd210c.js +0 -1
  603. package/dist/client/styles-observatory-landing.994044845e174ebc.js +0 -1
  604. package/dist/client/styles-observatory-landing.ef46db3751d8e999.css +0 -0
  605. package/dist/client/styles-observatory-results.2ebe1e1263bf9901.js +0 -1
  606. package/dist/client/styles-observatory-results.ef46db3751d8e999.css +0 -0
  607. package/dist/client/styles-page-layout.17e57aa7087c3c14.js +0 -1
  608. package/dist/client/styles-page-layout.5db9be57df19de0c.css +0 -2
  609. package/dist/client/styles-pagination.0b3aa3fd6f6d3808.css +0 -2
  610. package/dist/client/styles-pagination.8e0e077c056abb08.js +0 -1
  611. package/dist/client/styles-playground.6ba82a762ed428cd.js +0 -1
  612. package/dist/client/styles-recent-contributions.049ea82f38aea973.js +0 -1
  613. package/dist/client/styles-reference-layout.3fdc304c65153216.css +0 -2
  614. package/dist/client/styles-reference-layout.3fdc304c65153216.css.map +0 -1
  615. package/dist/client/styles-reference-layout.dffb8a58fa542929.js +0 -1
  616. package/dist/client/styles-reference-toc.885940cc1b62f05f.js +0 -1
  617. package/dist/client/styles-sandbox.28b391e75fd280b4.js +0 -1
  618. package/dist/client/styles-site-search.442cfc8fc77298a8.js +0 -1
  619. package/dist/client/styles-site-search.cf345ef99e0d06b5.css +0 -2
  620. package/dist/client/styles-translation-banner.ddf203bc7bb2e1bc.js +0 -1
  621. package/dist/client/styles.23fb47137258e781.js +0 -2
  622. package/dist/client/styles.23fb47137258e781.js.map +0 -1
  623. package/dist/legacy/7664.eee0fe67e04785f4.js.map +0 -1
  624. package/dist/legacy/afree.23e42bd4c44a110f.png +0 -0
  625. package/dist/legacy/index.9db2264bb6151226.css.map +0 -1
  626. package/dist/legacy/index.b760891bfcc63977.js.map +0 -1
  627. package/hooks/css-formal-syntax.js +0 -21
  628. /package/dist/client/{1342.b05de4cd80d4c221.js.LICENSE.txt → 1342.a66390274e8adda1.js.LICENSE.txt} +0 -0
  629. /package/dist/client/{2448.92286b4e96ad1c02.js.LICENSE.txt → 2448.34e8a46d8ac913b9.js.LICENSE.txt} +0 -0
  630. /package/dist/client/{4036.5ca9997e4c034473.js.LICENSE.txt → 4036.4aa9a690073ccbac.js.LICENSE.txt} +0 -0
  631. /package/dist/client/{4045.c0fd898eab0b2a5c.js.LICENSE.txt → 4045.ec4c143648ab2280.js.LICENSE.txt} +0 -0
  632. /package/dist/client/{4531.4ae011f8a64a2b27.js.LICENSE.txt → 4531.5f4701b319065b2b.js.LICENSE.txt} +0 -0
  633. /package/dist/client/{5557.247c4c4c61d91b4d.js.LICENSE.txt → 5557.3923ba7ade67d4c8.js.LICENSE.txt} +0 -0
  634. /package/dist/client/{8468.add3c4feb6c9e926.js.LICENSE.txt → 833.a99cc1ff95a9361c.js.LICENSE.txt} +0 -0
  635. /package/dist/client/{917.f2371f7a8ef08c84.js.LICENSE.txt → 8468.f45cbbf88e617172.js.LICENSE.txt} +0 -0
  636. /package/dist/client/{9222.f3820fec7e0a91be.js.LICENSE.txt → 917.f2551a4b63ec4d86.js.LICENSE.txt} +0 -0
  637. /package/dist/legacy/{1284.0939e1a7de12c23c.js.LICENSE.txt → 1284.9609d9ed70761e2f.js.LICENSE.txt} +0 -0
  638. /package/dist/legacy/{7664.eee0fe67e04785f4.js.LICENSE.txt → 7664.7bf14ff753e36b72.js.LICENSE.txt} +0 -0
  639. /package/dist/legacy/{8716.9fde41ad50c3078d.js.LICENSE.txt → 8716.0a9d049bf166f65a.js.LICENSE.txt} +0 -0
  640. /package/dist/legacy/{index.b760891bfcc63977.js.LICENSE.txt → index.dd25b33b92ab6c72.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,105 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.0](https://github.com/mdn/fred/compare/v0.1.0...v0.2.0) (2025-07-31)
4
+
5
+
6
+ ### Features
7
+
8
+ * **content-section:** add # to dl anchors ([#410](https://github.com/mdn/fred/issues/410)) ([bab489b](https://github.com/mdn/fred/commit/bab489b4277f73d8ba114bda1b6793e82f657814))
9
+ * **playground:** add reporting modal for shared examples ([#386](https://github.com/mdn/fred/issues/386)) ([117cb50](https://github.com/mdn/fred/commit/117cb50015538fa408affb1d9fd3be7300c195b4))
10
+ * **radius:** add global radius vars ([#472](https://github.com/mdn/fred/issues/472)) ([3028e41](https://github.com/mdn/fred/commit/3028e415d5f882d46eec45e49099a249992066a5))
11
+ * **writer-mode:** add writer toolbar ([#446](https://github.com/mdn/fred/issues/446)) ([7fed55b](https://github.com/mdn/fred/commit/7fed55b7e9bb0442b7978ea3a04b077f95ebf1bd))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **about:** auto-scroll to top of tab panel when tab is switched ([#409](https://github.com/mdn/fred/issues/409)) ([c56822d](https://github.com/mdn/fred/commit/c56822d7f6182bc52562cc21cb27a77f4247bcfe))
17
+ * **ai-help:** nav and sidebar overlap on mobile ([#474](https://github.com/mdn/fred/issues/474)) ([3f1f7b4](https://github.com/mdn/fred/commit/3f1f7b4b5214b88d2a1793a602c37388fed6674c))
18
+ * **article-footer:** remove link from header ([#392](https://github.com/mdn/fred/issues/392)) ([83700bb](https://github.com/mdn/fred/commit/83700bb7b399f49c747adf33edd650630305468d))
19
+ * **breadcrumbs-bar:** show active value in dropdowns ([#387](https://github.com/mdn/fred/issues/387)) ([079d07b](https://github.com/mdn/fred/commit/079d07bd2e5e20c88414889fdb87c021dde24995))
20
+ * **button:** prevent leaking non-unique element ids ([#455](https://github.com/mdn/fred/issues/455)) ([69ceaad](https://github.com/mdn/fred/commit/69ceaad3e823dfe780806a8a7f1b9c85b8a6fe88))
21
+ * **code-example:** highlight good and bad examples ([#385](https://github.com/mdn/fred/issues/385)) ([79543f3](https://github.com/mdn/fred/commit/79543f3ff723954ca8e5ced9470309bfd32bae4c))
22
+ * **code-examples:** wrap rather than scroll ([#418](https://github.com/mdn/fred/issues/418)) ([f7f63c6](https://github.com/mdn/fred/commit/f7f63c6a4530d7c5a707029430392f42cd2c8e41))
23
+ * **community:** heading anchor links ([#406](https://github.com/mdn/fred/issues/406)) ([9f9680c](https://github.com/mdn/fred/commit/9f9680c5b3353dd4e2f083d3272b631041c0d400))
24
+ * **compat-table:** fluent error from incorrect NUMBER cast ([#434](https://github.com/mdn/fred/issues/434)) ([da805ef](https://github.com/mdn/fred/commit/da805efd3384cea04f25f3547dde0e9d0a7a66d3))
25
+ * **content-section:** add margin to dl > ul ([#398](https://github.com/mdn/fred/issues/398)) ([f40438d](https://github.com/mdn/fred/commit/f40438d96d82ab77adffec72fdeb7eaa4839d5e5))
26
+ * **content-section:** add scroll-margin-top on :target ([#415](https://github.com/mdn/fred/issues/415)) ([fac80de](https://github.com/mdn/fred/commit/fac80de38276ca906ac9e2e5517db6e4b32db729))
27
+ * **content-section:** make anchors text color ([#427](https://github.com/mdn/fred/issues/427)) ([c114919](https://github.com/mdn/fred/commit/c1149196e4180f496cdb392a8d3ef9bf7c3a797e))
28
+ * **css-formal-syntax:** remove js and add consistent styling ([#393](https://github.com/mdn/fred/issues/393)) ([b0f0b53](https://github.com/mdn/fred/commit/b0f0b53411c4b717e4ddc624689a1da9cec08f64))
29
+ * **curriculum:** add `code` element background ([#433](https://github.com/mdn/fred/issues/433)) ([6cafe20](https://github.com/mdn/fred/commit/6cafe20793a945d11df0c246f9aa5d87c944ef9f))
30
+ * **curriculum:** don't remove light/dark ids in svgo ([#429](https://github.com/mdn/fred/issues/429)) ([65d9de0](https://github.com/mdn/fred/commit/65d9de0c9f3863315841b0dcb97e43a017d6fe2a))
31
+ * **curriculum:** increase card height to accommodate for larger font size ([#420](https://github.com/mdn/fred/issues/420)) ([3cbfe33](https://github.com/mdn/fred/commit/3cbfe33de531e6b2cd46de04b57b577e01cb476b))
32
+ * **curriculum:** responsiveness and theme awareness ([#467](https://github.com/mdn/fred/issues/467)) ([35072e5](https://github.com/mdn/fred/commit/35072e5592885c7e9a60dcc5e62432c310bdb816))
33
+ * **curriculum:** sidebar didn't show on mobile ([#432](https://github.com/mdn/fred/issues/432)) ([f9b5cf6](https://github.com/mdn/fred/commit/f9b5cf6c5b0e2863d30b9c694310ec35dd01375a))
34
+ * ensure content can't overflow the page ([#402](https://github.com/mdn/fred/issues/402)) ([dd64ee3](https://github.com/mdn/fred/commit/dd64ee312be50116de463f74423413121b4ccb2f))
35
+ * **font:** disable code ligatures ([#397](https://github.com/mdn/fred/issues/397)) ([8e4166c](https://github.com/mdn/fred/commit/8e4166c4d291ea3f89a8b4d707bbce47bf79f9ee))
36
+ * **font:** link colors, font variables in curriculum, observatory ([#399](https://github.com/mdn/fred/issues/399)) ([865647a](https://github.com/mdn/fred/commit/865647aa6b0039dbb2be383930c4729a98189267))
37
+ * **font:** replaced font-related hardcoded values with variables ([#396](https://github.com/mdn/fred/issues/396)) ([bde6332](https://github.com/mdn/fred/commit/bde6332b0c40389f114c6c1f77f4189a984c2eee))
38
+ * **header:** layout shift due to login link ([#424](https://github.com/mdn/fred/issues/424)) ([d0af7e6](https://github.com/mdn/fred/commit/d0af7e6c97b3de31f0b7c46117e1328bb3e0e43a))
39
+ * **inter:** ligatures causing arrows in titles ([#442](https://github.com/mdn/fred/issues/442)) ([2c83269](https://github.com/mdn/fred/commit/2c83269178e47ae6a043e12b9898c2a6b8c90355))
40
+ * **ix:** not enough contrast in tab text colour ([#383](https://github.com/mdn/fred/issues/383)) ([b8ee1c4](https://github.com/mdn/fred/commit/b8ee1c4303eced0dbb57dfce2dc00f8f4a8e44f1))
41
+ * **left-sidebar:** some items displayed horizontally ([#461](https://github.com/mdn/fred/issues/461)) ([7d811a9](https://github.com/mdn/fred/commit/7d811a9e5a4194de0e0e2c2d6a3e07914ef82c40))
42
+ * **legacy:** environment variables weren't being bundled ([#394](https://github.com/mdn/fred/issues/394)) ([e6ec0dd](https://github.com/mdn/fred/commit/e6ec0ddf254ec8d92567bcf0cafa34c668ff931e))
43
+ * **live-sample:** don't add px to height if it already has it ([#417](https://github.com/mdn/fred/issues/417)) ([d5db94b](https://github.com/mdn/fred/commit/d5db94bce68c42fdc2c6c100bc7671ec97333392))
44
+ * **live-samples:** assets wouldn't load in playground ([#381](https://github.com/mdn/fred/issues/381)) ([1a942f7](https://github.com/mdn/fred/commit/1a942f703699663243b4030c3a3e0a411d783e99))
45
+ * **not-found:** use global link styles ([#395](https://github.com/mdn/fred/issues/395)) ([da36381](https://github.com/mdn/fred/commit/da363817e838fdf0f8744b3c66c12ee30d5bba07))
46
+ * **obs:** add skip links to content ([#384](https://github.com/mdn/fred/issues/384)) ([4a895ef](https://github.com/mdn/fred/commit/4a895efccaf0ee7d98bd7ffa53e2b15d2c42a64d))
47
+ * **observatory:** rescan button text ([#431](https://github.com/mdn/fred/issues/431)) ([0aeb7bb](https://github.com/mdn/fred/commit/0aeb7bb718824a44c72eec7e8bf1a1924cdd1510))
48
+ * **observatory:** various responsive fixes ([#438](https://github.com/mdn/fred/issues/438)) ([d24e98d](https://github.com/mdn/fred/commit/d24e98dd89acd26d04d4f7dd1900be891627656e))
49
+ * **playground:** code blocks wouldn't scroll in certain browsers ([#382](https://github.com/mdn/fred/issues/382)) ([37eecfd](https://github.com/mdn/fred/commit/37eecfdc3e59869481bb6baefb5a8cce5cd211a2))
50
+ * **playground:** editor not minimizing in some browsers ([#462](https://github.com/mdn/fred/issues/462)) ([9bdd968](https://github.com/mdn/fred/commit/9bdd9685d7b0e19de2c13a4559f8aec2d5cfdd5f))
51
+ * **plus:** removed sidebar entry for offline docs ([#450](https://github.com/mdn/fred/issues/450)) ([f4358fe](https://github.com/mdn/fred/commit/f4358fe16c40b760454d6dee473e1661baec495b))
52
+ * **prev-next:** layout issues on small screens ([#460](https://github.com/mdn/fred/issues/460)) ([634ba1d](https://github.com/mdn/fred/commit/634ba1d6b337f1b04c47cf11f93e2a9d9027aa9d))
53
+ * **reference-layout:** bem naming convention ([#407](https://github.com/mdn/fred/issues/407)) ([37f55bf](https://github.com/mdn/fred/commit/37f55bfffba5daa89ddd1d25986e3932ce386c55))
54
+ * **search:** close when clicking backdrop cross-browser ([#436](https://github.com/mdn/fred/issues/436)) ([5972d79](https://github.com/mdn/fred/commit/5972d79a53a03abb9b6f6aa6dc83ae91dc69cf2f))
55
+ * **sidebar-filter:** highlight was causing weird layouts ([#403](https://github.com/mdn/fred/issues/403)) ([2ac3843](https://github.com/mdn/fred/commit/2ac3843f906e2ce8b1223393535d516eb3c6421a))
56
+ * **specifications-list:** collapse only specs with multiple urls ([#419](https://github.com/mdn/fred/issues/419)) ([4c8c62c](https://github.com/mdn/fred/commit/4c8c62c940c611744dd06d17312f70d6937e15e0))
57
+ * **syntax-highlighting:** ensure comment colour is accessible ([#400](https://github.com/mdn/fred/issues/400)) ([5a0a710](https://github.com/mdn/fred/commit/5a0a710187a3139ba29fd5da2be637e56ac49f5e))
58
+ * **toggle-sidebar:** don't show when there's no sidebar ([#430](https://github.com/mdn/fred/issues/430)) ([45280bd](https://github.com/mdn/fred/commit/45280bd7ef5a2d462d05db2ca86eded3177be7a1))
59
+
60
+
61
+ ### Enhancements
62
+
63
+ * **content-section:** adjust h4-h5 styles ([#441](https://github.com/mdn/fred/issues/441)) ([2288a1d](https://github.com/mdn/fred/commit/2288a1d29cbc56163fce10d8686f94c705e76274))
64
+ * **font:** remove ligatures from JB Mono ([#437](https://github.com/mdn/fred/issues/437)) ([dfd318b](https://github.com/mdn/fred/commit/dfd318b6d8725c8c7d5d80cd43efe7d3bc5b1326))
65
+ * **homepage-search:** use design colors ([#456](https://github.com/mdn/fred/issues/456)) ([95159e8](https://github.com/mdn/fred/commit/95159e813a3ff6047e384c07068eb3b45c3139b7))
66
+ * **menu:** use mask icons ([#423](https://github.com/mdn/fred/issues/423)) ([3ed0da0](https://github.com/mdn/fred/commit/3ed0da0c1cd112394220307e535d7a79be5bd4e4))
67
+ * **reference-layout:** improve h1 line-height ([#408](https://github.com/mdn/fred/issues/408)) ([445481c](https://github.com/mdn/fred/commit/445481c2f25b879fe6ecfed59905c7f50ac26bfa))
68
+ * **search-mobile:** restyle on mobile and add close button ([#416](https://github.com/mdn/fred/issues/416)) ([638558f](https://github.com/mdn/fred/commit/638558f53dfd105099ffac7bdd40bc70250c8463))
69
+ * **sidebars:** use learn area colours in learn area ([#369](https://github.com/mdn/fred/issues/369)) ([08bdedf](https://github.com/mdn/fred/commit/08bdedf971d553bb2ce9416fe71ec4694832db31))
70
+
71
+
72
+ ### Miscellaneous
73
+
74
+ * **content-section:** style blockquote ([#414](https://github.com/mdn/fred/issues/414)) ([a5838f3](https://github.com/mdn/fred/commit/a5838f344662188eed83505fce9a3cb4158f1088))
75
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.30 to 6.0.31 ([#377](https://github.com/mdn/fred/issues/377)) ([15847b3](https://github.com/mdn/fred/commit/15847b3356297ab01a7df6fd9609f936115e8d5e))
76
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.31 to 6.0.32 ([#405](https://github.com/mdn/fred/issues/405)) ([e791d70](https://github.com/mdn/fred/commit/e791d70652e8953b4897475675a92770fefc4d3b))
77
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.32 to 6.0.33 ([#440](https://github.com/mdn/fred/issues/440)) ([b5cccdc](https://github.com/mdn/fred/commit/b5cccdce0c428709050ac1df90f87762ba97b364))
78
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.33 to 6.0.34 ([#448](https://github.com/mdn/fred/issues/448)) ([50f6a9e](https://github.com/mdn/fred/commit/50f6a9eae6dda7854ec7576c945e768af10078a7))
79
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.34 to 6.0.35 ([#457](https://github.com/mdn/fred/issues/457)) ([4e9d6fb](https://github.com/mdn/fred/commit/4e9d6fb29fcaa37fd7fb1b59aaa18fe376e948dd))
80
+ * **deps-dev:** bump @mdn/browser-compat-data from 6.0.35 to 6.0.36 ([#469](https://github.com/mdn/fred/issues/469)) ([f87b4fa](https://github.com/mdn/fred/commit/f87b4fab61cc333628862fcf0cc9a58df98582e2))
81
+ * **deps-dev:** bump @mdn/yari from 5.0.1 to 5.0.2 ([#475](https://github.com/mdn/fred/issues/475)) ([bc2199b](https://github.com/mdn/fred/commit/bc2199b44bd64c8986d5be79d9731847650d63d7))
82
+ * **deps-dev:** bump @typescript-eslint/eslint-plugin from 8.36.0 to 8.37.0 in the dev group ([#389](https://github.com/mdn/fred/issues/389)) ([3c73ea5](https://github.com/mdn/fred/commit/3c73ea51d79bc2367b6c092add7dde8339b16e07))
83
+ * **deps-dev:** bump @typescript-eslint/eslint-plugin from 8.37.0 to 8.38.0 in the dev group ([#444](https://github.com/mdn/fred/issues/444)) ([a00f3e1](https://github.com/mdn/fred/commit/a00f3e181ca2adc608005df3fabe83184f531524))
84
+ * **deps-dev:** bump eslint-plugin-jsdoc from 51.4.0 to 51.4.1 in the dev group ([#412](https://github.com/mdn/fred/issues/412)) ([075d9c5](https://github.com/mdn/fred/commit/075d9c550cc37391171bd96caf87f7a719e72321))
85
+ * **deps-dev:** bump eslint-plugin-n from 17.21.2 to 17.21.3 in the dev group ([#464](https://github.com/mdn/fred/issues/464)) ([abf4d52](https://github.com/mdn/fred/commit/abf4d5260c7aaff992009dc63e6793edc6d589d5))
86
+ * **deps-dev:** bump stylelint from 16.22.0 to 16.23.0 in the dev group ([#468](https://github.com/mdn/fred/issues/468)) ([04932d8](https://github.com/mdn/fred/commit/04932d8c3ac50477be54d10425128e9108e56f17))
87
+ * **deps-dev:** bump the dev group across 1 directory with 3 updates ([#449](https://github.com/mdn/fred/issues/449)) ([9438645](https://github.com/mdn/fred/commit/94386452bebb1834bc6f9d1b92666bee49dfb993))
88
+ * **deps-dev:** bump the dev group with 2 updates ([#453](https://github.com/mdn/fred/issues/453)) ([06cfe0e](https://github.com/mdn/fred/commit/06cfe0ee8fa5ef9c7f51ee70f8c39f4fcf316b6c))
89
+ * **deps-dev:** bump the dev group with 3 updates ([#378](https://github.com/mdn/fred/issues/378)) ([c88a352](https://github.com/mdn/fred/commit/c88a35261df71b4ede22ec15f251189d42eb6632))
90
+ * **deps-dev:** bump the dev group with 3 updates ([#439](https://github.com/mdn/fred/issues/439)) ([f9d48c3](https://github.com/mdn/fred/commit/f9d48c3d88a94631ae14093fcb0cb690ae412612))
91
+ * **deps-dev:** bump the dev group with 3 updates ([#458](https://github.com/mdn/fred/issues/458)) ([878c545](https://github.com/mdn/fred/commit/878c545d663619bbf6c71b5ed50315103f181c13))
92
+ * **deps-dev:** bump the dev group with 4 updates ([#404](https://github.com/mdn/fred/issues/404)) ([f326e4b](https://github.com/mdn/fred/commit/f326e4b63a442f1f03e0c364d758d8db7c4390a6))
93
+ * **deps:** bump the prod group with 2 updates ([#425](https://github.com/mdn/fred/issues/425)) ([7c705ea](https://github.com/mdn/fred/commit/7c705eaaeaa381f01b921e714dc6a38b58f5c91b))
94
+ * **deps:** bump the prod group with 3 updates ([#375](https://github.com/mdn/fred/issues/375)) ([0faa9cb](https://github.com/mdn/fred/commit/0faa9cb69bb238738c306f3d7e6d45340d261a55))
95
+ * **github:** add CODEOWNERS ([#422](https://github.com/mdn/fred/issues/422)) ([5cd1885](https://github.com/mdn/fred/commit/5cd18859ce0394a1d27b876e07236ada6ea76def))
96
+ * **l10n:** address some feedback ([#413](https://github.com/mdn/fred/issues/413)) ([480473e](https://github.com/mdn/fred/commit/480473e99ce2cc0e7ae06d829bd0ea27e83484c9))
97
+ * **menu:** Update js link ([#391](https://github.com/mdn/fred/issues/391)) ([2f3e472](https://github.com/mdn/fred/commit/2f3e4723140b0d6fce1e9e4c3be628fe2e641659))
98
+ * **outer-layout:** move favicons below scripts ([#390](https://github.com/mdn/fred/issues/390)) ([ee116af](https://github.com/mdn/fred/commit/ee116af59a72490cfc614adc0f8f262d444c73a8))
99
+ * **specifications:** port table from yari ([#428](https://github.com/mdn/fred/issues/428)) ([d09e63a](https://github.com/mdn/fred/commit/d09e63a814ec99f253d759717b6404da30b6d683))
100
+ * **styling:** prev/next & spacing ([#380](https://github.com/mdn/fred/issues/380)) ([47f9376](https://github.com/mdn/fred/commit/47f937604cd360a1b3b7b9aefb9cef1a51a6b3c8))
101
+ * **styling:** Updating yellow colour for accessibility ([#426](https://github.com/mdn/fred/issues/426)) ([bba9315](https://github.com/mdn/fred/commit/bba931577b4cfc1bd1c6a5d26b21bb641f1e460c))
102
+
3
103
  ## [0.1.0](https://github.com/mdn/fred/compare/v0.0.5...v0.1.0) (2025-07-11)
4
104
 
5
105
 
package/build/render.js CHANGED
@@ -23,10 +23,10 @@ const legacyManifest = JSON.parse(
23
23
  );
24
24
 
25
25
  /**
26
- * @param {import("@rari").BuiltPage} page
26
+ * @param {import("@fred").PartialContext} context
27
27
  */
28
- export async function render(page) {
29
- return await distRender(page.url, page, {
28
+ export async function render(context) {
29
+ return await distRender(context.url, context, {
30
30
  client: clientManifest,
31
31
  legacy: legacyManifest,
32
32
  });
@@ -4,7 +4,7 @@ import { parentPort, workerData } from "node:worker_threads";
4
4
  import "source-map-support/register.js";
5
5
 
6
6
  /** @type {import("./types.js").WorkerData} */
7
- const { reqPath, page, compilationStats } = workerData;
7
+ const { reqPath, context, compilationStats } = workerData;
8
8
 
9
9
  const ssrStats = compilationStats.find((x) => x.name === "ssr");
10
10
  if (!ssrStats) {
@@ -27,7 +27,7 @@ if (!indexModulePath) {
27
27
  try {
28
28
  /** @type {import("../entry.ssr.js")} */
29
29
  const indexModule = await import(indexModulePath);
30
- const html = await indexModule?.render(reqPath, page, {
30
+ const html = await indexModule?.render(reqPath, context, {
31
31
  client: compilationStats.find((x) => x.name === "client") || {},
32
32
  legacy: compilationStats.find((x) => x.name === "legacy") || {},
33
33
  });
package/build/types.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { BuiltPage } from "@mdn/rari";
1
+ import { PartialContext } from "@fred";
2
2
  import { StatsCompilation } from "@rspack/core";
3
3
 
4
4
  export interface WorkerData {
5
5
  reqPath: string;
6
- page: BuiltPage;
6
+ context: PartialContext;
7
7
  compilationStats: StatsCompilation[];
8
8
  }
@@ -21,7 +21,7 @@
21
21
 
22
22
  padding: 0.8em;
23
23
 
24
- font-weight: 600;
24
+ font-weight: var(--font-weight-bold);
25
25
 
26
26
  text-align: center;
27
27
 
@@ -1,10 +1,12 @@
1
+ @import url("../global/global.css");
2
+
1
3
  :host {
2
4
  display: block;
3
5
  }
4
6
 
5
7
  .tablist-wrapper {
6
8
  position: sticky;
7
- top: var(--top-nav-height);
9
+ top: var(--sticky-header-height);
8
10
  z-index: 2;
9
11
 
10
12
  padding: 0 var(--center-padding);
@@ -88,7 +88,15 @@ export class MDNAboutTabs extends LitElement {
88
88
  globalThis.location.hash = tabEl.dataset.panelId;
89
89
  }
90
90
  this.active_index = i;
91
+
92
+ requestAnimationFrame(() => {
93
+ const panel = panels[this.active_index];
94
+ if (panel && panel.getBoundingClientRect().top < 0) {
95
+ panel.scrollIntoView({ block: "start", inline: "nearest" });
96
+ }
97
+ });
91
98
  };
99
+
92
100
  // @ts-expect-error
93
101
  tabEl.removeEventListener("click", tabEl.__handleClick);
94
102
  tabEl.addEventListener("click", handleClick);
@@ -165,7 +165,7 @@ h2 {
165
165
 
166
166
  .sing__legend {
167
167
  max-width: 5rem;
168
- font-size: 0.8rem;
168
+ font-size: var(--font-size-small);
169
169
  text-align: center;
170
170
  }
171
171
 
@@ -19,10 +19,6 @@
19
19
  margin-right: 1rem;
20
20
  margin-left: 1rem;
21
21
  }
22
-
23
- .heading-anchor::before {
24
- display: none;
25
- }
26
22
  }
27
23
 
28
24
  .article-footer__inner {
@@ -1,6 +1,5 @@
1
1
  import { html } from "lit";
2
2
 
3
- import { HeadingAnchor } from "../heading-anchor/server.js";
4
3
  import { ServerComponent } from "../server/index.js";
5
4
 
6
5
  import svg from "./article-footer.svg?lit";
@@ -16,21 +15,19 @@ export class ArticleFooter extends ServerComponent {
16
15
  return;
17
16
  }
18
17
 
19
- return html`<section
20
- class="content-section article-footer"
21
- aria-labelledby="article_footer"
22
- >
23
- <div class="article-footer__inner">
24
- <div class="article-footer__svg-container">${svg}</div>
25
- ${HeadingAnchor.render(
26
- 2,
27
- "article_footer",
28
- context.l10n`Help improve MDN`,
29
- )}
30
- <mdn-content-feedback locale=${context.locale}></mdn-content-feedback>
31
- ${Contribute(context)} ${LastModified(context)} ${Links(context)}
32
- </div>
33
- </section>`;
18
+ return html`
19
+ <section
20
+ class="content-section article-footer"
21
+ aria-labelledby="feedback"
22
+ >
23
+ <div class="article-footer__inner">
24
+ <div class="article-footer__svg-container">${svg}</div>
25
+ <h2 id="feedback">Help improve MDN</h2>
26
+ <mdn-content-feedback locale=${context.locale}></mdn-content-feedback>
27
+ ${Contribute(context)} ${LastModified(context)} ${Links(context)}
28
+ </div>
29
+ </section>
30
+ `;
34
31
  }
35
32
  }
36
33
 
@@ -98,10 +98,10 @@
98
98
  padding: 0.375rem 0;
99
99
  margin: 0;
100
100
 
101
- font-size: 1rem;
102
- font-weight: 600;
101
+ font-size: var(--font-size-normal);
102
+ font-weight: var(--font-weight-bold);
103
103
 
104
- line-height: 1.5;
104
+ line-height: var(--font-line-normal);
105
105
 
106
106
  letter-spacing: 0;
107
107
 
@@ -114,8 +114,8 @@
114
114
  padding: 0 0.25rem;
115
115
  margin-right: auto;
116
116
 
117
- font-size: 0.75rem;
118
- font-weight: 600;
117
+ font-size: var(--font-size-small);
118
+ font-weight: var(--font-weight-bold);
119
119
 
120
120
  color: var(--baseline-pill-color);
121
121
 
@@ -244,7 +244,6 @@
244
244
  &,
245
245
  &:active,
246
246
  &:visited {
247
- color: var(--text-link);
248
247
  background: none;
249
248
  }
250
249
  }
@@ -204,12 +204,7 @@ export class BaselineIndicator extends ServerComponent {
204
204
  </p>`
205
205
  : html`<p>${context.l10n("baseline-not-extra")}</p>`}
206
206
  ${status.asterisk
207
- ? html`<p>
208
- ${context.l10n.raw({
209
- id: "baseline-asterisk",
210
- args: { asterisk: "*" },
211
- })}
212
- </p>`
207
+ ? html`<p>{"* "}${context.l10n("baseline-asterisk")}</p>`
213
208
  : nothing}
214
209
  <ul>
215
210
  <li>
@@ -93,7 +93,7 @@
93
93
  margin-bottom: 2.25rem;
94
94
 
95
95
  font-size: var(--font-size-large);
96
- font-weight: 400;
96
+ font-weight: var(--font-weight-normal);
97
97
 
98
98
  line-height: 1.2;
99
99
 
@@ -196,7 +196,7 @@
196
196
 
197
197
  margin-left: calc((var(--avatar-size) + var(--author-gap)) * -1);
198
198
 
199
- font-weight: 600;
199
+ font-weight: var(--font-weight-bold);
200
200
 
201
201
  &::after {
202
202
  display: inline-flex;
@@ -53,7 +53,7 @@
53
53
  margin-top: 1rem;
54
54
 
55
55
  font-size: var(--font-size-largest);
56
- font-weight: 600;
56
+ font-weight: var(--font-weight-bold);
57
57
 
58
58
  line-height: 1.2;
59
59
  }
@@ -76,7 +76,7 @@
76
76
  align-content: flex-start;
77
77
  align-items: center;
78
78
 
79
- font-weight: 600;
79
+ font-weight: var(--font-weight-bold);
80
80
 
81
81
  &::after {
82
82
  display: inline-flex;
@@ -229,7 +229,7 @@
229
229
  display: block;
230
230
 
231
231
  font-size: var(--font-size-small);
232
- font-weight: 400;
232
+ font-weight: var(--font-weight-normal);
233
233
 
234
234
  line-height: 1.2rem;
235
235
 
@@ -2,6 +2,7 @@ import { html, nothing } from "lit";
2
2
 
3
3
  import { Breadcrumbs } from "../breadcrumbs/server.js";
4
4
 
5
+ import { GenericSidebar } from "../generic-sidebar/server.js";
5
6
  import { ServerComponent } from "../server/index.js";
6
7
 
7
8
  export class BreadcrumbsBar extends ServerComponent {
@@ -14,15 +15,9 @@ export class BreadcrumbsBar extends ServerComponent {
14
15
  )
15
16
  ? "dark"
16
17
  : "";
17
- const toggleSidebar = ["Doc", "CurriculumModule", "GenericDoc"].includes(
18
- context.renderer,
19
- )
20
- ? html`<mdn-toggle-sidebar></mdn-toggle-sidebar>`
21
- : nothing;
22
-
23
18
  return html`
24
19
  <div class="breadcrumbs-bar" data-scheme=${colorScheme}>
25
- ${toggleSidebar} ${Breadcrumbs.render(context)}
20
+ ${this._renderToggleSidebar(context)} ${Breadcrumbs.render(context)}
26
21
  ${context.renderer === "Doc"
27
22
  ? html`<mdn-collection-save-button
28
23
  doc-url=${context.doc.mdn_url}
@@ -35,6 +30,30 @@ export class BreadcrumbsBar extends ServerComponent {
35
30
  `;
36
31
  }
37
32
 
33
+ /**
34
+ * @param {import("@fred").Context} context
35
+ */
36
+ _renderToggleSidebar(context) {
37
+ const sidebar = Boolean(
38
+ (() => {
39
+ switch (context.renderer) {
40
+ case "Doc":
41
+ return context.doc.sidebarHTML;
42
+ case "CurriculumModule":
43
+ case "CurriculumAbout":
44
+ case "CurriculumDefault":
45
+ case "CurriculumOverview":
46
+ return context.doc.sidebar;
47
+ case "GenericDoc":
48
+ return GenericSidebar.sidebarName(context);
49
+ default:
50
+ return;
51
+ }
52
+ })(),
53
+ );
54
+ return sidebar ? html`<mdn-toggle-sidebar></mdn-toggle-sidebar>` : nothing;
55
+ }
56
+
38
57
  /**
39
58
  * @param {import("@fred").Context} context
40
59
  */
@@ -1,6 +1,8 @@
1
1
  import { html, nothing } from "lit";
2
2
  import { ifDefined } from "lit/directives/if-defined.js";
3
3
 
4
+ import { randomIdString } from "../utils/index.js";
5
+
4
6
  /**
5
7
  * @param {object} options
6
8
  * @param {string | import("@lit").TemplateResult} options.label
@@ -26,11 +28,12 @@ export default function Button({
26
28
  variant = "primary",
27
29
  action,
28
30
  }) {
31
+ const labelId = randomIdString("label-");
29
32
  const iconElement = icon
30
33
  ? html`<span class="icon" part="icon">${icon}</span>`
31
34
  : nothing;
32
35
  const labelElement = html`
33
- <span id="label" class="label" ?hidden=${iconOnly} part="label"
36
+ <span id=${labelId} class="label" ?hidden=${iconOnly} part="label"
34
37
  >${label}</span
35
38
  >
36
39
  `;
@@ -47,7 +50,7 @@ export default function Button({
47
50
  href=${href}
48
51
  target=${ifDefined(target)}
49
52
  rel=${ifDefined(rel)}
50
- aria-labelledby="label"
53
+ aria-labelledby=${labelId}
51
54
  data-variant=${ifDefined(variant)}
52
55
  data-action=${ifDefined(action)}
53
56
  part="button"
@@ -58,7 +61,7 @@ export default function Button({
58
61
  : html`
59
62
  <button
60
63
  class="button"
61
- aria-labelledby="label"
64
+ aria-labelledby=${labelId}
62
65
  ?disabled=${disabled}
63
66
  data-variant=${ifDefined(variant)}
64
67
  data-action=${ifDefined(action)}
@@ -23,16 +23,24 @@
23
23
  }
24
24
 
25
25
  pre {
26
- padding: 1rem;
26
+ display: flex;
27
+
27
28
  margin: 0;
28
29
 
29
- overflow: auto;
30
+ white-space: pre-wrap;
30
31
 
31
32
  background-color: var(--color-background-secondary);
32
33
 
33
34
  code {
34
- padding: 0;
35
+ flex-grow: 1;
36
+ flex-shrink: 1;
37
+
38
+ padding: 1rem;
39
+
40
+ overflow: auto;
41
+
35
42
  font-family: var(--font-family-code);
43
+
36
44
  background-color: transparent;
37
45
  }
38
46
 
@@ -40,6 +48,42 @@
40
48
  &[class*="interactive-example"] {
41
49
  display: none;
42
50
  }
51
+
52
+ &.example-good,
53
+ &.example-bad {
54
+ &::after {
55
+ display: inline-block;
56
+
57
+ flex-shrink: 0;
58
+
59
+ width: 1.24rem;
60
+ height: 1.24rem;
61
+
62
+ margin: 1.255rem 1rem;
63
+
64
+ content: "";
65
+
66
+ mask-size: cover;
67
+ }
68
+ }
69
+
70
+ &.example-good {
71
+ background-color: var(--color-background-green);
72
+
73
+ &::after {
74
+ background-color: var(--color-text-green);
75
+ mask-image: url("../icon/circle-check.svg");
76
+ }
77
+ }
78
+
79
+ &.example-bad {
80
+ background-color: var(--color-background-red);
81
+
82
+ &::after {
83
+ background-color: var(--color-text-red);
84
+ mask-image: url("../icon/circle-x.svg");
85
+ }
86
+ }
43
87
  }
44
88
 
45
89
  &:has(.hidden, [class*="interactive-example"]) {
@@ -82,7 +82,9 @@ export class MDNCodeExample extends LitElement {
82
82
  >`
83
83
  : nothing}
84
84
  </div>
85
- <pre><code ${ref(this._codeRef)}>${this._highlightTask.render({
85
+ <pre class=${this.className}><code ${ref(
86
+ this._codeRef,
87
+ )}>${this._highlightTask.render({
86
88
  initial: () => this.code,
87
89
  pending: () => this.code,
88
90
  complete: (highlighted) => unsafeHTML(highlighted),
@@ -107,16 +109,13 @@ export function upgradePre(pre) {
107
109
  const hidden = [...pre.classList].some(
108
110
  (c) => c === "hidden" || c.startsWith("interactive-example"),
109
111
  );
110
- const liveSampleClasses = [...pre.classList].filter(
111
- (c) => c.startsWith("live-sample___") || c.startsWith("live-sample---"),
112
- );
113
112
  const code = pre.querySelector("code")?.textContent;
114
113
  if (example && language && code) {
115
114
  const newExample = document.createElement("mdn-code-example");
116
115
  newExample.language = language;
117
116
  newExample.code = code;
118
117
  newExample.hidden = hidden;
119
- newExample.classList = [...liveSampleClasses].join(" ");
118
+ newExample.className = pre.className;
120
119
  example.replaceWith(newExample);
121
120
  return newExample;
122
121
  }