@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
@@ -0,0 +1,387 @@
1
+ export const __webpack_ids__=["5531"];export const __webpack_modules__={7790:function(t,e,a){t.exports=a.p+"results-icon.b469eb939df034e7.svg"},52003:function(t,e,a){t.exports=a.p+"summary-icon.eff7a61e59b7e02f.svg"},80478:function(t,e,a){a.r(e),a.d(e,{MDNObservatoryResults:()=>MDNObservatoryResults});var s=a(35470),r=a(14703),o=a(66176),i=a(57964),l=a(28110);let n=(0,r.YP)`<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="none" viewBox="0 0 22 22"><path fill="#DFD172" d="m18 0-1.26 2.75L14 4l2.74 1.26L18 8l1.25-2.74L22 4l-2.75-1.25M8 3 5.5 8.5 0 11l5.5 2.5L8 19l2.5-5.5L16 11l-5.5-2.5M18 14l-1.26 2.74L14 18l2.74 1.25L18 22l1.25-2.75L22 18l-2.75-1.26"/></svg>`,d=(0,r.YP)`<svg width="22" height="22" class="arrow" viewBox="0 0 22 22"><path d="M12.124 1.733a1 1 0 0 1 1.673 0l8.811 13.423a1 1 0 0 1-.835 1.548l-17.614.007a1 1 0 0 1-.837-1.548Z"/></svg>`;a(90811);let c=["unsafeInline","unsafeEval","unsafeObjects","unsafeInlineStyle","insecureSchemeActive","insecureSchemePassive","antiClickjacking","defaultNone","insecureBaseUri","insecureFormAction","strictDynamic"],b=new Set(["insecureBaseUri","insecureFormAction","insecureSchemeActive","insecureSchemePassive","unsafeEval","unsafeInline","unsafeInlineStyle","unsafeObjects"]);a(55072),a(42678),a(93305),a(32570);let MDNObservatoryResults=class MDNObservatoryResults extends r.oi{static styles=i.Z;constructor(){super(),this.host=null,this.selectedTab=0,this._usePostInApi=!1}static properties={host:{type:String},selectedTab:{state:!0,type:Number},_usePostInApi:{state:!0,type:Boolean}};_apiTask=new s.iQ(this,{args:()=>[this.host],task:async([t],{signal:e})=>{if(!t)throw Error("No host provided");try{let a=await fetch(`${o._v}/api/v2/analyze?host=${encodeURIComponent(t)}`,{signal:e,method:this._usePostInApi?"POST":"GET"});if(!a.ok){let t=`${a.status}: ${a.statusText}`;try{let e=await a.json();e.error&&(t=e.message)}catch{}throw Error(t)}return await a.json()}catch(t){throw Error("Observatory API request for scan data failed",{cause:t})}}});connectedCallback(){super.connectedCallback(),this._updateSelectedTab=this._updateSelectedTab.bind(this),this.selectedTab=this._getSelectedTab(),globalThis.addEventListener("hashchange",this._updateSelectedTab)}disconnectedCallback(){super.disconnectedCallback(),globalThis.removeEventListener("hashchange",this._updateSelectedTab)}firstUpdated(){let t=new URLSearchParams(globalThis.location.search);this.host=t.get("host")}_updateSelectedTab(){this.selectedTab=this._getSelectedTab()}_getSelectedTab(){let t=["scoring","csp","cookies","headers","history","benchmark"].indexOf(globalThis.location.hash.replace("#",""));return -1===t?0:t}async _rescan(t){t.preventDefault(),this.host&&(this._usePostInApi=!0,this._apiTask.run())}_handleTabSelect(t,e){this.selectedTab=t,globalThis.history.replaceState("","",globalThis.location.pathname+globalThis.location.search+"#"+e)}render(){return this.host?this._apiTask.render({pending:()=>(0,r.dy)` <label class="visually-hidden" for="progress-bar">
2
+ Rescanning ${this.host} </label
3
+ ><mdn-progress-bar id="progress-bar"></mdn-progress-bar>`,complete:t=>(0,r.dy)`
4
+ <section class="summary">
5
+ ${(function({result:t,host:e,rescan:a}){return(0,r.dy)`
6
+ <h2 class="summary">
7
+ Scan summary:
8
+ <span class="host">${(0,l.Ju)(e,t)}</span>
9
+ </h2>
10
+ <section class="scan-result">
11
+ <section class="grade-trend">
12
+ <div class="overall">
13
+ <button
14
+ popovertarget="grade-popover"
15
+ aria-label="show info tooltip"
16
+ class="info-tooltip"
17
+ tabindex="0"
18
+ >
19
+ <div
20
+ class=${`grade grade-${t.scan.grade?.[0]?.toLowerCase()}`}
21
+ >
22
+ ${(0,l.x8)(t.scan.grade)}
23
+ </div>
24
+ ${function(t){let e=o.Xu.map(e=>(0,r.dy)`
25
+ <tr class=${t.scan.grade===e.grade?"current":""}>
26
+ <td>${(0,l.x8)(e.grade)}</td>
27
+ <td>
28
+ ${e.scoreText}
29
+ ${t.scan.grade===e.grade&&e.stars?n:""}
30
+ </td>
31
+ </tr>
32
+ `);return(0,r.dy)`
33
+ <span
34
+ popover
35
+ id="grade-popover"
36
+ aria-describedby="grade-table"
37
+ class="tooltip-popup"
38
+ >
39
+ ${d}
40
+ <table class="grade-tooltip" id="grades-table" role="tooltip">
41
+ <thead>
42
+ <tr>
43
+ <th>Grade</th>
44
+ <th>Score</th>
45
+ </tr>
46
+ </thead>
47
+ <tbody>
48
+ ${e}
49
+ </tbody>
50
+ </table>
51
+ </span>
52
+ `}(t)}
53
+ </button>
54
+ </div>
55
+ ${function({result:t}){switch(function(t){let[e,a]=t.history.length>0?[t.history.at(-2)?.score,t.history.at(-2)?.grade]:[void 0,void 0],s=t.scan.score,r=t.scan.grade;return"number"==typeof s&&"number"==typeof e&&r!==a&&s!==e?e<s?"up":"down":"none"}(t)){case"up":return(0,r.dy)`
56
+ <div class="trend">
57
+ <span class="arrow-up" aria-hidden="true"> ↗︎ </span>
58
+ since last scan
59
+ </div>
60
+ `;case"down":return(0,r.dy)`
61
+ <div class="trend">
62
+ <span class="arrow-down" aria-hidden="true"> ↘︎ </span>
63
+ since last scan
64
+ </div>
65
+ `;default:return r.Ld}}({result:t})}
66
+ </section>
67
+ <section class="data">
68
+ <div>
69
+ <a href="/en-US/observatory/docs/tests_and_scoring" target="_blank">
70
+ <span class="label">Score</span></a
71
+ >: ${t.scan.score}&thinsp;/&thinsp;100
72
+ </div>
73
+ <div>
74
+ <a href="#history"> <span class="label">Scan Time</span></a
75
+ >:
76
+ <mdn-observatory-human-duration
77
+ .date=${new Date(t.scan.scanned_at)}
78
+ ></mdn-observatory-human-duration>
79
+ </div>
80
+ <a href="/en-US/observatory/docs/tests_and_scoring" target="_blank">
81
+ <span class="label">Tests Passed</span></a
82
+ >: ${t.scan.tests_passed}&thinsp;/&thinsp;
83
+ ${t.scan.tests_quantity}
84
+ </section>
85
+ <section class="actions">
86
+ <mdn-observatory-rescan-button
87
+ .from=${new Date(t.scan.scanned_at)}
88
+ .duration=${60}
89
+ @click=${a}
90
+ ></mdn-observatory-rescan-button>
91
+ <div class="scan-another">
92
+ <a href="/en-US/observatory"> Scan another website </a>
93
+ </div>
94
+ </section>
95
+ </section>
96
+ `})({result:t,host:this.host||"",rescan:this._rescan})}
97
+ </section>
98
+ <section class="results">
99
+ ${(function({result:t,selectedTab:e=0,onTabSelect:a}){let s=[{label:"Scoring",key:"scoring",element:(0,r.dy)`${function({result:t}){let e=90>=(t.scan.score||0)&&Object.entries(t.tests).find(([t,e])=>e.score_modifier>0);if(0===Object.keys(t.tests).length)return(0,r.dy)`No tests found.`;let a=o.DQ.map(e=>{let a=t.tests[e];return a?(0,r.dy)`
100
+ <tr>
101
+ <td data-header="Test">
102
+ <a
103
+ href=${a.link}
104
+ target="_blank"
105
+ rel="noreferrer"
106
+ class=${a.link.startsWith("/")?"":"external"}
107
+ >
108
+ ${a.title}
109
+ </a>
110
+ </td>
111
+ ${null===a.pass?(0,r.dy)`<td data-header="Score">-</td>`:(0,r.dy)` <td class="score" data-header="Score">
112
+ <span>
113
+ <span class="obs-score-value">
114
+ ${function({overallScore:t,scoreModifier:e}){let a=t>=90,s=(0,l.x8)(`${e>0?`+${e}`:e}`);return(0,r.dy)`
115
+ <span class=${!a&&e>0?"not-counted":""}>
116
+ ${!a&&e>0?(0,r.dy)`0<sup><a href="#bonus-points-explanation">*</a></sup>`:s}
117
+ </span>
118
+ `}({overallScore:t.scan.score||0,scoreModifier:a.score_modifier})}
119
+ </span>
120
+ ${(0,l.nq)({pass:a.pass})}
121
+ </span>
122
+ </td>`}
123
+ <td data-header="Reason" .innerHTML=${a.score_description}></td>
124
+ <td
125
+ data-header="Advice"
126
+ .innerHTML=${a.recommendation||'<p class="obs-none">None</p>'}
127
+ ></td>
128
+ </tr>
129
+ `:null});return(0,r.dy)`
130
+ <table class="tests">
131
+ <thead>
132
+ <tr>
133
+ <th>Test</th>
134
+ <th>Score</th>
135
+ <th>Reason</th>
136
+ <th>Recommendation</th>
137
+ </tr>
138
+ </thead>
139
+ <tbody>
140
+ ${a}
141
+ </tbody>
142
+ </table>
143
+ ${e?(0,r.dy)` <section class="footnote" id="bonus-points-explanation">
144
+ <sup>*</sup> Normally awards bonus points, however, in this case they
145
+ are not included in the overall score (
146
+ <a href="/en-US/observatory/docs/tests_and_scoring" target="_blank">
147
+ find out why
148
+ </a>
149
+ ).
150
+ </section>`:null}
151
+ `}({result:t})}`},{label:"CSP analysis",key:"csp",element:(0,r.dy)`${function({result:t}){let e=t.tests["content-security-policy"]?.policy,a=t.tests["content-security-policy"]?.pass||!1;if(!e)return t.tests["content-security-policy"]?.result==="csp-not-implemented-but-reporting-enabled"?(0,r.dy)`
152
+ <table class="csp">
153
+ <tbody>
154
+ <tr>
155
+ <td>
156
+ <p>
157
+ <code>Content-Security-Policy-Report-Only</code> header
158
+ detected. Implement an enforced policy; see
159
+ <a href="/en-US/docs/Web/HTTP/CSP" target="_blank">
160
+ MDN's Content Security Policy (CSP) documentation </a
161
+ >.
162
+ </p>
163
+ </td>
164
+ </tr>
165
+ </tbody>
166
+ </table>
167
+ `:(0,r.dy)`
168
+ <table class="csp">
169
+ <tbody>
170
+ <tr>
171
+ <td>
172
+ <p>No CSP headers detected</p>
173
+ </td>
174
+ </tr>
175
+ </tbody>
176
+ </table>
177
+ `;let s=c.map(t=>{if(!e[t])return null;let a=e[t];return(0,r.dy)`
178
+ <tr>
179
+ <td data-header="Test" .innerHTML=${a.description}></td>
180
+ <td data-header="Pass">
181
+ ${(0,l.nq)({pass:b.has(t)?!a.pass:a.pass})}
182
+ </td>
183
+ <td data-header="Info" .innerHTML=${a.info}></td>
184
+ </tr>
185
+ `});return(0,r.dy)`
186
+ <div class="detail-header">
187
+ <p class="arrow">${(0,l.nq)({pass:a})}</p>
188
+ <div
189
+ class="detail-header-content"
190
+ .innerHTML=${t.tests["content-security-policy"]?.score_description??'<p class="obs-none">None</p>'}
191
+ ></div>
192
+ </div>
193
+
194
+ <table class="csp">
195
+ <thead>
196
+ <tr>
197
+ <th>Test</th>
198
+ <th>Result</th>
199
+ <th>Info</th>
200
+ </tr>
201
+ </thead>
202
+ <tbody>
203
+ ${s}
204
+ </tbody>
205
+ </table>
206
+ `}({result:t})}`},{label:"Cookies",key:"cookies",element:(0,r.dy)`${function({result:t}){let e=t.tests.cookies?.data,a=t.tests.cookies?.pass;if(!e||0===Object.keys(e).length)return(0,r.dy)`
207
+ <table class="cookies">
208
+ <tbody>
209
+ <tr>
210
+ <td>No cookies detected</td>
211
+ </tr>
212
+ </tbody>
213
+ </table>
214
+ `;let s=Object.entries(e).map(([t,e])=>(0,r.dy)`
215
+ <tr>
216
+ <td data-header="Name" class="cookie-name">${t}</td>
217
+ <td data-header="Expires">
218
+ ${e.expires?(0,l.EK)({expires:e.expires}):"Session"}
219
+ </td>
220
+ <td data-header="Path">
221
+ <code>${e.path}</code>
222
+ </td>
223
+ <td data-header="Secure">${(0,l.nq)({pass:e.secure})}</td>
224
+ <td data-header="HttpOnly">${(0,l.nq)({pass:e.httponly})}</td>
225
+ <td data-header="SameSite">
226
+ ${e.samesite?(0,r.dy)`<code>${(0,l.M2)(e.samesite)}</code>`:"-"}
227
+ </td>
228
+ <td data-header="Prefixed">${(0,l.Tv)({cookieName:t})}</td>
229
+ </tr>
230
+ `);return(0,r.dy)`
231
+ <div class="detail-header">
232
+ <p class="arrow">
233
+ ${(0,l.nq)({pass:void 0===a?null:a})}
234
+ </p>
235
+ <div
236
+ class="detail-header-content"
237
+ .innerHTML=${t.tests.cookies?.score_description??'<p class="obs-none">None</p>'}
238
+ ></div>
239
+ </div>
240
+ <table class="cookies">
241
+ <thead>
242
+ <tr>
243
+ <th>Name</th>
244
+ <th>
245
+ <a
246
+ target="_blank"
247
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#expires"
248
+ >Expires</a
249
+ >
250
+ </th>
251
+ <th>
252
+ <a
253
+ target="_blank"
254
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#path"
255
+ >Path</a
256
+ >
257
+ </th>
258
+ <th>
259
+ <a
260
+ target="_blank"
261
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#secure"
262
+ >Secure</a
263
+ >
264
+ </th>
265
+ <th>
266
+ <a
267
+ target="_blank"
268
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#httponly"
269
+ >HttpOnly</a
270
+ >
271
+ </th>
272
+ <th>
273
+ <a
274
+ target="_blank"
275
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#samesite"
276
+ >SameSite</a
277
+ >
278
+ </th>
279
+ <th>
280
+ <a
281
+ target="_blank"
282
+ href="/en-US/docs/Web/Security/Practical_implementation_guides/Cookies#name"
283
+ >Prefix</a
284
+ >
285
+ </th>
286
+ </tr>
287
+ </thead>
288
+ <tbody>
289
+ ${s}
290
+ </tbody>
291
+ </table>
292
+ `}({result:t})}`},{label:"Raw server headers",key:"headers",element:(0,r.dy)`${function({result:t}){if(!t.scan.response_headers)return(0,r.dy)`
293
+ <table class="headers">
294
+ <tbody>
295
+ <tr>
296
+ <td>No headers detected</td>
297
+ </tr>
298
+ </tbody>
299
+ </table>
300
+ `;let e=Object.entries(t.scan.response_headers).map(([t,e])=>(0,r.dy)`
301
+ <tr>
302
+ <td data-header="Header">
303
+ <mdn-observatory-header-link header=${t}>
304
+ ${(0,l.bU)(t)}
305
+ </mdn-observatory-header-link>
306
+ </td>
307
+ <td data-header="Value">${e}</td>
308
+ </tr>
309
+ `);return(0,r.dy)`
310
+ <table class="headers">
311
+ <thead>
312
+ <tr>
313
+ <th>Header</th>
314
+ <th>Value</th>
315
+ </tr>
316
+ </thead>
317
+ <tbody>
318
+ ${e}
319
+ </tbody>
320
+ </table>
321
+ `}({result:t})}`},{label:"Scan history",key:"history",element:(0,r.dy)`${function({result:t}){if(0===t.history.length)return r.Ld;let e=[...t.history].reverse().map(({scanned_at:t,score:e,grade:a})=>(0,r.dy)`
322
+ <tr>
323
+ <td data-header="Date">${(0,l.o0)(new Date(t))}</td>
324
+ <td data-header="Score">${e}</td>
325
+ <td data-header="Grade">${(0,l.x8)(a)}</td>
326
+ </tr>
327
+ `);return(0,r.dy)`
328
+ <h2>Changes in score over time</h2>
329
+ <table class="history">
330
+ <thead>
331
+ <tr>
332
+ <th>Date</th>
333
+ <th>Score</th>
334
+ <th>Grade</th>
335
+ </tr>
336
+ </thead>
337
+ <tbody>
338
+ ${e}
339
+ </tbody>
340
+ </table>
341
+ `}({result:t})}`},{label:"Benchmark comparison",key:"benchmark",element:(0,r.dy)`${function({result:t}){return(0,r.dy)`
342
+ <h2>Performance trends from the past year</h2>
343
+ <mdn-observatory-comparison-table
344
+ .result=${t}
345
+ ></mdn-observatory-comparison-table>
346
+ <p>
347
+ Refer to this graph to assess the website's current status. By following
348
+ the recommendations provided and rescanning, you can expect an improvement
349
+ in the website's grade.
350
+ </p>
351
+ `}({result:t})}`}].map((t,s)=>(0,r.dy)`
352
+ <li id="tabs-${s}" class="tabs-list-item">
353
+ <input
354
+ class="visually-hidden"
355
+ id="tab-${s}"
356
+ name="selected"
357
+ type="radio"
358
+ role="tab"
359
+ .checked=${s===e}
360
+ aria-controls="tab-container-${s}"
361
+ @change=${()=>a(s,t.key)}
362
+ />
363
+ <label for="tab-${s}" id="tab-label-${s}">${t.label}</label>
364
+ <section
365
+ class="tab-content"
366
+ role="tabpanel"
367
+ aria-labelledby="tab-label-${s}"
368
+ id="tab-container-${s}"
369
+ >
370
+ <div class="scroll-container">${t.element}</div>
371
+ </section>
372
+ </li>
373
+ `);return(0,r.dy)`
374
+ <section class="scan-results">
375
+ <h2 class="result" id="scan-results-header">Scan results</h2>
376
+ <ol
377
+ class="tabs-list"
378
+ role="tablist"
379
+ aria-labelledby="scan-results-header"
380
+ >
381
+ ${s}
382
+ </ol>
383
+ </section>
384
+ `})({result:t,selectedTab:this.selectedTab,onTabSelect:(t,e)=>this._handleTabSelect(t,e)})}
385
+ </section>
386
+ </div>`,error:t=>(0,r.dy)`<div class="error">${t}</div>`}):r.Ld}};customElements.define("mdn-observatory-results",MDNObservatoryResults)},57964:function(t,e,a){a.d(e,{Z:()=>y});var s=a(14703),r=a(8081),o=a.n(r),i=a(23645),l=a.n(i),n=a(54681),d=a(62249),c=a(61667),b=a.n(c),h=new a.U(a(52003)),p=new a.U(a(7790)),g=l()(o());g.i(n.Z),g.i(d.Z);var u=b()(h),m=b()(p);g.push([t.id,`:host{line-height:var(--font-line-content)}.scan-result{column-gap:2rem;display:grid;grid-template-areas:"grade data actions";grid-template-columns:auto 3fr 1fr;justify-content:space-between;max-width:var(--max-width)}.scan-result a{color:var(--color-text-primary)}.scan-result{background-color:var(--color-background-primary);border-radius:.3rem;margin-bottom:3rem;padding:2rem}@media (width <= 1200px){.scan-result{align-items:flex-start;grid-template-areas:"grade data actions";grid-template-columns:auto 1fr auto;justify-content:space-between;row-gap:calc(var(--spacing)/2)}}@media (width <= 992px){.scan-result{grid-template-areas:"grade data " "grade actions";grid-template-columns:min-content 1fr}}.trend{margin-top:1rem}.arrow-down{color:var(--observatory-arrow-down-color)}.arrow-up{color:var(--observatory-arrow-up-color)}h2{font-size:var(--font-size-large);font-weight:var(--font-weight-bold);margin-bottom:1rem;margin-top:1.5rem}h2:before{background-color:var(--color-text-primary);content:"";display:inline-block;-webkit-mask-position:left;mask-position:left;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}h2 .host{font-weight:var(--font-weight-normal)}h2.summary:before{height:1.4rem;-webkit-mask-image:url(${u});mask-image:url(${u});width:2rem}h2.result:before{height:1.2rem;-webkit-mask-image:url(${m});mask-image:url(${m});width:2rem}code{font-weight:var(--font-weight-bold)}.grade-trend{grid-area:grade;justify-self:start}.data{grid-area:data}.actions{grid-area:actions}@media (width <= 992px){.actions{margin-top:1rem}}mdn-observatory-rescan-button{min-width:30rem}.info-tooltip{background:none;border:none;cursor:pointer;display:inline-block;position:relative}.scan-another{font-size:var(--font-size-small);font-weight:var(--font-weight-normal);margin-top:1.2rem}.grade,.label{font-weight:var(--font-weight-bold)}.grade{background:var(--grade-bg);border:1px solid var(--grade-border);border-radius:.2em;color:var(--grade-border);display:inline-block;font-size:var(--font-size-large);height:5rem;line-height:5rem;text-align:center;width:5rem}.grade-a{--grade-bg:var(--observatory-grade-a-bg);--grade-border:var(--observatory-grade-a-border)}.grade-b{--grade-bg:var(--observatory-grade-b-bg);--grade-border:var(--observatory-grade-b-border)}.grade-c{--grade-bg:var(--observatory-grade-c-bg);--grade-border:var(--observatory-grade-c-border)}.grade-d{--grade-bg:var(--observatory-grade-d-bg);--grade-border:var(--observatory-grade-d-border)}.grade-f{--grade-bg:var(--observatory-grade-f-bg);--grade-border:var(--observatory-grade-f-border)}.tooltip-popup{--tooltip-offset:-6.3rem;--csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) #696969;--color-tooltip:var(--csstools-light-dark-toggle--0,#b3b3b3);--csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) #1b1b1b;--color-tooltip-highlight:var(--csstools-light-dark-toggle--1,#fff);--csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) #fff;--color-bg-tooltip:var(--csstools-light-dark-toggle--2,#1b1b1b);background-color:var(--color-bg-tooltip);border-radius:var(--border-radius);border-width:0;color:var(--color-tooltip);inset:unset;line-height:var(--font-line-content);margin-top:.5rem;max-width:min(100vw,20rem);overflow:visible;padding:1.5rem;position:relative;text-align:center;transform:translateX(var(--tooltip-offset));width:max-content;z-index:1}@supports (color:light-dark(red,red)){.tooltip-popup{--color-tooltip:light-dark(#b3b3b3,#696969);--color-tooltip-highlight:light-dark(#fff,#1b1b1b);--color-bg-tooltip:light-dark(#1b1b1b,#fff)}}@supports not (color:light-dark(tan,tan)){.tooltip-popup *{--csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) #696969;--color-tooltip:var(--csstools-light-dark-toggle--0,#b3b3b3);--csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) #1b1b1b;--color-tooltip-highlight:var(--csstools-light-dark-toggle--1,#fff);--csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) #fff;--color-bg-tooltip:var(--csstools-light-dark-toggle--2,#1b1b1b)}}.tooltip-popup .arrow{margin-left:-1rem;margin-top:-2rem;padding:0;position:absolute;fill:var(--color-bg-tooltip)}.tooltip-popup table{border:0;border-collapse:collapse;white-space:nowrap;width:10rem}:is(.tooltip-popup table) tr{color:var(--color-tooltip);font-size:var(--font-size-small)}.current:is(:is(.tooltip-popup table) tr){color:var(--color-tooltip-highlight);font-weight:var(--font-weight-bold)}:is(.tooltip-popup table) td,:is(.tooltip-popup table) th{background-color:unset;border:0;font-weight:var(--font-body);text-align:left;width:50%}:is(.tooltip-popup table) th{font-size:var(--font-size-normal);padding:0 0 .75rem}:is(.tooltip-popup table) td{padding:0}:is(:is(.tooltip-popup table) td) svg{vertical-align:-.3rem}.scroll-container{margin-bottom:1.5rem;margin-top:.8rem;overflow-x:auto;overscroll-behavior-x:none}.detail-header{display:flex;gap:.5rem;padding:0 1.5rem 0 0}.detail-header .arrow{color:var(--color-text-secondary)}.detail-header .detail-header-title{font-weight:var(--font-weight-bold);padding-right:.2rem}.detail-header p{margin:1rem 0}:is(.obs-pass-icon svg.pass) path{fill:var(--observatory-pass-icon-bg)}:is(.obs-pass-icon svg.pass) circle{fill:var(--observatory-pass-icon-color)}:is(.obs-pass-icon svg.fail) path{fill:var(--observatory-fail-icon-bg)}:is(.obs-pass-icon svg.fail) circle{fill:var(--observatory-fail-icon-color)}.footnote{font-size:var(--font-size-small);margin-top:1rem}.scan-results table{background:var(--observatory-table-bg);border:none;border-collapse:collapse;min-width:calc(992px - 14rem);width:100%}:is(.scan-results table) th{background:var(--observatory-table-header-bg);color:var(--color-text-secondary);font-weight:500;vertical-align:top}:is(:is(.scan-results table) th) tr{background-color:unset}:is(.scan-results table) tr:nth-child(2n){background-color:var(--observatory-table-bg-alternate)}:is(.scan-results table) td{overflow-wrap:anywhere;padding:.5rem 1.5rem;vertical-align:top}.cookie-name:is(:is(.scan-results table) td):first-child{max-width:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score:is(:is(.scan-results table) td)>span{display:flex;flex-direction:row;justify-content:space-between}:is(.scan-results table) a{color:var(--color-text-primary);-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:var(--color-text-secondary)}:is(:is(.scan-results table) a):active,:is(:is(.scan-results table) a):hover{-webkit-text-decoration:none;text-decoration:none}:is(.scan-results table) span.not-counted{color:var(--color-text-secondary)}:is(:is(.scan-results table) span.not-counted) a{-webkit-text-decoration:none;text-decoration:none}:is(.tests:is(.scan-results table) th,.tests:is(.scan-results table) td):first-of-type{width:25%}.tests:is(.scan-results table) td.score{white-space:nowrap}:is(.csp:is(.scan-results table) th,.csp:is(.scan-results table) td):first-of-type{width:45%}:is(.headers:is(.scan-results table) th,.headers:is(.scan-results table) td):first-of-type{width:30%}:is(.cookies:is(.scan-results table) th,.cookies:is(.scan-results table) td):nth-of-type(n+3){text-align:center}:is(.scan-results table) td,:is(.scan-results table) th{border:none;padding:1.5rem}:is(:is(.scan-results table) th,:is(.scan-results table) td) :first-child{margin-top:0}:is(:is(.scan-results table) th,:is(.scan-results table) td) :last-child{margin-bottom:0}:is(.scan-results table) .icon{height:1.3rem;width:1.3rem}@media (width <= 426px){:is(:is(:is(.scan-results table) td) .iso-date) code{font-size:x-small}}@media (width <= 992px){.scan-results table{min-width:0}:is(.scan-results table) thead{display:none}:is(.scan-results table) tbody{display:block}:is(.scan-results table) tr{display:grid;grid-template-columns:max-content auto}:is(.scan-results table) tr:nth-of-type(odd){background:var(--observatory-table-header-bg)}:is(.scan-results table) td{column-gap:2em;display:grid;grid-auto-flow:column;grid-column:span 2;grid-template-columns:subgrid}:is(:is(.scan-results table) td) .humanized-duration{display:none}:is(.scan-results table) td:before{content:attr(data-header);display:inline;font-weight:var(--font-weight-bold)}:is(.tests:is(.scan-results table),.csp:is(.scan-results table),.headers:is(.scan-results table),.cookies:is(.scan-results table)) td:first-of-type{width:auto}:is(.scan-results table) td:not(:last-of-type){padding-bottom:0}:is(.scan-results table) td:nth-of-type(n+2){padding-top:.75rem}.cookies:is(.scan-results table) td:nth-of-type(n+3){text-align:left}:is(.scan-results table) td.score{display:grid}:is(:is(.scan-results table) td.score)>span{display:block}:is(:is(.scan-results table) td.score) .obs-pass-icon{display:inline-block;height:1.5em;vertical-align:top}}ol.tabs-list{column-gap:3rem;display:grid;grid-template-areas:"tab-0 tab-1 tab-2 tab-3 tab-4 tab-5 ." "hr hr hr hr hr hr hr " "mod mod mod mod mod mod mod";grid-template-columns:repeat(6,max-content) 1fr;margin:0;overflow-x:auto;overscroll-behavior-x:none;padding:0}@media (width <= 992px){ol.tabs-list{column-gap:1.75rem;grid-template-columns:repeat(6,max-content) auto}}ol.tabs-list:before{border:none;border-top:1px solid var(--color-border-primary);content:"";grid-area:hr;margin:0;width:100%}ol.tabs-list input[type=radio]:not(:checked)~.tab-content{display:none}ol.tabs-list li.tabs-list-item{display:contents}:is(ol.tabs-list li.tabs-list-item)>input:checked+label{border-bottom:2px solid var(--observatory-accent);color:var(--color-text-primary)}:is(ol.tabs-list li.tabs-list-item)>input:not(:checked)+label:hover{border-bottom:2px solid var(--observatory-accent-light);color:var(--color-text-primary)}:is(ol.tabs-list li.tabs-list-item)>input:checked:focus-visible+label{outline-color:var(--accent-primary);outline-offset:1px;outline-style:auto}:is(ol.tabs-list li.tabs-list-item)>input:not(:checked)+label{color:var(--color-text-secondary);opacity:.775}:is(ol.tabs-list li.tabs-list-item)>label{cursor:pointer;height:2.2rem;width:max-content}#tabs-0:is(ol.tabs-list li.tabs-list-item)>input,#tabs-0:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-0}#tabs-1:is(ol.tabs-list li.tabs-list-item)>input,#tabs-1:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-1}#tabs-2:is(ol.tabs-list li.tabs-list-item)>input,#tabs-2:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-2}#tabs-3:is(ol.tabs-list li.tabs-list-item)>input,#tabs-3:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-3}#tabs-4:is(ol.tabs-list li.tabs-list-item)>input,#tabs-4:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-4}#tabs-5:is(ol.tabs-list li.tabs-list-item)>input,#tabs-5:is(ol.tabs-list li.tabs-list-item)>label{grid-area:tab-5}:is(ol.tabs-list li.tabs-list-item)>section.tab-content{grid-area:mod;left:0;margin:0;position:sticky;width:calc(100vw - 18rem)}@media (1200px < width){:is(ol.tabs-list li.tabs-list-item)>section.tab-content{width:100%}}@media (width <= 769px){:is(ol.tabs-list li.tabs-list-item)>section.tab-content{width:calc(100vw - 2rem)}}`,""]);let y=(0,s.iv)([g.toString()])}};
387
+ //# sourceMappingURL=5531.ff59053d35a9ebc5.js.map