hof 22.9.1 → 22.11.0-frontend-v4-beta.1

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 (34) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +30 -0
  3. package/components/date/templates/date.html +1 -1
  4. package/config/hof-defaults.js +7 -1
  5. package/frontend/govuk-template/build/govuk_template.html +69 -22
  6. package/frontend/govuk-template/govuk_template_generated.html +149 -0
  7. package/frontend/template-mixins/mixins/template-mixins.js +5 -4
  8. package/frontend/template-mixins/partials/forms/checkbox.html +5 -1
  9. package/frontend/template-mixins/partials/forms/input-text-date.html +2 -1
  10. package/frontend/template-mixins/partials/forms/input-text-group.html +1 -1
  11. package/frontend/template-mixins/partials/forms/textarea-group.html +1 -1
  12. package/frontend/template-partials/translations/src/en/cookies.json +2 -2
  13. package/frontend/template-partials/views/cookies.html +6 -6
  14. package/frontend/template-partials/views/layout.html +3 -9
  15. package/frontend/template-partials/views/partials/cookie-banner.html +50 -28
  16. package/frontend/template-partials/views/partials/navigation.html +2 -2
  17. package/frontend/themes/gov-uk/client-js/cookieSettings.js +36 -24
  18. package/frontend/themes/gov-uk/styles/_cookie-banner.scss +0 -3
  19. package/lib/settings.js +2 -0
  20. package/package.json +6 -7
  21. package/sandbox/apps/sandbox/translations/en/default.json +245 -0
  22. package/sandbox/package.json +1 -1
  23. package/sandbox/public/css/app.css +11196 -0
  24. package/sandbox/public/images/icons/icon-caret-left.png +0 -0
  25. package/sandbox/public/images/icons/icon-complete.png +0 -0
  26. package/sandbox/public/images/icons/icon-cross-remove-sign.png +0 -0
  27. package/sandbox/public/js/bundle.js +39258 -0
  28. package/sandbox/yarn.lock +166 -59
  29. package/.editorconfig +0 -10
  30. package/.github/workflows/automate-publish.yml +0 -38
  31. package/.github/workflows/automate-tag.yml +0 -78
  32. package/.istanbul.yml +0 -20
  33. package/codeReviewChecklist.md +0 -22
  34. package/pull_request_template.md +0 -16
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 2025-09-10, Version 22.10.1 (Stable), @dk4g
2
+
3
+ ### Added
4
+ - Added `showCookiesBanner` configuration flag to control cookie banner display
5
+ - Automatically shows banner when `GA_TAG` or `GA_4_TAG` environment variables are present
6
+ - Defaults to `false` when no Google Analytics is configured
7
+ - Can be explicitly controlled via `SHOW_COOKIES_BANNER` environment variable
8
+
9
+ ### Changed
10
+ - Cookie banner now intelligently displays based on GA configuration
11
+ - Improved cookie consent UX by hiding banner when GA is not enabled
12
+ - **Layout template updated**: Projects that override the default `layout` template should update their custom templates to include the new `showCookiesBanner` logic. If you inherit from HOF's layout template, no action is required.
13
+
14
+ ### Migration Notes
15
+ - **Custom Layout Templates**: If your project overrides the default HOF layout template, ensure your custom template includes the cookie banner conditional logic using the new `showCookiesBanner` configuration flag. Check the updated HOF layout template for reference implementation.
16
+
1
17
  ## 2025-09-09, Version 22.9.0 (Stable), @Rhodine-orleans-lindsay
2
18
  ### Fixed
3
19
  - Fixed bug where if text on session-timeout page was not being populated when the browser back button is used.
package/README.md CHANGED
@@ -859,6 +859,36 @@ You can also provide an array of healthcheck URLs with `healthcheckUrls`,
859
859
  should you not want to throw a Cookies required error when requesting the app with specific URLs.
860
860
  Kubernetes healthcheck URLs are provided as defaults if no overrides are supplied.
861
861
 
862
+ ### Cookie Banner Control
863
+
864
+ > **Available from version 22.9.1**
865
+
866
+ | Variable | Description | Default | Example |
867
+ |----------|-------------|---------|---------|
868
+ | `SHOW_COOKIES_BANNER` | Controls whether the cookies banner is displayed | Auto-detected based on GA tags | `true`, `false` |
869
+
870
+ **Behavior:**
871
+ - If `SHOW_COOKIES_BANNER` is explicitly set, that value is used
872
+ - If not set, banner is automatically shown when `GA_TAG` or `GA_4_TAG` is present
873
+ - If no GA tags are configured, banner is hidden by default
874
+
875
+ **Examples:**
876
+ ```bash
877
+ # Explicitly show banner regardless of GA configuration
878
+ SHOW_COOKIES_BANNER=true
879
+
880
+ # Hide banner even when GA tags are present
881
+ SHOW_COOKIES_BANNER=false
882
+ GA_TAG=UA-12345678-1
883
+
884
+ # Auto-detect (recommended) - shows banner when GA is configured
885
+ GA_TAG=UA-12345678-1 # Banner will show
886
+ GA_4_TAG=G-XXXXXXXXXX # Banner will show
887
+ # (no GA tags) # Banner will be hidden
888
+ ```
889
+
890
+ **Note:** If you have a custom layout template that overrides the default HOF layout, you'll need to update it to include the new `showCookiesBanner` logic. Projects that inherit from the default HOF layout template will automatically receive this functionality.
891
+
862
892
  ## Service Unavailable
863
893
  Allows a service to be paused when required and then resumed. It ensures that anyone using the service that lands on any part of the form is diverted to a "Service Unavailable" page which will communicate to the user that the service is not available at this time.
864
894
 
