Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pre-release v5.0.0-beta.2 #4496

Merged
merged 1 commit into from
Nov 24, 2023
Merged

Pre-release v5.0.0-beta.2 #4496

merged 1 commit into from
Nov 24, 2023

Conversation

36degrees
Copy link
Contributor

Breaking changes

Update the GOV.UK logo

The GOV.UK logo has been updated to merge the GOV.UK text with the crown graphic. This is to ensure that the full logo is always rendered correctly even if parts of the page, such as CSS or the Transport webfont fail to load. Styles relating to the logo have also been modified.

If you're using the govukHeader Nunjucks macro you don't need to change anything.

Otherwise, to update to the new logo:

  1. Remove <span class="govuk-header__logotype-text"> and its content.
  2. Remove the <span class="govuk-header__logotype"> around the svg element.
  3. Replace the svg element with this updated SVG, ensuring that the class name and attributes are also updated.

This change was made in pull request #4449: Implement transitional crown in the Header component (v5.0).

Check your favicons, app icons and OpenGraph image still work

We've changed the names, formats and sizes of icon assets that we distribute in Frontend. You will want to check that the correct files are in place.

The following files have been added to the assets folder:

  • manifest.json
  • images/favicon.svg
  • images/govuk-icon-180.png
  • images/govuk-icon-192.png
  • images/govuk-icon-512.png
  • images/govuk-icon-mask.svg

The following files have been removed from the assets folder:

  • images/govuk-apple-touch-icon.png
  • images/govuk-apple-touch-icon-152x152.png
  • images/govuk-apple-touch-icon-167x167.png
  • images/govuk-apple-touch-icon-180x180.png
  • images/govuk-mask-icon.svg

If you're not using the Nunjucks page template, you will need to replace the list of icons in the template's head with the following:

<link rel="icon" sizes="48x48" href="/assets/images/favicon.ico">
<link rel="icon" sizes="any" href="/assets/images/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="/assets/images/govuk-icon-mask.svg" color="#0b0c0c">
<link rel="apple-touch-icon" href="/assets/images/govuk-icon-180.png">
<link rel="manifest" href="/assets/manifest.json">

You will need to update the file path to match your assets folder if it's not at the default location.

This change was made in pull request #4445: Implement transitional crown favicons (v5.0).

Recommended changes

We've recently made some non-breaking changes to GOV.UK Frontend. Implementing these changes will make your service work better.

Remove the X-UA-Compatible meta tag

Remove the <meta http-equiv="X-UA-Compatible" content="IE=edge"> meta tag from your page template.

Internet Explorer versions 8, 9 and 10 included a feature that would try to determine if the page was built for an older version of IE and would silently enable compatibility mode, which would modify the rendering engine's behaviour to match the older version of IE. Setting this meta tag prevented that behaviour.

IE11 deprecated this meta tag and defaulted to always using IE11's renderer when the page has a HTML5 doctype (<!DOCTYPE html>).

As Frontend no longer supports Internet Explorer versions older than 11, this meta tag can now be removed.

This change was made in pull request #4434: Remove X-UA-Compatible meta tag.

Fixes

We’ve made fixes to GOV.UK Frontend in the following pull requests:

@govuk-design-system-ci govuk-design-system-ci temporarily deployed to govuk-frontend-pr-4496 November 24, 2023 11:43 Inactive
Copy link

Stylesheets changes to dist

diff --git a/dist/govuk-frontend-5.0.0-beta.1.min.css b/dist/govuk-frontend-5.0.0-beta.2.min.css
index cd71490d1..05c7cb362 100644
--- a/dist/govuk-frontend-5.0.0-beta.1.min.css
+++ b/dist/govuk-frontend-5.0.0-beta.2.min.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 
 :root {
-    --govuk-frontend-version: "5.0.0-beta.1"
+    --govuk-frontend-version: "5.0.0-beta.2"
 }
 
 .govuk-link {
@@ -1339,14 +1339,12 @@
     left: .375rem;
     width: .375rem;
     height: .375rem;
-    -webkit-transform: rotate(-45deg);
     transform: rotate(-45deg);
     border-top: .125rem solid;
     border-right: .125rem solid
 }
 
 .govuk-frontend-supported .govuk-accordion-nav__chevron--down {
-    -webkit-transform: rotate(180deg);
     transform: rotate(180deg)
 }
 
@@ -1609,7 +1607,6 @@
     width: .4375em;
     height: .4375em;
     margin: auto 0;
-    -webkit-transform: rotate(225deg);
     transform: rotate(225deg);
     border: solid;
     border-width: 1px 1px 0 0;
@@ -1718,7 +1715,6 @@
     width: .4375em;
     height: .4375em;
     margin: auto 0;
-    -webkit-transform: rotate(45deg);
     transform: rotate(45deg);
     border: solid;
     border-width: 1px 1px 0 0;
@@ -2322,7 +2318,6 @@
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    -webkit-font-feature-settings: "tnum" 1;
     font-feature-settings: "tnum" 1;
     font-weight: 400;
     margin-top: 0;
