hof 21.0.0-instrumentation-beta.0 → 21.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. package/.github/workflows/automate-publish.yml +1 -1
  2. package/.github/workflows/automate-tag.yml +4 -4
  3. package/.nyc_output/39365c14-40b7-4634-b733-940b72a11984.json +1 -0
  4. package/.nyc_output/processinfo/39365c14-40b7-4634-b733-940b72a11984.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/CHANGELOG.md +21 -0
  7. package/README.md +340 -256
  8. package/build/tasks/sass/index.js +3 -1
  9. package/build/tasks/watch/index.js +1 -1
  10. package/codeReviewChecklist.md +22 -0
  11. package/components/combine-and-loop-fields/Readme.md +42 -0
  12. package/components/combine-and-loop-fields/index.js +156 -0
  13. package/components/date/index.js +3 -1
  14. package/components/date/templates/date.html +15 -12
  15. package/components/homeoffice-countries/index.js +22 -0
  16. package/components/index.js +2 -0
  17. package/components/notify/notify.js +2 -2
  18. package/components/summary/index.js +3 -2
  19. package/config/builder-defaults.js +3 -1
  20. package/config/component-defaults.js +13 -0
  21. package/config/hof-defaults.js +8 -0
  22. package/controller/controller.js +57 -1
  23. package/controller/formatting/formatters.js +12 -0
  24. package/controller/validation/index.js +2 -1
  25. package/controller/validation/validators.js +4 -0
  26. package/frontend/govuk-template/build/config.js +2 -2
  27. package/frontend/govuk-template/build/govuk_template.html +102 -0
  28. package/frontend/govuk-template/build/index.js +2 -2
  29. package/frontend/govuk-template/govuk_template_generated.html +102 -0
  30. package/frontend/govuk-template/index.js +4 -4
  31. package/frontend/template-mixins/mixins/template-mixins.js +40 -11
  32. package/frontend/template-mixins/partials/forms/checkbox-group.html +47 -0
  33. package/frontend/template-mixins/partials/forms/checkbox.html +9 -4
  34. package/frontend/template-mixins/partials/forms/input-submit.html +1 -1
  35. package/frontend/template-mixins/partials/forms/input-text-date.html +37 -0
  36. package/frontend/template-mixins/partials/forms/input-text-group.html +15 -10
  37. package/frontend/template-mixins/partials/forms/option-group.html +42 -26
  38. package/frontend/template-mixins/partials/forms/select.html +10 -5
  39. package/frontend/template-mixins/partials/forms/textarea-group.html +37 -23
  40. package/frontend/template-mixins/partials/mixins/panel.html +3 -4
  41. package/frontend/template-partials/views/accessibility.html +4 -4
  42. package/frontend/template-partials/views/cookies.html +1 -1
  43. package/frontend/template-partials/views/layout.html +24 -17
  44. package/frontend/template-partials/views/partials/back.html +1 -1
  45. package/frontend/template-partials/views/partials/bullet-list.html +1 -1
  46. package/frontend/template-partials/views/partials/confirmation-alert.html +4 -3
  47. package/frontend/template-partials/views/partials/continue.html +1 -1
  48. package/frontend/template-partials/views/partials/cookie-banner.html +27 -24
  49. package/frontend/template-partials/views/partials/cookie-settings-radio.html +6 -6
  50. package/frontend/template-partials/views/partials/external-link.html +1 -1
  51. package/frontend/template-partials/views/partials/form.html +2 -1
  52. package/frontend/template-partials/views/partials/gatag.html +0 -1
  53. package/frontend/template-partials/views/partials/head.html +23 -0
  54. package/frontend/template-partials/views/partials/maincontent-left.html +4 -4
  55. package/frontend/template-partials/views/partials/navigation.html +7 -6
  56. package/frontend/template-partials/views/partials/session-cookies-table.html +6 -6
  57. package/frontend/template-partials/views/partials/summary-table-row.html +2 -2
  58. package/frontend/template-partials/views/partials/table.html +7 -7
  59. package/frontend/template-partials/views/partials/validation-list.html +2 -2
  60. package/frontend/template-partials/views/partials/validation-summary.html +14 -13
  61. package/frontend/template-partials/views/partials/warn.html +7 -0
  62. package/frontend/template-partials/views/session-timeout.html +3 -2
  63. package/frontend/themes/gov-uk/client-js/cookieSettings.js +1 -1
  64. package/frontend/themes/gov-uk/client-js/govuk-cookies.js +121 -0
  65. package/frontend/themes/gov-uk/client-js/index.js +6 -1
  66. package/frontend/themes/gov-uk/client-js/skip-to-main.js +19 -0
  67. package/frontend/themes/gov-uk/styles/_cookie-banner.scss +51 -1
  68. package/frontend/themes/gov-uk/styles/govuk.scss +4 -0
  69. package/frontend/themes/gov-uk/styles/modules/_validation.scss +5 -5
  70. package/frontend/toolkit/assets/javascript/character-count.js +4 -4
  71. package/frontend/toolkit/assets/javascript/progressive-reveal.js +3 -1
  72. package/frontend/toolkit/assets/javascript/validation.js +5 -1
  73. package/frontend/toolkit/assets/stylesheets/modules/_validation.scss +3 -3
  74. package/index.js +15 -2
  75. package/lib/ga-tag.js +33 -7
  76. package/lib/settings.js +18 -2
  77. package/middleware/cookies.js +2 -0
  78. package/middleware/errors.js +2 -3
  79. package/middleware/not-found.js +0 -3
  80. package/middleware/rate-limiter.js +1 -0
  81. package/model/apis/axios-settings.js +21 -0
  82. package/model/apis/html-to-pdf-converter.js +10 -8
  83. package/model/index.js +102 -87
  84. package/package.json +18 -17
  85. package/pull_request.md +16 -0
  86. package/sandbox/README.md +3 -3
  87. package/sandbox/apps/sandbox/fields.js +33 -11
  88. package/sandbox/apps/sandbox/index.js +4 -0
  89. package/sandbox/apps/sandbox/sections/summary-data-sections.js +3 -0
  90. package/sandbox/apps/sandbox/translations/en/default.json +220 -0
  91. package/sandbox/apps/sandbox/translations/src/en/fields.json +11 -4
  92. package/sandbox/apps/sandbox/translations/src/en/journey.json +4 -1
  93. package/sandbox/apps/sandbox/translations/src/en/pages.json +7 -25
  94. package/sandbox/apps/sandbox/translations/src/en/validation.json +5 -1
  95. package/sandbox/assets/js/index.js +1 -1
  96. package/sandbox/assets/scss/app.scss +16 -16
  97. package/sandbox/package.json +7 -2
  98. package/sandbox/public/css/app.css +9632 -0
  99. package/sandbox/public/images/icons/icon-caret-left.png +0 -0
  100. package/sandbox/public/images/icons/icon-complete.png +0 -0
  101. package/sandbox/public/images/icons/icon-cross-remove-sign.png +0 -0
  102. package/sandbox/public/js/bundle.js +46721 -0
  103. package/sandbox/server.js +2 -1
  104. package/sandbox/yarn.lock +249 -2
  105. package/wizard/index.js +0 -13
  106. package/wizard/middleware/check-progress.js +36 -1
  107. package/.nyc_output/4d5a4574-78fc-4fcb-9412-3658f6ce33ff.json +0 -1
  108. package/.nyc_output/processinfo/4d5a4574-78fc-4fcb-9412-3658f6ce33ff.json +0 -1
  109. package/frontend/govuk-template/govuk_template.html +0 -109
  110. package/frontend/themes/gov-uk/views/partials/form.html +0 -9
  111. package/frontend/themes/gov-uk/views/partials/forms/option-group.html +0 -28
  112. package/frontend/themes/gov-uk/views/partials/mixins/panel.html +0 -3
  113. package/frontend/themes/gov-uk/views/partials/validation-summary.html +0 -24
  114. package/middleware/monitor.js +0 -20
  115. package/sandbox/apps/sandbox/views/confirmation.html +0 -15
@@ -1,27 +1,43 @@
1
- <div id="{{key}}-group" class="form-group{{#className}} {{className}} {{/className}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} validation-error{{/error}}">
2
- <fieldset role="{{role}}"{{#ariaRequired}} aria-required="true"{{/ariaRequired}}{{#hint}} aria-describedby="{{key}}-hint"{{/hint}}>
3
- <legend>
4
- <span{{#legendClassName}} class="{{legendClassName}}"{{/legendClassName}}>{{legend}}</span>
5
- {{#hint}}<span id="{{key}}-hint" class="form-hint">{{hint}}</span>{{/hint}}
6
- {{#error}}<span id="{{key}}-error" class="error-message">{{error.message}}</span>{{/error}}
7
- </legend>
8
- {{#options}}
9
- <label class="block-label" for="{{key}}-{{value}}">
10
- <input
11
- type="{{type}}"
12
- name="{{key}}"
13
- id="{{key}}-{{value}}"
14
- value="{{value}}"
15
- required="true"
16
- {{#toggle}} data-toggle="{{toggle}}"{{/toggle}}
17
- {{#selected}} checked="checked"{{/selected}}
18
- {{^error}}{{#optionHint}} aria-describedby="{{key}}-{{value}}-hint"{{/optionHint}}{{^optionHint}}{{#hint}} aria-describedby="{{key}}-hint"{{/hint}}{{/optionHint}}{{/error}}
19
- {{#error}} aria-describedby="{{key}}-error" aria-invalid="true"{{/error}}
20
- >
21
- {{{label}}}
22
- {{#optionHint}}<span id="{{key}}-{{value}}-hint" class="form-hint">{{optionHint}}</span>{{/optionHint}}
23
- </label>
24
- {{#renderChild}}{{/renderChild}}
25
- {{/options}}
26
- </fieldset>
1
+ <div id="{{key}}-group" class="govuk-form-group{{#className}} {{className}} {{/className}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
2
+ <fieldset class="govuk-fieldset" {{#hint}} aria-describedby="{{key}}-hint"{{/hint}}>
3
+ <legend class="govuk-fieldset__legend {{#isPageHeading}}govuk-fieldset__legend--l{{/isPageHeading}}{{#legendClassName}} {{legendClassName}}{{/legendClassName}}">
4
+ {{#isPageHeading}}<h1 class="govuk-fieldset__heading">{{/isPageHeading}}
5
+ {{legend}}
6
+ {{#isPageHeading}}</h1>{{/isPageHeading}}
7
+ </legend>
8
+ {{#isWarning}}
9
+ <div class="govuk-warning-text">
10
+ <span class="govuk-warning-text__icon" aria-hidden="true">!</span>
11
+ <strong class="govuk-warning-text__text">
12
+ <span class="govuk-warning-text__assistive">Warning</span>
13
+ {{warning}}
14
+ </strong>
15
+ </div>
16
+ {{/isWarning}}
17
+ {{#hint}}<div id="{{key}}-hint" class="govuk-hint">{{hint}}</div>{{/hint}}
18
+ {{#error}}<p id="{{key}}-error" class="govuk-error-message"><span class="govuk-visually-hidden">Error:</span> {{error.message}}</p>{{/error}}
19
+ {{{detail}}}
20
+ <div class="govuk-radios" data-module="govuk-radios">
21
+ {{#options}}
22
+ <div class="govuk-radios__item">
23
+ <input
24
+ class="govuk-radios__input"
25
+ type="{{type}}"
26
+ name="{{key}}"
27
+ id="{{key}}-{{value}}"
28
+ value="{{value}}"
29
+ {{#toggle}} data-toggle="{{toggle}}"{{/toggle}}
30
+ {{#selected}} checked="checked"{{/selected}}
31
+ {{^error}}{{#optionHint}} aria-describedby="{{key}}-{{value}}-item-hint"{{/optionHint}}{{^optionHint}}{{#hint}} aria-describedby="{{key}}-hint"{{/hint}}{{/optionHint}}{{/error}}
32
+ {{#error}} aria-describedby="{{key}}-error" aria-invalid="true"{{/error}}
33
+ >
34
+ <label class="govuk-label govuk-radios__label" for="{{key}}-{{value}}">
35
+ {{{label}}}
36
+ {{#optionHint}}<div id="{{key}}-{{value}}-item-hint" class="govuk-hint govuk-radios__hint">{{optionHint}}</div>{{/optionHint}}
37
+ </label>
38
+ </div>
39
+ {{#renderChild}}{{/renderChild}}
40
+ {{/options}}
41
+ </div>
42
+ </fieldset>
27
43
  </div>
@@ -1,10 +1,15 @@
1
- <div id="{{id}}-group" class="form-group{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} validation-error{{/error}}">
2
- <label for="{{id}}" class="{{labelClassName}}">
1
+ <div id="{{id}}-group" class="{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
2
+ {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}<label for="{{id}}" class="{{labelClassName}}{{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
3
3
  {{{label}}}
4
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="form-hint">{{hint}}</span>{{/hint}}
5
- {{#error}}<span class="error-message">{{error.message}}</span>{{/error}}
6
4
  </label>
7
- <select id="{{id}}" class="form-control{{#className}} {{className}}{{/className}}{{#error}} invalid-input{{/error}}" name="{{id}}" aria-required="{{required}}">
5
+ {{#isPageHeading}}</h1>{{/isPageHeading}}
6
+ {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</div>{{/hint}}
7
+ {{#error}}
8
+ <p class="govuk-error-message">
9
+ <span class="govuk-visually-hidden">Error:</span> {{error.message}}
10
+ </p>
11
+ {{/error}}
12
+ <select id="{{id}}" class="govuk-select{{#className}} {{className}}{{/className}}{{#error}} govuk-select--error{{/error}}" name="{{id}}" aria-required="{{required}}">
8
13
  {{#options}}
9
14
  <option value="{{value}}" {{#selected}}selected{{/selected}}>{{label}}</option>
10
15
  {{/options}}
@@ -1,23 +1,37 @@
1
- <div id="{{id}}-group" class="form-group{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} validation-error{{/error}}">
2
- <label for="{{id}}" class="{{labelClassName}}">
3
- {{{label}}}
4
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="form-hint">{{hint}}</span>{{/hint}}
5
- {{#error}}<span id="{{id}}-error" class="error-message">{{error.message}}</span>{{/error}}
6
- </label>
7
- {{#renderChild}}{{/renderChild}}
8
- <textarea
9
- name="{{id}}"
10
- id="{{id}}"
11
- class="form-control{{#className}} {{className}}{{/className}} {{#maxlength}}maxlength{{/maxlength}}{{#error}} invalid-input{{/error}}"
12
- aria-required="{{required}}"
13
- {{#maxlength}} maxlength="{{maxlength}}"{{/maxlength}}
14
- {{#attributes}}
15
- {{attribute}}="{{value}}"
16
- {{/attributes}}
17
- {{^error}}{{#hintId}}{{#maxlength}} aria-describedby="{{id}}-maxlength-hint {{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
18
- {{^error}}{{#hintId}}{{^maxlength}} aria-describedby="{{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
19
- {{^error}}{{^hintId}}{{#maxlength}} aria-describedby="{{id}}-maxlength-hint"{{/maxlength}}{{/hintId}}{{/error}}
20
- {{#error}} aria-invalid="true" aria-describedby="{{id}}-error"{{/error}}
21
- >{{value}}</textarea>
22
- {{#maxlength}}<span id="{{id}}-maxlength-hint" class="maxlength-hint form-hint" aria-live="polite">You can enter up to {{maxlength}} characters</span>{{/maxlength}}
23
- </div>
1
+ {{#isMaxlengthOrMaxword}}<div class="govuk-character-count" data-module="govuk-character-count"
2
+ {{#maxlength}}data-maxlength="{{maxlength}}" {{/maxlength}} {{#maxword}}data-maxwords="{{maxword}}" {{/maxword}}>
3
+ {{/isMaxlengthOrMaxword}}
4
+ <div id="{{id}}-group" class="govuk-form-group {{#formGroupClassName}}{{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
5
+ {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}
6
+ <label for="{{id}}"
7
+ class="{{labelClassName}} {{#isPageHeading}}govuk-label--l{{/isPageHeading}}">
8
+ {{{label}}}
9
+ {{#error}}
10
+ <p id="{{id}}-error" class="govuk-error-message">
11
+ <span id="{{id}}-error" class="govuk-visually-hidden">Error:</span>{{error.message}}
12
+ </p>
13
+ {{/error}}
14
+ </label>
15
+ {{#isPageHeading}}</h1>{{/isPageHeading}}
16
+ {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</div>{{/hint}}
17
+ {{#renderChild}}{{/renderChild}}
18
+ <textarea name="{{id}}" id="{{id}}"
19
+ class="govuk-textarea {{#isMaxlengthOrMaxword}}govuk-js-character-count{{/isMaxlengthOrMaxword}} {{#className}}{{className}}{{/className}} {{#error}}govuk-input--error{{/error}}"
20
+ {{#isMaxlengthOrMaxword}}
21
+ aria-describedby="{{id}}-hint {{id}}-info"
22
+ {{/isMaxlengthOrMaxword}}
23
+ {{#attributes}}
24
+ {{attribute}}="{{value}}"
25
+ {{/attributes}}
26
+ {{^error}}{{#hintId}}{{#maxlength}} aria-describedby="{{id}}-maxlength-hint {{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
27
+ {{^error}}{{#hintId}}{{^maxlength}} aria-describedby="{{hintId}}"{{/maxlength}}{{/hintId}}{{/error}}
28
+ {{^error}}{{^hintId}}{{#maxlength}}aria-describedby="{{id}}-maxlength-hint" {{/maxlength}}{{/hintId}}{{/error}}
29
+ {{#error}} aria-invalid="true" aria-describedby="{{id}}-error" {{/error}}
30
+ >{{value}}</textarea>
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}}
33
+ words{{/maxword}} remaining
34
+ </div>
35
+ {{/isMaxlengthOrMaxword}}
36
+ </div>
37
+ {{#isMaxlengthOrMaxword}}</div>{{/isMaxlengthOrMaxword}}
@@ -1,5 +1,4 @@
1
- <div id="{{toggle}}-panel" class="reveal js-hidden">
2
- <div class="panel-indent">
3
- {{#renderMixin}}{{/renderMixin}}
4
- </div>
1
+ <div id="{{toggle}}-panel" class="{{#radioOption}}govuk-radios__conditional{{/radioOption}}
2
+ {{^radioOption}}govuk-checkboxes__conditional{{/radioOption}}">
3
+ {{#renderMixin}}{{/renderMixin}}
5
4
  </div>
@@ -8,7 +8,7 @@
8
8
 
9
9
  {{$content}}
10
10
  <p class="govuk-body">{{#t}}accessibility.intro-p2{{/t}}</p>
11
- <ul class="list list-bullet">
11
+ <ul class="govuk-list">
12
12
  <li>{{#t}}accessibility.intro-p2-li1{{/t}}</li>
13
13
  <li>{{#t}}accessibility.intro-p2-li2{{/t}}</li>
14
14
  <li>{{#t}}accessibility.intro-p2-li3{{/t}}</li>
@@ -18,13 +18,13 @@
18
18
  <p class="govuk-body">{{#t}}accessibility.intro-p3-pre-link{{/t}} <a href="https://mcmw.abilitynet.org.uk/">{{#t}}accessibility.intro-p3-link{{/t}}</a> {{#t}}accessibility.intro-p3-post-link{{/t}}</p>
19
19
  <h2 class="govuk-heading-m">{{#t}}accessibility.how-accessible-header{{/t}}</h2>
20
20
  <p class="govuk-body">{{#t}}accessibility.how-accessible-p1{{/t}}</p>
21
- <ul class="list list-bullet">
21
+ <ul class="govuk-list">
22
22
  <li>{{#t}}accessibility.how-accessible-p1-li1{{/t}}</li>
23
23
  <li>{{#t}}accessibility.how-accessible-p1-li2{{/t}}</li>
24
24
  </ul>
25
25
  <h2 class="govuk-heading-m">{{#t}}accessibility.reporting-header{{/t}}</h2>
26
26
  <p class="govuk-body">{{#t}}accessibility.reporting-p1{{/t}}</p>
27
- <ul class="list list-bullet">
27
+ <ul class="govuk-list">
28
28
  <li>{{#t}}accessibility.reporting-p1-li1-pre-link{{/t}} <a href="mailto:{{#t}}accessibility.contact-email-accessibility{{/t}}">{{#t}}accessibility.contact-email-accessibility{{/t}}</a></li>
29
29
  </ul>
30
30
  <p class="govuk-body">
@@ -40,7 +40,7 @@
40
40
  <h2 class="govuk-heading-m">{{#t}}accessibility.non-accessible-header{{/t}}</h2>
41
41
  <p class="govuk-body">{{#t}}accessibility.non-accessible-p1{{/t}}</p>
42
42
  <h3 class="govuk-heading-m">{{#t}}accessibility.non-compliance-header{{/t}}</h3>
43
- <ul class="list list-bullet">
43
+ <ul class="govuk-list">
44
44
  <li>{{#t}}accessibility.non-compliance-li1{{/t}}</li>
45
45
  </ul>
46
46
  <h3 class="govuk-heading-m">{{#t}}accessibility.disproportionate-burden-header{{/t}}</h3>
@@ -53,7 +53,7 @@
53
53
  {{/session-cookies-table}}
54
54
  <div class="js-enabled">
55
55
  <form>
56
- <div class="form-group">
56
+ <div class="govuk-form-group">
57
57
  <fieldset>
58
58
  <legend>
59
59
  <h2>{{measuring-use}}</h2>
@@ -5,25 +5,32 @@
5
5
  {{$pageTitle}}
6
6
  {{#errorlist.length}}{{#t}}errorlist.prefix{{/t}}{{/errorlist.length}}{{$header}}{{/header}} &ndash; GOV.UK
7
7
  {{/pageTitle}}
8
- {{$headerClass}}with-proposition{{/headerClass}}
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>
10
+ {{/bodyStart}}
11
+ {{$headerClass}}govuk-header{{/headerClass}}
9
12
  {{$insideHeader}}{{/insideHeader}}
10
13
  {{$main}}
11
- <main class="main" role="main">
12
- <div class="phase-banner">
13
- <p>
14
- <strong class="phase-tag">{{#t}}journey.phase{{/t}}</strong>
15
- <span>This is a new service – your <a href="{{feedbackUrl}}{{^feedbackUrl}}https://eforms.homeoffice.gov.uk/outreach/feedback.ofml{{/feedbackUrl}}">feedback</a> will help us to improve it.</span>
16
- </p>
17
- </div>
14
+ <div class="govuk-width-container ">
15
+ {{#feedbackUrl}}
16
+ <div class="govuk-phase-banner">
17
+ <p class="govuk-phase-banner__content">
18
+ <strong class="govuk-tag govuk-phase-banner__content__tag">{{#t}}journey.phase{{/t}}</strong>
19
+ <span class="govuk-phase-banner__text">This is a new service – your <a href="{{feedbackUrl}}{{^feedbackUrl}}https://eforms.homeoffice.gov.uk/outreach/feedback.ofml{{/feedbackUrl}}" class="govuk-link" id="feedback-link" target="_blank">feedback</a> will help us to improve it.</span>
20
+ </p>
21
+ </div>
22
+ {{/feedbackUrl}}
18
23
  <span id="step">
19
24
  {{> partials-back}} <span>{{$step}}{{/step}}</span>
20
25
  </span>
21
- <div class="grid-row" id="content">
22
- {{> partials-maincontent-left}}
23
- </div>
26
+ <main class="govuk-main-wrapper govuk-main-wrapper--auto-spacing" id="main-content" role="main">
27
+ <div class="govuk-grid-row" id="gov-grid-row-content">
28
+ {{> partials-maincontent-left}}
29
+ </div>
30
+ </main>
24
31
  {{> partials-continue}}
25
32
  <script type="text/javascript" src="{{assetPath}}/js/bundle.js"></script>
26
- </main>
33
+ </div>
27
34
  {{/main}}
28
35
  {{$cookieMessage}}
29
36
  {{#gaTagId}}
@@ -37,14 +44,14 @@
37
44
  {{/gaTagId}}
38
45
  {{/cookieMessage}}
39
46
  {{$footerSupportLinks}}
40
- <ul>
47
+ <ul class="govuk-footer__inline-list">
41
48
  {{#footerSupportLinks}}
42
- <li><a href="{{path}}">{{#t}}{{property}}{{/t}}</a></li>
49
+ <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="{{path}}">{{#t}}{{property}}{{/t}}</a></li>
43
50
  {{/footerSupportLinks}}
44
51
  {{^footerSupportLinks}}
45
- <li><a href="/cookies">{{#t}}base.cookies{{/t}}</a></li>
46
- <li><a href="/terms-and-conditions">{{#t}}base.terms{{/t}}</a></li>
47
- <li><a href="/accessibility">{{#t}}base.accessibility{{/t}}</a></li>
52
+ <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/cookies">{{#t}}base.cookies{{/t}}</a></li>
53
+ <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/terms-and-conditions">{{#t}}base.terms{{/t}}</a></li>
54
+ <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/accessibility">{{#t}}base.accessibility{{/t}}</a></li>
48
55
  {{/footerSupportLinks}}
49
56
  </ul>
50
57
  {{/footerSupportLinks}}
@@ -1,5 +1,5 @@
1
1
  {{$back}}
2
2
  {{#backLink}}
3
- <a class="link-back" href="{{#url}}{{backLink}}{{/url}}">{{#t}}buttons.back{{/t}}</a>
3
+ <a class="govuk-back-link" href="{{#url}}{{backLink}}{{/url}}">{{#t}}buttons.back{{/t}}</a>
4
4
  {{/backLink}}
5
5
  {{/back}}
@@ -1,4 +1,4 @@
1
- <ul class="list-bullet">
1
+ <ul class="govuk-list govuk-list--bullet">
2
2
  {{#items}}
3
3
  <li>
4
4
  {{.}}
@@ -1,5 +1,6 @@
1
- <div class="alert-complete" role="alert">
2
- <div class="alert-message">
3
- <h1>{{#t}}journey.confirmation.message{{/t}}</h1>
1
+ <div class="govuk-panel govuk-panel--confirmation" role="alert">
2
+ <h1 govuk-panel__title>{{#t}}journey.confirmation.message{{/t}}</h1>
3
+ <div class="govuk-panel__body">
4
+ {{#t}}journey.confirmation.details{{/t}}
4
5
  </div>
5
6
  </div>
@@ -1,5 +1,5 @@
1
1
  {{$continue}}
2
2
  {{#continueLink}}
3
- <a class="button" href="{{#url}}{{continueLink}}{{/url}}">{{#t}}buttons.continue{{/t}}</a>
3
+ <a class="govuk-button" href="{{#url}}{{continueLink}}{{/url}}">{{#t}}buttons.continue{{/t}}</a>
4
4
  {{/continueLink}}
5
5
  {{/continue}}
@@ -1,26 +1,29 @@
1
- <div id="cookie-banner" class="grid-row">
2
- <div id="cookie-banner-info" class="column-two-thirds">
3
- <h1 class="heading-medium js-enabled">Cookies on {{#appName}}{{appName}}{{/appName}}{{^appName}}this service{{/appName}}</h1>
4
- <p class="js-enabled">We use some essential cookies to make this website work.</p>
5
- <p class="js-enabled">We'd like to set additional cookies to understand how you use this service, remember your settings and improve government services.</p>
6
- <p class="js-enabled">We also use cookies set by other sites to help us deliver content from their services.</p>
7
- <!--Non-javascript fallback content-->
8
- <h1 class="heading-medium js-disabled">Tell us whether you accept cookies</h1>
9
- <p class="js-disabled">
10
- We use some essential cookies to make this website work.
11
- We'd like to set additional cookies to understand how you use GOV.UK, remember your settings and improve government services.
12
- We also use cookies set by other sites to help us deliver content from their services.
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.
13
24
  </p>
14
- </div>
15
- <div id="cookie-banner-actions" class="column-two-thirds">
16
- <button id="accept-cookies-button" class="button js-enabled" type="button" aria-label="Yes, accept cookies that measure website usage">Accept additional cookies</button>
17
- <button id="reject-cookies-button" class="button js-enabled" type="button" aria-label="No, decline cookies that measure website usage">Reject additional cookies</button>
18
- <a href="/cookies" class="js-enabled">View cookies</a>
19
- <!--Non-javascript fallback content-->
20
- <a href="/cookies" role="button" class="button js-disabled">Set cookie preferences</a>
21
- </div>
22
- <div id="cookie-banner-submitted" tabindex="-1">
23
- <p>Your cookie preferences have been saved. You can <a href="/cookies">change your cookie settings</a> at any time.</p>
24
- <button id="hide-cookie-banner" class="button" type="button" aria-label="Hide cookie banner">Hide</button>
25
- </div>
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>
26
29
  </div>
@@ -1,8 +1,8 @@
1
- <div class="multiple-choice">
2
- <input id="radio-1" type="radio" name="radio-group" value="Use cookies that measure my website use">
3
- <label for="radio-1">Use cookies that measure my website use</label>
1
+ <div class="govuk-radios__item">
2
+ <input class="govuk-radios__input" id="radio-1" type="radio" name="radio-group" value="Use cookies that measure my website use">
3
+ <label class="govuk-label govuk-radios__label" for="radio-1">Use cookies that measure my website use</label>
4
4
  </div>
5
- <div class="multiple-choice">
6
- <input id="radio-2" type="radio" name="radio-group" value="Do not use cookies that measure my website use">
7
- <label for="radio-2">Do not use cookies that measure my website use</label>
5
+ <div class="govuk-radios__item">
6
+ <input class="govuk-radios__input" id="radio-2" type="radio" name="radio-group" value="Do not use cookies that measure my website use">
7
+ <label class="govuk-label govuk-radios__label" for="radio-2">Do not use cookies that measure my website use</label>
8
8
  </div>
@@ -1 +1 @@
1
- <p>{{before}}<a href="{{href}}" rel="external">{{link}}</a>{{after}}</p>
1
+ <p class="govuk-body">{{before}}<a class="govuk-link" href="{{href}}" rel="external">{{link}}</a>{{after}}</p>
@@ -1,7 +1,8 @@
1
1
  <form action="" method="POST" {{$encoding}}{{/encoding}} autocomplete="off" novalidate="true" spellcheck="false">
2
2
  {{$intro}}
3
- {{#intro}}<p class="form-block">{{intro}}</p>{{/intro}}
3
+ {{#intro}}<p>{{intro}}</p>{{/intro}}
4
4
  {{/intro}}
5
+
5
6
  {{$form}}{{/form}}
6
7
  {{#csrf-token}}
7
8
  <input type="hidden" name="x-csrf-token" value="{{csrf-token}}" />
@@ -34,7 +34,6 @@
34
34
  ga('govuk_shared.send', 'pageview')
35
35
  {{/gaCrossDomainTrackingTagId}}
36
36
  }
37
-
38
37
  </script>
39
38
  {{/gaTagId}}
40
39
 
@@ -1,2 +1,25 @@
1
+ {{#gtmTagId}}
2
+ {{#cookiesAccepted}}
3
+ <!-- Google Tag Manager Data Layer -->
4
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>
5
+ var dataLayer = window.dataLayer || [];
6
+ dataLayer.push(
7
+ {{{gtmConfig}}}
8
+ );
9
+ </script>
10
+ <!-- End Google Tag Manager Data Layer -->
11
+
12
+ <!-- Google Tag Manager -->
13
+ <script {{#nonce}}nonce="{{nonce}}"{{/nonce}}>
14
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
15
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
16
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
17
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
18
+ })(window,document,'script','dataLayer','{{gtmTagId}}');
19
+ </script>
20
+ <!-- End Google Tag Manager -->
21
+ {{/cookiesAccepted}}
22
+ {{/gtmTagId}}
23
+
1
24
  <meta name="format-detection" content="telephone=no">
2
25
  <link rel="stylesheet" href="{{assetPath}}/css/app.css">
@@ -1,10 +1,10 @@
1
1
  {{$content-outer}}
2
2
  {{$preloader}}{{/preloader}}
3
- <div class="column-two-thirds">
3
+ <div class="govuk-grid-column-two-thirds">
4
4
  {{$validationSummary}}{{/validationSummary}}
5
- <header>
6
- <h1>{{$header}}{{/header}}</h1>
7
- </header>
5
+ {{#captionHeading}}<span class="govuk-caption-l">{{captionHeading}}</span>{{/captionHeading}}
6
+ {{#header}}<h1 class="govuk-heading-l">{{header}}</h1>{{/header}}
7
+ {{#subHeading}}<div id="page-header"><h2 class="govuk-heading-m">{{subHeading}}</h2></div>{{/subHeading}}
8
8
  {{$content}}{{/content}}
9
9
  </div>
10
10
  {{/content-outer}}
@@ -1,7 +1,8 @@
1
- <div class="header-proposition">
2
- <div class="content">
3
- <nav id="proposition-menu">
4
- <a href="{{baseUrl}}" id="proposition-name">{{$journeyHeader}}{{/journeyHeader}}</a>
5
- </nav>
6
- </div>
1
+ <div class="govuk-header__content">
2
+ {{#startPageRedirectUrl}}
3
+ <a href="{{startPageRedirectUrl}}" class="govuk-header__link govuk-header__link--service-name" id="proposition-name">{{$journeyHeader}}{{/journeyHeader}}</a>
4
+ {{/startPageRedirectUrl}}
5
+ {{^startPageRedirectUrl}}
6
+ <a href="{{journeyHeaderURL}}" class="govuk-header__link govuk-header__link--service-name" id="proposition-name">{{$journeyHeader}}{{/journeyHeader}}</a>
7
+ {{/startPageRedirectUrl}}
7
8
  </div>
@@ -1,15 +1,15 @@
1
- <table>
2
- <thead>
3
- <tr>
1
+ <table class="govuk-table">
2
+ <thead class="govuk-table__head">
3
+ <tr class="govuk-table__row">
4
4
  {{#headers}}
5
- <th>{{.}}</th>
5
+ <th scope="col" class="govuk-table__header app-custom-class">{{.}}</th>
6
6
  {{/headers}}
7
7
  </tr>
8
8
  </thead>
9
9
  <tbody>
10
- <tr>
10
+ <tr class="govuk-table__row">
11
11
  {{#cookieName}}
12
- <td>{{cookieName}}</td>
12
+ <td scope="row" class="govuk-table__header">{{cookieName}}</td>
13
13
  {{/cookieName}}
14
14
  {{^cookieName}}
15
15
  <td>{{defaultCookieName}}</td>
@@ -5,10 +5,10 @@
5
5
  <dt class="confirm-label">{{label}}</dt>
6
6
  <dd class="confirm-value" data-value="{{value}}">{{value}}</dd>
7
7
  {{#changeLink}}
8
- <dd><span class="link"><a href="{{changeLink}}" id="{{field}}-change-{{index}}">{{#t}}buttons.change{{/t}} <span class="visuallyhidden">{{changeLinkDescription}} from {{value}}</span></a></span></dd>
8
+ <dd><span><a class="govuk-link" href="{{changeLink}}" id="{{field}}-change-{{index}}">{{#t}}buttons.change{{/t}} <span class="visuallyhidden">{{changeLinkDescription}} from {{value}}</span></a></span></dd>
9
9
  {{/changeLink}}
10
10
  {{^changeLink}}
11
- <dd><span class="link"><a href="{{baseUrl}}{{step}}/edit#{{field}}" id="{{field}}-change">{{#t}}buttons.change{{/t}} <span class="visuallyhidden">{{changeLinkDescription}} from {{value}}</span></a></span></dd>
11
+ <dd><span><a class="govuk-link" href="{{baseUrl}}{{step}}/edit#{{field}}" id="{{field}}-change">{{#t}}buttons.change{{/t}} <span class="visuallyhidden">{{changeLinkDescription}} from {{value}}</span></a></span></dd>
12
12
  {{/changeLink}}
13
13
  {{/isSeparator}}
14
14
  </div>
@@ -1,16 +1,16 @@
1
- <table>
2
- <thead>
3
- <tr>
1
+ <table class="govuk-table">
2
+ <thead class="govuk-table__head">
3
+ <tr class="govuk-table__row">
4
4
  {{#headers}}
5
- <th>{{.}}</th>
5
+ <th scope="col" class="govuk-table__header app-custom-class">{{.}}</th>
6
6
  {{/headers}}
7
7
  </tr>
8
8
  </thead>
9
- <tbody>
9
+ <tbody class="govuk-table__body">
10
10
  {{#rows}}
11
- <tr>
11
+ <tr class="govuk-table__row">
12
12
  {{#.}}
13
- <td>{{.}}</td>
13
+ <td class="govuk-table__cell">{{.}}</td>
14
14
  {{/.}}
15
15
  </tr>
16
16
  {{/rows}}
@@ -1,3 +1,3 @@
1
- <ul>
2
- {{$validation-list}}{{/validation-list}}
1
+ <ul class="govuk-list govuk-error-summary__list">
2
+ {{$validation-list}}{{/validation-list}}
3
3
  </ul>
@@ -1,24 +1,25 @@
1
1
  {{#errorlist.length}}
2
- <div class="validation-summary" tabindex="-1">
2
+ <div class="govuk-error-summary" aria-labelledby="error-summary-title" data-module="govuk-error-summary" role="alert" tabindex="-1">
3
3
  {{$errorlist-title}}
4
4
 
5
5
  {{#errorLength.single}}
6
- <h2 id="error-summary-title">{{#t}}errorlist.title.single{{/t}}</h2>
6
+ <h2 class="govuk-error-summary__title" id="error-summary-title">{{#t}}errorlist.title.single{{/t}}</h2>
7
7
  {{/errorLength.single}}
8
8
  {{#errorLength.multiple}}
9
- <h2 id="error-summary-title">{{#t}}errorlist.title.multiple{{/t}}</h2>
9
+ <h2 class="govuk-error-summary__title" id="error-summary-title">{{#t}}errorlist.title.multiple{{/t}}</h2>
10
10
  {{/errorLength.multiple}}
11
11
 
12
12
  {{/errorlist-title}}
13
-
14
- {{<partials-validation-list}}
15
- {{$validation-list}}
16
- {{#errorlist}}
17
- {{#message}}
18
- <li><a href="#{{key}}">{{ message }}</a></li>
19
- {{/message}}
20
- {{/errorlist}}
21
- {{/validation-list}}
22
- {{/partials-validation-list}}
13
+ <div class="govuk-error-summary__body">
14
+ {{<partials-validation-list}}
15
+ {{$validation-list}}
16
+ {{#errorlist}}
17
+ {{#message}}
18
+ <li><a href="#{{errorLinkId}}">{{ message }}</a></li>
19
+ {{/message}}
20
+ {{/errorlist}}
21
+ {{/validation-list}}
22
+ {{/partials-validation-list}}
23
+ </div>
23
24
  </div>
24
25
  {{/errorlist.length}}
@@ -0,0 +1,7 @@
1
+ <div class="govuk-warning-text">
2
+ <span class="govuk-warning-text__icon" aria-hidden="true">!</span>
3
+ <strong class="govuk-warning-text__text">
4
+ <span class="govuk-warning-text__assistive">Warning</span>
5
+ {{warning}}
6
+ </strong>
7
+ </div>
@@ -1,6 +1,7 @@
1
1
  {{<error}}
2
2
  {{$content}}
3
- <p>{{{content.message}}}</p>
4
- <a href="{{startLink}}" class="button" role="button">{{#t}}buttons.start-again{{/t}}</a>
3
+ <h1 class="govuk-heading-l">{{{content.title}}}</h1>
4
+ <h2 class="govuk-heading-m">{{{content.message}}}</h2>
5
+ <a href="{{startLink}}" class="govuk-button" role="button">{{#t}}buttons.start-again{{/t}}</a>
5
6
  {{/content}}
6
7
  {{/error}}