@@ -6,7 +6,7 @@
6
6
  {{#isPageHeading}}</h1>{{/isPageHeading}}
7
7
  </legend>
8
8
  {{#hint}}
9
- <span id="{{key}}-hint" class="govuk-hint">{{{hint}}}</span>
9
+ <div id="{{key}}-hint" class="govuk-hint">{{{hint}}}</div>
10
10
  {{/hint}}
11
11
  {{#error}}
12
12
  <p id="{{key}}-error" class="govuk-error-message">
@@ -25,8 +25,14 @@ const defaults = {
25
25
  host: process.env.HOST || '0.0.0.0',
26
26
  port: process.env.PORT || '8080',
27
27
  env: process.env.NODE_ENV || 'development',
28
- gaTagId: process.env.GA_TAG || 'Test-GA-Tag',
28
+ gaTagId: process.env.GA_TAG,
29
29
  ga4TagId: process.env.GA_4_TAG,
30
+ showCookiesBanner: parseBoolean(
31
+ process.env.SHOW_COOKIES_BANNER,
32
+ Boolean(process.env.GA_TAG || process.env.GA_4_TAG),
33
+ 'SHOW_COOKIES_BANNER'
34
+ ),
35
+ hasGoogleAnalytics: Boolean(process.env.GA_TAG || process.env.GA_4_TAG),
30
36
  // added to allow support for multiple HOF forms using GTM to customize how they track page views
31
37
  gtm: {
32
38
  tagId: process.env.GTM_TAG || false,
@@ -1,7 +1,7 @@
1
1
 
2
2
  <!DOCTYPE html>
3
3
  <!--[if lt IE 9]><html class="lte-ie8" lang="{{ htmlLang }}"><![endif]-->
4
- <!--[if gt IE 8]><!--><html lang="{{ htmlLang }}" class="govuk-template"><!--<![endif]-->
4
+ <!--[if gt IE 8]><!--><html lang="{{ htmlLang }}" class="govuk-template--rebranded"><!--<![endif]-->
5
5
  <head>
6
6
  <meta charset="utf-8" />
7
7
  <title>{{ pageTitle }}</title>
@@ -23,9 +23,8 @@
23
23
  <meta property="og:image" content="{{assetPath}}images/opengraph-image.png">
24
24
  </head>
25
25
 
26
- <body class="{{ bodyClasses }} govuk-template__body js-enabled" >
27
- <script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
28
-
26
+ <body class="{{ bodyClasses }} govuk-template__body js-enabled" >
27
+ <script>document.body.className += ' js-enabled' + ('noModule' in HTMLScriptElement.prototype ? ' govuk-frontend-supported' : '');</script>
29
28
 
30
29
 
31
30
  <div id="global-cookie-message" class="gem-c-cookie-banner govuk-clearfix" data-module="cookie-banner" role="region" aria-label="cookie banner" data-nosnippet="">
@@ -41,17 +40,36 @@
41
40
  <a href="{{{ homepageUrl }}}" title="{{ logoLinkTitle }}" id="logo" class="govuk-header__link govuk-header__link--homepage" target="_blank" data-module="track-click" data-track-category="homeLinkClicked" data-track-action="homeHeader">
42
41
  <span class="govuk-header__logotype">
43
42
  <!--[if gt IE 8]><!-->
44
- <svg aria-hidden="true" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg\" viewBox="0 0 32 30" height="30" width="32">
45
- <path fill="currentColor" fill-rule="evenodd" d="M22.6 10.4c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4m-5.9 6.7c-.9.4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4m10.8-3.7c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s0 2-1 2.4m3.3 4.8c-1 .4-2-.1-2.4-1-.4-.9.1-2 1-2.4.9-.4 2 .1 2.4 1s-.1 2-1 2.4M17 4.7l2.3 1.2V2.5l-2.3.7-.2-.2.9-3h-3.4l.9 3-.2.2c-.1.1-2.3-.7-2.3-.7v3.4L15 4.7c.1.1.1.2.2.2l-1.3 4c-.1.2-.1.4-.1.6 0 1.1.8 2 1.9 2.2h.7c1-.2 1.9-1.1 1.9-2.1 0-.2 0-.4-.1-.6l-1.3-4c-.1-.2 0-.2.1-.3m-7.6 5.7c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s0 2 1 2.4m-5 3c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s.1 2 1 2.4m-3.2 4.8c.9.4 2-.1 2.4-1 .4-.9-.1-2-1-2.4-.9-.4-2 .1-2.4 1s0 2 1 2.4m14.8 11c4.4 0 8.6.3 12.3.8 1.1-4.5 2.4-7 3.7-8.8l-2.5-.9c.2 1.3.3 1.9 0 2.7-.4-.4-.8-1.1-1.1-2.3l-1.2 4c.7-.5 1.3-.8 2-.9-1.1 2.5-2.6 3.1-3.5 3-1.1-.2-1.7-1.2-1.5-2.1.3-1.2 1.5-1.5 2.1-.1 1.1-2.3-.8-3-2-2.3 1.9-1.9 2.1-3.5.6-5.6-2.1 1.6-2.1 3.2-1.2 5.5-1.2-1.4-3.2-.6-2.5 1.6.9-1.4 2.1-.5 1.9.8-.2 1.1-1.7 2.1-3.5 1.9-2.7-.2-2.9-2.1-2.9-3.6.7-.1 1.9.5 2.9 1.9l.4-4.3c-1.1 1.1-2.1 1.4-3.2 1.4.4-1.2 2.1-3 2.1-3h-5.4s1.7 1.9 2.1 3c-1.1 0-2.1-.2-3.2-1.4l.4 4.3c1-1.4 2.2-2 2.9-1.9-.1 1.5-.2 3.4-2.9 3.6-1.9.2-3.4-.8-3.5-1.9-.2-1.3 1-2.2 1.9-.8.7-2.3-1.2-3-2.5-1.6.9-2.2.9-3.9-1.2-5.5-1.5 2-1.3 3.7.6 5.6-1.2-.7-3.1 0-2 2.3.6-1.4 1.8-1.1 2.1.1.2.9-.3 1.9-1.5 2.1-.9.2-2.4-.5-3.5-3 .6 0 1.2.3 2 .9l-1.2-4c-.3 1.1-.7 1.9-1.1 2.3-.3-.8-.2-1.4 0-2.7l-2.9.9C1.3 23 2.6 25.5 3.7 30c3.7-.5 7.9-.8 12.3-.8"></path>
46
- </svg>
43
+ <svg
44
+ focusable="false"
45
+ role="img"
46
+ xmlns="http://www.w3.org/2000/svg"
47
+ viewBox="0 0 324 60"
48
+ height="30"
49
+ width="162"
50
+ fill="currentcolor"
51
+ class="govuk-header__logotype"
52
+ aria-label="GOV.UK">
53
+ <title>GOV.UK</title>
54
+ <g>
55
+ <circle cx="20" cy="17.6" r="3.7"></circle>
56
+ <circle cx="10.2" cy="23.5" r="3.7"></circle>
57
+ <circle cx="3.7" cy="33.2" r="3.7"></circle>
58
+ <circle cx="31.7" cy="30.6" r="3.7"></circle>
59
+ <circle cx="43.3" cy="17.6" r="3.7"></circle>
60
+ <circle cx="53.2" cy="23.5" r="3.7"></circle>
61
+ <circle cx="59.7" cy="33.2" r="3.7"></circle>
62
+ <circle cx="31.7" cy="30.6" r="3.7"></circle>
63
+ <path d="M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z"></path>
64
+ </g>
65
+ <circle class="govuk-logo-dot" cx="226" cy="36" r="7.3"></circle>
66
+ <path d="M93.94 41.25c.4 1.81 1.2 3.21 2.21 4.62 1 1.4 2.21 2.41 3.61 3.21s3.21 1.2 5.22 1.2 3.61-.4 4.82-1c1.4-.6 2.41-1.4 3.21-2.41.8-1 1.4-2.01 1.61-3.01s.4-2.01.4-3.01v.14h-10.86v-7.02h20.07v24.08h-8.03v-5.56c-.6.8-1.38 1.61-2.19 2.41-.8.8-1.81 1.2-2.81 1.81-1 .4-2.21.8-3.41 1.2s-2.41.4-3.81.4a18.56 18.56 0 0 1-14.65-6.63c-1.6-2.01-3.01-4.41-3.81-7.02s-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83a20.45 20.45 0 0 1 19.46-13.65c3.21 0 4.01.2 5.82.8 1.81.4 3.61 1.2 5.02 2.01 1.61.8 2.81 2.01 4.01 3.21s2.21 2.61 2.81 4.21l-7.63 4.41c-.4-1-1-1.81-1.61-2.61-.6-.8-1.4-1.4-2.21-2.01-.8-.6-1.81-1-2.81-1.4-1-.4-2.21-.4-3.61-.4-2.01 0-3.81.4-5.22 1.2-1.4.8-2.61 1.81-3.61 3.21s-1.61 2.81-2.21 4.62c-.4 1.81-.6 3.71-.6 5.42s.8 5.22.8 5.22Zm57.8-27.9c3.21 0 6.22.6 8.63 1.81 2.41 1.2 4.82 2.81 6.62 4.82S170.2 24.39 171 27s1.4 5.62 1.4 8.83-.4 6.02-1.4 8.83-2.41 5.02-4.01 7.02-4.01 3.61-6.62 4.82-5.42 1.81-8.63 1.81-6.22-.6-8.63-1.81-4.82-2.81-6.42-4.82-3.21-4.41-4.01-7.02-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83 2.41-5.02 4.01-7.02 4.01-3.61 6.42-4.82 5.42-1.81 8.63-1.81Zm0 36.73c1.81 0 3.61-.4 5.02-1s2.61-1.81 3.61-3.01 1.81-2.81 2.21-4.41c.4-1.81.8-3.61.8-5.62 0-2.21-.2-4.21-.8-6.02s-1.2-3.21-2.21-4.62c-1-1.2-2.21-2.21-3.61-3.01s-3.21-1-5.02-1-3.61.4-5.02 1c-1.4.8-2.61 1.81-3.61 3.01s-1.81 2.81-2.21 4.62c-.4 1.81-.8 3.61-.8 5.62 0 2.41.2 4.21.8 6.02.4 1.81 1.2 3.21 2.21 4.41s2.21 2.21 3.61 3.01c1.4.8 3.21 1 5.02 1Zm36.32 7.96-12.24-44.15h9.83l8.43 32.77h.4l8.23-32.77h9.83L200.3 58.04h-12.24Zm74.14-7.96c2.18 0 3.51-.6 3.51-.6 1.2-.6 2.01-1 2.81-1.81s1.4-1.81 1.81-2.81a13 13 0 0 0 .8-4.01V13.9h8.63v28.15c0 2.41-.4 4.62-1.4 6.62-.8 2.01-2.21 3.61-3.61 5.02s-3.41 2.41-5.62 3.21-4.62 1.2-7.02 1.2-5.02-.4-7.02-1.2c-2.21-.8-4.01-1.81-5.62-3.21s-2.81-3.01-3.61-5.02-1.4-4.21-1.4-6.62V13.9h8.63v26.95c0 1.61.2 3.01.8 4.01.4 1.2 1.2 2.21 2.01 2.81.8.8 1.81 1.4 2.81 1.81 0 0 1.34.6 3.51.6Zm34.22-36.18v18.92l15.65-18.92h10.82l-15.03 17.32 16.03 26.83h-10.21l-11.44-20.21-5.62 6.22v13.99h-8.83V13.9"></path>
67
+ </svg>
47
68
  <!--<![endif]-->
48
69
  <!--[if IE 8]>
49
70
  <img src="{{ assetPath }}images/govuk-logotype-tudor-crown.png" class="govuk-header__logotype-crown-fallback-image" width="32" height="30" alt="">
50
71
  <![endif]-->
51
72
  </span>
52
- <span class="govuk-header__logotype-text">
53
- {{{ globalHeaderText }}}
54
- </span>
55
73
  </a>
56
74
  </div>
57
75
  {{{ insideHeader }}}
@@ -66,25 +84,54 @@
66
84
 
67
85
  {{{ content }}}
68
86
 
69
- <footer class="govuk-footer" id="footer" role="contentinfo">
70
-
87
+ <footer class="govuk-footer">
71
88
  <div class="govuk-width-container">
72
- {{{ footerTop }}}
73
-
89
+ <svg
90
+ focusable="false"
91
+ role="presentation"
92
+ xmlns="http://www.w3.org/2000/svg"
93
+ viewBox="0 0 64 60"
94
+ height="30"
95
+ width="32"
96
+ fill="currentcolor" class="govuk-footer__crown">
97
+ <g>
98
+ <circle cx="20" cy="17.6" r="3.7" />
99
+ <circle cx="10.2" cy="23.5" r="3.7" />
100
+ <circle cx="3.7" cy="33.2" r="3.7" />
101
+ <circle cx="31.7" cy="30.6" r="3.7" />
102
+ <circle cx="43.3" cy="17.6" r="3.7" />
103
+ <circle cx="53.2" cy="23.5" r="3.7" />
104
+ <circle cx="59.7" cy="33.2" r="3.7" />
105
+ <circle cx="31.7" cy="30.6" r="3.7" />
106
+ <path d="M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z" />
107
+ </g>
108
+ </svg>
74
109
  <div class="govuk-footer__meta">
75
110
  <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
76
- <h2 class="govuk-visually-hidden">Support links</h2>
111
+ <h2 class="govuk-visually-hidden">Support links</h2>
77
112
  {{{ footerSupportLinks }}}
78
-
79
- <svg aria-hidden="true" focusable="false" class="govuk-footer__licence-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 483.2 195.7" height="17" width="41">
80
- <path fill="currentColor" d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"></path>
113
+ <svg
114
+ aria-hidden="true"
115
+ focusable="false"
116
+ class="govuk-footer__licence-logo"
117
+ xmlns="http://www.w3.org/2000/svg"
118
+ viewBox="0 0 483.2 195.7"
119
+ height="17"
120
+ width="41">
121
+ <path
122
+ fill="currentColor"
123
+ d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145" />
81
124
  </svg>
82
-
83
- <span class="govuk-footer__licence-description">{{{ licenceMessage }}}</span>
125
+ <span class="govuk-footer__licence-description">
126
+ {{{ licenceMessage }}}
127
+ </span>
84
128
  </div>
85
-
86
129
  <div class="govuk-footer__meta-item">
87
- <a class="govuk-footer__link govuk-footer__copyright-logo" id="copyright-logo" target="_blank" href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/">{{{ crownCopyrightMessage }}}</a>
130
+ <a
131
+ class="govuk-footer__link govuk-footer__copyright-logo"
132
+ href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/">
133
+ {{{ crownCopyrightMessage }}}
134
+ </a>
88
135
  </div>
89
136
  </div>
90
137
  </div>
@@ -0,0 +1,149 @@
1
+
2
+ <!DOCTYPE html>
3
+ <!--[if lt IE 9]><html class="lte-ie8" lang="{{htmlLang}}"><![endif]-->
4
+ <!--[if gt IE 8]><!--><html lang="{{htmlLang}}" class="govuk-template--rebranded"><!--<![endif]-->
5
+ <head>
6
+ <meta charset="utf-8" />
7
+ <title>{{$pageTitle}}{{/pageTitle}}</title>
8
+ {{$head}}{{/head}}
9
+
10
+ <link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{govukAssetPath}}images/favicon.ico" type="image/x-icon">
11
+ <link rel="mask-icon" href="{{govukAssetPath}}images/govuk-mask-icon.svg" color="#0b0c0c">
12
+ <link rel="apple-touch-icon" sizes="180x180" href="{{govukAssetPath}}images/govuk-apple-touch-icon-180x180.png">
13
+ <link rel="apple-touch-icon" sizes="167x167" href="{{govukAssetPath}}images/govuk-apple-touch-icon-167x167.png">
14
+ <link rel="apple-touch-icon" sizes="152x152" href="{{govukAssetPath}}images/govuk-apple-touch-icon-152x152.png">
15
+ <link rel="apple-touch-icon" href="{{govukAssetPath}}images/govuk-apple-touch-icon.png">
16
+
17
+
18
+ <meta name="theme-color" content="#0b0c0c" />
19
+
20
+ <meta name="viewport" content="width=device-width, initial-scale=1">
21
+
22
+
23
+ <meta property="og:image" content="{{govukAssetPath}}images/opengraph-image.png">
24
+ </head>
25
+
26
+ <body class="{{$bodyClasses}}{{/bodyClasses}} govuk-template__body js-enabled" >
27
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>document.body.className += ' js-enabled' + ('noModule' in HTMLScriptElement.prototype ? ' govuk-frontend-supported' : '');</script>
28
+
29
+
30
+ <div id="global-cookie-message" class="gem-c-cookie-banner govuk-clearfix" data-module="cookie-banner" role="region" aria-label="cookie banner" data-nosnippet="">
31
+ {{$cookieMessage}}{{/cookieMessage}}
32
+ </div>
33
+
34
+ {{$bodyStart}}{{/bodyStart}}
35
+
36
+ <header role="banner" id="govuk-header" class="{{$headerClass}}{{/headerClass}}">
37
+ <div class="govuk-header__container govuk-width-container">
38
+
39
+ <div class="govuk-header__logo">
40
+ <a href="{{$homepageUrl}}https://www.gov.uk{{/homepageUrl}}" title="{{$logoLinkTitle}}Go to the GOV.UK homepage{{/logoLinkTitle}}" id="logo" class="govuk-header__link govuk-header__link--homepage" target="_blank" data-module="track-click" data-track-category="homeLinkClicked" data-track-action="homeHeader">
41
+ <span class="govuk-header__logotype">
42
+ <!--[if gt IE 8]><!-->
43
+ <svg
44
+ focusable="false"
45
+ role="img"
46
+ xmlns="http://www.w3.org/2000/svg"
47
+ viewBox="0 0 324 60"
48
+ height="30"
49
+ width="162"
50
+ fill="currentcolor"
51
+ class="govuk-header__logotype"
52
+ aria-label="GOV.UK">
53
+ <title>GOV.UK</title>
54
+ <g>
55
+ <circle cx="20" cy="17.6" r="3.7"></circle>
56
+ <circle cx="10.2" cy="23.5" r="3.7"></circle>
57
+ <circle cx="3.7" cy="33.2" r="3.7"></circle>
58
+ <circle cx="31.7" cy="30.6" r="3.7"></circle>
59
+ <circle cx="43.3" cy="17.6" r="3.7"></circle>
60
+ <circle cx="53.2" cy="23.5" r="3.7"></circle>
61
+ <circle cx="59.7" cy="33.2" r="3.7"></circle>
62
+ <circle cx="31.7" cy="30.6" r="3.7"></circle>
63
+ <path d="M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z"></path>
64
+ </g>
65
+ <circle class="govuk-logo-dot" cx="226" cy="36" r="7.3"></circle>
66
+ <path d="M93.94 41.25c.4 1.81 1.2 3.21 2.21 4.62 1 1.4 2.21 2.41 3.61 3.21s3.21 1.2 5.22 1.2 3.61-.4 4.82-1c1.4-.6 2.41-1.4 3.21-2.41.8-1 1.4-2.01 1.61-3.01s.4-2.01.4-3.01v.14h-10.86v-7.02h20.07v24.08h-8.03v-5.56c-.6.8-1.38 1.61-2.19 2.41-.8.8-1.81 1.2-2.81 1.81-1 .4-2.21.8-3.41 1.2s-2.41.4-3.81.4a18.56 18.56 0 0 1-14.65-6.63c-1.6-2.01-3.01-4.41-3.81-7.02s-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83a20.45 20.45 0 0 1 19.46-13.65c3.21 0 4.01.2 5.82.8 1.81.4 3.61 1.2 5.02 2.01 1.61.8 2.81 2.01 4.01 3.21s2.21 2.61 2.81 4.21l-7.63 4.41c-.4-1-1-1.81-1.61-2.61-.6-.8-1.4-1.4-2.21-2.01-.8-.6-1.81-1-2.81-1.4-1-.4-2.21-.4-3.61-.4-2.01 0-3.81.4-5.22 1.2-1.4.8-2.61 1.81-3.61 3.21s-1.61 2.81-2.21 4.62c-.4 1.81-.6 3.71-.6 5.42s.8 5.22.8 5.22Zm57.8-27.9c3.21 0 6.22.6 8.63 1.81 2.41 1.2 4.82 2.81 6.62 4.82S170.2 24.39 171 27s1.4 5.62 1.4 8.83-.4 6.02-1.4 8.83-2.41 5.02-4.01 7.02-4.01 3.61-6.62 4.82-5.42 1.81-8.63 1.81-6.22-.6-8.63-1.81-4.82-2.81-6.42-4.82-3.21-4.41-4.01-7.02-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83 2.41-5.02 4.01-7.02 4.01-3.61 6.42-4.82 5.42-1.81 8.63-1.81Zm0 36.73c1.81 0 3.61-.4 5.02-1s2.61-1.81 3.61-3.01 1.81-2.81 2.21-4.41c.4-1.81.8-3.61.8-5.62 0-2.21-.2-4.21-.8-6.02s-1.2-3.21-2.21-4.62c-1-1.2-2.21-2.21-3.61-3.01s-3.21-1-5.02-1-3.61.4-5.02 1c-1.4.8-2.61 1.81-3.61 3.01s-1.81 2.81-2.21 4.62c-.4 1.81-.8 3.61-.8 5.62 0 2.41.2 4.21.8 6.02.4 1.81 1.2 3.21 2.21 4.41s2.21 2.21 3.61 3.01c1.4.8 3.21 1 5.02 1Zm36.32 7.96-12.24-44.15h9.83l8.43 32.77h.4l8.23-32.77h9.83L200.3 58.04h-12.24Zm74.14-7.96c2.18 0 3.51-.6 3.51-.6 1.2-.6 2.01-1 2.81-1.81s1.4-1.81 1.81-2.81a13 13 0 0 0 .8-4.01V13.9h8.63v28.15c0 2.41-.4 4.62-1.4 6.62-.8 2.01-2.21 3.61-3.61 5.02s-3.41 2.41-5.62 3.21-4.62 1.2-7.02 1.2-5.02-.4-7.02-1.2c-2.21-.8-4.01-1.81-5.62-3.21s-2.81-3.01-3.61-5.02-1.4-4.21-1.4-6.62V13.9h8.63v26.95c0 1.61.2 3.01.8 4.01.4 1.2 1.2 2.21 2.01 2.81.8.8 1.81 1.4 2.81 1.81 0 0 1.34.6 3.51.6Zm34.22-36.18v18.92l15.65-18.92h10.82l-15.03 17.32 16.03 26.83h-10.21l-11.44-20.21-5.62 6.22v13.99h-8.83V13.9"></path>
67
+ </svg>
68
+ <!--<![endif]-->
69
+ <!--[if IE 8]>
70
+ <img src="{{govukAssetPath}}images/govuk-logotype-tudor-crown.png" class="govuk-header__logotype-crown-fallback-image" width="32" height="30" alt="">
71
+ <![endif]-->
72
+ </span>
73
+ </a>
74
+ </div>
75
+ {{$insideHeader}}{{/insideHeader}}
76
+
77
+ {{$propositionHeader}}{{/propositionHeader}}
78
+ </div>
79
+ </header>
80
+
81
+
82
+ {{$afterHeader}}{{/afterHeader}}
83
+
84
+
85
+ {{$main}}{{/main}}
86
+
87
+ <footer class="govuk-footer">
88
+ <div class="govuk-width-container">
89
+ <svg
90
+ focusable="false"
91
+ role="presentation"
92
+ xmlns="http://www.w3.org/2000/svg"
93
+ viewBox="0 0 64 60"
94
+ height="30"
95
+ width="32"
96
+ fill="currentcolor" class="govuk-footer__crown">
97
+ <g>
98
+ <circle cx="20" cy="17.6" r="3.7" />
99
+ <circle cx="10.2" cy="23.5" r="3.7" />
100
+ <circle cx="3.7" cy="33.2" r="3.7" />
101
+ <circle cx="31.7" cy="30.6" r="3.7" />
102
+ <circle cx="43.3" cy="17.6" r="3.7" />
103
+ <circle cx="53.2" cy="23.5" r="3.7" />
104
+ <circle cx="59.7" cy="33.2" r="3.7" />
105
+ <circle cx="31.7" cy="30.6" r="3.7" />
106
+ <path d="M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z" />
107
+ </g>
108
+ </svg>
109
+ <div class="govuk-footer__meta">
110
+ <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
111
+ <h2 class="govuk-visually-hidden">Support links</h2>
112
+ {{$footerSupportLinks}}{{/footerSupportLinks}}
113
+ <svg
114
+ aria-hidden="true"
115
+ focusable="false"
116
+ class="govuk-footer__licence-logo"
117
+ xmlns="http://www.w3.org/2000/svg"
118
+ viewBox="0 0 483.2 195.7"
119
+ height="17"
120
+ width="41">
121
+ <path
122
+ fill="currentColor"
123
+ d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145" />
124
+ </svg>
125
+ <span class="govuk-footer__licence-description">
126
+ {{$licenceMessage}}All content is available under the <a href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" id="open-government-licence" class="govuk-footer__link" target="_blank" rel="license">Open Government Licence v3.0</a>, except where otherwise stated{{/licenceMessage}}
127
+ </span>
128
+ </div>
129
+ <div class="govuk-footer__meta-item">
130
+ <a
131
+ class="govuk-footer__link govuk-footer__copyright-logo"
132
+ href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/">
133
+ {{$crownCopyrightMessage}}© Crown copyright{{/crownCopyrightMessage}}
134
+ </a>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </footer>
139
+
140
+ <div id="global-app-error" class="app-error hidden"></div>
141
+
142
+
143
+ {{$bodyEnd}}{{/bodyEnd}}
144
+
145
+
146
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>if (typeof window.GOVUK === 'undefined') document.body.className = document.body.className.replace('js-enabled', '');</script>
147
+
148
+ </body>
149
+ </html>
@@ -358,7 +358,8 @@ module.exports = function (options) {
358
358
  path: 'partials/forms/input-text-group',
359
359
  renderWith: inputText,
360
360
  options: {
361
- maxlength: 18
361
+ maxlength: 18,
362
+ className: 'govuk-input govuk-input--extra-letter-spacing'
362
363
  }
363
364
  },
364
365
  'input-file': {
@@ -459,12 +460,12 @@ module.exports = function (options) {
459
460
  const parts = [];
460
461
 
461
462
  if (isExact) {
462
- const dayPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-day', { pattern: '[0-9]*', min: 1, max: 31, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.day, formGroupClassName, className: classNameDay, isThisRequired }));
463
+ const dayPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-day', { inputmode: 'numeric', min: 1, max: 31, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.day, formGroupClassName, className: classNameDay, isThisRequired }));
463
464
  parts.push(dayPart);
464
465
  }
465
466
 
466
- const monthPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-month', { pattern: '[0-9]*', min: 1, max: 12, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.month, formGroupClassName, className: classNameMonth, isThisRequired }));
467
- const yearPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-year', { pattern: '[0-9]*', maxlength: 4, hintId: key + '-hint', date: true, autocomplete: autocomplete.year, formGroupClassName, className: classNameYear, isThisRequired }));
467
+ const monthPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-month', { inputmode: 'numeric', min: 1, max: 12, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.month, formGroupClassName, className: classNameMonth, isThisRequired }));
468
+ const yearPart = compiled['partials/forms/input-text-date'].render(inputText.call(this, key + '-year', { inputmode: 'numeric', maxlength: 4, hintId: key + '-hint', date: true, autocomplete: autocomplete.year, formGroupClassName, className: classNameYear, isThisRequired }));
468
469
 
469
470
  return parts.concat(monthPart, yearPart).join('\n');
470
471
  };
@@ -1,5 +1,9 @@
1
1
  <div id="{{key}}-group" class="govuk-form-group {{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
2
- {{#error}}<p class="govuk-error-message" aria-hidden="true">{{error.message}}</p>{{/error}}
2
+ {{#error}}
3
+ <p class="govuk-error-message" aria-hidden="true">
4
+ <span class="govuk-visually-hidden">Error:</span> {{error.message}}
5
+ </p>
6
+ {{/error}}
3
7
  <div class="govuk-checkboxes__item">
4
8
  <input class="govuk-checkboxes__input" type="checkbox" id="{{key}}" name="{{key}}" value="true" aria-required="{{required}}"{{#error}} aria-invalid="true"{{/error}}{{^error}}{{#toggle}} data-toggle="{{toggle}}"{{/toggle}}{{#selected}} checked="checked"{{/selected}}{{/error}}>
5
9
  <label for="{{key}}" class="{{#className}}{{className}} {{/className}}{{#invalid}}invalid-input{{/invalid}}">
@@ -3,7 +3,7 @@
3
3
  <label for="{{id}}" class="{{labelClassName}}">
4
4
  <span class="label-text">{{{label}}}</span>
5
5
  </label>
6
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{{hint}}}</span>{{/hint}}
6
+ {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{{hint}}}</div>{{/hint}}
7
7
  {{#renderChild}}{{/renderChild}}
8
8
  {{#attributes}}
9
9
  {{#prefix}}
@@ -21,6 +21,7 @@
21
21
  {{#max}} max="{{max}}"{{/max}}
22
22
  {{#maxlength}} maxlength="{{maxlength}}"{{/maxlength}}
23
23
  {{#pattern}} pattern="{{pattern}}"{{/pattern}}
24
+ {{#inputmode}}inputmode="{{inputmode}}"{{/inputmode}}
24
25
  {{#hintId}} aria-describedby="{{hintId}}"{{/hintId}}
25
26
  {{#error}} aria-invalid="true"{{/error}}
26
27
  {{#autocomplete}} autocomplete="{{autocomplete}}"{{/autocomplete}}
@@ -3,7 +3,7 @@
3
3
  {{{label}}}
4
4
  </label>
5
5
  {{#isPageHeading}}</h1>{{/isPageHeading}}
6
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{{hint}}}</span>{{/hint}}
6
+ {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{{hint}}}</div>{{/hint}}
7
7
  {{#error}}
8
8
  <p class="govuk-error-message">
9
9
  <span class="govuk-visually-hidden">Error:</span> {{error.message}}
@@ -29,7 +29,7 @@
29
29
  {{#error}} aria-invalid="true" aria-describedby="{{id}}-error" {{/error}}
30
30
  >{{value}}</textarea>
31
31
  {{#isMaxlengthOrMaxword}}
32
- <div id="{{id}}-info" class=" govuk-hint govuk-character-count__message" aria-live="polite">You have {{#maxlength}}{{maxlength}} characters{{/maxlength}}{{#maxword}}{{maxword}}
32
+ <div id="{{id}}-info" class=" govuk-hint govuk-character-count__message">You have {{#maxlength}}{{maxlength}} characters{{/maxlength}}{{#maxword}}{{maxword}}
33
33
  words{{/maxword}} remaining
34
34
  </div>
35
35
  {{/isMaxlengthOrMaxword}}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "banner": {
3
- "message": "GOV.UK uses cookies to make the site simpler.",
4
- "link": "Find out more about cookies"
3
+ "message": "We use some essential cookies to make this website work.",
4
+ "link": "View cookies"
5
5
  },
6
6
  "header": "Cookies",
7
7
  "intro": "This service puts small files (known as ‘cookies’) onto your computer in order to:",
@@ -3,9 +3,9 @@
3
3
  {{$propositionHeader}}{{/propositionHeader}}
4
4
 
5
5
  {{$validationSummary}}
6
- {{#gaTagId}}
6
+ {{#hasGoogleAnalytics}}
7
7
  {{> partials-cookie-notification}}
8
- {{/gaTagId}}
8
+ {{/hasGoogleAnalytics}}
9
9
  {{/validationSummary}}
10
10
 
11
11
  {{$header}}
@@ -14,7 +14,7 @@
14
14
 
15
15
  {{$content}}
16
16
  <p>{{intro}}</p>
17
- {{^gaTagId}}
17
+ {{^hasGoogleAnalytics}}
18
18
  {{#intro-list}}
19
19
  {{> partials-bullet-list}}
20
20
  {{/intro-list}}
@@ -31,9 +31,9 @@
31
31
  {{#session-cookies-table}}
32
32
  {{> partials-session-cookies-table}}
33
33
  {{/session-cookies-table}}
34
- {{/gaTagId}}
34
+ {{/hasGoogleAnalytics}}
35
35
 
36
- {{#gaTagId}}
36
+ {{#hasGoogleAnalytics}}
37
37
  <div id="cookie-settings">
38
38
  {{#intro-list-ga-tag}}
39
39
  {{> partials-bullet-list}}
@@ -78,7 +78,7 @@
78
78
  </form>
79
79
  </div>
80
80
  </div>
81
- {{/gaTagId}}
81
+ {{/hasGoogleAnalytics}}
82
82
 
83
83
  {{/content}}
84
84
  {{/layout}}
@@ -6,7 +6,7 @@
6
6
  {{#errorlist.length}}{{#t}}errorlist.prefix{{/t}}{{/errorlist.length}}{{#title}}{{title}}{{/title}}{{^title}}{{$header}}{{/header}}{{/title}}{{#serviceName}} &ndash; {{serviceName}}{{/serviceName}} &ndash; GOV.UK
7
7
  {{/pageTitle}}
8
8
  {{$bodyStart}}
9
- <a href="#{{#skipToMain}}{{skipToMain}}{{/skipToMain}}{{^skipToMain}}main-content{{/skipToMain}}" class="govuk-skip-link" id="skip-to-main">Skip to main content</a>
9
+ <a href="#{{#skipToMain}}{{skipToMain}}{{/skipToMain}}{{^skipToMain}}main-content{{/skipToMain}}" class="govuk-skip-link" data-module="govuk-skip-link" id="skip-to-main">Skip to main content</a>
10
10
  {{/bodyStart}}
11
11
  {{$headerClass}}govuk-header{{/headerClass}}
12
12
  {{$insideHeader}}{{/insideHeader}}
@@ -33,15 +33,9 @@
33
33
  </div>
34
34
  {{/main}}
35
35
  {{$cookieMessage}}
36
- {{#gaTagId}}
36
+ {{#showCookiesBanner}}
37
37
  {{> partials-cookie-banner}}
38
- {{/gaTagId}}
39
- {{^gaTagId}}
40
- <p class="no-ga-tag">
41
- {{#t}}cookies.banner.message{{/t}}
42
- <a href="/cookies">{{#t}}cookies.banner.link{{/t}}</a>
43
- </p>
44
- {{/gaTagId}}
38
+ {{/showCookiesBanner}}
45
39
  {{/cookieMessage}}
46
40
  {{$footerSupportLinks}}
47
41
  <ul class="govuk-footer__inline-list">
@@ -1,29 +1,51 @@
1
- <div id="cookie-banner" class="govuk-cookie-banner gem-c-cookie-banner govuk-clearfix">
2
- <div class="gem-c-cookie-banner__message govuk-cookie-banner__message govuk-width-container">
3
- <div id="cookie-banner-info" class="govuk-grid-row">
4
- <div class="govuk-grid-column-two-thirds">
5
- <h2 class="govuk-cookie-banner__heading govuk-heading-m">Cookies on {{#appName}}{{appName}}{{/appName}}{{^appName}}this service{{/appName}}</h2>
6
- <div class="govuk-cookie-banner__content">
7
- <p class="govuk-body">We use some essential cookies to make this website work.</p>
8
- <p class="govuk-body">We'd like to set additional cookies to understand how you use GOV.UK, remember your settings and improve government services.</p>
9
- <p class="govuk-body">We also use cookies set by other sites to help us deliver content from their services.</p>
10
- </div>
11
- </div>
12
- </div>
13
- <div id="cookie-banner-actions" class="govuk-button-group">
14
- <button id="accept-cookies-button" class="gem-c-button govuk-button" type="submit" data-module="gem-track-click" data-accept-cookies="true" data-track-category="cookieBanner" data-track-action="Cookie banner accepted" data-cookie-types="all">Accept additional cookies</button>
15
-
16
- <button id="reject-cookies-button" class="gem-c-button govuk-button" type="submit" data-module="gem-track-click" data-reject-cookies="true" data-track-category="cookieBanner" data-track-action="Cookie banner rejected">Reject additional cookies</button>
17
-
18
- <a class="govuk-link" href="/cookies">View cookies</a>
19
- </div>
20
- </div>
21
- <div class="gem-c-cookie-banner__confirmation govuk-width-container" hidden="" id="cookie-banner-submitted" >
22
- <p class="gem-c-cookie-banner__confirmation-message" role="alert">
23
- Your cookie preferences have been saved. You can <a class="govuk-link" data-module="gem-track-click" data-track-category="cookieBanner" data-track-action="Cookie banner settings clicked from confirmation" href="/cookies">change your cookie settings</a> at any time.
24
- </p>
25
- <div class="govuk-button-group">
26
- <button class="gem-c-cookie-banner__hide-button govuk-button" id="hide-cookie-banner">Hide this message</button>
27
- </div>
28
- </div>
1
+ <div id="cookie-banner" class="govuk-cookie-banner" data-nosnippet="" role="region" aria-label="Cookies on {{#appName}}{{appName}}{{/appName}}{{^appName}}this service{{/appName}}">
2
+ <div class="govuk-cookie-banner__message govuk-width-container">
3
+ <div id="cookie-banner-info" class="govuk-grid-row">
4
+ <div class="govuk-grid-column-two-thirds">
5
+ <h2 class="govuk-cookie-banner__heading govuk-heading-m">Cookies on {{#appName}}{{appName}}{{/appName}}{{^appName}}this service{{/appName}}</h2>
6
+ <div class="govuk-cookie-banner__content">
7
+ <p class="govuk-body">{{#t}}cookies.banner.message{{/t}}</p>
8
+ {{#hasGoogleAnalytics}}
9
+ <p class="govuk-body">We'd like to set additional cookies to understand how you use GOV.UK, remember your settings and improve government services.</p>
10
+ <p class="govuk-body">We also use cookies set by other sites to help us deliver content from their services.</p>
11
+ {{/hasGoogleAnalytics}}
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <div id="cookie-banner-actions" class="govuk-button-group">
16
+ {{#hasGoogleAnalytics}}
17
+ <button id="accept-cookies-button" value="yes" type="submit" name="cookies[additional]" class="govuk-button" data-module="govuk-button" data-accept-cookies="true" data-track-category="cookieBanner" data-track-action="Cookie banner accepted" data-cookie-types="all">Accept additional cookies</button>
18
+ <button id="reject-cookies-button" value="no" type="submit" name="cookies[additional]" class="govuk-button" data-module="govuk-button" data-reject-cookies="true" data-track-category="cookieBanner" data-track-action="Cookie banner rejected">Reject additional cookies</button>
19
+ {{/hasGoogleAnalytics}}
20
+ <a class="govuk-link" href="/cookies">{{#t}}cookies.banner.link{{/t}}</a>
21
+ </div>
22
+ </div>
23
+ <div id="cookie-banner-submitted-accepted" data-accept-cookies="true" class="govuk-cookie-banner__message govuk-width-container" role="alert" hidden >
24
+ <div class="govuk-grid-row">
25
+ <div class="govuk-grid-column-two-thirds">
26
+ <div class="govuk-cookie-banner__content">
27
+ <p class="govuk-body">You've accepted additional cookies. You can <a class="govuk-link" href="/cookies">change your cookie settings</a> at any time.</p>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ <div class="govuk-button-group">
32
+ <button id="hide-accept-cookie-banner" value="yes" type="submit" name="cookies[hide]" class="govuk-button" data-module="govuk-button">
33
+ Hide cookie message
34
+ </button>
35
+ </div>
36
+ </div>
37
+ <div id="cookie-banner-submitted-rejected" class="govuk-cookie-banner__message govuk-width-container" role="alert" hidden>
38
+ <div class="govuk-grid-row">
39
+ <div class="govuk-grid-column-two-thirds">
40
+ <div class="govuk-cookie-banner__content">
41
+ <p class="govuk-body">You've rejected additional cookies. You can <a class="govuk-link" href="/cookies">change your cookie settings</a> at any time.</p>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <div class="govuk-button-group">
46
+ <button id="hide-reject-cookie-banner" value="yes" type="submit" name="cookies[hide]" class="govuk-button" data-module="govuk-button">
47
+ Hide cookie message
48
+ </button>
49
+ </div>
50
+ </div>
29
51
  </div>