@@ -2337,7 +2332,6 @@
 
 @supports (font-variant-numeric:tabular-nums) {
     .govuk-character-count__message {
-        -webkit-font-feature-settings: normal;
         font-feature-settings: normal;
         font-variant-numeric: tabular-nums
     }
@@ -2538,7 +2532,6 @@
     left: 9px;
     width: 23px;
     height: 12px;
-    -webkit-transform: rotate(-45deg);
     transform: rotate(-45deg);
     border: solid;
     border-width: 0 0 5px 5px;
@@ -2812,7 +2805,6 @@ screen and (forced-colors:active) {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    -webkit-font-feature-settings: "tnum" 1;
     font-feature-settings: "tnum" 1;
     font-weight: 400;
     letter-spacing: .05em
@@ -2826,7 +2818,6 @@ screen and (forced-colors:active) {
 
 @supports (font-variant-numeric:tabular-nums) {
     .govuk-input--extra-letter-spacing {
-        -webkit-font-feature-settings: normal;
         font-feature-settings: normal;
         font-variant-numeric: tabular-nums
     }
@@ -3655,18 +3646,15 @@ only screen and (min-resolution:2dppx) {
     margin: 0;
     padding: 0;
     list-style: none;
-    -webkit-column-gap: 30px;
     column-gap: 30px
 }
 
 @media (min-width:48.0625em) {
     .govuk-footer__list--columns-2 {
-        -webkit-column-count: 2;
         column-count: 2
     }
 
     .govuk-footer__list--columns-3 {
-        -webkit-column-count: 3;
         column-count: 3
     }
 }
@@ -3691,7 +3679,7 @@ only screen and (min-resolution:2dppx) {
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
     font-size: .875rem;
-    line-height: 1.1428571429;
+    line-height: 1;
     border-bottom: 10px solid #fff;
     color: #fff;
     background: #0b0c0c
@@ -3706,14 +3694,14 @@ only screen and (min-resolution:2dppx) {
 @media (min-width:40.0625em) {
     .govuk-header {
         font-size: 1rem;
-        line-height: 1.25
+        line-height: 1
     }
 }
 
 @media print {
     .govuk-header {
         font-size: 14pt;
-        line-height: 1.2
+        line-height: 1
     }
 }
 
@@ -3741,7 +3729,11 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-header__logotype {
     display: inline-block;
-    margin-right: 5px
+    position: relative;
+    top: -3px;
+    margin-right: 5px;
+    fill: currentcolor;
+    vertical-align: top
 }
 
 @media (forced-colors:active) {
@@ -3755,19 +3747,13 @@ only screen and (min-resolution:2dppx) {
     margin-right: 0
 }
 
-.govuk-header__logotype-crown {
-    position: relative;
-    top: -1px;
-    margin-right: 1px;
-    fill: currentcolor;
-    vertical-align: top
-}
-
 .govuk-header__product-name {
     font-size: 1.125rem;
     line-height: 1;
     font-weight: 400;
-    display: inline-table
+    display: inline-table;
+    margin-top: 10px;
+    vertical-align: top
 }
 
 @media (min-width:40.0625em) {
@@ -3784,6 +3770,24 @@ only screen and (min-resolution:2dppx) {
     }
 }
 
+@-moz-document url-prefix() {
+    .govuk-header__product-name {
+        margin-top: 9.5px
+    }
+}
+
+@media (min-width:40.0625em) {
+    .govuk-header__product-name {
+        margin-top: 5px
+    }
+
+    @-moz-document url-prefix() {
+        .govuk-header__product-name {
+            margin-top: 4.5px
+        }
+    }
+}
+
 .govuk-header__link {
     text-decoration: none
 }
@@ -3815,14 +3819,12 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__link--homepage {
-    font-weight: 700;
     display: inline-block;
     margin-right: 10px;
-    font-size: 30px;
-    line-height: 1
+    font-size: 30px
 }
 
-@media (min-width:40.0625em) {
+@media (min-width:48.0625em) {
     .govuk-header__link--homepage {
         display: inline
     }
@@ -4077,10 +4079,6 @@ only screen and (min-resolution:2dppx) {
         background: #0000
     }
 
-    .govuk-header__logotype-crown-fallback-image {
-        display: none
-    }
-
     .govuk-header__link:link,
     .govuk-header__link:visited {
         color: #0b0c0c
@@ -5686,7 +5684,6 @@ screen and (-ms-high-contrast:active) {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    -webkit-font-feature-settings: "tnum" 1;
     font-feature-settings: "tnum" 1;
     font-weight: 400
 }
@@ -5699,7 +5696,6 @@ screen and (-ms-high-contrast:active) {
 
 @supports (font-variant-numeric:tabular-nums) {
     .govuk-table__cell--numeric {
-        -webkit-font-feature-settings: normal;
         font-feature-settings: normal;
         font-variant-numeric: tabular-nums
     }
@@ -7692,4 +7688,4 @@ screen and (-ms-high-contrast:active) {
     }
 }
 
-/*# sourceMappingURL=govuk-frontend-5.0.0-beta.1.min.css.map */
\ No newline at end of file
+/*# sourceMappingURL=govuk-frontend-5.0.0-beta.2.min.css.map */
\ No newline at end of file

Action run for a45c763

Copy link

JavaScript changes to dist

diff --git a/dist/govuk-frontend-5.0.0-beta.1.min.js b/dist/govuk-frontend-5.0.0-beta.2.min.js
index 5a255dbcb..733896fe1 100644
--- a/dist/govuk-frontend-5.0.0-beta.1.min.js
+++ b/dist/govuk-frontend-5.0.0-beta.2.min.js
@@ -1,37 +1,37 @@
-const version = "5.0.0-beta.1";
+const version = "5.0.0-beta.2";
 
 function mergeConfigs(...t) {
     function flattenObject(t) {
         const e = {};
         return function flattenLoop(t, i) {
-            for (const [s, n] of Object.entries(t)) {
-                const t = i ? `${i}.${s}` : s;
-                n && "object" == typeof n ? flattenLoop(n, t) : e[t] = n
+            for (const [n, s] of Object.entries(t)) {
+                const t = i ? `${i}.${n}` : n;
+                s && "object" == typeof s ? flattenLoop(s, t) : e[t] = s
             }
         }(t), e
     }
     const e = {};
     for (const i of t) {
         const t = flattenObject(i);
-        for (const [i, s] of Object.entries(t)) e[i] = s
+        for (const [i, n] of Object.entries(t)) e[i] = n
     }
     return e
 }
 
 function extractConfigByNamespace(t, e) {
     const i = {};
-    for (const [s, n] of Object.entries(t)) {
-        const t = s.split(".");
+    for (const [n, s] of Object.entries(t)) {
+        const t = n.split(".");
         if (t[0] === e) {
             t.length > 1 && t.shift();
-            i[t.join(".")] = n
+            i[t.join(".")] = s
         }
     }
     return i
 }
 
 function getFragmentFromUrl(t) {
-    if (-1 !== t.indexOf("#")) return t.split("#").pop()
+    if (t.includes("#")) return t.split("#").pop()
 }
 
 function isSupported(t = document.body) {
@@ -46,7 +46,7 @@ function normaliseString(t) {
 
 function normaliseDataset(t) {
     const e = {};
-    for (const [i, s] of Object.entries(t)) e[i] = normaliseString(s);
+    for (const [i, n] of Object.entries(t)) e[i] = normaliseString(n);
     return e
 }
 class GOVUKFrontendError extends Error {
@@ -56,7 +56,8 @@ class GOVUKFrontendError extends Error {
 }
 class SupportError extends GOVUKFrontendError {
     constructor(t = document.body) {
-        super(t ? "GOV.UK Frontend is not supported in this browser" : 'GOV.UK Frontend initialised without `<script type="module">`'), this.name = "SupportError"
+        const e = "noModule" in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet' : "GOV.UK Frontend is not supported in this browser";
+        super(t ? e : 'GOV.UK Frontend initialised without `<script type="module">`'), this.name = "SupportError"
     }
 }
 class ConfigError extends GOVUKFrontendError {
@@ -70,11 +71,11 @@ class ElementError extends GOVUKFrontendError {
         if ("object" == typeof t) {
             const {
                 componentName: i,
-                identifier: s,
-                element: n,
+                identifier: n,
+                element: s,
                 expectedType: o
             } = t;
-            e = `${i}: ${s}`, e += n ? ` is not of type ${o||"HTMLElement"}` : " not found"
+            e = `${i}: ${n}`, e += s ? ` is not of type ${null!=o?o:"HTMLElement"}` : " not found"
         }
         super(e), this.name = "ElementError"
     }
@@ -89,11 +90,12 @@ class GOVUKFrontendComponent {
 }
 class I18n {
     constructor(t = {}, e = {}) {
-        this.translations = void 0, this.locale = void 0, this.translations = t, this.locale = e.locale || document.documentElement.lang || "en"
+        var i;
+        this.translations = void 0, this.locale = void 0, this.translations = t, this.locale = null != (i = e.locale) ? i : document.documentElement.lang || "en"
     }
     t(t, e) {
         if (!t) throw new Error("i18n: lookup key missing");
-        e && "number" == typeof e.count && (t = `${t}.${this.getPluralSuffix(t,e.count)}`);
+        "number" == typeof(null == e ? void 0 : e.count) && (t = `${t}.${this.getPluralSuffix(t,e.count)}`);
         const i = this.translations[t];
         if ("string" == typeof i) {
             if (i.match(/%{(.\S+)}/)) {
@@ -106,9 +108,9 @@ class I18n {
     }
     replacePlaceholders(t, e) {
         const i = Intl.NumberFormat.supportedLocalesOf(this.locale).length ? new Intl.NumberFormat(this.locale) : void 0;
-        return t.replace(/%{(.\S+)}/g, (function(t, s) {
-            if (Object.prototype.hasOwnProperty.call(e, s)) {
-                const t = e[s];
+        return t.replace(/%{(.\S+)}/g, (function(t, n) {
+            if (Object.prototype.hasOwnProperty.call(e, n)) {
+                const t = e[n];
                 return !1 === t || "number" != typeof t && "string" != typeof t ? "" : "number" == typeof t ? i ? i.format(t) : `${t}` : t
             }
             throw new Error(`i18n: no data found to replace ${t} placeholder in string`)
@@ -131,9 +133,10 @@ class I18n {
     }
     getPluralRulesForLocale() {
         const t = this.locale.split("-")[0];
-        for (const e in I18n.pluralRulesMap)
-            for (const i of I18n.pluralRulesMap[e])
-                if (i === this.locale || i === t) return e
+        for (const e in I18n.pluralRulesMap) {
+            const i = I18n.pluralRulesMap[e];
+            if (i.includes(this.locale) || i.includes(t)) return e
+        }
     }
 }
 I18n.pluralRulesMap = {
@@ -169,14 +172,14 @@ class Accordion extends GOVUKFrontendComponent {
             identifier: "Root element (`$module`)"
         });
         this.$module = e, this.config = mergeConfigs(Accordion.defaults, i, normaliseDataset(e.dataset)), this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n"));
-        const s = this.$module.querySelectorAll(`.${this.sectionClass}`);
-        if (!s.length) throw new ElementError({
+        const n = this.$module.querySelectorAll(`.${this.sectionClass}`);
+        if (!n.length) throw new ElementError({
             componentName: "Accordion",
             identifier: `Sections (\`<div class="${this.sectionClass}">\`)`
         });
-        this.$sections = s, this.browserSupportsSessionStorage = t.checkForSessionStorage(), this.initControls(), this.initSectionHeaders();
-        const n = this.checkIfAllSectionsOpen();
-        this.updateShowAllButton(n)
+        this.$sections = n, this.browserSupportsSessionStorage = t.checkForSessionStorage(), this.initControls(), this.initSectionHeaders();
+        const s = this.checkIfAllSectionsOpen();
+        this.updateShowAllButton(s)
     }
     initControls() {
         this.$showAllButton = document.createElement("button"), this.$showAllButton.setAttribute("type", "button"), this.$showAllButton.setAttribute("class", this.showAllClass), this.$showAllButton.setAttribute("aria-expanded", "false"), this.$showAllIcon = document.createElement("span"), this.$showAllIcon.classList.add(this.upChevronIconClass), this.$showAllButton.appendChild(this.$showAllIcon);
@@ -195,9 +198,9 @@ class Accordion extends GOVUKFrontendComponent {
     }
     constructHeaderMarkup(t, e) {
         const i = t.querySelector(`.${this.sectionButtonClass}`),
-            s = t.querySelector(`.${this.sectionHeadingClass}`),
-            n = t.querySelector(`.${this.sectionSummaryClass}`);
-        if (!s) throw new ElementError({
+            n = t.querySelector(`.${this.sectionHeadingClass}`),
+            s = t.querySelector(`.${this.sectionSummaryClass}`);
+        if (!n) throw new ElementError({
             componentName: "Accordion",
             identifier: `Section heading (\`.${this.sectionHeadingClass}\`)`
         });
@@ -207,7 +210,7 @@ class Accordion extends GOVUKFrontendComponent {
         });
         const o = document.createElement("button");
         o.setAttribute("type", "button"), o.setAttribute("aria-controls", `${this.$module.id}-content-${e+1}`);
-        for (const u of Array.from(i.attributes)) "id" !== u.nodeName && o.setAttribute(u.nodeName, u.nodeValue);
+        for (const u of Array.from(i.attributes)) "id" !== u.nodeName && o.setAttribute(u.nodeName, `${u.nodeValue}`);
         const r = document.createElement("span");
         r.classList.add(this.sectionHeadingTextClass), r.id = i.id;
         const a = document.createElement("span");
@@ -218,14 +221,14 @@ class Accordion extends GOVUKFrontendComponent {
         c.classList.add(this.sectionShowHideToggleFocusClass), l.appendChild(c);
         const h = document.createElement("span"),
             d = document.createElement("span");
-        if (d.classList.add(this.upChevronIconClass), c.appendChild(d), h.classList.add(this.sectionShowHideTextClass), c.appendChild(h), o.appendChild(r), o.appendChild(this.getButtonPunctuationEl()), n && n.parentNode) {
+        if (d.classList.add(this.upChevronIconClass), c.appendChild(d), h.classList.add(this.sectionShowHideTextClass), c.appendChild(h), o.appendChild(r), o.appendChild(this.getButtonPunctuationEl()), null != s && s.parentNode) {
             const t = document.createElement("span"),
                 e = document.createElement("span");
             e.classList.add(this.sectionSummaryFocusClass), t.appendChild(e);
-            for (const i of Array.from(n.attributes)) t.setAttribute(i.nodeName, i.nodeValue);
-            e.innerHTML = n.innerHTML, n.parentNode.replaceChild(t, n), o.appendChild(t), o.appendChild(this.getButtonPunctuationEl())
+            for (const i of Array.from(s.attributes)) t.setAttribute(i.nodeName, `${i.nodeValue}`);
+            e.innerHTML = s.innerHTML, s.parentNode.replaceChild(t, s), o.appendChild(t), o.appendChild(this.getButtonPunctuationEl())
         }
-        o.appendChild(l), s.removeChild(i), s.appendChild(o)
+        o.appendChild(l), n.removeChild(i), n.appendChild(o)
     }
     onBeforeMatch(t) {
         const e = t.target;
@@ -245,23 +248,23 @@ class Accordion extends GOVUKFrontendComponent {
     }
     setExpanded(t, e) {
         const i = e.querySelector(`.${this.upChevronIconClass}`),
-            s = e.querySelector(`.${this.sectionShowHideTextClass}`),
-            n = e.querySelector(`.${this.sectionButtonClass}`),
+            n = e.querySelector(`.${this.sectionShowHideTextClass}`),
+            s = e.querySelector(`.${this.sectionButtonClass}`),
             o = e.querySelector(`.${this.sectionContentClass}`);
         if (!o) throw new ElementError({
             componentName: "Accordion",
             identifier: `Section content (\`<div class="${this.sectionContentClass}">\`)`
         });
-        if (!i || !s || !n) return;
+        if (!i || !n || !s) return;
         const r = t ? this.i18n.t("hideSection") : this.i18n.t("showSection");
-        s.textContent = r, n.setAttribute("aria-expanded", `${t}`);
+        n.textContent = r, s.setAttribute("aria-expanded", `${t}`);
         const a = [],
             l = e.querySelector(`.${this.sectionHeadingTextClass}`);
-        l && a.push(l.textContent.trim());
+        l && a.push(`${l.textContent}`.trim());
         const c = e.querySelector(`.${this.sectionSummaryClass}`);
-        c && a.push(c.textContent.trim());
+        c && a.push(`${c.textContent}`.trim());
         const h = t ? this.i18n.t("hideSectionAriaLabel") : this.i18n.t("showSectionAriaLabel");
-        a.push(h), n.setAttribute("aria-label", a.join(" , ")), t ? (o.removeAttribute("hidden"), e.classList.add(this.sectionExpandedClass), i.classList.remove(this.downChevronIconClass)) : (o.setAttribute("hidden", "until-found"), e.classList.remove(this.sectionExpandedClass), i.classList.add(this.downChevronIconClass));
+        a.push(h), s.setAttribute("aria-label", a.join(" , ")), t ? (o.removeAttribute("hidden"), e.classList.add(this.sectionExpandedClass), i.classList.remove(this.downChevronIconClass)) : (o.setAttribute("hidden", "until-found"), e.classList.remove(this.sectionExpandedClass), i.classList.add(this.downChevronIconClass));
         const d = this.checkIfAllSectionsOpen();
         this.updateShowAllButton(d)
     }
@@ -289,8 +292,8 @@ class Accordion extends GOVUKFrontendComponent {
             const e = t.querySelector(`.${this.sectionButtonClass}`);
             if (e) {
                 const i = e.getAttribute("aria-controls"),
-                    s = i ? window.sessionStorage.getItem(i) : null;
-                null !== s && this.setExpanded("true" === s, t)
+                    n = i ? window.sessionStorage.getItem(i) : null;
+                null !== n && this.setExpanded("true" === n, t)
             }
         }
     }
@@ -350,55 +353,56 @@ Button.moduleName = "govuk-button", Button.defaults = Object.freeze({
 });
 class CharacterCount extends GOVUKFrontendComponent {
     constructor(t, e = {}) {
+        var i, n;
         if (super(), this.$module = void 0, this.$textarea = void 0, this.$visibleCountMessage = void 0, this.$screenReaderCountMessage = void 0, this.lastInputTimestamp = null, this.lastInputValue = "", this.valueChecker = null, this.config = void 0, this.i18n = void 0, this.maxLength = void 0, !(t instanceof HTMLElement)) throw new ElementError({
             componentName: "Character count",
             element: t,
             identifier: "Root element (`$module`)"
         });
-        const i = t.querySelector(".govuk-js-character-count");
-        if (!(i instanceof HTMLTextAreaElement || i instanceof HTMLInputElement)) throw new ElementError({
+        const s = t.querySelector(".govuk-js-character-count");
+        if (!(s instanceof HTMLTextAreaElement || s instanceof HTMLInputElement)) throw new ElementError({
             componentName: "Character count",
-            element: i,
+            element: s,
             expectedType: "HTMLTextareaElement or HTMLInputElement",
             identifier: "Form field (`.govuk-js-character-count`)"
         });
-        const s = normaliseDataset(t.dataset);
-        let n = {};
-        ("maxwords" in s || "maxlength" in s) && (n = {
+        const o = normaliseDataset(t.dataset);
+        let r = {};
+        ("maxwords" in o || "maxlength" in o) && (r = {
             maxlength: void 0,
             maxwords: void 0
-        }), this.config = mergeConfigs(CharacterCount.defaults, e, n, s);
-        const o = function(t, e) {
+        }), this.config = mergeConfigs(CharacterCount.defaults, e, r, o);
+        const a = function(t, e) {
             const i = [];
-            for (const [s, n] of Object.entries(t)) {
+            for (const [n, s] of Object.entries(t)) {
                 const t = [];
                 for (const {
                         required: i,
-                        errorMessage: s
+                        errorMessage: n
                     }
-                    of n) i.every((t => !!e[t])) || t.push(s);
-                "anyOf" !== s || n.length - t.length >= 1 || i.push(...t)
+                    of s) i.every((t => !!e[t])) || t.push(n);
+                "anyOf" !== n || s.length - t.length >= 1 || i.push(...t)
             }
             return i
         }(CharacterCount.schema, this.config);
-        if (o[0]) throw new ConfigError(`Character count: ${o[0]}`);
+        if (a[0]) throw new ConfigError(`Character count: ${a[0]}`);
         this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n"), {
             locale: closestAttributeValue(t, "lang")
-        }), this.maxLength = this.config.maxwords || this.config.maxlength || 1 / 0, this.$module = t, this.$textarea = i;
-        const r = `${this.$textarea.id}-info`,
-            a = document.getElementById(r);
-        if (!a) throw new ElementError({
+        }), this.maxLength = null != (i = null != (n = this.config.maxwords) ? n : this.config.maxlength) ? i : 1 / 0, this.$module = t, this.$textarea = s;
+        const l = `${this.$textarea.id}-info`,
+            c = document.getElementById(l);
+        if (!c) throw new ElementError({
             componentName: "Character count",
-            element: a,
-            identifier: `Count message (\`id="${r}"\`)`
+            element: c,
+            identifier: `Count message (\`id="${l}"\`)`
         });
-        a.textContent.match(/^\s*$/) && (a.textContent = this.i18n.t("textareaDescription", {
+        `${c.textContent}`.match(/^\s*$/) && (c.textContent = this.i18n.t("textareaDescription", {
             count: this.maxLength
-        })), this.$textarea.insertAdjacentElement("afterend", a);
-        const l = document.createElement("div");
-        l.className = "govuk-character-count__sr-status govuk-visually-hidden", l.setAttribute("aria-live", "polite"), this.$screenReaderCountMessage = l, a.insertAdjacentElement("afterend", l);
-        const c = document.createElement("div");
-        c.className = a.className, c.classList.add("govuk-character-count__status"), c.setAttribute("aria-hidden", "true"), this.$visibleCountMessage = c, a.insertAdjacentElement("afterend", c), a.classList.add("govuk-visually-hidden"), this.$textarea.removeAttribute("maxlength"), this.bindChangeEvents(), window.addEventListener("pageshow", (() => this.updateCountMessage())), this.updateCountMessage()
+        })), this.$textarea.insertAdjacentElement("afterend", c);
+        const h = document.createElement("div");
+        h.className = "govuk-character-count__sr-status govuk-visually-hidden", h.setAttribute("aria-live", "polite"), this.$screenReaderCountMessage = h, c.insertAdjacentElement("afterend", h);
+        const d = document.createElement("div");
+        d.className = c.className, d.classList.add("govuk-character-count__status"), d.setAttribute("aria-hidden", "true"), this.$visibleCountMessage = d, c.insertAdjacentElement("afterend", d), c.classList.add("govuk-visually-hidden"), this.$textarea.removeAttribute("maxlength"), this.bindChangeEvents(), window.addEventListener("pageshow", (() => this.updateCountMessage())), this.updateCountMessage()
     }
     bindChangeEvents() {
         this.$textarea.addEventListener("keyup", (() => this.handleKeyUp())), this.$textarea.addEventListener("focus", (() => this.handleFocus())), this.$textarea.addEventListener("blur", (() => this.handleBlur()))
@@ -429,7 +433,8 @@ class CharacterCount extends GOVUKFrontendComponent {
     }
     count(t) {
         if (this.config.maxwords) {
-            return (t.match(/\S+/g) || []).length
+            var e;
+            return (null != (e = t.match(/\S+/g)) ? e : []).length
         }
         return t.length
     }
@@ -562,26 +567,27 @@ class ErrorSummary extends GOVUKFrontendComponent {
         if (!e) return !1;
         const i = document.getElementById(e);
         if (!i) return !1;
-        const s = this.getAssociatedLegendOrLabel(i);
-        return !!s && (s.scrollIntoView(), i.focus({
+        const n = this.getAssociatedLegendOrLabel(i);
+        return !!n && (n.scrollIntoView(), i.focus({
             preventScroll: !0
         }), !0)
     }
     getAssociatedLegendOrLabel(t) {
-        const e = t.closest("fieldset");
-        if (e) {
-            const i = e.getElementsByTagName("legend");
-            if (i.length) {
-                const e = i[0];
-                if (t instanceof HTMLInputElement && ("checkbox" === t.type || "radio" === t.type)) return e;
-                const s = e.getBoundingClientRect().top,
-                    n = t.getBoundingClientRect();
-                if (n.height && window.innerHeight) {
-                    if (n.top + n.height - s < window.innerHeight / 2) return e
+        var e;
+        const i = t.closest("fieldset");
+        if (i) {
+            const e = i.getElementsByTagName("legend");
+            if (e.length) {
+                const i = e[0];
+                if (t instanceof HTMLInputElement && ("checkbox" === t.type || "radio" === t.type)) return i;
+                const n = i.getBoundingClientRect().top,
+                    s = t.getBoundingClientRect();
+                if (s.height && window.innerHeight) {
+                    if (s.top + s.height - n < window.innerHeight / 2) return i
                 }
             }
         }
-        return document.querySelector(`label[for='${t.getAttribute("id")}']`) || t.closest("label")
+        return null != (e = document.querySelector(`label[for='${t.getAttribute("id")}']`)) ? e : t.closest("label")
     }
 }
 ErrorSummary.moduleName = "govuk-error-summary", ErrorSummary.defaults = Object.freeze({
@@ -602,8 +608,8 @@ class ExitThisPage extends GOVUKFrontendComponent {
             identifier: "Button (`.govuk-exit-this-page__button`)"
         });
         this.config = mergeConfigs(ExitThisPage.defaults, e, normaliseDataset(t.dataset)), this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n")), this.$module = t, this.$button = i;
-        const s = document.querySelector(".govuk-js-exit-this-page-skiplink");
-        s instanceof HTMLAnchorElement && (this.$skiplinkButton = s), this.buildIndicator(), this.initUpdateSpan(), this.initButtonClickHandler(), "govukFrontendExitThisPageKeypress" in document.body.dataset || (document.addEventListener("keyup", this.handleKeypress.bind(this), !0), document.body.dataset.govukFrontendExitThisPageKeypress = "true"), window.addEventListener("pageshow", this.resetPage.bind(this))
+        const n = document.querySelector(".govuk-js-exit-this-page-skiplink");
+        n instanceof HTMLAnchorElement && (this.$skiplinkButton = n), this.buildIndicator(), this.initUpdateSpan(), this.initButtonClickHandler(), "govukFrontendExitThisPageKeypress" in document.body.dataset || (document.addEventListener("keyup", this.handleKeypress.bind(this), !0), document.body.dataset.govukFrontendExitThisPageKeypress = "true"), window.addEventListener("pageshow", this.resetPage.bind(this))
     }
     initUpdateSpan() {
         this.$updateSpan = document.createElement("span"), this.$updateSpan.setAttribute("role", "status"), this.$updateSpan.className = "govuk-visually-hidden", this.$module.appendChild(this.$updateSpan)
@@ -673,13 +679,13 @@ class Header extends GOVUKFrontendComponent {
             componentName: "Header",
             identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
         });
-        const s = document.getElementById(i);
-        if (!s) throw new ElementError({
+        const n = document.getElementById(i);
+        if (!n) throw new ElementError({
             componentName: "Header",
-            element: s,
+            element: n,
             identifier: `Navigation (\`<ul id="${i}">\`)`
         });
-        this.$menu = s, this.$menuButton = e, this.mql = window.matchMedia("(min-width: 48.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => this.syncState())) : this.mql.addListener((() => this.syncState())), this.syncState(), this.$menuButton.addEventListener("click", (() => this.handleMenuButtonClick()))
+        this.$menu = n, this.$menuButton = e, this.mql = window.matchMedia("(min-width: 48.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => this.syncState())) : this.mql.addListener((() => this.syncState())), this.syncState(), this.$menuButton.addEventListener("click", (() => this.handleMenuButtonClick()))
     }
     syncState() {
         this.mql && this.$menu && this.$menuButton && (this.mql.matches ? (this.$menu.removeAttribute("hidden"), this.$menuButton.setAttribute("hidden", "")) : (this.$menuButton.removeAttribute("hidden"), this.$menuButton.setAttribute("aria-expanded", this.menuIsOpen.toString()), this.menuIsOpen ? this.$menu.removeAttribute("hidden") : this.$menu.setAttribute("hidden", "")))
@@ -737,7 +743,7 @@ class Radios extends GOVUKFrontendComponent {
         const e = t.getAttribute("aria-controls");
         if (!e) return;
         const i = document.getElementById(e);
-        if (i && i.classList.contains("govuk-radios__conditional")) {
+        if (null != i && i.classList.contains("govuk-radios__conditional")) {
             const e = t.checked;
             t.setAttribute("aria-expanded", e.toString()), i.classList.toggle("govuk-radios__conditional--hidden", !e)
         }
@@ -746,11 +752,11 @@ class Radios extends GOVUKFrontendComponent {
         const e = t.target;
         if (!(e instanceof HTMLInputElement) || "radio" !== e.type) return;
         const i = document.querySelectorAll('input[type="radio"][aria-controls]'),
-            s = e.form,
-            n = e.name;
+            n = e.form,
+            s = e.name;
         i.forEach((t => {
-            const e = t.form === s;
-            t.name === n && e && this.syncConditionalRevealWithInputState(t)
+            const e = t.form === n;
+            t.name === s && e && this.syncConditionalRevealWithInputState(t)
         }))
     }
 }
@@ -803,35 +809,33 @@ class Tabs extends GOVUKFrontendComponent {
         });
         this.$module = t, this.$tabs = e, this.boundTabClick = this.onTabClick.bind(this), this.boundTabKeydown = this.onTabKeydown.bind(this), this.boundOnHashChange = this.onHashChange.bind(this);
         const i = this.$module.querySelector(".govuk-tabs__list"),
-            s = this.$module.querySelectorAll("li.govuk-tabs__list-item");
+            n = this.$module.querySelectorAll("li.govuk-tabs__list-item");
         if (!i) throw new ElementError({
             componentName: "Tabs",
             identifier: 'List (`<ul class="govuk-tabs__list">`)'
         });
-        if (!s.length) throw new ElementError({
+        if (!n.length) throw new ElementError({
             componentName: "Tabs",
             identifier: 'List items (`<li class="govuk-tabs__list-item">`)'
         });
-        this.$tabList = i, this.$tabListItems = s, this.setupResponsiveChecks()
+        this.$tabList = i, this.$tabListItems = n, this.setupResponsiveChecks()
     }
     setupResponsiveChecks() {
-        this.mql = window.matchMedia("(min-width: 40.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => {
-            this.checkMode()
-        })) : this.mql.addListener((() => {
-            this.checkMode()
-        })), this.checkMode()
+        this.mql = window.matchMedia("(min-width: 40.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => this.checkMode())) : this.mql.addListener((() => this.checkMode())), this.checkMode()
     }
     checkMode() {
-        this.mql && this.mql.matches ? this.setup() : this.teardown()
+        var t;
+        null != (t = this.mql) && t.matches ? this.setup() : this.teardown()
     }
     setup() {
+        var t;
         this.$tabList.setAttribute("role", "tablist"), this.$tabListItems.forEach((t => {
             t.setAttribute("role", "presentation")
         })), this.$tabs.forEach((t => {
             this.setAttributes(t), t.addEventListener("click", this.boundTabClick, !0), t.addEventListener("keydown", this.boundTabKeydown, !0), this.hideTab(t)
         }));
-        const t = this.getTab(window.location.hash) || this.$tabs[0];
-        this.showTab(t), window.addEventListener("hashchange", this.boundOnHashChange, !0)
+        const e = null != (t = this.getTab(window.location.hash)) ? t : this.$tabs[0];
+        this.showTab(e), window.addEventListener("hashchange", this.boundOnHashChange, !0)
     }
     teardown() {
         this.$tabList.removeAttribute("role"), this.$tabListItems.forEach((t => {
@@ -893,7 +897,7 @@ class Tabs extends GOVUKFrontendComponent {
     }
     activateNextTab() {
         const t = this.getCurrentTab();
-        if (!t || !t.parentElement) return;
+        if (null == t || !t.parentElement) return;
         const e = t.parentElement.nextElementSibling;
         if (!e) return;
         const i = e.querySelector("a.govuk-tabs__tab");
@@ -901,7 +905,7 @@ class Tabs extends GOVUKFrontendComponent {
     }
     activatePreviousTab() {
         const t = this.getCurrentTab();
-        if (!t || !t.parentElement) return;
+        if (null == t || !t.parentElement) return;
         const e = t.parentElement.previousElementSibling;
         if (!e) return;
         const i = e.querySelector("a.govuk-tabs__tab");
@@ -931,8 +935,9 @@ class Tabs extends GOVUKFrontendComponent {
 }
 
 function initAll(t) {
+    var e;
     if (t = void 0 !== t ? t : {}, !isSupported()) return void console.log(new SupportError);
-    const e = [
+    const i = [
             [Accordion, t.accordion],
             [Button, t.button],
             [CharacterCount, t.characterCount],
@@ -945,13 +950,13 @@ function initAll(t) {
             [SkipLink],
             [Tabs]
         ],
-        i = t.scope || document;
-    e.forEach((([t, e]) => {
-        i.querySelectorAll(`[data-module="${t.moduleName}"]`).forEach((i => {
+        n = null != (e = t.scope) ? e : document;
+    i.forEach((([t, e]) => {
+        n.querySelectorAll(`[data-module="${t.moduleName}"]`).forEach((i => {
             try {
                 "defaults" in t ? new t(i, e) : new t(i)
-            } catch (s) {
-                console.log(s)
+            } catch (n) {
+                console.log(n)
             }
         }))
     }))
@@ -971,4 +976,4 @@ export {
     Tabs,
     initAll,
     version
-}; //# sourceMappingURL=govuk-frontend-5.0.0-beta.1.min.js.map
\ No newline at end of file
+}; //# sourceMappingURL=govuk-frontend-5.0.0-beta.2.min.js.map
\ No newline at end of file

Action run for a45c763

Copy link

Other changes to dist

diff --git a/dist/VERSION.txt b/dist/VERSION.txt
index 9e25fc0ae..1ece2a2b5 100644
--- a/dist/VERSION.txt
+++ b/dist/VERSION.txt
@@ -1 +1 @@
-5.0.0-beta.1
+5.0.0-beta.2
diff --git a/dist/assets/images/favicon.svg b/dist/assets/images/favicon.svg
new file mode 100644
index 000000000..a420392d2
--- /dev/null
+++ b/dist/assets/images/favicon.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+  <path fill="#000000" d="M0 0h32v32H0z"/>
+  <path fill="#ffffff" d="M7.28 11.44c.77.32 1.64-.05 1.95-.8.31-.76-.05-1.64-.81-1.95-.75-.31-1.63.06-1.94.82-.31.76.05 1.63.8 1.94M3.9 13.42c.77.32 1.64-.05 1.95-.8.31-.76-.05-1.64-.81-1.95-.75-.31-1.63.06-1.94.82-.31.76.05 1.63.8 1.94M2.91 17.18c.77.32 1.64-.05 1.95-.8.31-.76-.05-1.64-.81-1.95-.75-.31-1.63.06-1.94.82-.31.76.05 1.63.8 1.94M11.05 12.63c.77.32 1.64-.05 1.95-.8.31-.76-.05-1.64-.81-1.95-.75-.31-1.63.06-1.94.82-.31.76.05 1.63.8 1.94M24.72 11.44a1.49 1.49 0 0 1-1.95-.8c-.31-.76.05-1.64.81-1.95.75-.31 1.63.06 1.94.82.31.76-.05 1.63-.8 1.94M28.1 13.42a1.49 1.49 0 0 1-1.95-.8c-.31-.76.05-1.64.81-1.95.75-.31 1.63.06 1.94.82.31.76-.05 1.63-.8 1.94M29.09 17.18a1.49 1.49 0 0 1-1.95-.8c-.31-.76.05-1.64.81-1.95.75-.31 1.63.06 1.94.82.31.76-.05 1.63-.8 1.94M20.95 12.63a1.49 1.49 0 0 1-1.95-.8c-.31-.76.05-1.64.81-1.95.75-.31 1.63.06 1.94.82.31.76-.05 1.63-.8 1.94M16.79 8.78l1.89.99V6.99l-1.88.6a.656.656 0 0 0-.18-.19s.76-2.39.76-2.39h-2.72l.76 2.39c-.07.06-.13.12-.18.19S13.36 7 13.36 7v2.78l1.89-.99c.06.08.12.14.2.2l-1.08 3.27v.01c-.05.16-.08.34-.08.52 0 .88.65 1.61 1.5 1.74h.04c.07 0 .15.02.22.02s.15 0 .22-.02h.04c.85-.13 1.5-.86 1.5-1.74 0-.18-.03-.35-.08-.52v-.01l-1.08-3.27c.07-.06.14-.12.2-.19M16 24.77c3.58 0 6.97.24 9.99.67.86-3.61 1.9-5.67 2.98-7.14l-2.03-.72c.2 1.03.23 1.51 0 2.17-.33-.33-.65-.93-.9-1.85l-.98 3.27c.6-.41 1.06-.68 1.59-.69-.94 2.02-2.1 2.53-2.86 2.39-.92-.17-1.35-.99-1.21-1.69.21-.99 1.23-1.25 1.71-.1.91-1.85-.63-2.43-1.62-1.88 1.52-1.52 1.7-2.87.47-4.51-1.71 1.31-1.73 2.61-.96 4.43-1-1.15-2.56-.53-2 1.32.72-1.12 1.68-.41 1.53.65-.13.92-1.35 1.67-2.87 1.54-2.18-.2-2.31-1.7-2.36-2.95.54-.1 1.5.4 2.32 1.55l.3-3.47c-.89.93-1.71 1.11-2.61 1.14.3-.94 1.68-2.47 1.68-2.47h-4.33s1.38 1.54 1.68 2.47c-.9-.03-1.72-.21-2.61-1.14l.3 3.47c.82-1.15 1.79-1.65 2.32-1.55-.05 1.24-.18 2.75-2.36 2.95-1.52.13-2.74-.61-2.87-1.54-.15-1.06.81-1.76 1.53-.65.56-1.85-1-2.47-2-1.32.77-1.83.75-3.12-.96-4.43-1.23 1.63-1.06 2.99.47 4.51-.99-.55-2.53.03-1.62 1.88.47-1.15 1.49-.89 1.71.1.14.7-.28 1.52-1.21 1.69-.76.14-1.93-.38-2.86-2.39.53.01.99.28 1.59.69l-.98-3.27c-.25.92-.56 1.52-.9 1.85-.23-.66-.19-1.14 0-2.17l-2.03.72c1.08 1.47 2.12 3.54 2.98 7.14 3.02-.43 6.41-.67 9.99-.67"/>
+</svg>
\ No newline at end of file
diff --git a/dist/assets/images/govuk-apple-touch-icon-152x152.png b/dist/assets/images/govuk-apple-touch-icon-152x152.png
deleted file mode 100755
index 4804b9ac5..000000000
Binary files a/dist/assets/images/govuk-apple-touch-icon-152x152.png and /dev/null differ
diff --git a/dist/assets/images/govuk-apple-touch-icon-167x167.png b/dist/assets/images/govuk-apple-touch-icon-167x167.png
deleted file mode 100755
index a4cbdbe3d..000000000
Binary files a/dist/assets/images/govuk-apple-touch-icon-167x167.png and /dev/null differ
diff --git a/dist/assets/images/govuk-apple-touch-icon-180x180.png b/dist/assets/images/govuk-apple-touch-icon-180x180.png
deleted file mode 100755
index 3b9475f60..000000000
Binary files a/dist/assets/images/govuk-apple-touch-icon-180x180.png and /dev/null differ
diff --git a/dist/assets/images/govuk-apple-touch-icon.png b/dist/assets/images/govuk-apple-touch-icon.png
deleted file mode 100755
index d84eac206..000000000
Binary files a/dist/assets/images/govuk-apple-touch-icon.png and /dev/null differ
diff --git a/dist/assets/images/govuk-icon-180.png b/dist/assets/images/govuk-icon-180.png
new file mode 100644
index 000000000..c9f597874
Binary files /dev/null and b/dist/assets/images/govuk-icon-180.png differ
diff --git a/dist/assets/images/govuk-icon-192.png b/dist/assets/images/govuk-icon-192.png
new file mode 100644
index 000000000..cf4acb736
Binary files /dev/null and b/dist/assets/images/govuk-icon-192.png differ
diff --git a/dist/assets/images/govuk-icon-512.png b/dist/assets/images/govuk-icon-512.png
new file mode 100644
index 000000000..e201301e4
Binary files /dev/null and b/dist/assets/images/govuk-icon-512.png differ
diff --git a/dist/assets/images/govuk-icon-mask.svg b/dist/assets/images/govuk-icon-mask.svg
new file mode 100644
index 000000000..f9acce6b7
--- /dev/null
+++ b/dist/assets/images/govuk-icon-mask.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 132 97">
+  <path fill="#000000" d="M25 30.2C28.5 31.7 32.7 30 34.1 26.5 35.6 22.9 33.9 18.7 30.2 17.3 26.6 15.9 22.6 17.6 21.1 21.2 19.7 24.7 21.4 28.7 25 30.2L25 30.2ZM9 39.5C12.6 41 16.8 39.3 18.2 35.8 19.7 32.2 18 28 14.3 26.7 10.7 25.2 6.7 26.9 5.2 30.5 3.8 34 5.5 38 9 39.5L9 39.5ZM4.4 57.2C7.9 58.7 12.1 57 13.5 53.4 15 49.8 13.3 45.7 9.6 44.3 6.1 42.8 2 44.6 0.5 48.1 -0.9 51.6 0.8 55.7 4.4 57.2L4.4 57.2ZM42.7 35.8C46.2 37.3 50.4 35.6 51.8 32 53.3 28.4 51.6 24.3 47.9 22.9 44.3 21.4 40.3 23.2 38.8 26.7 37.5 30.3 39.2 34.4 42.7 35.8L42.7 35.8ZM107.1 30.2C103.5 31.7 99.3 30 98 26.5 96.5 22.9 98.2 18.7 101.8 17.3 105.4 15.9 109.5 17.6 111 21.2 112.3 24.7 110.6 28.7 107.1 30.2L107.1 30.2ZM123 39.5C119.4 41 115.3 39.3 113.9 35.8 112.4 32.2 114.1 28 117.6 26.7 121.2 25.2 125.3 26.9 126.8 30.5 128.3 34 126.5 38 123 39.5L123 39.5ZM127.7 57.2C124.1 58.7 119.9 57 118.5 53.4 117 49.8 118.7 45.7 122.4 44.3 126 42.8 130.1 44.6 131.6 48.1 132.9 51.6 131.2 55.7 127.7 57.2L127.7 57.2ZM89.3 35.8C85.7 37.3 81.5 35.6 80.1 32 78.7 28.4 80.3 24.3 84 22.9 87.6 21.4 91.7 23.2 93.2 26.7 94.6 30.3 92.9 34.4 89.3 35.8L89.3 35.8ZM69.7 17.7L69.7 17.7 78.6 22.4 78.6 9.3 69.7 12.1 69.7 12.1C69.5 11.8 69.2 11.5 68.8 11.2L68.8 11.2 72.4 0 66 0 59.6 0 63.1 11.2 63.1 11.2C62.8 11.5 62.5 11.7 62.2 12.1L62.2 12.1 53.4 9.3 53.4 22.4 62.2 17.7 62.2 17.7C62.5 18 62.8 18.4 63.1 18.6L58.1 34C58.1 34 58.1 34 58.1 34.1L58.1 34.1 58.1 34.1C57.9 34.9 57.7 35.7 57.7 36.5 57.7 40.6 60.8 44 64.7 44.6L64.9 44.6C65.2 44.6 65.6 44.7 65.9 44.7 66.3 44.7 66.6 44.7 66.9 44.6L67.1 44.6C71.1 44 74.2 40.5 74.2 36.5 74.2 35.7 74.1 34.8 73.8 34.1L73.8 34.1 73.8 34.1C73.8 34.1 73.8 34.1 73.8 34L68.7 18.6C69.1 18.4 69.4 18 69.7 17.7L69.7 17.7ZM66 92.8C82.9 92.8 98.8 93.9 113.1 96 117.1 79.1 122 69.3 127.1 62.5L117.5 59.1C118.5 64 118.6 66.3 117.5 69.3 116 67.9 114.5 65 113.3 60.6L108.6 76C111.4 74 113.6 72.8 116.1 72.7 111.7 82.1 106.1 84.6 102.5 83.9 98.2 83.1 96.2 79.3 96.9 76 97.9 71.3 102.6 70.1 104.9 75.5 109.2 66.8 101.9 64.1 97.3 66.7 104.4 59.5 105.2 53.2 99.4 45.6 91.4 51.7 91.3 57.9 94.9 66.4 90.2 61 82.8 63.9 85.4 72.6 88.8 67.4 93.3 70.6 92.6 75.7 92 80 86.2 83.5 79.1 82.9 68.8 82 68.2 74.9 67.9 69.1 70.4 68.6 75 70.9 78.9 76.4L80.2 60C76.1 64.4 72.2 65.3 67.9 65.4 69.3 61 75.9 53.8 75.9 53.8L66.4 53.8 66.4 53.8 66.4 53.8 55.5 53.8C55.5 53.8 61.9 61 63.4 65.4 59.2 65.3 55.4 64.4 51.1 60L52.5 76.4C56.4 70.9 61 68.7 63.4 69.1 63.1 74.9 62.5 81.9 52.3 82.9 45.1 83.5 39.4 80 38.8 75.7 38.1 70.7 42.6 67.4 45.9 72.6 48.6 63.9 41.3 61 36.5 66.4 40.2 57.9 40.1 51.7 31.9 45.6 26.1 53.2 26.9 59.5 34.1 66.7 29.4 64.1 22.2 66.8 26.4 75.5 28.7 70 33.5 71.3 34.5 76 35.2 79.3 33.2 83.1 28.8 83.9 25.3 84.6 19.8 82.1 15.3 72.7 17.8 72.8 20 74 22.8 76L18.1 60.6C16.9 65 15.4 67.8 13.8 69.3 12.7 66.3 12.9 64 13.8 59.1L4.3 62.5C9.3 69.4 14.2 79.2 18.3 96 33.1 93.9 49.1 92.8 66 92.8L66 92.8Z"/>
+</svg>
diff --git a/dist/assets/images/govuk-mask-icon.svg b/dist/assets/images/govuk-mask-icon.svg
deleted file mode 100644
index d7dc2bbd0..000000000
--- a/dist/assets/images/govuk-mask-icon.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="132" height="97" viewBox="0 0 132 97" version="1.1">
-  <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-    <g fill="#000000">
-      <path d="M25 30.2C28.5 31.7 32.7 30 34.1 26.5 35.6 22.9 33.9 18.7 30.2 17.3 26.6 15.9 22.6 17.6 21.1 21.2 19.7 24.7 21.4 28.7 25 30.2L25 30.2ZM9 39.5C12.6 41 16.8 39.3 18.2 35.8 19.7 32.2 18 28 14.3 26.7 10.7 25.2 6.7 26.9 5.2 30.5 3.8 34 5.5 38 9 39.5L9 39.5ZM4.4 57.2C7.9 58.7 12.1 57 13.5 53.4 15 49.8 13.3 45.7 9.6 44.3 6.1 42.8 2 44.6 0.5 48.1 -0.9 51.6 0.8 55.7 4.4 57.2L4.4 57.2ZM42.7 35.8C46.2 37.3 50.4 35.6 51.8 32 53.3 28.4 51.6 24.3 47.9 22.9 44.3 21.4 40.3 23.2 38.8 26.7 37.5 30.3 39.2 34.4 42.7 35.8L42.7 35.8ZM107.1 30.2C103.5 31.7 99.3 30 98 26.5 96.5 22.9 98.2 18.7 101.8 17.3 105.4 15.9 109.5 17.6 111 21.2 112.3 24.7 110.6 28.7 107.1 30.2L107.1 30.2ZM123 39.5C119.4 41 115.3 39.3 113.9 35.8 112.4 32.2 114.1 28 117.6 26.7 121.2 25.2 125.3 26.9 126.8 30.5 128.3 34 126.5 38 123 39.5L123 39.5ZM127.7 57.2C124.1 58.7 119.9 57 118.5 53.4 117 49.8 118.7 45.7 122.4 44.3 126 42.8 130.1 44.6 131.6 48.1 132.9 51.6 131.2 55.7 127.7 57.2L127.7 57.2ZM89.3 35.8C85.7 37.3 81.5 35.6 80.1 32 78.7 28.4 80.3 24.3 84 22.9 87.6 21.4 91.7 23.2 93.2 26.7 94.6 30.3 92.9 34.4 89.3 35.8L89.3 35.8ZM69.7 17.7L69.7 17.7 78.6 22.4 78.6 9.3 69.7 12.1 69.7 12.1C69.5 11.8 69.2 11.5 68.8 11.2L68.8 11.2 72.4 0 66 0 59.6 0 63.1 11.2 63.1 11.2C62.8 11.5 62.5 11.7 62.2 12.1L62.2 12.1 53.4 9.3 53.4 22.4 62.2 17.7 62.2 17.7C62.5 18 62.8 18.4 63.1 18.6L58.1 34C58.1 34 58.1 34 58.1 34.1L58.1 34.1 58.1 34.1C57.9 34.9 57.7 35.7 57.7 36.5 57.7 40.6 60.8 44 64.7 44.6L64.9 44.6C65.2 44.6 65.6 44.7 65.9 44.7 66.3 44.7 66.6 44.7 66.9 44.6L67.1 44.6C71.1 44 74.2 40.5 74.2 36.5 74.2 35.7 74.1 34.8 73.8 34.1L73.8 34.1 73.8 34.1C73.8 34.1 73.8 34.1 73.8 34L68.7 18.6C69.1 18.4 69.4 18 69.7 17.7L69.7 17.7ZM66 92.8C82.9 92.8 98.8 93.9 113.1 96 117.1 79.1 122 69.3 127.1 62.5L117.5 59.1C118.5 64 118.6 66.3 117.5 69.3 116 67.9 114.5 65 113.3 60.6L108.6 76C111.4 74 113.6 72.8 116.1 72.7 111.7 82.1 106.1 84.6 102.5 83.9 98.2 83.1 96.2 79.3 96.9 76 97.9 71.3 102.6 70.1 104.9 75.5 109.2 66.8 101.9 64.1 97.3 66.7 104.4 59.5 105.2 53.2 99.4 45.6 91.4 51.7 91.3 57.9 94.9 66.4 90.2 61 82.8 63.9 85.4 72.6 88.8 67.4 93.3 70.6 92.6 75.7 92 80 86.2 83.5 79.1 82.9 68.8 82 68.2 74.9 67.9 69.1 70.4 68.6 75 70.9 78.9 76.4L80.2 60C76.1 64.4 72.2 65.3 67.9 65.4 69.3 61 75.9 53.8 75.9 53.8L66.4 53.8 66.4 53.8 66.4 53.8 55.5 53.8C55.5 53.8 61.9 61 63.4 65.4 59.2 65.3 55.4 64.4 51.1 60L52.5 76.4C56.4 70.9 61 68.7 63.4 69.1 63.1 74.9 62.5 81.9 52.3 82.9 45.1 83.5 39.4 80 38.8 75.7 38.1 70.7 42.6 67.4 45.9 72.6 48.6 63.9 41.3 61 36.5 66.4 40.2 57.9 40.1 51.7 31.9 45.6 26.1 53.2 26.9 59.5 34.1 66.7 29.4 64.1 22.2 66.8 26.4 75.5 28.7 70 33.5 71.3 34.5 76 35.2 79.3 33.2 83.1 28.8 83.9 25.3 84.6 19.8 82.1 15.3 72.7 17.8 72.8 20 74 22.8 76L18.1 60.6C16.9 65 15.4 67.8 13.8 69.3 12.7 66.3 12.9 64 13.8 59.1L4.3 62.5C9.3 69.4 14.2 79.2 18.3 96 33.1 93.9 49.1 92.8 66 92.8L66 92.8Z"/>
-    </g>
-  </g>
-</svg>
diff --git a/dist/assets/manifest.json b/dist/assets/manifest.json
new file mode 100644
index 000000000..0d183a2a5
--- /dev/null
+++ b/dist/assets/manifest.json
@@ -0,0 +1,39 @@
+{
+  "icons": [
+    {
+      "src": "images/favicon.ico",
+      "type": "image/x-icon",
+      "sizes": "48x48"
+    },
+    {
+      "src": "images/favicon.svg",
+      "type": "image/svg+xml",
+      "sizes": "150x150",
+      "purpose": "any"
+    },
+    {
+      "src": "images/govuk-icon-180.png",
+      "type": "image/png",
+      "sizes": "180x180",
+      "purpose": "maskable"
+    },
+    {
+      "src": "images/govuk-icon-192.png",
+      "type": "image/png",
+      "sizes": "192x192",
+      "purpose": "maskable"
+    },
+    {
+      "src": "images/govuk-icon-512.png",
+      "type": "image/png",
+      "sizes": "512x512",
+      "purpose": "maskable"
+    },
+    {
+      "src": "images/govuk-icon-mask.svg",
+      "type": "image/svg+xml",
+      "sizes": "150x150",
+      "purpose": "monochrome"
+    }
+  ]
+}

Action run for a45c763

Copy link
Member

@romaricpascal romaricpascal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

📋 Stats

File sizes

File Size
dist/govuk-frontend-5.0.0-beta.2.min.css 113.65 KiB
dist/govuk-frontend-5.0.0-beta.2.min.js 38.28 KiB
packages/govuk-frontend/dist/govuk/all.bundle.js 77.78 KiB
packages/govuk-frontend/dist/govuk/all.bundle.mjs 73.09 KiB
packages/govuk-frontend/dist/govuk/all.mjs 3.86 KiB
packages/govuk-frontend/dist/govuk/govuk-frontend-component.mjs 359 B
packages/govuk-frontend/dist/govuk/govuk-frontend.min.css 113.64 KiB
packages/govuk-frontend/dist/govuk/govuk-frontend.min.js 38.27 KiB
packages/govuk-frontend/dist/govuk/i18n.mjs 5.38 KiB

Modules

File Size
all.mjs 69.41 KiB
components/accordion/accordion.mjs 21.67 KiB
components/button/button.mjs 4.7 KiB
components/character-count/character-count.mjs 21.24 KiB
components/checkboxes/checkboxes.mjs 5.83 KiB
components/error-summary/error-summary.mjs 6.09 KiB
components/exit-this-page/exit-this-page.mjs 16.08 KiB
components/header/header.mjs 3.9 KiB
components/notification-banner/notification-banner.mjs 4.54 KiB
components/radios/radios.mjs 4.83 KiB
components/skip-link/skip-link.mjs 3.81 KiB
components/tabs/tabs.mjs 9.66 KiB

View stats and visualisations on the review app


Action run for a45c763

@36degrees 36degrees merged commit ae5772d into main Nov 24, 2023
46 checks passed
@36degrees 36degrees deleted the release-5.0.0-beta.2 branch November 24, 2023 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants