@mdn/fred 1.6.2 → 1.8.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 (149) hide show
  1. package/.env-dist +4 -0
  2. package/CHANGELOG.md +66 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +31 -2
  5. package/build/eslint-fred.js +6 -4
  6. package/build/plugins/generate-element-map.js +3 -2
  7. package/build/utils.js +0 -23
  8. package/components/breadcrumbs-bar/server.css +12 -0
  9. package/components/color-theme/element.js +1 -0
  10. package/components/content-feedback/element.js +58 -22
  11. package/components/content-section/server.css +15 -2
  12. package/components/curriculum/module.css +1 -0
  13. package/components/curriculum-module/server.css +1 -0
  14. package/components/env/index.js +6 -0
  15. package/components/footer/server.js +1 -1
  16. package/components/heading-anchor/server.js +0 -2
  17. package/components/issues-table/element.js +6 -4
  18. package/components/language-switcher/element.js +1 -0
  19. package/components/live-sample-result/element.js +1 -0
  20. package/components/menu/base.css +2 -1
  21. package/components/menu/constants.js +438 -147
  22. package/components/menu/missing-docs.json +133 -0
  23. package/components/menu/server.js +78 -657
  24. package/components/menu/types.d.ts +50 -0
  25. package/components/menu/update-missing-docs.js +66 -0
  26. package/components/modal/element.js +3 -2
  27. package/components/navigation/server.js +1 -1
  28. package/components/observatory-tests-and-scores/element.js +13 -7
  29. package/components/outer-layout/utils.js +2 -2
  30. package/components/play-runner/element.js +14 -6
  31. package/components/playground/element.js +11 -5
  32. package/components/recently-visited/element.js +4 -2
  33. package/components/scrim-inline/element.js +11 -5
  34. package/components/search-modal/element.js +1 -0
  35. package/components/writer-reload/element.js +10 -2
  36. package/entry.client.js +1 -0
  37. package/hooks/ga-init.js +31 -0
  38. package/hooks/glean-init.js +2 -6
  39. package/l10n/en-US.ftl +6 -0
  40. package/l10n/fr.ftl +145 -1
  41. package/out/service-worker.js +1 -1
  42. package/out/service-worker.js.map +1 -1
  43. package/out/static/client/{1231.84c230e0fa92f2d4.js → 1231.6a66b96b566b2cca.js} +14 -10
  44. package/out/static/client/1231.6a66b96b566b2cca.js.map +1 -0
  45. package/out/static/client/{2190.7995f19655987265.js → 2190.a21d8b0d7b75a20d.js} +5 -5
  46. package/out/static/client/2190.a21d8b0d7b75a20d.js.map +1 -0
  47. package/out/static/client/{2319.2034183eaacce69a.js → 2319.a419f6d93c814f50.js} +12 -8
  48. package/out/static/client/2319.a419f6d93c814f50.js.map +1 -0
  49. package/out/static/client/{3092.94a3edc866458ab7.js → 3092.54b703ff89ccdaf7.js} +6 -6
  50. package/out/static/client/3092.54b703ff89ccdaf7.js.map +1 -0
  51. package/out/static/client/{3200.024a6b1d06d80026.js → 3200.dc89d9709a81e853.js} +2 -1
  52. package/out/static/client/{3200.024a6b1d06d80026.js.map → 3200.dc89d9709a81e853.js.map} +1 -1
  53. package/out/static/client/{486.bb14d2f437221509.js → 486.b6950b0a4cfb9116.js} +2 -2
  54. package/out/static/client/{486.bb14d2f437221509.js.map → 486.b6950b0a4cfb9116.js.map} +1 -1
  55. package/out/static/client/{5446.3e0ac5aa93616c6f.js → 5446.2e663885069b1680.js} +4 -2
  56. package/out/static/client/5446.2e663885069b1680.js.map +1 -0
  57. package/out/static/client/{603.775311ee1356e86f.js → 603.45bf3e185d1b890d.js} +7 -7
  58. package/out/static/client/603.45bf3e185d1b890d.js.map +1 -0
  59. package/out/static/client/{6465.08012ddcd4597c76.js → 6465.2dc41017ae6abc34.js} +2 -1
  60. package/out/static/client/6465.2dc41017ae6abc34.js.map +1 -0
  61. package/out/static/client/{6480.09f744cd2fb69ed8.js → 6480.c839ead24f125a7e.js} +3 -2
  62. package/out/static/client/{6480.09f744cd2fb69ed8.js.map → 6480.c839ead24f125a7e.js.map} +1 -1
  63. package/out/static/client/7185.278701dcd05fcd30.js +2 -0
  64. package/out/static/client/7185.278701dcd05fcd30.js.map +1 -0
  65. package/out/static/client/9379.edc05ee9f550804e.js +2 -0
  66. package/out/static/client/9379.edc05ee9f550804e.js.map +1 -0
  67. package/out/static/client/{9784.3c73a0debfcca553.js → 9784.1c8d6e465137fd58.js} +13 -9
  68. package/out/static/client/{9784.3c73a0debfcca553.js.map → 9784.1c8d6e465137fd58.js.map} +1 -1
  69. package/out/static/client/{9804.d9ffbe6b7c44eab3.js → 9804.ba52ea55253eca7b.js} +2 -2
  70. package/out/static/client/{9804.d9ffbe6b7c44eab3.js.map → 9804.ba52ea55253eca7b.js.map} +1 -1
  71. package/out/static/client/9914.021220acc0d3e777.js +11 -0
  72. package/out/static/client/9914.021220acc0d3e777.js.map +1 -0
  73. package/out/static/client/index.0f05d4ac6b3b88a1.js +419 -0
  74. package/out/static/client/index.0f05d4ac6b3b88a1.js.map +1 -0
  75. package/out/static/client/{runtime.b178b9749f31202a.js → runtime.c323b9d2153b4ebf.js} +2 -2
  76. package/out/static/client/{runtime.b178b9749f31202a.js.map → runtime.c323b9d2153b4ebf.js.map} +1 -1
  77. package/out/static/client/stats.json +200 -200
  78. package/out/static/client/styles-breadcrumbs-bar.02910e49bb8b2372.css +2 -0
  79. package/out/static/client/styles-breadcrumbs-bar.02910e49bb8b2372.css.map +1 -0
  80. package/out/static/client/{styles-content-section.d18f07ab3d79a1d2.css → styles-content-section.6dc04fb9b3f3d595.css} +2 -2
  81. package/out/static/client/{styles-content-section.d18f07ab3d79a1d2.css.map → styles-content-section.6dc04fb9b3f3d595.css.map} +1 -1
  82. package/out/static/client/styles-curriculum-landing.cbaf6ff367369a26.css.map +1 -1
  83. package/out/static/client/styles-curriculum-module.c7ec78d3e724cf64.css.map +1 -1
  84. package/out/static/client/{styles-global.fb7afecd89ca2dff.js → styles-global.01d60465c4584631.js} +1 -1
  85. package/out/static/client/styles-global.4031cdde644ed6ce.css +2 -0
  86. package/out/static/client/{styles-global.684fd2c5254c94b8.css.map → styles-global.4031cdde644ed6ce.css.map} +1 -1
  87. package/out/static/client/styles-menu.c41c14be9597dcd9.css +2 -0
  88. package/out/static/client/styles-menu.c41c14be9597dcd9.css.map +1 -0
  89. package/out/static/client/watify_bg.c5a182c47876cd2b.wasm +0 -0
  90. package/out/static/legacy/{1539.ad5e9bc68ca36ebd.js → 1539.f16c6732d55f64b7.js} +3 -3
  91. package/out/static/legacy/{1539.ad5e9bc68ca36ebd.js.map → 1539.f16c6732d55f64b7.js.map} +1 -1
  92. package/out/static/legacy/7185.278701dcd05fcd30.js +2 -0
  93. package/out/static/legacy/7185.278701dcd05fcd30.js.map +1 -0
  94. package/out/static/legacy/asset-manifest.json +9 -9
  95. package/out/static/legacy/{index.ad3600b01e18974e.html → index.19cded28f6c1e506.html} +1 -1
  96. package/out/static/legacy/{index.5592b02d966df8ba.js → index.e979e65eb8758f6f.js} +3 -3
  97. package/out/static/legacy/{index.5592b02d966df8ba.js.map → index.e979e65eb8758f6f.js.map} +1 -1
  98. package/out/static/legacy/stats.json +13 -13
  99. package/out/static/legacy/watify_bg.c5a182c47876cd2b.wasm +0 -0
  100. package/out/static/legacy/{yari.8ce0be252d1ae155.js → yari.7f26dc58679ef833.js} +3 -3
  101. package/out/static/legacy/{yari.8ce0be252d1ae155.js.map → yari.7f26dc58679ef833.js.map} +1 -1
  102. package/out/static/ssr/7185.js +1 -1
  103. package/out/static/ssr/7185.js.map +1 -1
  104. package/out/static/ssr/index.js +369 -620
  105. package/out/static/ssr/index.js.map +1 -1
  106. package/out/static/ssr/stats.json +4 -4
  107. package/out/static/ssr/watify_bg.c5a182c47876cd2b.wasm +0 -0
  108. package/package.json +20 -20
  109. package/scripts/npm-test.js +22 -0
  110. package/server.js +22 -4
  111. package/utils/dnt-helper.js +59 -0
  112. package/utils/name-transformation.js +40 -0
  113. package/utils/telemetry-opt-out.js +12 -0
  114. package/wdio.conf.js +4 -2
  115. package/components/menu/check-missing-docs.js +0 -44
  116. package/out/static/client/1231.84c230e0fa92f2d4.js.map +0 -1
  117. package/out/static/client/2190.7995f19655987265.js.map +0 -1
  118. package/out/static/client/2319.2034183eaacce69a.js.map +0 -1
  119. package/out/static/client/3092.94a3edc866458ab7.js.map +0 -1
  120. package/out/static/client/5446.3e0ac5aa93616c6f.js.map +0 -1
  121. package/out/static/client/603.775311ee1356e86f.js.map +0 -1
  122. package/out/static/client/6465.08012ddcd4597c76.js.map +0 -1
  123. package/out/static/client/7185.a014a928e9a39779.js +0 -2
  124. package/out/static/client/7185.a014a928e9a39779.js.map +0 -1
  125. package/out/static/client/9379.7cdf58b4fb5efa66.js +0 -2
  126. package/out/static/client/9379.7cdf58b4fb5efa66.js.map +0 -1
  127. package/out/static/client/9914.251fe19f0038e97b.js +0 -11
  128. package/out/static/client/9914.251fe19f0038e97b.js.map +0 -1
  129. package/out/static/client/index.26176fe4ab13dce5.js +0 -268
  130. package/out/static/client/index.26176fe4ab13dce5.js.map +0 -1
  131. package/out/static/client/styles-breadcrumbs-bar.e2fa6dfb04a38166.css +0 -2
  132. package/out/static/client/styles-breadcrumbs-bar.e2fa6dfb04a38166.css.map +0 -1
  133. package/out/static/client/styles-global.684fd2c5254c94b8.css +0 -2
  134. package/out/static/client/styles-menu.5193bf2642ae7d64.css +0 -2
  135. package/out/static/client/styles-menu.5193bf2642ae7d64.css.map +0 -1
  136. package/out/static/client/watify_bg.9877982a693ec402.wasm +0 -0
  137. package/out/static/legacy/7185.a014a928e9a39779.js +0 -2
  138. package/out/static/legacy/7185.a014a928e9a39779.js.map +0 -1
  139. package/out/static/legacy/watify_bg.9877982a693ec402.wasm +0 -0
  140. package/out/static/ssr/watify_bg.9877982a693ec402.wasm +0 -0
  141. /package/out/static/client/{2190.7995f19655987265.js.LICENSE.txt → 2190.a21d8b0d7b75a20d.js.LICENSE.txt} +0 -0
  142. /package/out/static/client/{2319.2034183eaacce69a.js.LICENSE.txt → 2319.a419f6d93c814f50.js.LICENSE.txt} +0 -0
  143. /package/out/static/client/{603.775311ee1356e86f.js.LICENSE.txt → 603.45bf3e185d1b890d.js.LICENSE.txt} +0 -0
  144. /package/out/static/client/{6480.09f744cd2fb69ed8.js.LICENSE.txt → 6480.c839ead24f125a7e.js.LICENSE.txt} +0 -0
  145. /package/out/static/client/{9784.3c73a0debfcca553.js.LICENSE.txt → 9784.1c8d6e465137fd58.js.LICENSE.txt} +0 -0
  146. /package/out/static/client/{index.26176fe4ab13dce5.js.LICENSE.txt → index.0f05d4ac6b3b88a1.js.LICENSE.txt} +0 -0
  147. /package/out/static/legacy/{1539.ad5e9bc68ca36ebd.js.LICENSE.txt → 1539.f16c6732d55f64b7.js.LICENSE.txt} +0 -0
  148. /package/out/static/legacy/{index.5592b02d966df8ba.js.LICENSE.txt → index.e979e65eb8758f6f.js.LICENSE.txt} +0 -0
  149. /package/out/static/legacy/{yari.8ce0be252d1ae155.js.LICENSE.txt → yari.7f26dc58679ef833.js.LICENSE.txt} +0 -0
@@ -1,23 +1,27 @@
1
- export const __webpack_id__="1231";export const __webpack_ids__=["1231"];export const __webpack_modules__={36863:function(t,r,e){e.d(r,{A:()=>l});var o=e(63819),a=e(31601),n=e.n(a),i=e(76314),s=e.n(i),d=e(55196),c=s()(n());c.i(d.A),c.push([t.id,":host{display:block}.error{background-color:var(--error-bg,#fee);border-radius:.25rem;color:var(--error-color,#d33);margin:1rem 0;padding:1rem}section{margin-bottom:3rem}h3{font-size:var(--font-size-large);font-weight:var(--font-weight-normal);line-height:var(--font-line-content);margin-bottom:1rem;margin-top:2rem}.table-container{margin:1rem 0;overflow-x:auto}table{border-collapse:collapse;min-width:600px;width:100%}td,th{border:1px solid var(--color-border-primary);padding:.5rem .75rem;text-align:left}th{background-color:var(--color-background-secondary,#f5f5f5);font-weight:700}th[align=center]{text-align:center}tr:nth-child(2n){background-color:var(--color-background-secondary)}td:last-child{text-align:center}",""]);let l=(0,o.AH)([c.toString()])},55196:function(t,r,e){e.d(r,{A:()=>s});var o=e(31601),a=e.n(o),n=e(76314),i=e.n(n)()(a());i.push([t.id,"*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}",""]);let s=i.toString()},37538:function(t,r,e){e.r(r),e.d(r,{MDNObservatoryTestsAndScores:()=>MDNObservatoryTestsAndScores});var o=e(64889),a=e(63819),n=e(58055),i=e(36728),s=e(36863);let MDNObservatoryTestsAndScores=class MDNObservatoryTestsAndScores extends a.WF{static styles=s.A;static ssr=!1;_fetchMatrixTask=new o.YZ(this,{task:async()=>{let t=await fetch(`${i.Q}/api/v2/recommendation_matrix`);return t.ok?(await t.json()).map(t=>({...t,results:t.results.map(t=>({...t,description_html:t.description}))})):[]},args:()=>[]});render(){return this._fetchMatrixTask.render({pending:()=>(0,a.qy)`<div class="loading">Loading tests and scoring data...</div>`,complete:t=>t.map(t=>(0,a.qy)`
1
+ export const __webpack_id__="1231";export const __webpack_ids__=["1231"];export const __webpack_modules__={36863:function(t,r,e){e.d(r,{A:()=>c});var o=e(63819),n=e(31601),a=e.n(n),i=e(76314),s=e.n(i),d=e(55196),l=s()(a());l.i(d.A),l.push([t.id,":host{display:block}.error{background-color:var(--error-bg,#fee);border-radius:.25rem;color:var(--error-color,#d33);margin:1rem 0;padding:1rem}section{margin-bottom:3rem}h3{font-size:var(--font-size-large);font-weight:var(--font-weight-normal);line-height:var(--font-line-content);margin-bottom:1rem;margin-top:2rem}.table-container{margin:1rem 0;overflow-x:auto}table{border-collapse:collapse;min-width:600px;width:100%}td,th{border:1px solid var(--color-border-primary);padding:.5rem .75rem;text-align:left}th{background-color:var(--color-background-secondary,#f5f5f5);font-weight:700}th[align=center]{text-align:center}tr:nth-child(2n){background-color:var(--color-background-secondary)}td:last-child{text-align:center}",""]);let c=(0,o.AH)([l.toString()])},55196:function(t,r,e){e.d(r,{A:()=>s});var o=e(31601),n=e.n(o),a=e(76314),i=e.n(a)()(n());i.push([t.id,"*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}",""]);let s=i.toString()},37538:function(t,r,e){e.r(r),e.d(r,{MDNObservatoryTestsAndScores:()=>MDNObservatoryTestsAndScores});var o=e(64889),n=e(63819),a=e(58055),i=e(86484),s=e(36728),d=e(36863);let MDNObservatoryTestsAndScores=class MDNObservatoryTestsAndScores extends(0,i.J)(n.WF){static styles=d.A;static ssr=!1;_fetchMatrixTask=new o.YZ(this,{task:async()=>{let t=await fetch(`${s.Q}/api/v2/recommendation_matrix`);return t.ok?(await t.json()).map(t=>({...t,results:t.results.map(t=>({...t,description_html:t.description}))})):[]},args:()=>[]});render(){return this._fetchMatrixTask.render({pending:()=>(0,n.qy)`<div class="loading">
2
+ ${this.l10n`Loading tests and scoring data...`}
3
+ </div>`,complete:t=>t.map(t=>(0,n.qy)`
2
4
  <section>
3
5
  <h3 id=${t.name}>${t.title}</h3>
4
6
  <p>
5
- See <a href=${t.mdnLink}>${t.title}</a> for guidance.
7
+ ${this.l10n`See`}
8
+ <a href=${t.mdnLink}>${t.title}</a>
9
+ ${this.l10n`for guidance.`}
6
10
  </p>
7
11
  <figure class="table-container">
8
12
  <table>
9
13
  <thead>
10
14
  <tr>
11
- <th>Test result</th>
12
- <th>Description</th>
13
- <th align="center">Modifier</th>
15
+ <th>${this.l10n`Test result`}</th>
16
+ <th>${this.l10n`Description`}</th>
17
+ <th align="center">${this.l10n`Modifier`}</th>
14
18
  </tr>
15
19
  </thead>
16
20
  <tbody>
17
- ${t.results.map(t=>(0,a.qy)`
21
+ ${t.results.map(t=>(0,n.qy)`
18
22
  <tr>
19
23
  <td>${t.name}</td>
20
- <td>${(0,n._)(t.description_html)}</td>
24
+ <td>${(0,a._)(t.description_html)}</td>
21
25
  <td>${t.scoreModifier}</td>
22
26
  </tr>
23
27
  `)}
@@ -25,10 +29,10 @@ export const __webpack_id__="1231";export const __webpack_ids__=["1231"];export
25
29
  </table>
26
30
  </figure>
27
31
  </section>
28
- `),error:t=>(0,a.qy)`
32
+ `),error:t=>(0,n.qy)`
29
33
  <div class="error">
30
- Failed to load tests and scoring data. Please try again later.
34
+ ${this.l10n`Failed to load tests and scoring data. Please try again later.`}
31
35
  ${console.error("Observatory matrix fetch error:",t)}
32
36
  </div>
33
37
  `})}};customElements.define("mdn-observatory-tests-and-scores",MDNObservatoryTestsAndScores)}};
34
- //# sourceMappingURL=1231.84c230e0fa92f2d4.js.map
38
+ //# sourceMappingURL=1231.6a66b96b566b2cca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1231.6a66b96b566b2cca.js","sources":["webpack://@mdn/fred/./components/observatory-tests-and-scores/element.css","webpack://@mdn/fred/./components/global/global.css?1b68","webpack://@mdn/fred/./components/observatory-tests-and-scores/element.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../build/loaders/fix-light-dark.js!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!../global/global.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}.error{background-color:var(--error-bg,#fee);border-radius:.25rem;color:var(--error-color,#d33);margin:1rem 0;padding:1rem}section{margin-bottom:3rem}h3{font-size:var(--font-size-large);font-weight:var(--font-weight-normal);line-height:var(--font-line-content);margin-bottom:1rem;margin-top:2rem}.table-container{margin:1rem 0;overflow-x:auto}table{border-collapse:collapse;min-width:600px;width:100%}td,th{border:1px solid var(--color-border-primary);padding:.5rem .75rem;text-align:left}th{background-color:var(--color-background-secondary,#f5f5f5);font-weight:700}th[align=center]{text-align:center}tr:nth-child(2n){background-color:var(--color-background-secondary)}td:last-child{text-align:center}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { Task } from \"@lit/task\";\nimport { LitElement, html } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\nimport { OBSERVATORY_API_URL } from \"../env/index.js\";\n\nimport styles from \"./element.css?lit\";\n\nexport class MDNObservatoryTestsAndScores extends L10nMixin(LitElement) {\n static styles = styles;\n static ssr = false;\n\n _fetchMatrixTask = new Task(this, {\n task: async () => {\n const response = await fetch(\n `${OBSERVATORY_API_URL}/api/v2/recommendation_matrix`,\n );\n\n if (!response.ok) {\n return [];\n }\n\n /**\n * @type {import(\"@observatory\").ScoringResponse}\n */\n const data = await response.json();\n\n const ret = data.map((entry) => ({\n ...entry,\n results: entry.results.map((result) => ({\n ...result,\n description_html: result.description,\n })),\n }));\n return ret;\n },\n args: () => [],\n });\n\n render() {\n return this._fetchMatrixTask.render({\n pending: () =>\n html`<div class=\"loading\">\n ${this.l10n`Loading tests and scoring data...`}\n </div>`,\n complete: (data) =>\n data.map(\n (entry) => html`\n <section>\n <h3 id=${entry.name}>${entry.title}</h3>\n <p>\n ${this.l10n`See`}\n <a href=${entry.mdnLink}>${entry.title}</a>\n ${this.l10n`for guidance.`}\n </p>\n <figure class=\"table-container\">\n <table>\n <thead>\n <tr>\n <th>${this.l10n`Test result`}</th>\n <th>${this.l10n`Description`}</th>\n <th align=\"center\">${this.l10n`Modifier`}</th>\n </tr>\n </thead>\n <tbody>\n ${entry.results.map(\n (result) => html`\n <tr>\n <td>${result.name}</td>\n <td>${unsafeHTML(result.description_html)}</td>\n <td>${result.scoreModifier}</td>\n </tr>\n `,\n )}\n </tbody>\n </table>\n </figure>\n </section>\n `,\n ),\n error: (error) => html`\n <div class=\"error\">\n ${this\n .l10n`Failed to load tests and scoring data. Please try again later.`}\n ${console.error(\"Observatory matrix fetch error:\", error)}\n </div>\n `,\n });\n }\n}\n\ncustomElements.define(\n \"mdn-observatory-tests-and-scores\",\n MDNObservatoryTestsAndScores,\n);\n"],"names":["MDNObservatoryTestsAndScores","fetch","console","customElements"],"mappings":"oNAKI,EAA0B,IAA4B,KAC1D,EAAwB,CAAC,CAAC,GAAiC,EAE3D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,qtBAAstB,GAAG,EAElwB,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,4ECPnD,EAA0B,A,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,wNAAyN,GAAG,EAErQ,MAAe,EAAwB,QAAQ,E,4KCExC,IAAMA,6BAAN,MAAMA,oCAAqC,QAAU,IAAU,EACpE,OAAO,OAAS,GAAM,AAAC,AACvB,QAAO,IAAM,EAAM,AAEnB,kBAAmB,IAAI,IAAI,CAAC,IAAI,CAAE,CAChC,KAAM,UACJ,IAAM,EAAW,MAAMC,MACrB,CAAC,EAAE,GAAmB,CAAC,6BAA6B,CAAC,SAGvD,AAAK,EAAS,EAAE,CASJ,AAFC,OAAM,EAAS,IAAI,EAAC,EAEhB,GAAG,CAAC,AAAC,GAAW,EAC/B,GAAG,CAAK,CACR,QAAS,EAAM,OAAO,CAAC,GAAG,CAAC,AAAC,GAAY,EACtC,GAAG,CAAM,CACT,iBAAkB,EAAO,WAAW,AACtC,GACF,IAdS,EAAE,AAgBb,EACA,KAAM,IAAM,EAAE,AAChB,EAAG,AAEH,SAAS,CACP,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAClC,QAAS,IACP,QAAI,CAAC;UACH,EAAE,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;cAC3C,CAAC,CACT,SAAU,AAAC,GACT,EAAK,GAAG,CACN,AAAC,GAAU,QAAI,CAAC;;qBAEL,EAAE,EAAM,IAAI,CAAC,CAAC,EAAE,EAAM,KAAK,CAAC;;gBAEjC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACT,EAAE,EAAM,OAAO,CAAC,CAAC,EAAE,EAAM,KAAK,CAAC;gBACvC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;;;;;0BAMjB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;0BACzB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;yCACV,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;;;oBAI3C,EAAE,EAAM,OAAO,CAAC,GAAG,CACjB,AAAC,GAAW,QAAI,CAAC;;8BAET,EAAE,EAAO,IAAI,CAAC;8BACd,EAAE,QAAW,EAAO,gBAAgB,EAAE;8BACtC,EAAE,EAAO,aAAa,CAAC;;sBAE/B,CAAC,EACD;;;;;UAKZ,CAAC,EAEL,MAAO,AAAC,GAAU,QAAI,CAAC;;UAEnB,EAAE,IAAI,CACH,IAAI,CAAC,8DAA8D,CAAC,CAAC;UACxE,EAAEC,QAAQ,KAAK,CAAC,kCAAmC,GAAO;;MAE9D,CAAC,AACH,EACF,CACF,EAEAC,eAAe,MAAM,CACnB,mCACAH,6B"}
@@ -1,17 +1,17 @@
1
- /*! For license information please see 2190.7995f19655987265.js.LICENSE.txt */
2
- export const __webpack_id__="2190";export const __webpack_ids__=["2190"];export const __webpack_modules__={53730:function(o,t,e){e.d(t,{A:()=>s});var d=e(63819),a=e(31601),l=e.n(a),r=e(76314),i=e.n(r)()(l());i.push([o.id,"dialog{border:1px solid var(--color-border-primary);border-radius:.25rem;padding:0}header{display:flex;padding:.5rem}header h2{margin:0}header mdn-button{margin-left:auto}slot{display:block;padding:0 1rem 1rem}",""]);let s=(0,d.AH)([i.toString()])},53343:function(o,t,e){e.r(t),e.d(t,{MDNModal:()=>MDNModal});var d=e(63819),a=e(37940);e(99638);var l=e(53730);let MDNModal=class MDNModal extends d.WF{static styles=l.A;static properties={modalTitle:{type:String,attribute:"modal-title"}};constructor(){super(),this.modalTitle=""}showModal(){this.shadowRoot?.querySelector("dialog")?.showModal()}close(){this.shadowRoot?.querySelector("dialog")?.close()}render(){return(0,d.qy)`
1
+ /*! For license information please see 2190.a21d8b0d7b75a20d.js.LICENSE.txt */
2
+ export const __webpack_id__="2190";export const __webpack_ids__=["2190"];export const __webpack_modules__={53730:function(o,t,e){e.d(t,{A:()=>s});var d=e(63819),a=e(31601),l=e.n(a),r=e(76314),i=e.n(r)()(l());i.push([o.id,"dialog{border:1px solid var(--color-border-primary);border-radius:.25rem;padding:0}header{display:flex;padding:.5rem}header h2{margin:0}header mdn-button{margin-left:auto}slot{display:block;padding:0 1rem 1rem}",""]);let s=(0,d.AH)([i.toString()])},53343:function(o,t,e){e.r(t),e.d(t,{MDNModal:()=>MDNModal});var d=e(63819),a=e(86484),l=e(37940);e(99638);var r=e(53730);let MDNModal=class MDNModal extends(0,a.J)(d.WF){static styles=r.A;static properties={modalTitle:{type:String,attribute:"modal-title"}};constructor(){super(),this.modalTitle=""}showModal(){this.shadowRoot?.querySelector("dialog")?.showModal()}close(){this.shadowRoot?.querySelector("dialog")?.close()}render(){return(0,d.qy)`
3
3
  <dialog closedby="any">
4
4
  <header>
5
5
  ${this.modalTitle?(0,d.qy)`<h2>${this.modalTitle}</h2>`:d.s6}
6
6
  <mdn-button
7
7
  variant="plain"
8
8
  icon-only
9
- .icon=${a.A}
9
+ .icon=${l.A}
10
10
  @click=${this.close}
11
- >Exit modal</mdn-button
11
+ >${this.l10n`Exit modal`}</mdn-button
12
12
  >
13
13
  </header>
14
14
  <slot></slot>
15
15
  </dialog>
16
16
  `}};customElements.define("mdn-modal",MDNModal)},62963:function(o,t,e){e.d(t,{J:()=>a});var d=e(97160);let a=o=>o??d.s6}};
17
- //# sourceMappingURL=2190.7995f19655987265.js.map
17
+ //# sourceMappingURL=2190.a21d8b0d7b75a20d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2190.a21d8b0d7b75a20d.js","sources":["webpack://@mdn/fred/./components/modal/element.css","webpack://@mdn/fred/./components/modal/element.js","webpack://@mdn/fred/./node_modules/lit-html/directives/if-defined.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `dialog{border:1px solid var(--color-border-primary);border-radius:.25rem;padding:0}header{display:flex;padding:.5rem}header h2{margin:0}header mdn-button{margin-left:auto}slot{display:block;padding:0 1rem 1rem}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { LitElement, html, nothing } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\nimport exitIcon from \"../icon/cancel.svg?lit\";\n\nimport \"../button/element.js\";\nimport styles from \"./element.css?lit\";\n\nexport class MDNModal extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n modalTitle: { type: String, attribute: \"modal-title\" },\n };\n\n constructor() {\n super();\n this.modalTitle = \"\";\n }\n\n showModal() {\n this.shadowRoot?.querySelector(\"dialog\")?.showModal();\n }\n\n close() {\n this.shadowRoot?.querySelector(\"dialog\")?.close();\n }\n\n render() {\n return html`\n <dialog closedby=\"any\">\n <header>\n ${this.modalTitle ? html`<h2>${this.modalTitle}</h2>` : nothing}\n <mdn-button\n variant=\"plain\"\n icon-only\n .icon=${exitIcon}\n @click=${this.close}\n >${this.l10n`Exit modal`}</mdn-button\n >\n </header>\n <slot></slot>\n </dialog>\n `;\n }\n}\n\ncustomElements.define(\"mdn-modal\", MDNModal);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n"],"names":["MDNModal","String","customElements","o"],"mappings":";gMAII,EAA0B,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,qNAAsN,GAAG,EAElQ,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,4HCAhD,IAAMA,SAAN,MAAMA,gBAAiB,QAAU,IAAU,EAChD,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,WAAa,CAClB,WAAY,CAAE,KAAMC,OAAQ,UAAW,aAAc,CACvD,CAAE,AAEF,cAAc,CACZ,KAAK,GACL,IAAI,CAAC,UAAU,CAAG,EACpB,CAEA,WAAY,CACV,IAAI,CAAC,UAAU,EAAE,cAAc,WAAW,WAC5C,CAEA,OAAQ,CACN,IAAI,CAAC,UAAU,EAAE,cAAc,WAAW,OAC5C,CAEA,QAAS,CACP,MAAO,QAAI,CAAC;;;UAGN,EAAE,IAAI,CAAC,UAAU,CAAG,QAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAG,IAAO,CAAC;;;;kBAIxD,EAAE,GAAQ,CAAC;mBACV,EAAE,IAAI,CAAC,KAAK,CAAC;aACnB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;;;IAKjC,CAAC,AACH,CACF,EAEAC,eAAe,MAAM,CAAC,YAAaF,iEC1ChC,IAAM,EAAEG,GAAGA,GAAG,IAAC"}
@@ -1,14 +1,18 @@
1
- /*! For license information please see 2319.2034183eaacce69a.js.LICENSE.txt */
2
- export const __webpack_id__="2319";export const __webpack_ids__=["2319"];export const __webpack_modules__={20099:function(i,e,t){t.d(e,{A:()=>$});var s=t(63819),r=t(31601),n=t.n(r),o=t(76314),l=t.n(o),a=t(23653),c=t(4417),d=t.n(c),m=new t.U(t(32975)),u=new t.U(t(82351)),g=new t.U(t(7417)),h=new t.U(t(67517)),p=new t.U(t(61550)),f=new t.U(t(76526)),b=l()(n());b.i(a.A);var v=d()(m),k=d()(u),w=d()(g),_=d()(h),x=d()(p),y=d()(f);b.push([i.id,`:host{aspect-ratio:1.5;display:block;margin:.5rem auto;max-width:36rem;overflow:hidden;width:100%}*{box-sizing:border-box}button{appearance:none;background:none;border:none;padding:0}dialog{display:contents}dialog[open]{background-color:#0009;height:90vh;width:90vw}.inner{background-color:#000;border:1px solid #000;container-type:size;flex-direction:column;height:100%}.header,.inner{display:flex;width:100%}.header{align-items:center;background:#000;gap:.25rem;margin:0;min-height:1.75rem;padding:0 .5rem}.header span{color:#fff;font-size:var(--font-size-small);margin-right:auto}.scrim-fullscreen,.scrim-link{background-color:#fff;cursor:pointer;height:1rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1rem}:is(.scrim-fullscreen,.scrim-link):hover{background-color:var(--curriculum-color)}.enter:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${v});mask-image:url(${v})}.exit:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${k});mask-image:url(${k})}.scrim-link:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${w});mask-image:url(${w});-webkit-mask-size:75%;mask-size:75%}.body{flex:1;font-size:4cqmin;position:relative}.background{background-color:#453c78;background-image:url(${_}),url(${x}),url(${y});background-position:1.5em 1.5em,100%,50%;background-repeat:no-repeat;background-size:auto .6em,contain,cover;inset:0;position:absolute}.background h1{bottom:0;color:var(--color-white);font-family:BarlowCondensed-SemiBold,Inter,sans-serif;font-size:3em;font-weight:var(--font-weight-bold);left:0;line-height:var(--font-line-ui);margin:.5em;position:absolute;text-transform:uppercase;text-wrap:balance;width:60%}.background-noise{filter:url(#noise);inset:0;mix-blend-mode:soft-light;position:absolute}.open,iframe{border:none;height:100%;position:absolute;width:100%}.open{--color:#8cb4ffcc;background-image:var(--scrim-img);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;font-size:inherit}.open:hover{--color:#8cb4ffe5}.open svg{height:9em;width:auto;stroke-width:2px}:is(.open svg) circle{fill:var(--color)}:is(.open svg) path{fill:#fff}`,""]);let $=(0,s.AH)([b.toString()])},23653:function(i,e,t){t.d(e,{A:()=>l});var s=t(31601),r=t.n(s),n=t(76314),o=t.n(n)()(r());o.push([i.id,".visually-hidden{border:0!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}",""]);let l=o.toString()},76526:function(i,e,t){i.exports=t.p+"scrim-bg.27f047d7e991dbe9.png"},82351:function(i,e,t){i.exports=t.p+"cancel.7362f2cdf3515e0d.svg"},7417:function(i,e,t){i.exports=t.p+"external-link.4f3a2dc8e402cae5.svg"},32975:function(i,e,t){i.exports=t.p+"fullscreen-enter.452bcbaed6904ec7.svg"},61550:function(i,e,t){i.exports=t.p+"scrim-hexagons.e59318adb5550050.svg"},67517:function(i,e,t){i.exports=t.p+"scrimba-logo.0c5b5b4efd2b23dc.svg"},1826:function(i,e,t){t.r(e),t.d(e,{MDNScrimInline:()=>MDNScrimInline});var s=t(63819),r=t(62963),n=t(38758);let o=(0,s.JW)`<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#000" viewBox="0 0 112 112"><circle cx="55.764" cy="55.764" r="41.823"/><path d="M69.011 57.428a2 2 0 0 0 0-3.328L50.903 42.027c-1.33-.886-3.11.067-3.11 1.664v24.145c0 1.598 1.78 2.55 3.11 1.664z"/></svg>`;var l=t(20099);let MDNScrimInline=class MDNScrimInline extends s.WF{static styles=l.A;static ssr=!1;static properties={url:{type:String},img:{type:String},scrimTitle:{type:String,attribute:"scrimtitle"},_fullscreen:{state:!0},_scrimLoaded:{state:!0}};constructor(){super(),this.url=void 0,this._fullUrl=void 0,this._scrimId=void 0,this.img=void 0,this._imgStyle={},this.scrimTitle=void 0,this._fullscreen=!1,this._scrimLoaded=!1}willUpdate(i){if(i.has("url"))if(this.url){let i=new URL(this.url);i.searchParams.set("via","mdn"),i.searchParams.set("embed",""),this._fullUrl=i.toString(),this._scrimId=i.pathname.slice(1)}else this._fullUrl=void 0,this._scrimId=void 0;i.has("img")&&(this._imgStyle=this.img?{"--scrim-img":`url(${this.img})`}:{})}render(){return this.url&&this._fullUrl?(0,s.qy)`
1
+ /*! For license information please see 2319.a419f6d93c814f50.js.LICENSE.txt */
2
+ export const __webpack_id__="2319";export const __webpack_ids__=["2319"];export const __webpack_modules__={20099:function(i,e,t){t.d(e,{A:()=>y});var s=t(63819),r=t(31601),n=t.n(r),o=t(76314),l=t.n(o),a=t(23653),c=t(4417),d=t.n(c),m=new t.U(t(32975)),u=new t.U(t(82351)),g=new t.U(t(7417)),h=new t.U(t(67517)),p=new t.U(t(61550)),f=new t.U(t(76526)),b=l()(n());b.i(a.A);var v=d()(m),k=d()(u),w=d()(g),_=d()(h),x=d()(p),$=d()(f);b.push([i.id,`:host{aspect-ratio:1.5;display:block;margin:.5rem auto;max-width:36rem;overflow:hidden;width:100%}*{box-sizing:border-box}button{appearance:none;background:none;border:none;padding:0}dialog{display:contents}dialog[open]{background-color:#0009;height:90vh;width:90vw}.inner{background-color:#000;border:1px solid #000;container-type:size;flex-direction:column;height:100%}.header,.inner{display:flex;width:100%}.header{align-items:center;background:#000;gap:.25rem;margin:0;min-height:1.75rem;padding:0 .5rem}.header span{color:#fff;font-size:var(--font-size-small);margin-right:auto}.scrim-fullscreen,.scrim-link{background-color:#fff;cursor:pointer;height:1rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1rem}:is(.scrim-fullscreen,.scrim-link):hover{background-color:var(--curriculum-color)}.enter:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${v});mask-image:url(${v})}.exit:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${k});mask-image:url(${k})}.scrim-link:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${w});mask-image:url(${w});-webkit-mask-size:75%;mask-size:75%}.body{flex:1;font-size:4cqmin;position:relative}.background{background-color:#453c78;background-image:url(${_}),url(${x}),url(${$});background-position:1.5em 1.5em,100%,50%;background-repeat:no-repeat;background-size:auto .6em,contain,cover;inset:0;position:absolute}.background h1{bottom:0;color:var(--color-white);font-family:BarlowCondensed-SemiBold,Inter,sans-serif;font-size:3em;font-weight:var(--font-weight-bold);left:0;line-height:var(--font-line-ui);margin:.5em;position:absolute;text-transform:uppercase;text-wrap:balance;width:60%}.background-noise{filter:url(#noise);inset:0;mix-blend-mode:soft-light;position:absolute}.open,iframe{border:none;height:100%;position:absolute;width:100%}.open{--color:#8cb4ffcc;background-image:var(--scrim-img);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;font-size:inherit}.open:hover{--color:#8cb4ffe5}.open svg{height:9em;width:auto;stroke-width:2px}:is(.open svg) circle{fill:var(--color)}:is(.open svg) path{fill:#fff}`,""]);let y=(0,s.AH)([b.toString()])},23653:function(i,e,t){t.d(e,{A:()=>l});var s=t(31601),r=t.n(s),n=t(76314),o=t.n(n)()(r());o.push([i.id,".visually-hidden{border:0!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}",""]);let l=o.toString()},76526:function(i,e,t){i.exports=t.p+"scrim-bg.27f047d7e991dbe9.png"},82351:function(i,e,t){i.exports=t.p+"cancel.7362f2cdf3515e0d.svg"},7417:function(i,e,t){i.exports=t.p+"external-link.4f3a2dc8e402cae5.svg"},32975:function(i,e,t){i.exports=t.p+"fullscreen-enter.452bcbaed6904ec7.svg"},61550:function(i,e,t){i.exports=t.p+"scrim-hexagons.e59318adb5550050.svg"},67517:function(i,e,t){i.exports=t.p+"scrimba-logo.0c5b5b4efd2b23dc.svg"},1826:function(i,e,t){t.r(e),t.d(e,{MDNScrimInline:()=>MDNScrimInline});var s=t(63819),r=t(62963),n=t(38758),o=t(86484);let l=(0,s.JW)`<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#000" viewBox="0 0 112 112"><circle cx="55.764" cy="55.764" r="41.823"/><path d="M69.011 57.428a2 2 0 0 0 0-3.328L50.903 42.027c-1.33-.886-3.11.067-3.11 1.664v24.145c0 1.598 1.78 2.55 3.11 1.664z"/></svg>`;var a=t(20099);let MDNScrimInline=class MDNScrimInline extends(0,o.J)(s.WF){static styles=a.A;static ssr=!1;static properties={url:{type:String},img:{type:String},scrimTitle:{type:String,attribute:"scrimtitle"},_fullscreen:{state:!0},_scrimLoaded:{state:!0}};constructor(){super(),this.url=void 0,this._fullUrl=void 0,this._scrimId=void 0,this.img=void 0,this._imgStyle={},this.scrimTitle=void 0,this._fullscreen=!1,this._scrimLoaded=!1}willUpdate(i){if(i.has("url"))if(this.url){let i=new URL(this.url);i.searchParams.set("via","mdn"),i.searchParams.set("embed",""),this._fullUrl=i.toString(),this._scrimId=i.pathname.slice(1)}else this._fullUrl=void 0,this._scrimId=void 0;i.has("img")&&(this._imgStyle=this.img?{"--scrim-img":`url(${this.img})`}:{})}render(){return this.url&&this._fullUrl?(0,s.qy)`
3
3
  <dialog @close=${this.#i} style=${(0,n.W)(this._imgStyle)}>
4
4
  <div class="inner">
5
5
  <div class="header">
6
- <span>Clicking will load content from scrimba.com</span>
6
+ <span
7
+ >${this.l10n`Clicking will load content from scrimba.com`}</span
8
+ >
7
9
  <button tabindex="0" @click=${this.#e} class="toggle">
8
10
  <div
9
11
  class="scrim-fullscreen ${this._fullscreen?"exit":"enter"}"
10
12
  ></div>
11
- <span class="visually-hidden">Toggle fullscreen</span>
13
+ <span class="visually-hidden"
14
+ >${this.l10n`Toggle fullscreen`}</span
15
+ >
12
16
  </button>
13
17
  <a
14
18
  href=${this._fullUrl}
@@ -18,7 +22,7 @@ export const __webpack_id__="2319";export const __webpack_ids__=["2319"];export
18
22
  data-glean-id="curriculum: scrim link id:${this._scrimId}"
19
23
  >
20
24
  <div class="scrim-link"></div>
21
- <span class="visually-hidden">Open on Scrimba</span>
25
+ <span class="visually-hidden">${this.l10n`Open on Scrimba`}</span>
22
26
  </a>
23
27
  </div>
24
28
  <div class="body">
@@ -47,9 +51,9 @@ export const __webpack_id__="2319";export const __webpack_ids__=["2319"];export
47
51
  class="open"
48
52
  data-glean-id=${`curriculum: scrim engage id:${this._scrimId}`}
49
53
  >
50
- ${o}
54
+ ${l}
51
55
  <span class="visually-hidden">
52
- "Load scrim and open dialog."
56
+ ${this.l10n`Load scrim and open dialog.`}
53
57
  </span>
54
58
  </button>
55
59
  `}
@@ -57,4 +61,4 @@ export const __webpack_id__="2319";export const __webpack_ids__=["2319"];export
57
61
  </div>
58
62
  </dialog>
59
63
  `:s.s6}#e(i){i.target instanceof HTMLElement&&(i.target.dataset.gleanId=`curriculum: scrim fullscreen -> ${+!this._fullscreen} id:${this._scrimId}`),this._fullscreen?this.#s():this.#t()}#t(){let i=this.renderRoot.querySelector("dialog");i&&(i.showModal(),this._scrimLoaded=!0,this._fullscreen=!0)}#s(){let i=this.renderRoot.querySelector("dialog");i?.close()}#i(){this._fullscreen=!1}};customElements.define("mdn-scrim-inline",MDNScrimInline)},62963:function(i,e,t){t.d(e,{J:()=>r});var s=t(97160);let r=i=>i??s.s6}};
60
- //# sourceMappingURL=2319.2034183eaacce69a.js.map
64
+ //# sourceMappingURL=2319.a419f6d93c814f50.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2319.a419f6d93c814f50.js","sources":["webpack://@mdn/fred/./components/scrim-inline/element.css","webpack://@mdn/fred/./components/visually-hidden/global.css?228a","webpack://@mdn/fred/./components/scrim-inline/assets/scrim-play.svg","webpack://@mdn/fred/./components/scrim-inline/element.js","webpack://@mdn/fred/./node_modules/lit-html/directives/if-defined.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../build/loaders/fix-light-dark.js!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!../visually-hidden/global.css\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../icon/fullscreen-enter.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../icon/cancel.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../icon/external-link.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"assets/scrimba-logo.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"assets/scrim-hexagons.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"assets/scrim-bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{aspect-ratio:1.5;display:block;margin:.5rem auto;max-width:36rem;overflow:hidden;width:100%}*{box-sizing:border-box}button{appearance:none;background:none;border:none;padding:0}dialog{display:contents}dialog[open]{background-color:#0009;height:90vh;width:90vw}.inner{background-color:#000;border:1px solid #000;container-type:size;flex-direction:column;height:100%}.header,.inner{display:flex;width:100%}.header{align-items:center;background:#000;gap:.25rem;margin:0;min-height:1.75rem;padding:0 .5rem}.header span{color:#fff;font-size:var(--font-size-small);margin-right:auto}.scrim-fullscreen,.scrim-link{background-color:#fff;cursor:pointer;height:1rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1rem}:is(.scrim-fullscreen,.scrim-link):hover{background-color:var(--curriculum-color)}.enter:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.exit:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___});mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.scrim-link:is(.scrim-fullscreen,.scrim-link){-webkit-mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___});mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___});-webkit-mask-size:75%;mask-size:75%}.body{flex:1;font-size:4cqmin;position:relative}.background{background-color:#453c78;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_3___}),url(${___CSS_LOADER_URL_REPLACEMENT_4___}),url(${___CSS_LOADER_URL_REPLACEMENT_5___});background-position:1.5em 1.5em,100%,50%;background-repeat:no-repeat;background-size:auto .6em,contain,cover;inset:0;position:absolute}.background h1{bottom:0;color:var(--color-white);font-family:BarlowCondensed-SemiBold,Inter,sans-serif;font-size:3em;font-weight:var(--font-weight-bold);left:0;line-height:var(--font-line-ui);margin:.5em;position:absolute;text-transform:uppercase;text-wrap:balance;width:60%}.background-noise{filter:url(#noise);inset:0;mix-blend-mode:soft-light;position:absolute}.open,iframe{border:none;height:100%;position:absolute;width:100%}.open{--color:#8cb4ffcc;background-image:var(--scrim-img);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;font-size:inherit}.open:hover{--color:#8cb4ffe5}.open svg{height:9em;width:auto;stroke-width:2px}:is(.open svg) circle{fill:var(--color)}:is(.open svg) path{fill:#fff}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.visually-hidden{border:0!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { svg } from \"lit\"; export default svg`<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#000\" viewBox=\"0 0 112 112\"><circle cx=\"55.764\" cy=\"55.764\" r=\"41.823\"/><path d=\"M69.011 57.428a2 2 0 0 0 0-3.328L50.903 42.027c-1.33-.886-3.11.067-3.11 1.664v24.145c0 1.598 1.78 2.55 3.11 1.664z\"/></svg>`;","import { LitElement, html, nothing } from \"lit\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport playSvg from \"./assets/scrim-play.svg?lit\";\nimport styles from \"./element.css?lit\";\n\nexport class MDNScrimInline extends L10nMixin(LitElement) {\n static styles = styles;\n\n static ssr = false;\n\n static properties = {\n url: { type: String },\n img: { type: String },\n scrimTitle: { type: String, attribute: \"scrimtitle\" },\n _fullscreen: { state: true },\n _scrimLoaded: { state: true },\n };\n\n constructor() {\n super();\n /** @type {string | undefined} */\n this.url = undefined;\n /** @type {string | undefined} */\n this._fullUrl = undefined;\n /** @type {string | undefined} */\n this._scrimId = undefined;\n\n /** @type {string | undefined} */\n this.img = undefined;\n /** @type {import(\"lit/directives/style-map.js\").StyleInfo} */\n this._imgStyle = {};\n\n /** @type {string | undefined} */\n this.scrimTitle = undefined;\n\n /** @type {boolean} */\n this._fullscreen = false;\n /** @type {boolean} */\n this._scrimLoaded = false;\n }\n\n /**\n * @param {import(\"lit\").PropertyValues<this>} changedProperties\n */\n willUpdate(changedProperties) {\n if (changedProperties.has(\"url\")) {\n if (this.url) {\n const url = new URL(this.url);\n url.searchParams.set(\"via\", \"mdn\");\n url.searchParams.set(\"embed\", \"\");\n this._fullUrl = url.toString();\n\n this._scrimId = url.pathname.slice(1);\n } else {\n this._fullUrl = undefined;\n this._scrimId = undefined;\n }\n }\n\n if (changedProperties.has(\"img\")) {\n this._imgStyle = this.img\n ? {\n \"--scrim-img\": `url(${this.img})`,\n }\n : {};\n }\n }\n\n render() {\n if (!this.url || !this._fullUrl) {\n return nothing;\n }\n\n return html`\n <dialog @close=${this.#dialogClosed} style=${styleMap(this._imgStyle)}>\n <div class=\"inner\">\n <div class=\"header\">\n <span\n >${this.l10n`Clicking will load content from scrimba.com`}</span\n >\n <button tabindex=\"0\" @click=${this.#toggle} class=\"toggle\">\n <div\n class=\"scrim-fullscreen ${this._fullscreen ? \"exit\" : \"enter\"}\"\n ></div>\n <span class=\"visually-hidden\"\n >${this.l10n`Toggle fullscreen`}</span\n >\n </button>\n <a\n href=${this._fullUrl}\n target=\"_blank\"\n rel=\"origin noreferrer\"\n class=\"external\"\n data-glean-id=\"curriculum: scrim link id:${this._scrimId}\"\n >\n <div class=\"scrim-link\"></div>\n <span class=\"visually-hidden\">${this.l10n`Open on Scrimba`}</span>\n </a>\n </div>\n <div class=\"body\">\n ${this._scrimLoaded\n ? html`\n <iframe\n src=${this._fullUrl}\n title=${ifDefined(this.scrimTitle)}\n ></iframe>\n `\n : html`\n ${this.scrimTitle && !this.img\n ? html`<div class=\"background\">\n <div class=\"background-noise\">\n <svg width=\"0\" height=\"0\">\n <filter id=\"noise\">\n <feTurbulence\n type=\"fractalNoise\"\n baseFrequency=\"0.7\"\n numOctaves=\"4\"\n />\n </filter>\n </svg>\n </div>\n <h1>${this.scrimTitle}</h1>\n </div>`\n : null}\n <button\n @click=${this.#open}\n class=\"open\"\n data-glean-id=${`curriculum: scrim engage id:${this._scrimId}`}\n >\n ${playSvg}\n <span class=\"visually-hidden\">\n ${this.l10n`Load scrim and open dialog.`}\n </span>\n </button>\n `}\n </div>\n </div>\n </dialog>\n `;\n }\n\n /**\n * @param {MouseEvent} e\n */\n #toggle(e) {\n if (e.target instanceof HTMLElement) {\n e.target.dataset.gleanId = `curriculum: scrim fullscreen -> ${this._fullscreen ? 0 : 1} id:${this._scrimId}`;\n }\n if (this._fullscreen) {\n this.#close();\n } else {\n this.#open();\n }\n }\n\n #open() {\n const dialog = this.renderRoot.querySelector(\"dialog\");\n if (dialog) {\n dialog.showModal();\n this._scrimLoaded = true;\n this._fullscreen = true;\n }\n }\n\n #close() {\n const dialog = this.renderRoot.querySelector(\"dialog\");\n dialog?.close();\n }\n\n #dialogClosed() {\n this._fullscreen = false;\n }\n}\n\ncustomElements.define(\"mdn-scrim-inline\", MDNScrimInline);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n"],"names":["_","s","MDNScrimInline","String","URL","HTMLElement","customElements"],"mappings":";uOAMI,EAAgC,kBAChC,EAAgC,kBAChC,EAAgC,iBAChC,EAAgC,kBAChC,EAAgC,kBAChC,EAAgC,kBAChC,EAA0B,IAA4B,KAC1D,EAAwB,CAAC,CAAC,GAAiC,EAC3D,IAAI,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GACrEA,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GAEzE,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,CAAC,q8BAAq8B,EAAE,EAAmC,iBAAiB,EAAE,EAAmC,iEAAiE,EAAE,EAAmC,iBAAiB,EAAE,EAAmC,uEAAuE,EAAE,EAAmC,iBAAiB,EAAE,EAAmC,gJAAgJ,EAAEA,EAAmC,MAAM,EAAE,EAAmC,MAAM,EAAE,EAAmC,i3BAAi3B,CAAC,CAAE,GAAG,EAE1gF,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,6ECpBnD,EAA0B,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,4OAA6O,GAAG,EAEzR,MAAe,EAAwB,QAAQ,6iBCPpB,MAAe,GAAAC,EAAA,GAAG,CAAC,wQAAwQ,CAAC,gBCShT,IAAMC,eAAN,MAAMA,sBAAuB,QAAU,IAAU,EACtD,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,IAAM,EAAM,AAEnB,QAAO,WAAa,CAClB,IAAK,CAAE,KAAMC,MAAO,EACpB,IAAK,CAAE,KAAMA,MAAO,EACpB,WAAY,CAAE,KAAMA,OAAQ,UAAW,YAAa,EACpD,YAAa,CAAE,MAAO,EAAK,EAC3B,aAAc,CAAE,MAAO,EAAK,CAC9B,CAAE,AAEF,cAAc,CACZ,KAAK,GAEL,IAAI,CAAC,GAAG,CAAG,OAEX,IAAI,CAAC,QAAQ,CAAG,OAEhB,IAAI,CAAC,QAAQ,CAAG,OAGhB,IAAI,CAAC,GAAG,CAAG,OAEX,IAAI,CAAC,SAAS,CAAG,CAAC,EAGlB,IAAI,CAAC,UAAU,CAAG,OAGlB,IAAI,CAAC,WAAW,CAAG,GAEnB,IAAI,CAAC,YAAY,CAAG,EACtB,CAKA,WAAW,CAAiB,CAAE,CAC5B,GAAI,EAAkB,GAAG,CAAC,OACxB,GAAI,IAAI,CAAC,GAAG,CAAE,CACZ,IAAM,EAAM,IAAIC,IAAI,IAAI,CAAC,GAAG,EAC5B,EAAI,YAAY,CAAC,GAAG,CAAC,MAAO,OAC5B,EAAI,YAAY,CAAC,GAAG,CAAC,QAAS,IAC9B,IAAI,CAAC,QAAQ,CAAG,EAAI,QAAQ,GAE5B,IAAI,CAAC,QAAQ,CAAG,EAAI,QAAQ,CAAC,KAAK,CAAC,EACrC,MACE,IAAI,CAAC,QAAQ,CAAG,OAChB,IAAI,CAAC,QAAQ,CAAG,MAIhB,GAAkB,GAAG,CAAC,QACxB,KAAI,CAAC,SAAS,CAAG,IAAI,CAAC,GAAG,CACrB,CACE,cAAe,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,AACnC,EACA,CAAC,EAET,CAEA,QAAS,QACP,AAAI,AAAC,IAAI,CAAC,GAAG,EAAK,IAAI,CAAC,QAAQ,CAIxB,QAAI,CAAC;qBACK,EAAE,IAAI,CAAC,EAAa,CAAC,OAAO,EAAE,QAAS,IAAI,CAAC,SAAS,EAAE;;;;eAI7D,EAAE,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;;wCAEhC,EAAE,IAAI,CAAC,EAAO,CAAC;;wCAEf,EAAE,IAAI,CAAC,WAAW,CAAG,OAAS,QAAQ;;;iBAG7D,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;;mBAI7B,EAAE,IAAI,CAAC,QAAQ,CAAC;;;;uDAIoB,EAAE,IAAI,CAAC,QAAQ,CAAC;;;4CAG3B,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;;;YAI7D,EAAE,IAAI,CAAC,YAAY,CACf,QAAI,CAAC;;wBAEG,EAAE,IAAI,CAAC,QAAQ,CAAC;0BACd,EAAE,QAAU,IAAI,CAAC,UAAU,EAAE;;gBAEvC,CAAC,CACD,QAAI,CAAC;kBACH,EAAE,IAAI,CAAC,UAAU,EAAI,CAAC,IAAI,CAAC,GAAG,CAC1B,QAAI,CAAC;;;;;;;;;;;;4BAYC,EAAE,IAAI,CAAC,UAAU,CAAC;4BAClB,CAAC,CACP,KAAK;;2BAEA,EAAE,IAAI,CAAC,EAAK,CAAC;;kCAEN,EAAE,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;oBAE/D,EAAE,EAAQ;;sBAER,EAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;;;gBAG/C,CAAC,CAAC;;;;IAId,CAAC,CApEQ,IAAO,AAqElB,CAKA,EAAO,CAAC,CAAC,EACH,EAAE,MAAM,YAAYC,aACtB,GAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAG,CAAC,gCAAgC,EAAE,MAAI,CAAC,WAAW,CAAS,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,AAAD,EAEzG,IAAI,CAAC,WAAW,CAClB,IAAI,CAAC,EAAM,GAEX,IAAI,CAAC,EAAK,EAEd,CAEA,EAAK,GACH,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UACzC,IACF,EAAO,SAAS,GAChB,IAAI,CAAC,YAAY,CAAG,GACpB,IAAI,CAAC,WAAW,CAAG,GAEvB,CAEA,EAAM,GACJ,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAC7C,GAAQ,OACV,CAEA,EAAa,GACX,IAAI,CAAC,WAAW,CAAG,EACrB,CACF,EAEAC,eAAe,MAAM,CAAC,mBAAoBJ,uEC7KvC,IAAM,EAAE,GAAG,GAAG,IAAC"}
@@ -1,20 +1,20 @@
1
- export const __webpack_id__="3092";export const __webpack_ids__=["3092"];export const __webpack_modules__={8980:function(t,e,r){r.d(e,{A:()=>l});var s=r(63819),i=r(31601),a=r.n(i),o=r(76314),n=r.n(o)()(a());n.push([t.id,":host{display:block;margin-left:auto;margin-right:auto;margin-top:1rem;max-width:var(--max-width);padding-left:var(--gutter);padding-right:var(--gutter);width:100%}table{background:var(--community-card-bg);border:1px solid var(--community-table-border);border-collapse:initial;border-radius:.5rem;border-spacing:0;color:var(--community-text-primary);width:100%}td,th{border:none;padding:1.5rem}@media (width <= 769px){:is(th,td):last-of-type{display:none}}th{background:none;font-size:var(--font-size-large);font-weight:var(--font-weight-bold);text-align:left}@media (width <= 769px){th{display:none}}tbody tr:nth-child(odd){background:var(--community-table-row)}td>div{align-items:baseline;display:flex;flex-wrap:wrap;gap:1rem 1.5rem}a{color:var(--color-link-normal)}a:visited{color:var(--color-link-visited)}.label{background:var(--community-label-bg);border-radius:.25rem;color:var(--community-text-success);font-weight:500;padding:.5rem 1rem}",""]);let l=(0,s.AH)([n.toString()])},91423:function(t,e,r){r.r(e),r.d(e,{MDNIssuesTable:()=>MDNIssuesTable});var s=r(63819),i=r(8980);let MDNIssuesTable=class MDNIssuesTable extends s.WF{static styles=i.A;static properties={_issues:{state:!0},_isLoading:{state:!0},_error:{state:!0}};constructor(){super(),this._issues=[],this._isLoading=!0,this._error=null,this.LABELS=["good first issue","accepting PR"]}connectedCallback(){super.connectedCallback(),this._fetchIssues()}async _fetchIssues(){this._isLoading=!0,this._error=null;let t=new URL("https://api.github.com/search/issues");t.searchParams.append("per_page","5"),t.searchParams.append("q",'is:open is:issue repo:mdn/content repo:mdn/translated-content repo:mdn/yari label:"good first issue","accepting PR" sort:created-desc no:assignee is:public');try{let e=await fetch(t.toString());if(!e.ok)throw Error(`GitHub API Error: ${e.status} ${e.statusText}`);let r=await e.json();this._issues=r.items}catch(t){console.error("Failed to fetch GitHub issues:",t),this._error=t.toString(),this._issues=[]}finally{this._isLoading=!1}}render(){return this._isLoading?(0,s.qy)`loading issues…`:this._error?(0,s.qy)`${this._error}`:0===this._issues.length?s.s6:(0,s.qy)`
1
+ export const __webpack_id__="3092";export const __webpack_ids__=["3092"];export const __webpack_modules__={8980:function(t,e,s){s.d(e,{A:()=>l});var r=s(63819),i=s(31601),a=s.n(i),o=s(76314),n=s.n(o)()(a());n.push([t.id,":host{display:block;margin-left:auto;margin-right:auto;margin-top:1rem;max-width:var(--max-width);padding-left:var(--gutter);padding-right:var(--gutter);width:100%}table{background:var(--community-card-bg);border:1px solid var(--community-table-border);border-collapse:initial;border-radius:.5rem;border-spacing:0;color:var(--community-text-primary);width:100%}td,th{border:none;padding:1.5rem}@media (width <= 769px){:is(th,td):last-of-type{display:none}}th{background:none;font-size:var(--font-size-large);font-weight:var(--font-weight-bold);text-align:left}@media (width <= 769px){th{display:none}}tbody tr:nth-child(odd){background:var(--community-table-row)}td>div{align-items:baseline;display:flex;flex-wrap:wrap;gap:1rem 1.5rem}a{color:var(--color-link-normal)}a:visited{color:var(--color-link-visited)}.label{background:var(--community-label-bg);border-radius:.25rem;color:var(--community-text-success);font-weight:500;padding:.5rem 1rem}",""]);let l=(0,r.AH)([n.toString()])},91423:function(t,e,s){s.r(e),s.d(e,{MDNIssuesTable:()=>MDNIssuesTable});var r=s(63819),i=s(86484),a=s(8980);let MDNIssuesTable=class MDNIssuesTable extends(0,i.J)(r.WF){static styles=a.A;static properties={_issues:{state:!0},_isLoading:{state:!0},_error:{state:!0}};constructor(){super(),this._issues=[],this._isLoading=!0,this._error=null,this.LABELS=["good first issue","accepting PR"]}connectedCallback(){super.connectedCallback(),this._fetchIssues()}async _fetchIssues(){this._isLoading=!0,this._error=null;let t=new URL("https://api.github.com/search/issues");t.searchParams.append("per_page","5"),t.searchParams.append("q",'is:open is:issue repo:mdn/content repo:mdn/translated-content repo:mdn/yari label:"good first issue","accepting PR" sort:created-desc no:assignee is:public');try{let e=await fetch(t.toString());if(!e.ok)throw Error(`GitHub API Error: ${e.status} ${e.statusText}`);let s=await e.json();this._issues=s.items}catch(t){console.error("Failed to fetch GitHub issues:",t),this._error=t.toString(),this._issues=[]}finally{this._isLoading=!1}}render(){return this._isLoading?(0,r.qy)`${this.l10n`loading issues…`}`:this._error?(0,r.qy)`${this._error}`:0===this._issues.length?r.s6:(0,r.qy)`
2
2
  <table>
3
3
  <thead>
4
4
  <tr>
5
- <th>Title</th>
6
- <th>Repository</th>
5
+ <th>${this.l10n`Title`}</th>
6
+ <th>${this.l10n`Repository`}</th>
7
7
  </tr>
8
8
  </thead>
9
9
  <tbody>
10
- ${this._issues.map(t=>(0,s.qy)`
10
+ ${this._issues.map(t=>(0,r.qy)`
11
11
  <tr>
12
12
  <td>
13
13
  <div>
14
14
  <a href=${t.html_url} target="_blank" rel="noreferrer">
15
15
  ${t.title}
16
16
  </a>
17
- ${t.labels.map(t=>{let e="object"==typeof t&&null!==t?t.name:t;this.LABELS.includes(e)&&(0,s.qy)`<span class="label">${e}</span>`})}
17
+ ${t.labels.map(t=>{let e="object"==typeof t&&null!==t?t.name:t;this.LABELS.includes(e)&&(0,r.qy)`<span class="label">${e}</span>`})}
18
18
  </div>
19
19
  </td>
20
20
  <td>
@@ -31,4 +31,4 @@ export const __webpack_id__="3092";export const __webpack_ids__=["3092"];export
31
31
  </tbody>
32
32
  </table>
33
33
  `}};customElements.define("mdn-issues-table",MDNIssuesTable)}};
34
- //# sourceMappingURL=3092.94a3edc866458ab7.js.map
34
+ //# sourceMappingURL=3092.54b703ff89ccdaf7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3092.54b703ff89ccdaf7.js","sources":["webpack://@mdn/fred/./components/issues-table/element.css","webpack://@mdn/fred/./components/issues-table/element.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;margin-left:auto;margin-right:auto;margin-top:1rem;max-width:var(--max-width);padding-left:var(--gutter);padding-right:var(--gutter);width:100%}table{background:var(--community-card-bg);border:1px solid var(--community-table-border);border-collapse:initial;border-radius:.5rem;border-spacing:0;color:var(--community-text-primary);width:100%}td,th{border:none;padding:1.5rem}@media (width <= 769px){:is(th,td):last-of-type{display:none}}th{background:none;font-size:var(--font-size-large);font-weight:var(--font-weight-bold);text-align:left}@media (width <= 769px){th{display:none}}tbody tr:nth-child(odd){background:var(--community-table-row)}td>div{align-items:baseline;display:flex;flex-wrap:wrap;gap:1rem 1.5rem}a{color:var(--color-link-normal)}a:visited{color:var(--color-link-visited)}.label{background:var(--community-label-bg);border-radius:.25rem;color:var(--community-text-success);font-weight:500;padding:.5rem 1rem}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { LitElement, html, nothing } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport styles from \"./element.css?lit\";\n\nexport class MDNIssuesTable extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n _issues: { state: true },\n _isLoading: { state: true },\n _error: { state: true },\n };\n\n constructor() {\n super();\n /** @type {import(\"@github\").Issues} */\n this._issues = [];\n /** @type {boolean} */\n this._isLoading = true; // Start in loading state\n /** @type {string | null} */\n this._error = null;\n /** @constant {string[]} */\n this.LABELS = [\"good first issue\", \"accepting PR\"];\n }\n\n connectedCallback() {\n super.connectedCallback();\n // Fetch issues when component is connected to the DOM.\n // static ssr = false ensures this runs client-side.\n this._fetchIssues();\n }\n\n async _fetchIssues() {\n this._isLoading = true;\n this._error = null;\n const query =\n 'is:open is:issue repo:mdn/content repo:mdn/translated-content repo:mdn/yari label:\"good first issue\",\"accepting PR\" sort:created-desc no:assignee is:public';\n const url = new URL(\"https://api.github.com/search/issues\");\n url.searchParams.append(\"per_page\", \"5\");\n url.searchParams.append(\"q\", query);\n\n try {\n const res = await fetch(url.toString());\n if (!res.ok) {\n throw new Error(`GitHub API Error: ${res.status} ${res.statusText}`);\n }\n const data = await res.json();\n this._issues = data.items;\n } catch (error) {\n console.error(\"Failed to fetch GitHub issues:\", error);\n // @ts-expect-error\n this._error = error.toString();\n this._issues = []; // Set to empty array on error to prevent issues with map\n } finally {\n this._isLoading = false;\n }\n }\n\n render() {\n if (this._isLoading) {\n return html`${this.l10n`loading issues…`}`;\n }\n if (this._error) {\n return html`${this._error}`;\n }\n if (this._issues.length === 0) {\n return nothing;\n }\n\n return html`\n <table>\n <thead>\n <tr>\n <th>${this.l10n`Title`}</th>\n <th>${this.l10n`Repository`}</th>\n </tr>\n </thead>\n <tbody>\n ${this._issues.map(\n (issue) => html`\n <tr>\n <td>\n <div>\n <a href=${issue.html_url} target=\"_blank\" rel=\"noreferrer\">\n ${issue.title}\n </a>\n ${issue.labels.map((label) => {\n const labelName =\n typeof label === \"object\" && label !== null\n ? label.name\n : label;\n this.LABELS.includes(labelName)\n ? html`<span class=\"label\">${labelName}</span>`\n : null;\n })}\n </div>\n </td>\n <td>\n <a\n href=${issue.repository_url.replace(\n \"https://api.github.com/repos/\",\n \"https://github.com/\",\n )}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n ${issue.repository_url.replace(\n \"https://api.github.com/repos/\",\n \"\",\n )}\n </a>\n </td>\n </tr>\n `,\n )}\n </tbody>\n </table>\n `;\n }\n}\n\ncustomElements.define(\"mdn-issues-table\", MDNIssuesTable);\n"],"names":["MDNIssuesTable","URL","fetch","Error","console","customElements"],"mappings":"+LAII,EAA0B,A,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,q7BAAs7B,GAAG,EAEl+B,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,8GCFhD,IAAMA,eAAN,MAAMA,sBAAuB,QAAU,IAAU,EACtD,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,WAAa,CAClB,QAAS,CAAE,MAAO,EAAK,EACvB,WAAY,CAAE,MAAO,EAAK,EAC1B,OAAQ,CAAE,MAAO,EAAK,CACxB,CAAE,AAEF,cAAc,CACZ,KAAK,GAEL,IAAI,CAAC,OAAO,CAAG,EAAE,CAEjB,IAAI,CAAC,UAAU,CAAG,GAElB,IAAI,CAAC,MAAM,CAAG,KAEd,IAAI,CAAC,MAAM,CAAG,CAAC,mBAAoB,eAAe,AACpD,CAEA,mBAAoB,CAClB,KAAK,CAAC,oBAGN,IAAI,CAAC,YAAY,EACnB,CAEA,MAAM,cAAe,CACnB,IAAI,CAAC,UAAU,CAAG,GAClB,IAAI,CAAC,MAAM,CAAG,KAGd,IAAM,EAAM,IAAIC,IAAI,wCACpB,EAAI,YAAY,CAAC,MAAM,CAAC,WAAY,KACpC,EAAI,YAAY,CAAC,MAAM,CAAC,IAHtB,+JAKF,GAAI,CACF,IAAM,EAAM,MAAMC,MAAM,EAAI,QAAQ,IACpC,GAAI,CAAC,EAAI,EAAE,CACT,MAAM,AAAIC,MAAM,CAAC,kBAAkB,EAAE,EAAI,MAAM,CAAC,CAAC,EAAE,EAAI,UAAU,CAAC,CAAC,EAErE,IAAM,EAAO,MAAM,EAAI,IAAI,EAC3B,KAAI,CAAC,OAAO,CAAG,EAAK,KAAK,AAC3B,CAAE,MAAO,EAAO,CACdC,QAAQ,KAAK,CAAC,iCAAkC,GAEhD,IAAI,CAAC,MAAM,CAAG,EAAM,QAAQ,GAC5B,IAAI,CAAC,OAAO,CAAG,EAAE,AACnB,QAAU,CACR,IAAI,CAAC,UAAU,CAAG,EACpB,CACF,CAEA,QAAS,QACP,AAAI,IAAI,CAAC,UAAU,CACV,QAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAExC,IAAI,CAAC,MAAM,CACN,QAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAEzB,AAAwB,IAAxB,IAAI,CAAC,OAAO,CAAC,MAAM,CACd,IAAO,CAGT,QAAI,CAAC;;;;gBAIA,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;;UAI9B,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAChB,AAAC,GAAU,QAAI,CAAC;;;;4BAIA,EAAE,EAAM,QAAQ,CAAC;sBACvB,EAAE,EAAM,KAAK,CAAC;;oBAEhB,EAAE,EAAM,MAAM,CAAC,GAAG,CAAC,AAAC,IAClB,IAAM,EACJ,AAAiB,UAAjB,OAAO,GAAsB,AAAU,OAAV,EACzB,EAAM,IAAI,CACV,CACN,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IACjB,QAAI,CAAC,oBAAoB,EAAE,EAAU,OAAO,CAAC,AAEnD,GAAG;;;;;yBAKE,EAAE,EAAM,cAAc,CAAC,OAAO,CACjC,gCACA,uBACA;;;;oBAIF,EAAE,EAAM,cAAc,CAAC,OAAO,CAC5B,gCACA,IACA;;;;YAIV,CAAC,EACD;;;IAGR,CAAC,AACH,CACF,EAEAC,eAAe,MAAM,CAAC,mBAAoBL,e"}
@@ -1,6 +1,7 @@
1
1
  export const __webpack_id__="3200";export const __webpack_ids__=["3200"];export const __webpack_modules__={76716:function(o,e,t){t.d(e,{A:()=>b});var r=t(63819),a=t(31601),i=t.n(a),n=t(76314),l=t.n(n),d=t(4417),c=t.n(d),m=new t.U(t(50535)),s=new t.U(t(29009)),h=new t.U(t(97798)),_=l()(i()),g=c()(m),u=c()(s),p=c()(h);_.push([o.id,`.color-theme{--color-theme-light-dark:url(${g});--color-theme-light:url(${u});--color-theme-dark:url(${p});position:relative}.color-theme__button{align-items:center;background-color:initial;border:none;color:inherit;column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:0 .5rem}.color-theme__button:is(:hover,:focus,[aria-expanded=true]){background-color:var(--color-background-secondary)}@media (width <= 769px){.color-theme__button>span{display:none}}.color-theme__button:before{background-color:currentcolor;content:"";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__button[data-mode="light dark"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__button[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__button[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__dropdown{border:1px solid var(--color-border-primary);padding:.75rem;position:absolute;right:0;z-index:1}.color-theme__dropdown,.color-theme__list{background-color:var(--color-background-primary);margin:0;width:max-content}.color-theme__list{list-style:none;padding:0}.color-theme__option{align-items:center;background-color:initial;border:none;color:var(--color-text-primary);column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:.25rem;width:100%}.color-theme__option:hover{background-color:var(--color-background-secondary)}.color-theme__option:before{background-color:currentcolor;content:"";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__option[data-mode="light dark"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__option[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__option[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__option[data-current]{background:var(--color-background-secondary)}`,""]);let b=(0,r.AH)([_.toString()])},50535:function(o,e,t){o.exports=t.p+"contrast.d86e85c43de8dee8.svg"},97798:function(o,e,t){o.exports=t.p+"moon.74026b9da82b0694.svg"},29009:function(o,e,t){o.exports=t.p+"sun.1d7c3ad7bf6fc390.svg"},23485:function(o,e,t){t.r(e),t.d(e,{MDNColorTheme:()=>MDNColorTheme});var r=t(63819),a=t(86484),i=t(76716);t(1783);let MDNColorTheme=class MDNColorTheme extends(0,a.J)(r.WF){static styles=i.A;static properties={_mode:{state:!0}};constructor(){super(),this._mode="light dark",this._options=Object.entries({"light dark":this.l10n("theme-default")`OS default`,light:this.l10n`Light`,dark:this.l10n`Dark`})}_setMode({target:o}){if(o instanceof HTMLElement){let e=o.dataset.mode;if("light dark"===e||"light"===e||"dark"===e){this._mode=e;try{localStorage.setItem("theme",e)}catch(o){console.warn("Unable to write theme to localStorage",o)}let o=this.shadowRoot?.querySelector("mdn-dropdown");o&&(o.open=!1)}}}willUpdate(o){o.has("_mode")&&globalThis.document&&(document.documentElement.dataset.theme=this._mode,this.dispatchEvent(new CustomEvent("mdn-color-theme-update",{bubbles:!0,composed:!0,detail:this._mode})))}render(){return(0,r.qy)`<div class="color-theme">
2
2
  <mdn-dropdown>
3
3
  <button
4
+ part="button"
4
5
  slot="button"
5
6
  class="color-theme__button"
6
7
  data-mode=${this._mode}
@@ -30,4 +31,4 @@ export const __webpack_id__="3200";export const __webpack_ids__=["3200"];export
30
31
  </div>
31
32
  </mdn-dropdown>
32
33
  </div>`}firstUpdated(){let o;try{o=localStorage.getItem("theme")}catch(o){console.warn("Unable to read theme from localStorage",o)}("light dark"===o||"light"===o||"dark"===o)&&(this._mode=o)}};customElements.define("mdn-color-theme",MDNColorTheme)},21991:function(o,e,t){t.d(e,{O:()=>r});function r(o="id-"){return Math.random().toString(36).replace("0.",o)}}};
33
- //# sourceMappingURL=3200.024a6b1d06d80026.js.map
34
+ //# sourceMappingURL=3200.dc89d9709a81e853.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"3200.024a6b1d06d80026.js","sources":["webpack://@mdn/fred/./components/color-theme/element.css","webpack://@mdn/fred/./components/color-theme/element.js","webpack://@mdn/fred/./components/utils/index.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../icon/contrast.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../icon/sun.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../icon/moon.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.color-theme{--color-theme-light-dark:url(${___CSS_LOADER_URL_REPLACEMENT_0___});--color-theme-light:url(${___CSS_LOADER_URL_REPLACEMENT_1___});--color-theme-dark:url(${___CSS_LOADER_URL_REPLACEMENT_2___});position:relative}.color-theme__button{align-items:center;background-color:initial;border:none;color:inherit;column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:0 .5rem}.color-theme__button:is(:hover,:focus,[aria-expanded=true]){background-color:var(--color-background-secondary)}@media (width <= 769px){.color-theme__button>span{display:none}}.color-theme__button:before{background-color:currentcolor;content:\"\";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__button[data-mode=\"light dark\"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__button[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__button[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__dropdown{border:1px solid var(--color-border-primary);padding:.75rem;position:absolute;right:0;z-index:1}.color-theme__dropdown,.color-theme__list{background-color:var(--color-background-primary);margin:0;width:max-content}.color-theme__list{list-style:none;padding:0}.color-theme__option{align-items:center;background-color:initial;border:none;color:var(--color-text-primary);column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:.25rem;width:100%}.color-theme__option:hover{background-color:var(--color-background-secondary)}.color-theme__option:before{background-color:currentcolor;content:\"\";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__option[data-mode=\"light dark\"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__option[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__option[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__option[data-current]{background:var(--color-background-secondary)}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { LitElement, html } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport styles from \"./element.css?lit\";\n\nimport \"../dropdown/element.js\";\n\nexport class MDNColorTheme extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n _mode: { state: true },\n };\n\n constructor() {\n super();\n /** @type {import(\"./types.js\").ColorScheme} */\n this._mode = \"light dark\";\n this._options = Object.entries({\n \"light dark\": this.l10n(\"theme-default\")`OS default`,\n light: this.l10n`Light`,\n dark: this.l10n`Dark`,\n });\n }\n\n /** @param {MouseEvent} event */\n _setMode({ target }) {\n if (target instanceof HTMLElement) {\n const mode = target.dataset.mode;\n if (mode === \"light dark\" || mode === \"light\" || mode === \"dark\") {\n this._mode = mode;\n try {\n localStorage.setItem(\"theme\", mode);\n } catch (error) {\n console.warn(\"Unable to write theme to localStorage\", error);\n }\n const dropdown = this.shadowRoot?.querySelector(\"mdn-dropdown\");\n if (dropdown) {\n dropdown.open = false;\n }\n }\n }\n }\n\n /**\n * @param {import(\"lit\").PropertyValues<this>} changedProperties\n */\n willUpdate(changedProperties) {\n if (changedProperties.has(\"_mode\") && globalThis.document) {\n document.documentElement.dataset.theme = this._mode;\n this.dispatchEvent(\n new CustomEvent(\"mdn-color-theme-update\", {\n bubbles: true,\n composed: true,\n detail: this._mode,\n }),\n );\n }\n }\n\n render() {\n return html`<div class=\"color-theme\">\n <mdn-dropdown>\n <button\n slot=\"button\"\n class=\"color-theme__button\"\n data-mode=${this._mode}\n type=\"button\"\n aria-label=${this.l10n`Switch color theme`}\n >\n <span>${this.l10n`Theme`}</span>\n </button>\n <div\n slot=\"dropdown\"\n class=\"color-theme__dropdown\"\n id=\"color-theme__dropdown\"\n >\n <ul class=\"color-theme__list\">\n ${this._options.map(\n ([mode, option]) =>\n html`<li>\n <button\n class=\"color-theme__option\"\n data-mode=${mode}\n ?data-current=${mode === this._mode}\n type=\"button\"\n @click=${this._setMode}\n >\n ${option}\n </button>\n </li>`,\n )}\n </ul>\n </div>\n </mdn-dropdown>\n </div>`;\n }\n\n firstUpdated() {\n // we have to do this here and immediately cause a re-render\n // as doing so in connectedCallback causes a hydration error:\n // https://github.com/lit/lit/issues/1434\n\n // this logic is also reflected in \"/entry.inline.js\"\n\n let mode;\n try {\n mode = localStorage.getItem(\"theme\");\n } catch (error) {\n console.warn(\"Unable to read theme from localStorage\", error);\n }\n if (mode === \"light dark\" || mode === \"light\" || mode === \"dark\") {\n this._mode = mode;\n }\n }\n}\n\ncustomElements.define(\"mdn-color-theme\", MDNColorTheme);\n","/**\n * Used to generate a random element id by combining a prefix with a random string.\n *\n * @param {string} prefix\n * @returns {string}\n */\nexport function randomIdString(prefix = \"id-\") {\n return Math.random().toString(36).replace(\"0.\", prefix);\n}\n"],"names":["_","MDNColorTheme","Object","HTMLElement","localStorage","console","globalThis","document","CustomEvent","customElements","r","Math"],"mappings":"4NAKI,EAAgC,kBAChC,EAAgC,kBAChC,EAAgC,kBAChCA,EAA0B,IAA4B,KACtD,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GAEzEA,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,CAAC,0CAA0C,EAAE,EAAmC,0BAA0B,EAAE,EAAmC,yBAAyB,EAAE,EAAmC,mhEAAmhE,CAAC,CAAE,GAAG,EAE/wE,MAAe,SAAI,CAACA,EAAwB,QAAQ,GAAG,C,2TCPhD,IAAMC,cAAN,MAAMA,qBAAsB,QAAU,IAAU,EACrD,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,WAAa,CAClB,MAAO,CAAE,MAAO,EAAK,CACvB,CAAE,AAEF,cAAc,CACZ,KAAK,GAEL,IAAI,CAAC,KAAK,CAAG,aACb,IAAI,CAAC,QAAQ,CAAGC,OAAO,OAAO,CAAC,CAC7B,aAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACpD,MAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACvB,KAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,AACvB,EACF,CAGA,SAAS,CAAE,QAAM,CAAE,CAAE,CACnB,GAAI,aAAkBC,YAAa,CACjC,IAAM,EAAO,EAAO,OAAO,CAAC,IAAI,CAChC,GAAI,AAAS,eAAT,GAAyB,AAAS,UAAT,GAAoB,AAAS,SAAT,EAAiB,CAChE,IAAI,CAAC,KAAK,CAAG,EACb,GAAI,CACFC,aAAa,OAAO,CAAC,QAAS,EAChC,CAAE,MAAO,EAAO,CACdC,QAAQ,IAAI,CAAC,wCAAyC,EACxD,CACA,IAAM,EAAW,IAAI,CAAC,UAAU,EAAE,cAAc,eAC5C,IACF,GAAS,IAAI,CAAG,EAAI,CAExB,CACF,CACF,CAKA,WAAW,CAAiB,CAAE,CACxB,EAAkB,GAAG,CAAC,UAAYC,WAAW,QAAQ,GACvDC,SAAS,eAAe,CAAC,OAAO,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CACnD,IAAI,CAAC,aAAa,CAChB,IAAIC,YAAY,yBAA0B,CACxC,QAAS,GACT,SAAU,GACV,OAAQ,IAAI,CAAC,KAAK,AACpB,IAGN,CAEA,QAAS,CACP,MAAO,QAAI,CAAC;;;;;oBAKI,EAAE,IAAI,CAAC,KAAK,CAAC;;qBAEZ,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;gBAErC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;;;;;;YAQvB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjB,CAAC,CAAC,EAAM,EAAO,GACb,QAAI,CAAC;;;8BAGS,EAAE,EAAK;kCACH,EAAE,IAAS,IAAI,CAAC,KAAK,CAAC;;2BAE7B,EAAE,IAAI,CAAC,QAAQ,CAAC;;oBAEvB,EAAE,EAAO;;qBAER,CAAC,EACR;;;;UAIJ,CAAC,AACT,CAEA,cAAe,CAOb,IAAI,EACJ,GAAI,CACF,EAAOJ,aAAa,OAAO,CAAC,QAC9B,CAAE,MAAO,EAAO,CACdC,QAAQ,IAAI,CAAC,yCAA0C,EACzD,CACI,CAAS,eAAT,GAAyB,AAAS,UAAT,GAAoB,AAAS,SAAT,CAAc,GAC7D,KAAI,CAAC,KAAK,CAAG,CAAG,CAEpB,CACF,EAEAI,eAAe,MAAM,CAAC,kBAAmBR,c,yCChHlC,SAASS,EAAe,EAAS,KAAK,EAC3C,OAAOC,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAM,EAClD,C"}
1
+ {"version":3,"file":"3200.dc89d9709a81e853.js","sources":["webpack://@mdn/fred/./components/color-theme/element.css","webpack://@mdn/fred/./components/color-theme/element.js","webpack://@mdn/fred/./components/utils/index.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../icon/contrast.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../icon/sun.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../icon/moon.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.color-theme{--color-theme-light-dark:url(${___CSS_LOADER_URL_REPLACEMENT_0___});--color-theme-light:url(${___CSS_LOADER_URL_REPLACEMENT_1___});--color-theme-dark:url(${___CSS_LOADER_URL_REPLACEMENT_2___});position:relative}.color-theme__button{align-items:center;background-color:initial;border:none;color:inherit;column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:0 .5rem}.color-theme__button:is(:hover,:focus,[aria-expanded=true]){background-color:var(--color-background-secondary)}@media (width <= 769px){.color-theme__button>span{display:none}}.color-theme__button:before{background-color:currentcolor;content:\"\";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__button[data-mode=\"light dark\"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__button[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__button[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__dropdown{border:1px solid var(--color-border-primary);padding:.75rem;position:absolute;right:0;z-index:1}.color-theme__dropdown,.color-theme__list{background-color:var(--color-background-primary);margin:0;width:max-content}.color-theme__list{list-style:none;padding:0}.color-theme__option{align-items:center;background-color:initial;border:none;color:var(--color-text-primary);column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:.25rem;width:100%}.color-theme__option:hover{background-color:var(--color-background-secondary)}.color-theme__option:before{background-color:currentcolor;content:\"\";height:1.25rem;-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.color-theme__option[data-mode=\"light dark\"]:before{-webkit-mask-image:var(--color-theme-light-dark);mask-image:var(--color-theme-light-dark)}.color-theme__option[data-mode=light]:before{-webkit-mask-image:var(--color-theme-light);mask-image:var(--color-theme-light)}.color-theme__option[data-mode=dark]:before{-webkit-mask-image:var(--color-theme-dark);mask-image:var(--color-theme-dark)}.color-theme__option[data-current]{background:var(--color-background-secondary)}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { LitElement, html } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport styles from \"./element.css?lit\";\n\nimport \"../dropdown/element.js\";\n\nexport class MDNColorTheme extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n _mode: { state: true },\n };\n\n constructor() {\n super();\n /** @type {import(\"./types.js\").ColorScheme} */\n this._mode = \"light dark\";\n this._options = Object.entries({\n \"light dark\": this.l10n(\"theme-default\")`OS default`,\n light: this.l10n`Light`,\n dark: this.l10n`Dark`,\n });\n }\n\n /** @param {MouseEvent} event */\n _setMode({ target }) {\n if (target instanceof HTMLElement) {\n const mode = target.dataset.mode;\n if (mode === \"light dark\" || mode === \"light\" || mode === \"dark\") {\n this._mode = mode;\n try {\n localStorage.setItem(\"theme\", mode);\n } catch (error) {\n console.warn(\"Unable to write theme to localStorage\", error);\n }\n const dropdown = this.shadowRoot?.querySelector(\"mdn-dropdown\");\n if (dropdown) {\n dropdown.open = false;\n }\n }\n }\n }\n\n /**\n * @param {import(\"lit\").PropertyValues<this>} changedProperties\n */\n willUpdate(changedProperties) {\n if (changedProperties.has(\"_mode\") && globalThis.document) {\n document.documentElement.dataset.theme = this._mode;\n this.dispatchEvent(\n new CustomEvent(\"mdn-color-theme-update\", {\n bubbles: true,\n composed: true,\n detail: this._mode,\n }),\n );\n }\n }\n\n render() {\n return html`<div class=\"color-theme\">\n <mdn-dropdown>\n <button\n part=\"button\"\n slot=\"button\"\n class=\"color-theme__button\"\n data-mode=${this._mode}\n type=\"button\"\n aria-label=${this.l10n`Switch color theme`}\n >\n <span>${this.l10n`Theme`}</span>\n </button>\n <div\n slot=\"dropdown\"\n class=\"color-theme__dropdown\"\n id=\"color-theme__dropdown\"\n >\n <ul class=\"color-theme__list\">\n ${this._options.map(\n ([mode, option]) =>\n html`<li>\n <button\n class=\"color-theme__option\"\n data-mode=${mode}\n ?data-current=${mode === this._mode}\n type=\"button\"\n @click=${this._setMode}\n >\n ${option}\n </button>\n </li>`,\n )}\n </ul>\n </div>\n </mdn-dropdown>\n </div>`;\n }\n\n firstUpdated() {\n // we have to do this here and immediately cause a re-render\n // as doing so in connectedCallback causes a hydration error:\n // https://github.com/lit/lit/issues/1434\n\n // this logic is also reflected in \"/entry.inline.js\"\n\n let mode;\n try {\n mode = localStorage.getItem(\"theme\");\n } catch (error) {\n console.warn(\"Unable to read theme from localStorage\", error);\n }\n if (mode === \"light dark\" || mode === \"light\" || mode === \"dark\") {\n this._mode = mode;\n }\n }\n}\n\ncustomElements.define(\"mdn-color-theme\", MDNColorTheme);\n","/**\n * Used to generate a random element id by combining a prefix with a random string.\n *\n * @param {string} prefix\n * @returns {string}\n */\nexport function randomIdString(prefix = \"id-\") {\n return Math.random().toString(36).replace(\"0.\", prefix);\n}\n"],"names":["_","MDNColorTheme","Object","HTMLElement","localStorage","console","globalThis","document","CustomEvent","customElements","r","Math"],"mappings":"4NAKI,EAAgC,kBAChC,EAAgC,kBAChC,EAAgC,kBAChCA,EAA0B,IAA4B,KACtD,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GACrE,EAAqC,IAAgC,GAEzEA,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,CAAC,0CAA0C,EAAE,EAAmC,0BAA0B,EAAE,EAAmC,yBAAyB,EAAE,EAAmC,mhEAAmhE,CAAC,CAAE,GAAG,EAE/wE,MAAe,SAAI,CAACA,EAAwB,QAAQ,GAAG,C,2TCPhD,IAAMC,cAAN,MAAMA,qBAAsB,QAAU,IAAU,EACrD,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,WAAa,CAClB,MAAO,CAAE,MAAO,EAAK,CACvB,CAAE,AAEF,cAAc,CACZ,KAAK,GAEL,IAAI,CAAC,KAAK,CAAG,aACb,IAAI,CAAC,QAAQ,CAAGC,OAAO,OAAO,CAAC,CAC7B,aAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACpD,MAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACvB,KAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,AACvB,EACF,CAGA,SAAS,CAAE,QAAM,CAAE,CAAE,CACnB,GAAI,aAAkBC,YAAa,CACjC,IAAM,EAAO,EAAO,OAAO,CAAC,IAAI,CAChC,GAAI,AAAS,eAAT,GAAyB,AAAS,UAAT,GAAoB,AAAS,SAAT,EAAiB,CAChE,IAAI,CAAC,KAAK,CAAG,EACb,GAAI,CACFC,aAAa,OAAO,CAAC,QAAS,EAChC,CAAE,MAAO,EAAO,CACdC,QAAQ,IAAI,CAAC,wCAAyC,EACxD,CACA,IAAM,EAAW,IAAI,CAAC,UAAU,EAAE,cAAc,eAC5C,IACF,GAAS,IAAI,CAAG,EAAI,CAExB,CACF,CACF,CAKA,WAAW,CAAiB,CAAE,CACxB,EAAkB,GAAG,CAAC,UAAYC,WAAW,QAAQ,GACvDC,SAAS,eAAe,CAAC,OAAO,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CACnD,IAAI,CAAC,aAAa,CAChB,IAAIC,YAAY,yBAA0B,CACxC,QAAS,GACT,SAAU,GACV,OAAQ,IAAI,CAAC,KAAK,AACpB,IAGN,CAEA,QAAS,CACP,MAAO,QAAI,CAAC;;;;;;oBAMI,EAAE,IAAI,CAAC,KAAK,CAAC;;qBAEZ,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;gBAErC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;;;;;;YAQvB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjB,CAAC,CAAC,EAAM,EAAO,GACb,QAAI,CAAC;;;8BAGS,EAAE,EAAK;kCACH,EAAE,IAAS,IAAI,CAAC,KAAK,CAAC;;2BAE7B,EAAE,IAAI,CAAC,QAAQ,CAAC;;oBAEvB,EAAE,EAAO;;qBAER,CAAC,EACR;;;;UAIJ,CAAC,AACT,CAEA,cAAe,CAOb,IAAI,EACJ,GAAI,CACF,EAAOJ,aAAa,OAAO,CAAC,QAC9B,CAAE,MAAO,EAAO,CACdC,QAAQ,IAAI,CAAC,yCAA0C,EACzD,CACI,CAAS,eAAT,GAAyB,AAAS,UAAT,GAAoB,AAAS,SAAT,CAAc,GAC7D,KAAI,CAAC,KAAK,CAAG,CAAG,CAEpB,CACF,EAEAI,eAAe,MAAM,CAAC,kBAAmBR,c,yCCjHlC,SAASS,EAAe,EAAS,KAAK,EAC3C,OAAOC,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAM,EAClD,C"}
@@ -1,5 +1,5 @@
1
- export const __webpack_id__="486";export const __webpack_ids__=["486"];export const __webpack_modules__={92574:function(e,t,r){r.d(t,{A:()=>c});var o=r(63819),i=r(31601),n=r.n(i),s=r(76314),d=r.n(s),a=r(55196),l=d()(n());l.i(a.A),l.push([e.id,"h2{font-size:var(--font-size-large);font-weight:500}ul{border:1px solid var(--color-border-primary);border-radius:.5rem;list-style:none;overflow:hidden;padding:0}li{border-top:1px solid var(--color-border-primary)}li:first-child{border-top:none}a{color:var(--color-text-primary);display:block;padding:1rem}a:not(:hover){-webkit-text-decoration:none;text-decoration:none}",""]);let c=(0,o.AH)([l.toString()])},55196:function(e,t,r){r.d(t,{A:()=>d});var o=r(31601),i=r.n(o),n=r(76314),s=r.n(n)()(i());s.push([e.id,"*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}",""]);let d=s.toString()},5877:function(e,t,r){r.r(t),r.d(t,{MDNRecentlyVisited:()=>MDNRecentlyVisited});var o=r(63819),i=r(92574),n=r(87225);let MDNRecentlyVisited=class MDNRecentlyVisited extends o.WF{static ssr=!1;static styles=i.A;constructor(){super(),this._pages=new n.B}render(){return(0,o.qy)`<h2>Recently visited</h2>
1
+ export const __webpack_id__="486";export const __webpack_ids__=["486"];export const __webpack_modules__={92574:function(e,t,r){r.d(t,{A:()=>c});var o=r(63819),i=r(31601),n=r.n(i),s=r(76314),d=r.n(s),a=r(55196),l=d()(n());l.i(a.A),l.push([e.id,"h2{font-size:var(--font-size-large);font-weight:500}ul{border:1px solid var(--color-border-primary);border-radius:.5rem;list-style:none;overflow:hidden;padding:0}li{border-top:1px solid var(--color-border-primary)}li:first-child{border-top:none}a{color:var(--color-text-primary);display:block;padding:1rem}a:not(:hover){-webkit-text-decoration:none;text-decoration:none}",""]);let c=(0,o.AH)([l.toString()])},55196:function(e,t,r){r.d(t,{A:()=>d});var o=r(31601),i=r.n(o),n=r(76314),s=r.n(n)()(i());s.push([e.id,"*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}",""]);let d=s.toString()},5877:function(e,t,r){r.r(t),r.d(t,{MDNRecentlyVisited:()=>MDNRecentlyVisited});var o=r(63819),i=r(86484),n=r(92574),s=r(87225);let MDNRecentlyVisited=class MDNRecentlyVisited extends(0,i.J)(o.WF){static ssr=!1;static styles=n.A;constructor(){super(),this._pages=new s.B}render(){return(0,o.qy)`<h2>${this.l10n`Recently visited`}</h2>
2
2
  <ul>
3
3
  ${this._pages.map(({path:e,title:t})=>(0,o.qy)`<li><a href=${e}>${t}</a></li>`)}
4
4
  </ul>`}};customElements.define("mdn-recently-visited",MDNRecentlyVisited)}};
5
- //# sourceMappingURL=486.bb14d2f437221509.js.map
5
+ //# sourceMappingURL=486.b6950b0a4cfb9116.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"486.bb14d2f437221509.js","sources":["webpack://@mdn/fred/./components/recently-visited/element.css","webpack://@mdn/fred/./components/global/global.css?1b68","webpack://@mdn/fred/./components/recently-visited/element.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../build/loaders/fix-light-dark.js!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!../global/global.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `h2{font-size:var(--font-size-large);font-weight:500}ul{border:1px solid var(--color-border-primary);border-radius:.5rem;list-style:none;overflow:hidden;padding:0}li{border-top:1px solid var(--color-border-primary)}li:first-child{border-top:none}a{color:var(--color-text-primary);display:block;padding:1rem}a:not(:hover){-webkit-text-decoration:none;text-decoration:none}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { LitElement, html } from \"lit\";\n\nimport styles from \"./element.css?lit\";\n\nimport { RecentlyVisitedPages } from \"./index.js\";\n\nexport class MDNRecentlyVisited extends LitElement {\n static ssr = false;\n static styles = styles;\n\n constructor() {\n super();\n this._pages = new RecentlyVisitedPages();\n }\n\n render() {\n return html`<h2>Recently visited</h2>\n <ul>\n ${this._pages.map(\n ({ path, title }) => html`<li><a href=${path}>${title}</a></li>`,\n )}\n </ul>`;\n }\n}\n\ncustomElements.define(\"mdn-recently-visited\", MDNRecentlyVisited);\n"],"names":["MDNRecentlyVisited","t","customElements"],"mappings":"kNAKI,EAA0B,IAA4B,KAC1D,EAAwB,CAAC,CAAC,GAAiC,EAE3D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,qXAAsX,GAAG,EAEla,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,4ECPnD,EAA0B,A,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,wNAAyN,GAAG,EAErQ,MAAe,EAAwB,QAAQ,E,sHCDxC,IAAMA,mBAAN,MAAMA,2BAA2B,IAAU,CAChD,OAAO,IAAM,EAAM,AACnB,QAAO,OAAS,GAAM,AAAC,AAEvB,cAAc,CACZ,KAAK,GACL,IAAI,CAAC,MAAM,CAAG,IAAI,GAAoB,AACxC,CAEA,QAAS,CACP,MAAO,QAAI,CAAC;;QAER,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CACf,CAAC,CAAE,MAAI,CAAEC,MAAAA,CAAK,CAAE,GAAK,QAAI,CAAC,YAAY,EAAE,EAAK,CAAC,EAAEA,EAAM,SAAS,CAAC,EAChE;WACC,CAAC,AACV,CACF,EAEAC,eAAe,MAAM,CAAC,uBAAwBF,mB"}
1
+ {"version":3,"file":"486.b6950b0a4cfb9116.js","sources":["webpack://@mdn/fred/./components/recently-visited/element.css","webpack://@mdn/fred/./components/global/global.css?1b68","webpack://@mdn/fred/./components/recently-visited/element.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../build/loaders/fix-light-dark.js!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!../global/global.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `h2{font-size:var(--font-size-large);font-weight:500}ul{border:1px solid var(--color-border-primary);border-radius:.5rem;list-style:none;overflow:hidden;padding:0}li{border-top:1px solid var(--color-border-primary)}li:first-child{border-top:none}a{color:var(--color-text-primary);display:block;padding:1rem}a:not(:hover){-webkit-text-decoration:none;text-decoration:none}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}img{height:auto;max-width:100%}a{color:var(--color-link-normal)}[hidden]{display:none!important}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { LitElement, html } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport styles from \"./element.css?lit\";\n\nimport { RecentlyVisitedPages } from \"./index.js\";\n\nexport class MDNRecentlyVisited extends L10nMixin(LitElement) {\n static ssr = false;\n static styles = styles;\n\n constructor() {\n super();\n this._pages = new RecentlyVisitedPages();\n }\n\n render() {\n return html`<h2>${this.l10n`Recently visited`}</h2>\n <ul>\n ${this._pages.map(\n ({ path, title }) => html`<li><a href=${path}>${title}</a></li>`,\n )}\n </ul>`;\n }\n}\n\ncustomElements.define(\"mdn-recently-visited\", MDNRecentlyVisited);\n"],"names":["MDNRecentlyVisited","t","customElements"],"mappings":"kNAKI,EAA0B,IAA4B,KAC1D,EAAwB,CAAC,CAAC,GAAiC,EAE3D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,qXAAsX,GAAG,EAEla,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,4ECPnD,EAA0B,A,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,wNAAyN,GAAG,EAErQ,MAAe,EAAwB,QAAQ,E,iICCxC,IAAMA,mBAAN,MAAMA,0BAA2B,QAAU,IAAU,EAC1D,OAAO,IAAM,EAAM,AACnB,QAAO,OAAS,GAAM,AAAC,AAEvB,cAAc,CACZ,KAAK,GACL,IAAI,CAAC,MAAM,CAAG,IAAI,GAAoB,AACxC,CAEA,QAAS,CACP,MAAO,QAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;QAE1C,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CACf,CAAC,CAAE,MAAI,CAAEC,MAAAA,CAAK,CAAE,GAAK,QAAI,CAAC,YAAY,EAAE,EAAK,CAAC,EAAEA,EAAM,SAAS,CAAC,EAChE;WACC,CAAC,AACV,CACF,EAEAC,eAAe,MAAM,CAAC,uBAAwBF,mB"}
@@ -1,2 +1,4 @@
1
- export const __webpack_id__="5446";export const __webpack_ids__=["5446"];export const __webpack_modules__={78464:function(t,e,i){i.d(e,{A:()=>l});var s=i(63819),a=i(31601),n=i.n(a),r=i(76314),o=i.n(r)()(n());o.push([t.id,"div{align-items:center;display:flex;height:100%;padding-inline:.5em}",""]);let l=(0,s.AH)([o.toString()])},7589:function(t,e,i){i.r(e),i.d(e,{default:()=>MDNWriterReload});var s=i(63819),a=i(78464);let MDNWriterReload=class MDNWriterReload extends s.WF{static ssr=!1;static styles=a.A;constructor(){super(),this._state="",this._comparisons=0}get _interval(){return Number(sessionStorage.getItem("writer-reload-interval")||1e3)}set _interval(t){sessionStorage.setItem("writer-reload-interval",t.toString()),this._reloading||this.requestUpdate()}connectedCallback(){super.connectedCallback(),this._pollForChanges()}render(){return(0,s.qy)`<div>Polling every ${this._interval/1e3}s</div>`}async _reloadIfChanged(){let t=new URL("index.json",new URL(location.pathname+"/",location.origin)),e=await fetch(t);if(e.ok){let t=await e.text();this._state?(this._comparisons++,this._state!==t?(this._comparisons<=1&&(this._interval=2*this._interval),location.reload(),this._reloading=!0):this._interval=this._interval<=2e3?1e3:this._interval/2):this._state=t}else console.error("Failed to fetch document",e.status,e.statusText)}async _pollForChanges(){for(;!this._reloading;)"visible"===document.visibilityState&&await this._reloadIfChanged(),await n(this._interval)}};async function n(t){return new Promise(e=>setTimeout(e,t))}customElements.define("mdn-writer-reload",MDNWriterReload)}};
2
- //# sourceMappingURL=5446.3e0ac5aa93616c6f.js.map
1
+ export const __webpack_id__="5446";export const __webpack_ids__=["5446"];export const __webpack_modules__={78464:function(t,e,i){i.d(e,{A:()=>l});var s=i(63819),a=i(31601),r=i.n(a),n=i(76314),o=i.n(n)()(r());o.push([t.id,"div{align-items:center;display:flex;height:100%;padding-inline:.5em}",""]);let l=(0,s.AH)([o.toString()])},7589:function(t,e,i){i.r(e),i.d(e,{default:()=>MDNWriterReload});var s=i(63819),a=i(86484),r=i(78464);let MDNWriterReload=class MDNWriterReload extends(0,a.J)(s.WF){static ssr=!1;static styles=r.A;constructor(){super(),this._state="",this._comparisons=0}get _interval(){return Number(sessionStorage.getItem("writer-reload-interval")||1e3)}set _interval(t){sessionStorage.setItem("writer-reload-interval",t.toString()),this._reloading||this.requestUpdate()}connectedCallback(){super.connectedCallback(),this._pollForChanges()}render(){let t=this._interval/1e3;return(0,s.qy)`<div>
2
+ ${this.l10n.raw({id:"writer-reload-polling",args:{seconds:t}})}
3
+ </div>`}async _reloadIfChanged(){let t=new URL("index.json",new URL(location.pathname+"/",location.origin)),e=await fetch(t);if(e.ok){let t=await e.text();this._state?(this._comparisons++,this._state!==t?(this._comparisons<=1&&(this._interval=2*this._interval),location.reload(),this._reloading=!0):this._interval=this._interval<=2e3?1e3:this._interval/2):this._state=t}else console.error("Failed to fetch document",e.status,e.statusText)}async _pollForChanges(){for(;!this._reloading;)"visible"===document.visibilityState&&await this._reloadIfChanged(),await n(this._interval)}};async function n(t){return new Promise(e=>setTimeout(e,t))}customElements.define("mdn-writer-reload",MDNWriterReload)}};
4
+ //# sourceMappingURL=5446.2e663885069b1680.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5446.2e663885069b1680.js","sources":["webpack://@mdn/fred/./components/writer-reload/element.css","webpack://@mdn/fred/./components/writer-reload/element.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `div{align-items:center;display:flex;height:100%;padding-inline:.5em}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { LitElement, html } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport styles from \"./element.css?lit\";\n\n/**\n * Custom element which reloads the page when the document has changed.\n */\nexport default class MDNWriterReload extends L10nMixin(LitElement) {\n static ssr = false;\n static styles = styles;\n\n constructor() {\n super();\n this._state = \"\";\n this._comparisons = 0;\n }\n\n get _interval() {\n return Number(sessionStorage.getItem(\"writer-reload-interval\") || 1000);\n }\n\n /** @param {number} interval */\n set _interval(interval) {\n sessionStorage.setItem(\"writer-reload-interval\", interval.toString());\n if (!this._reloading) {\n this.requestUpdate();\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._pollForChanges();\n }\n\n render() {\n const seconds = this._interval / 1000;\n return html`<div>\n ${this.l10n.raw({\n id: \"writer-reload-polling\",\n args: { seconds },\n })}\n </div>`;\n }\n\n async _reloadIfChanged() {\n const url = new URL(\n \"index.json\",\n new URL(location.pathname + \"/\", location.origin),\n );\n const res = await fetch(url);\n if (res.ok) {\n const state = await res.text();\n // eslint-disable-next-line unicorn/no-negated-condition\n if (!this._state) {\n this._state = state;\n } else {\n this._comparisons++;\n // eslint-disable-next-line unicorn/no-negated-condition\n if (this._state !== state) {\n if (this._comparisons <= 1) {\n this._interval = this._interval * 2;\n }\n location.reload();\n this._reloading = true;\n } else {\n this._interval = this._interval <= 2000 ? 1000 : this._interval / 2;\n }\n }\n } else {\n console.error(\"Failed to fetch document\", res.status, res.statusText);\n }\n }\n\n async _pollForChanges() {\n while (!this._reloading) {\n if (document.visibilityState === \"visible\") {\n await this._reloadIfChanged();\n }\n await timeout(this._interval);\n }\n }\n}\n\n/**\n * @param {number} ms\n */\nasync function timeout(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\ncustomElements.define(\"mdn-writer-reload\", MDNWriterReload);\n"],"names":["MDNWriterReload","Number","sessionStorage","URL","location","fetch","console","document","Promise","setTimeout","customElements"],"mappings":"gMAII,EAA0B,A,SAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,uEAAwE,GAAG,EAEpH,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,wGCCxC,IAAMA,gBAAN,MAAMA,uBAAwB,QAAU,IAAU,EAC/D,OAAO,IAAM,EAAM,AACnB,QAAO,OAAS,GAAM,AAAC,AAEvB,cAAc,CACZ,KAAK,GACL,IAAI,CAAC,MAAM,CAAG,GACd,IAAI,CAAC,YAAY,CAAG,CACtB,CAEA,IAAI,WAAY,CACd,OAAOC,OAAOC,eAAe,OAAO,CAAC,2BAA6B,IACpE,CAGA,IAAI,UAAU,CAAQ,CAAE,CACtBA,eAAe,OAAO,CAAC,yBAA0B,EAAS,QAAQ,IAC9D,AAAC,IAAI,CAAC,UAAU,EAClB,IAAI,CAAC,aAAa,EAEtB,CAEA,mBAAoB,CAClB,KAAK,CAAC,oBACN,IAAI,CAAC,eAAe,EACtB,CAEA,QAAS,CACP,IAAM,EAAU,IAAI,CAAC,SAAS,CAAG,IACjC,MAAO,QAAI,CAAC;MACV,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CACd,GAAI,wBACJ,KAAM,CAAE,SAAQ,CAClB,GAAG;UACC,CAAC,AACT,CAEA,MAAM,kBAAmB,CACvB,IAAM,EAAM,IAAIC,IACd,aACA,IAAIA,IAAIC,SAAS,QAAQ,CAAG,IAAKA,SAAS,MAAM,GAE5C,EAAM,MAAMC,MAAM,GACxB,GAAI,EAAI,EAAE,CAAE,CACV,IAAM,EAAQ,MAAM,EAAI,IAAI,EAEvB,KAAI,CAAC,MAAM,EAGd,IAAI,CAAC,YAAY,GAEb,IAAI,CAAC,MAAM,GAAK,GACd,IAAI,CAAC,YAAY,EAAI,GACvB,KAAI,CAAC,SAAS,CAAG,AAAiB,EAAjB,IAAI,CAAC,SAAS,AAAG,EAEpCD,SAAS,MAAM,GACf,IAAI,CAAC,UAAU,CAAG,IAElB,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,SAAS,EAAI,IAAO,IAAO,IAAI,CAAC,SAAS,CAAG,GAXpE,IAAI,CAAC,MAAM,CAAG,CAclB,MACEE,QAAQ,KAAK,CAAC,2BAA4B,EAAI,MAAM,CAAE,EAAI,UAAU,CAExE,CAEA,MAAM,iBAAkB,CACtB,KAAO,CAAC,IAAI,CAAC,UAAU,EACjBC,AAA6B,YAA7BA,SAAS,eAAe,EAC1B,MAAM,IAAI,CAAC,gBAAgB,GAE7B,MAAM,EAAQ,IAAI,CAAC,SAAS,CAEhC,CACF,EAKA,eAAe,EAAQ,CAAE,EACvB,OAAO,IAAIC,QAAQ,AAAC,GAAYC,WAAW,EAAS,GACtD,CAEAC,eAAe,MAAM,CAAC,oBAAqBV,gB"}
@@ -1,12 +1,12 @@
1
- /*! For license information please see 603.775311ee1356e86f.js.LICENSE.txt */
2
- export const __webpack_id__="603";export const __webpack_ids__=["603"];export const __webpack_modules__={19734:function(e,t,n){n.d(t,{A:()=>c});var a=n(63819),o=n(31601),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([e.id,".content-feedback{border:none;margin:0 0 .25rem;padding:0}.content-feedback>label{display:block;margin-bottom:.25rem}.content-feedback .thank-you{display:block;margin-bottom:calc(2.75rem + 2px)}.content-feedback mdn-button{flex:1;min-width:0}.content-feedback--buttons{display:inline-flex;gap:.75rem;margin:.25rem 0}.content-feedback--radios{align-items:center;display:flex;gap:.25rem;margin:.25rem 0}",""]);let c=(0,a.AH)([r.toString()])},21672:function(e,t,n){n.r(t),n.d(t,{MDNContentFeedback:()=>MDNContentFeedback}),n(99638);var a=n(63819),o=n(86484),s=n(39943);let i=(0,a.JW)`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M17 14V2M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88"/></svg>`,r=(0,a.JW)`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M7 10v12m8-16.12L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88"/></svg>`;var c=n(19734);let d={outdated:"Content is out of date",incomplete:"Missing information",code_examples:"Code examples not working as expected",other:"Other"},l={technical:"\xdcbersetzung enth\xe4lt fachliche Fehler",consistency:"Begriffe sind inkonsistent \xfcbersetzt",incomprehensible:"\xdcbersetzung ist nicht verst\xe4ndlich",linguistic:"\xdcbersetzung enth\xe4lt sprachliche Fehler",code_examples:"Code-Beispiele funktionieren nicht",other:"Sonstige"};let MDNContentFeedback=class MDNContentFeedback extends(0,o.J)(a.WF){static styles=c.A;static properties={locale:{type:String},_reason:{state:!0},_view:{state:!0}};constructor(){super(),this.locale="",this._reason="",this._view="vote"}_handleVote({target:e}){if(e instanceof HTMLElement){let t=e.dataset.vote;"yes"===t?this._view="thanks":"no"===t&&(this._view="feedback"),(0,s.w)(`thumbs: article-footer -> ${"yes"===t?"1":"0"}`)}}_handleFeedback(){this._view="thanks",(0,s.w)(`article_footer: feedback -> ${this._reason}`)}_renderVote(){return(0,a.qy)`<label
1
+ /*! For license information please see 603.45bf3e185d1b890d.js.LICENSE.txt */
2
+ export const __webpack_id__="603";export const __webpack_ids__=["603"];export const __webpack_modules__={19734:function(e,t,n){n.d(t,{A:()=>r});var a=n(63819),s=n(31601),o=n.n(s),i=n(76314),l=n.n(i)()(o());l.push([e.id,".content-feedback{border:none;margin:0 0 .25rem;padding:0}.content-feedback>label{display:block;margin-bottom:.25rem}.content-feedback .thank-you{display:block;margin-bottom:calc(2.75rem + 2px)}.content-feedback mdn-button{flex:1;min-width:0}.content-feedback--buttons{display:inline-flex;gap:.75rem;margin:.25rem 0}.content-feedback--radios{align-items:center;display:flex;gap:.25rem;margin:.25rem 0}",""]);let r=(0,a.AH)([l.toString()])},21672:function(e,t,n){n.r(t),n.d(t,{MDNContentFeedback:()=>MDNContentFeedback}),n(99638);var a=n(63819),s=n(86484),o=n(39943);let i=(0,a.JW)`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M17 14V2M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88"/></svg>`,l=(0,a.JW)`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M7 10v12m8-16.12L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88"/></svg>`;var r=n(19734);let MDNContentFeedback=class MDNContentFeedback extends(0,s.J)(a.WF){static styles=r.A;static properties={locale:{type:String},_reason:{state:!0},_view:{state:!0}};constructor(){super(),this.locale="",this._reason="",this._view="vote"}_handleVote({target:e}){if(e instanceof HTMLElement){let t=e.dataset.vote;"yes"===t?this._view="thanks":"no"===t&&(this._view="feedback"),(0,o.w)(`thumbs: article-footer -> ${"yes"===t?"1":"0"}`)}}_handleFeedback(){this._view="thanks",(0,o.w)(`article_footer: feedback -> ${this._reason}`)}_getFeedbackReasons(){return"de"===this.locale?[{key:"technical",label:"\xdcbersetzung enth\xe4lt fachliche Fehler"},{key:"consistency",label:"Begriffe sind inkonsistent \xfcbersetzt"},{key:"incomprehensible",label:"\xdcbersetzung ist nicht verst\xe4ndlich"},{key:"linguistic",label:"\xdcbersetzung enth\xe4lt sprachliche Fehler"},{key:"code_examples",label:"Code-Beispiele funktionieren nicht"},{key:"other",label:"Sonstige"}]:[{key:"outdated",label:this.l10n`Content is out of date`},{key:"incomplete",label:this.l10n`Missing information`},{key:"code_examples",label:this.l10n`Code examples not working as expected`},{key:"other",label:this.l10n`Other`}]}_renderVote(){return(0,a.qy)`<label
3
3
  >${this.l10n("content-feedback-question")`Was this page helpful to you?`}
4
4
  </label>
5
5
  <div class="content-feedback--buttons">
6
6
  <mdn-button
7
7
  data-vote="yes"
8
8
  @click=${this._handleVote}
9
- .icon=${r}
9
+ .icon=${l}
10
10
  variant="secondary"
11
11
  action="positive"
12
12
  >
@@ -21,10 +21,10 @@ export const __webpack_id__="603";export const __webpack_ids__=["603"];export co
21
21
  >
22
22
  ${this.l10n`No`}
23
23
  </mdn-button>
24
- </div>`}_renderFeedback(){let e=({target:e})=>{e instanceof HTMLInputElement&&(this._reason=e.value)};return(0,a.qy)`<label
24
+ </div>`}_renderFeedback(){let e=({target:e})=>{e instanceof HTMLInputElement&&(this._reason=e.value)},t=this._getFeedbackReasons();return(0,a.qy)`<label
25
25
  >${this.l10n("content-feedback-reason")`Why was this page not helpful to you?`}</label
26
26
  >
27
- ${Object.entries("de"===this.locale?l:d).map(([t,n])=>(0,a.qy)`<div class="content-feedback--radios">
27
+ ${t.map(({key:t,label:n})=>(0,a.qy)`<div class="content-feedback--radios">
28
28
  <input
29
29
  type="radio"
30
30
  id=${`reason_${t}`}
@@ -44,5 +44,5 @@ export const __webpack_id__="603";export const __webpack_ids__=["603"];export co
44
44
  <span class="emoji">❤️</span>
45
45
  </span>`}_renderInner(e){switch(e){case"vote":return this._renderVote();case"feedback":return this._renderFeedback();case"thanks":return this._renderThanks()}}render(){return(0,a.qy)`<fieldset class="content-feedback">
46
46
  ${this._renderInner(this._view)}
47
- </fieldset>`}};customElements.define("mdn-content-feedback",MDNContentFeedback)},62963:function(e,t,n){n.d(t,{J:()=>o});var a=n(97160);let o=e=>e??a.s6}};
48
- //# sourceMappingURL=603.775311ee1356e86f.js.map
47
+ </fieldset>`}};customElements.define("mdn-content-feedback",MDNContentFeedback)},62963:function(e,t,n){n.d(t,{J:()=>s});var a=n(97160);let s=e=>e??a.s6}};
48
+ //# sourceMappingURL=603.45bf3e185d1b890d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"603.45bf3e185d1b890d.js","sources":["webpack://@mdn/fred/./components/content-feedback/element.css","webpack://@mdn/fred/./components/icon/thumbs-down.svg","webpack://@mdn/fred/./components/icon/thumbs-up.svg","webpack://@mdn/fred/./components/content-feedback/element.js","webpack://@mdn/fred/./node_modules/lit-html/directives/if-defined.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-feedback{border:none;margin:0 0 .25rem;padding:0}.content-feedback>label{display:block;margin-bottom:.25rem}.content-feedback .thank-you{display:block;margin-bottom:calc(2.75rem + 2px)}.content-feedback mdn-button{flex:1;min-width:0}.content-feedback--buttons{display:inline-flex;gap:.75rem;margin:.25rem 0}.content-feedback--radios{align-items:center;display:flex;gap:.25rem;margin:.25rem 0}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { svg } from \"lit\"; export default svg`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M17 14V2M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88\"/></svg>`;","import { svg } from \"lit\"; export default svg`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M7 10v12m8-16.12L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88\"/></svg>`;","import \"../button/element.js\";\n\nimport { LitElement, html } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport { gleanClick } from \"../../utils/glean.js\";\nimport thumbsDown from \"../icon/thumbs-down.svg?lit\";\nimport thumbsUp from \"../icon/thumbs-up.svg?lit\";\n\nimport styles from \"./element.css?lit\";\n\n/**\n * @typedef {\"outdated\"|\"incomplete\"|\"code_examples\"|\"technical\"|\"consistency\"|\"incomprehensible\"|\"linguistic\"|\"other\"} FeedbackReason\n */\n\nexport class MDNContentFeedback extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n locale: { type: String },\n _reason: { state: true },\n _view: { state: true },\n };\n\n constructor() {\n super();\n this.locale = \"\";\n this._reason = \"\";\n /** @type {'vote'|'feedback'|'thanks'} */\n this._view = \"vote\";\n }\n\n /**\n * @param {MouseEvent} event\n */\n _handleVote({ target }) {\n if (target instanceof HTMLElement) {\n const vote = target.dataset.vote;\n if (vote === \"yes\") {\n this._view = \"thanks\";\n } else if (vote === \"no\") {\n this._view = \"feedback\";\n }\n // Reusing Thumbs' key to be able to reuse queries.\n gleanClick(`thumbs: article-footer -> ${vote === \"yes\" ? \"1\" : \"0\"}`);\n }\n }\n\n _handleFeedback() {\n this._view = \"thanks\";\n gleanClick(`article_footer: feedback -> ${this._reason}`);\n }\n\n /**\n * Get list of feedback reasons with localized labels\n * @returns {Array<{key: FeedbackReason, label: import(\"@lit\").L10nResult}>}\n */\n _getFeedbackReasons() {\n if (this.locale === \"de\") {\n return [\n {\n key: \"technical\",\n label: \"Übersetzung enthält fachliche Fehler\",\n },\n {\n key: \"consistency\",\n label: \"Begriffe sind inkonsistent übersetzt\",\n },\n {\n key: \"incomprehensible\",\n label: \"Übersetzung ist nicht verständlich\",\n },\n {\n key: \"linguistic\",\n label: \"Übersetzung enthält sprachliche Fehler\",\n },\n {\n key: \"code_examples\",\n label: \"Code-Beispiele funktionieren nicht\",\n },\n {\n key: \"other\",\n label: \"Sonstige\",\n },\n ];\n }\n\n return [\n {\n key: \"outdated\",\n label: this.l10n`Content is out of date`,\n },\n {\n key: \"incomplete\",\n label: this.l10n`Missing information`,\n },\n {\n key: \"code_examples\",\n label: this.l10n`Code examples not working as expected`,\n },\n {\n key: \"other\",\n label: this.l10n`Other`,\n },\n ];\n }\n\n _renderVote() {\n return html`<label\n >${this.l10n(\n \"content-feedback-question\",\n )`Was this page helpful to you?`}\n </label>\n <div class=\"content-feedback--buttons\">\n <mdn-button\n data-vote=\"yes\"\n @click=${this._handleVote}\n .icon=${thumbsUp}\n variant=\"secondary\"\n action=\"positive\"\n >\n ${this.l10n`Yes`}\n </mdn-button>\n <mdn-button\n data-vote=\"no\"\n @click=${this._handleVote}\n .icon=${thumbsDown}\n variant=\"secondary\"\n action=\"negative\"\n >\n ${this.l10n`No`}\n </mdn-button>\n </div>`;\n }\n\n _renderFeedback() {\n const setReason =\n /** @param {Event} event */\n ({ target }) => {\n if (target instanceof HTMLInputElement) {\n this._reason = target.value;\n }\n };\n\n const reasons = this._getFeedbackReasons();\n\n return html`<label\n >${this.l10n(\n \"content-feedback-reason\",\n )`Why was this page not helpful to you?`}</label\n >\n ${reasons.map(\n ({ key, label }) =>\n html`<div class=\"content-feedback--radios\">\n <input\n type=\"radio\"\n id=${`reason_${key}`}\n name=\"reason\"\n .value=${key}\n ?checked=${this._reason === key}\n @change=${setReason}\n />\n <label for=${`reason_${key}`}>${label}</label>\n </div>`,\n )}\n <div class=\"button-container\">\n <mdn-button @click=${this._handleFeedback} ?disabled=${!this._reason}>\n ${this.l10n`Submit`}\n </mdn-button>\n </div>`;\n }\n\n _renderThanks() {\n return html`<span class=\"thank-you\">\n ${this.l10n(\"content-feedback-thanks\")`Thank you for your feedback!`}\n <span class=\"emoji\">❤️</span>\n </span>`;\n }\n\n /**\n * @param {'vote'|'feedback'|'thanks'} view\n */\n _renderInner(view) {\n switch (view) {\n case \"vote\":\n return this._renderVote();\n case \"feedback\":\n return this._renderFeedback();\n case \"thanks\":\n return this._renderThanks();\n }\n }\n\n render() {\n return html`<fieldset class=\"content-feedback\">\n ${this._renderInner(this._view)}\n </fieldset>`;\n }\n}\n\ncustomElements.define(\"mdn-content-feedback\", MDNContentFeedback);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n"],"names":["MDNContentFeedback","String","HTMLElement","HTMLInputElement","customElements"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export const __webpack_id__="6465";export const __webpack_ids__=["6465"];export const __webpack_modules__={96535:function(e,r,t){t.d(r,{A:()=>_});var n=t(63819),o=t(31601),a=t.n(o),i=t(76314),l=t.n(i),s=t(55196),c=t(4417),d=t.n(c),g=new t.U(t(45854)),u=l()(a());u.i(s.A);var h=d()(g);u.push([e.id,`.language-switcher{position:relative}.language-switcher__button{align-items:center;background-color:initial;border:none;color:inherit;column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:0 .5rem}.language-switcher__button:is(:hover,:focus,[aria-expanded=true]){background-color:var(--color-background-secondary)}@media screen and (width <= 480px){.language-switcher__button>span{display:none}}.language-switcher__button:before{background-color:currentcolor;content:"";height:1.25rem;-webkit-mask-image:url(${h});mask-image:url(${h});-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.language-switcher__dropdown{background-color:var(--color-background-primary);border:1px solid var(--color-border-primary);margin:0;padding:.75rem;position:absolute;right:0;width:max-content;z-index:1}.language_switcher__remember{border-bottom:1px solid var(--color-border-primary);display:flex;font-size:var(--font-size-small);place-items:center;width:100%}.language_switcher__remember mdn-switch{padding:.25rem}:is(.language_switcher__remember mdn-switch):hover{background-color:var(--color-background-secondary)}.language-switcher__list{background-color:var(--color-background-primary);list-style:none;margin:0;padding:0;width:100%}.language-switcher__option{align-items:center;background-color:initial;border:none;color:var(--color-text-primary);column-gap:.25rem;display:flex;font:inherit;margin:0;padding:.25rem;-webkit-text-decoration:none;text-decoration:none;width:100%}.language-switcher__option:hover,.language-switcher__option[data-current]{background-color:var(--color-background-secondary)}`,""]);let _=(0,n.AH)([u.toString()])},45854:function(e,r,t){e.exports=t.p+"languages.dcba936080e5be86.svg"},82102:function(e,r,t){t.r(r),t.d(r,{MDNLanguageSwitcher:()=>MDNLanguageSwitcher});var n=t(64889),o=t(63819),a=t(86484);let i=(0,o.JW)`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4m0-4h.01"/></svg>`;var l=t(66547),s=t(25149),c=t(96535);t(1783),t(89134);let MDNLanguageSwitcher=class MDNLanguageSwitcher extends(0,a.J)(o.WF){static styles=c.A;static properties={locale:{type:String},native:{type:String},translations:{type:Array},url:{type:String},notFound:{type:Boolean,attribute:"not-found"},_preferredLocale:{state:!0}};constructor(){super(),this.translations=[],this.native="",this.locale="en-US",this.url="/",this.notFound=!1,this._preferredLocale=void 0}_notFoundFallback=new n.YZ(this,{args:()=>[this.notFound],task:async([e])=>{if(e)return await (0,l.$)(location.pathname)}});firstUpdated(){this._preferredLocale=(0,s.E_)(),location.search&&(this.url+=location.search)}get _isLocalePreferred(){return this._preferredLocale==this.locale}_togglePreferredLocale(){this.notFound||(this._isLocalePreferred?((0,s.rM)(),this._preferredLocale=void 0):((0,s.ud)(this.locale),this._preferredLocale=this.locale))}render(){let{translations:e,native:r,locale:t,url:n,notFound:a}=this;return 0===e.length?o.s6:(0,o.qy)`<div class="language-switcher">
2
2
  <mdn-dropdown>
3
3
  <button
4
+ part="button"
4
5
  slot="button"
5
6
  class="language-switcher__button"
6
7
  type="button"
@@ -54,4 +55,4 @@ export const __webpack_id__="6465";export const __webpack_ids__=["6465"];export
54
55
  >
55
56
  </li>
56
57
  `}};customElements.define("mdn-language-switcher",MDNLanguageSwitcher)},21991:function(e,r,t){t.d(r,{O:()=>n});function n(e="id-"){return Math.random().toString(36).replace("0.",e)}}};
57
- //# sourceMappingURL=6465.08012ddcd4597c76.js.map
58
+ //# sourceMappingURL=6465.2dc41017ae6abc34.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6465.2dc41017ae6abc34.js","sources":["webpack://@mdn/fred/./components/language-switcher/element.css","webpack://@mdn/fred/./components/icon/info.svg","webpack://@mdn/fred/./components/language-switcher/element.js","webpack://@mdn/fred/./components/utils/index.js"],"sourcesContent":["import { css } from \"lit\";\n// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../build/loaders/fix-light-dark.js!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!../global/global.css\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../icon/languages.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.language-switcher{position:relative}.language-switcher__button{align-items:center;background-color:initial;border:none;color:inherit;column-gap:.25rem;cursor:pointer;display:flex;font:inherit;margin:0;padding:0 .5rem}.language-switcher__button:is(:hover,:focus,[aria-expanded=true]){background-color:var(--color-background-secondary)}@media screen and (width <= 480px){.language-switcher__button>span{display:none}}.language-switcher__button:before{background-color:currentcolor;content:\"\";height:1.25rem;-webkit-mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});-webkit-mask-size:cover;mask-size:cover;width:1.25rem}.language-switcher__dropdown{background-color:var(--color-background-primary);border:1px solid var(--color-border-primary);margin:0;padding:.75rem;position:absolute;right:0;width:max-content;z-index:1}.language_switcher__remember{border-bottom:1px solid var(--color-border-primary);display:flex;font-size:var(--font-size-small);place-items:center;width:100%}.language_switcher__remember mdn-switch{padding:.25rem}:is(.language_switcher__remember mdn-switch):hover{background-color:var(--color-background-secondary)}.language-switcher__list{background-color:var(--color-background-primary);list-style:none;margin:0;padding:0;width:100%}.language-switcher__option{align-items:center;background-color:initial;border:none;color:var(--color-text-primary);column-gap:.25rem;display:flex;font:inherit;margin:0;padding:.25rem;-webkit-text-decoration:none;text-decoration:none;width:100%}.language-switcher__option:hover,.language-switcher__option[data-current]{background-color:var(--color-background-secondary)}`, \"\"]);\n// Exports\nexport default css([___CSS_LOADER_EXPORT___.toString()]);\n","import { svg } from \"lit\"; export default svg`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4m0-4h.01\"/></svg>`;","import { Task } from \"@lit/task\";\nimport { LitElement, html, nothing } from \"lit\";\n\nimport { L10nMixin } from \"../../l10n/mixin.js\";\n\nimport infoIcon from \"../icon/info.svg?lit\";\nimport { getEnglishDoc } from \"../not-found/utils.js\";\nimport {\n getPreferredLocale,\n resetPreferredLocale,\n setPreferredLocale,\n} from \"../preferred-locale/utils.js\";\n\nimport styles from \"./element.css?lit\";\n\nimport \"../dropdown/element.js\";\nimport \"../switch/element.js\";\n\nexport class MDNLanguageSwitcher extends L10nMixin(LitElement) {\n static styles = styles;\n\n static properties = {\n locale: { type: String },\n native: { type: String },\n translations: { type: Array },\n url: { type: String },\n notFound: { type: Boolean, attribute: \"not-found\" },\n _preferredLocale: { state: true },\n };\n\n constructor() {\n super();\n /** @type {import(\"@rari\").Translation[]} */\n this.translations = [];\n this.native = \"\";\n this.locale = \"en-US\";\n this.url = \"/\";\n this.notFound = false;\n /** @type {string|undefined} */\n this._preferredLocale = undefined;\n }\n\n _notFoundFallback = new Task(this, {\n args: () => [this.notFound],\n task: async ([notFound]) => {\n if (notFound) {\n return await getEnglishDoc(location.pathname);\n }\n return;\n },\n });\n\n firstUpdated() {\n this._preferredLocale = getPreferredLocale();\n if (location.search) {\n this.url += location.search;\n }\n }\n\n get _isLocalePreferred() {\n return this._preferredLocale == this.locale;\n }\n\n _togglePreferredLocale() {\n if (this.notFound) return;\n if (this._isLocalePreferred) {\n resetPreferredLocale();\n this._preferredLocale = undefined;\n } else {\n setPreferredLocale(this.locale);\n this._preferredLocale = this.locale;\n }\n }\n\n render() {\n const { translations, native, locale, url, notFound } = this;\n\n if (translations.length === 0) {\n return nothing;\n }\n\n return html`<div class=\"language-switcher\">\n <mdn-dropdown>\n <button\n part=\"button\"\n slot=\"button\"\n class=\"language-switcher__button\"\n type=\"button\"\n aria-labelledby=\"current-locale\"\n >\n <span id=\"current-locale\">${native ?? locale}</span>\n </button>\n <div\n slot=\"dropdown\"\n class=\"language-switcher__dropdown\"\n id=\"language-switcher__dropdown\"\n >\n <div class=\"language_switcher__remember\">\n <mdn-switch\n @toggle=${this._togglePreferredLocale}\n ?checked=${this._isLocalePreferred}\n >${this.l10n`Remember language`}</mdn-switch\n >\n <mdn-button\n variant=\"plain\"\n .icon=${infoIcon}\n icon-only\n href=\"https://github.com/orgs/mdn/discussions/739\"\n target=\"_blank\"\n title=${this\n .l10n`Enable this setting to always switch to the current language when available. (Click to learn more.)`}\n >${this.l10n`Learn more`}</mdn-button\n >\n </div>\n <ul class=\"language-switcher__list\">\n ${notFound\n ? this._notFoundFallback.render({\n initial: () => this._renderCurrentLocale(),\n pending: () => this._renderCurrentLocale(),\n error: () => this._renderCurrentLocale(),\n complete: (doc) =>\n doc?.other_translations\n ? this._renderDropdownItems(\n doc.other_translations,\n locale,\n doc.mdn_url,\n notFound,\n )\n : this._renderCurrentLocale(),\n })\n : this._renderDropdownItems(translations, locale, url)}\n </ul>\n </div>\n </mdn-dropdown>\n </div>`;\n }\n\n /**\n * @param {import(\"@rari\").Translation[]} translations\n * @param {string} locale\n * @param {string} url\n * @param {boolean} notFound\n */\n _renderDropdownItems(translations, locale, url, notFound = false) {\n return translations\n .sort((a, b) => a.locale.localeCompare(b.locale))\n .map(\n (translation) => html`\n <li>\n <a\n class=\"language-switcher__option\"\n ?data-current=${locale === translation.locale}\n @click=${resetPreferredLocale}\n href=${url.replace(\n `/${notFound ? \"en-US\" : locale}/`,\n `/${translation.locale}/`,\n )}\n >${translation.native}</a\n >\n </li>\n `,\n );\n }\n\n _renderCurrentLocale() {\n return html`\n <li>\n <a\n class=\"language-switcher__option\"\n ?data-current=${true}\n href=${this.url}\n >${this.native}</a\n >\n </li>\n `;\n }\n}\n\ncustomElements.define(\"mdn-language-switcher\", MDNLanguageSwitcher);\n","/**\n * Used to generate a random element id by combining a prefix with a random string.\n *\n * @param {string} prefix\n * @returns {string}\n */\nexport function randomIdString(prefix = \"id-\") {\n return Math.random().toString(36).replace(\"0.\", prefix);\n}\n"],"names":["MDNLanguageSwitcher","String","Array","Boolean","location","s","i","n","customElements","Math"],"mappings":"uOAMI,EAAgC,kBAChC,EAA0B,IAA4B,KAC1D,EAAwB,CAAC,CAAC,GAAiC,EAC3D,IAAI,EAAqC,IAAgC,GAEzE,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,CAAC,ihBAAihB,EAAE,EAAmC,iBAAiB,EAAE,EAAmC,oiCAAoiC,CAAC,CAAE,GAAG,EAEhsD,MAAe,SAAI,CAAC,EAAwB,QAAQ,GAAG,C,+LCb5B,MAAe,QAAG,CAAC,wPAAwP,CAAC,C,sDCkBhS,IAAMA,oBAAN,MAAMA,2BAA4B,QAAU,IAAU,EAC3D,OAAO,OAAS,GAAM,AAAC,AAEvB,QAAO,WAAa,CAClB,OAAQ,CAAE,KAAMC,MAAO,EACvB,OAAQ,CAAE,KAAMA,MAAO,EACvB,aAAc,CAAE,KAAMC,KAAM,EAC5B,IAAK,CAAE,KAAMD,MAAO,EACpB,SAAU,CAAE,KAAME,QAAS,UAAW,WAAY,EAClD,iBAAkB,CAAE,MAAO,EAAK,CAClC,CAAE,AAEF,cAAc,CACZ,KAAK,GAEL,IAAI,CAAC,YAAY,CAAG,EAAE,CACtB,IAAI,CAAC,MAAM,CAAG,GACd,IAAI,CAAC,MAAM,CAAG,QACd,IAAI,CAAC,GAAG,CAAG,IACX,IAAI,CAAC,QAAQ,CAAG,GAEhB,IAAI,CAAC,gBAAgB,CAAG,MAC1B,CAEA,kBAAoB,IAAI,IAAI,CAAC,IAAI,CAAE,CACjC,KAAM,IAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,KAAM,MAAO,CAAC,EAAS,IACrB,GAAI,EACF,OAAO,MAAM,QAAcC,SAAS,QAAQ,CAGhD,CACF,EAAG,AAEH,eAAe,CACb,IAAI,CAAC,gBAAgB,CAAG,WACpBA,SAAS,MAAM,EACjB,KAAI,CAAC,GAAG,EAAIA,SAAS,MAAM,AAAD,CAE9B,CAEA,IAAI,oBAAqB,CACvB,OAAO,IAAI,CAAC,gBAAgB,EAAI,IAAI,CAAC,MAAM,AAC7C,CAEA,wBAAyB,CACnB,IAAI,CAAC,QAAQ,GACb,IAAI,CAAC,kBAAkB,EACzB,WACA,IAAI,CAAC,gBAAgB,CAAG,SAExB,GAAAC,EAAA,IAAmB,IAAI,CAAC,MAAM,EAC9B,IAAI,CAAC,gBAAgB,CAAG,IAAI,CAAC,MAAM,EAEvC,CAEA,QAAS,CACP,GAAM,CAAE,cAAY,CAAE,QAAM,CAAE,QAAM,CAAE,KAAG,CAAE,UAAQ,CAAE,CAAG,IAAI,QAE5D,AAAI,AAAwB,IAAxB,EAAa,MAAM,CACd,IAAO,CAGT,QAAI,CAAC;;;;;;;;;oCASoB,EAAE,GAAU,EAAO;;;;;;;;;sBASjC,EAAE,IAAI,CAAC,sBAAsB,CAAC;uBAC7B,EAAE,IAAI,CAAC,kBAAkB,CAAC;eAClC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;;oBAI1B,EAAEC,EAAS;;;;oBAIX,EAAE,IAAI,CACT,IAAI,CAAC,mGAAmG,CAAC,CAAC;eAC5G,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;;YAI3B,EAAE,EACE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAC5B,QAAS,IAAM,IAAI,CAAC,oBAAoB,GACxC,QAAS,IAAM,IAAI,CAAC,oBAAoB,GACxC,MAAO,IAAM,IAAI,CAAC,oBAAoB,GACtC,SAAU,AAAC,GACT,GAAK,mBACD,IAAI,CAAC,oBAAoB,CACvB,EAAI,kBAAkB,CACtB,EACA,EAAI,OAAO,CACX,GAEF,IAAI,CAAC,oBAAoB,EACjC,GACA,IAAI,CAAC,oBAAoB,CAAC,EAAc,EAAQ,GAAK;;;;UAI3D,CAAC,AACT,CAQA,qBAAqB,CAAY,CAAE,CAAM,CAAE,CAAG,CAAEC,EAAW,EAAK,CAAE,CAChE,OAAO,EACJ,IAAI,CAAC,CAAC,EAAG,IAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,GAC9C,GAAG,CACF,AAAC,GAAgB,QAAI,CAAC;;;;4BAIF,EAAE,IAAW,EAAY,MAAM,CAAC;qBACvC,EAAE,IAAoB,CAAC;mBACzB,EAAE,EAAI,OAAO,CAChB,CAAC,CAAC,EAAEA,EAAW,QAAU,EAAO,CAAC,CAAC,CAClC,CAAC,CAAC,EAAE,EAAY,MAAM,CAAC,CAAC,CAAC,EACzB;eACD,EAAE,EAAY,MAAM,CAAC;;;QAG5B,CAAC,CAEP,CAEA,sBAAuB,CACrB,MAAO,QAAI,CAAC;;;;wBAIQ,EAAE,GAAK;eAChB,EAAE,IAAI,CAAC,GAAG,CAAC;WACf,EAAE,IAAI,CAAC,MAAM,CAAC;;;IAGrB,CAAC,AACH,CACF,EAEAC,eAAe,MAAM,CAAC,wBAAyBR,oB,yCC5KxC,SAAS,EAAe,EAAS,KAAK,EAC3C,OAAOS,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAM,EAClD,C"}