hof 20.0.0-beta.9 → 21.0.0-instrumentation-beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. package/.nyc_output/4d5a4574-78fc-4fcb-9412-3658f6ce33ff.json +1 -0
  2. package/.nyc_output/processinfo/4d5a4574-78fc-4fcb-9412-3658f6ce33ff.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/components/date/index.js +1 -3
  5. package/components/date/templates/date.html +12 -15
  6. package/components/index.js +1 -0
  7. package/components/notify/index.js +60 -0
  8. package/components/notify/notify.js +25 -0
  9. package/config/sanitisation-rules.js +20 -17
  10. package/controller/base-controller.js +5 -3
  11. package/controller/controller.js +0 -39
  12. package/frontend/govuk-template/build/config.js +2 -2
  13. package/frontend/govuk-template/build/index.js +2 -2
  14. package/frontend/govuk-template/govuk_template.html +109 -0
  15. package/frontend/govuk-template/index.js +4 -4
  16. package/frontend/template-mixins/mixins/template-mixins.js +9 -20
  17. package/frontend/template-mixins/partials/forms/checkbox.html +4 -4
  18. package/frontend/template-mixins/partials/forms/input-submit.html +1 -1
  19. package/frontend/template-mixins/partials/forms/input-text-group.html +9 -12
  20. package/frontend/template-mixins/partials/forms/option-group.html +26 -33
  21. package/frontend/template-mixins/partials/forms/select.html +5 -10
  22. package/frontend/template-mixins/partials/forms/textarea-group.html +6 -15
  23. package/frontend/template-mixins/partials/mixins/panel.html +4 -3
  24. package/frontend/template-partials/views/accessibility.html +4 -4
  25. package/frontend/template-partials/views/cookies.html +1 -1
  26. package/frontend/template-partials/views/layout.html +22 -22
  27. package/frontend/template-partials/views/partials/back.html +1 -1
  28. package/frontend/template-partials/views/partials/bullet-list.html +1 -1
  29. package/frontend/template-partials/views/partials/confirmation-alert.html +3 -4
  30. package/frontend/template-partials/views/partials/continue.html +1 -1
  31. package/frontend/template-partials/views/partials/cookie-banner.html +24 -27
  32. package/frontend/template-partials/views/partials/cookie-settings-radio.html +6 -6
  33. package/frontend/template-partials/views/partials/external-link.html +1 -1
  34. package/frontend/template-partials/views/partials/form.html +1 -1
  35. package/frontend/template-partials/views/partials/maincontent-left.html +4 -4
  36. package/frontend/template-partials/views/partials/navigation.html +6 -7
  37. package/frontend/template-partials/views/partials/session-cookies-table.html +6 -6
  38. package/frontend/template-partials/views/partials/table.html +7 -7
  39. package/frontend/template-partials/views/partials/validation-list.html +2 -2
  40. package/frontend/template-partials/views/partials/validation-summary.html +13 -14
  41. package/frontend/template-partials/views/session-timeout.html +1 -1
  42. package/frontend/themes/gov-uk/client-js/cookieSettings.js +1 -1
  43. package/frontend/themes/gov-uk/client-js/index.js +1 -6
  44. package/frontend/themes/gov-uk/styles/_cookie-banner.scss +1 -51
  45. package/frontend/themes/gov-uk/styles/modules/_validation.scss +3 -3
  46. package/frontend/themes/gov-uk/views/partials/form.html +9 -0
  47. package/frontend/themes/gov-uk/views/partials/forms/option-group.html +28 -0
  48. package/frontend/themes/gov-uk/views/partials/mixins/panel.html +3 -0
  49. package/frontend/themes/gov-uk/views/partials/validation-summary.html +24 -0
  50. package/frontend/toolkit/assets/javascript/character-count.js +4 -4
  51. package/frontend/toolkit/assets/javascript/form-focus.js +10 -1
  52. package/frontend/toolkit/assets/javascript/validation.js +6 -1
  53. package/frontend/toolkit/assets/stylesheets/modules/_validation.scss +3 -3
  54. package/index.js +1 -6
  55. package/lib/settings.js +2 -18
  56. package/middleware/errors.js +3 -0
  57. package/middleware/monitor.js +20 -0
  58. package/middleware/not-found.js +3 -0
  59. package/middleware/rate-limiter.js +0 -1
  60. package/package.json +5 -4
  61. package/sandbox/apps/sandbox/fields.js +11 -23
  62. package/sandbox/apps/sandbox/index.js +1 -5
  63. package/sandbox/apps/sandbox/translations/src/en/fields.json +6 -9
  64. package/sandbox/apps/sandbox/translations/src/en/journey.json +1 -4
  65. package/sandbox/apps/sandbox/translations/src/en/pages.json +29 -2
  66. package/sandbox/apps/sandbox/translations/src/en/validation.json +1 -1
  67. package/sandbox/apps/sandbox/views/confirmation.html +15 -0
  68. package/sandbox/assets/js/index.js +1 -1
  69. package/sandbox/assets/scss/app.scss +16 -68
  70. package/sandbox/package.json +1 -4
  71. package/sandbox/yarn.lock +0 -767
  72. package/wizard/index.js +13 -0
  73. package/.nyc_output/e2fdc3eb-4fd2-47e0-a392-fe5f665776a4.json +0 -1
  74. package/.nyc_output/processinfo/e2fdc3eb-4fd2-47e0-a392-fe5f665776a4.json +0 -1
  75. package/.vscode/settings.json +0 -6
  76. package/frontend/govuk-template/build/govuk_template.html +0 -104
  77. package/frontend/govuk-template/govuk_template_generated.html +0 -104
  78. package/frontend/template-mixins/partials/forms/checkbox-group.html +0 -38
  79. package/frontend/template-mixins/partials/forms/input-text-date.html +0 -37
  80. package/frontend/themes/gov-uk/client-js/govuk-cookies.js +0 -121
  81. package/frontend/themes/gov-uk/client-js/skip-to-main.js +0 -19
  82. package/sandbox/.env +0 -1
  83. package/sandbox/apps/sandbox/translations/en/default.json +0 -203
  84. package/sandbox/public/css/app.css +0 -9439
  85. package/sandbox/public/images/icons/icon-caret-left.png +0 -0
  86. package/sandbox/public/images/icons/icon-complete.png +0 -0
  87. package/sandbox/public/images/icons/icon-cross-remove-sign.png +0 -0
  88. package/sandbox/public/js/bundle.js +0 -35644
@@ -12,13 +12,11 @@ const renderer = require('./render');
12
12
  const PANELMIXIN = 'partials/mixins/panel';
13
13
  const PARTIALS = [
14
14
  'partials/forms/input-text-group',
15
- 'partials/forms/input-text-date',
16
15
  'partials/forms/input-submit',
17
16
  'partials/forms/select',
18
17
  'partials/forms/checkbox',
19
18
  'partials/forms/textarea-group',
20
- 'partials/forms/option-group',
21
- 'partials/forms/checkbox-group'
19
+ 'partials/forms/option-group'
22
20
  ];
23
21
 
24
22
  // This returns a middleware that places mixins against the `res.locals` object.
@@ -193,7 +191,6 @@ module.exports = function (options) {
193
191
  const lKey = getTranslationKey(field, key, 'label');
194
192
  const hint = conditionalTranslate(hKey);
195
193
  const required = isRequired(field);
196
- const labelClassName = classNames(field, 'labelClassName');
197
194
  const autocomplete = field.autocomplete || extension.autocomplete;
198
195
 
199
196
  return Object.assign({}, extension, {
@@ -202,8 +199,8 @@ module.exports = function (options) {
202
199
  type: extension.type || type(field),
203
200
  value: this.values && this.values[key],
204
201
  label: t(lKey),
205
- labelClassName: labelClassName ? `govuk-label ${labelClassName}` : 'govuk-label',
206
- formGroupClassName: classNames(field, 'formGroupClassName') || extension.formGroupClassName || 'govuk-form-group',
202
+ labelClassName: classNames(field, 'labelClassName') || 'form-label',
203
+ formGroupClassName: classNames(field, 'formGroupClassName') || extension.formGroupClassName || 'form-group',
207
204
  hint: hint,
208
205
  hintId: extension.hintId || (hint ? key + '-hint' : null),
209
206
  error: this.errors && this.errors[key],
@@ -213,7 +210,6 @@ module.exports = function (options) {
213
210
  date: extension.date,
214
211
  autocomplete: autocomplete,
215
212
  child: field.child,
216
- isPageHeading: field.isPageHeading,
217
213
  attributes: field.attributes,
218
214
  renderChild: renderChild.bind(this)
219
215
  });
@@ -223,7 +219,7 @@ module.exports = function (options) {
223
219
  opts = opts || {};
224
220
  const field = Object.assign({}, this.options.fields[key] || options.fields[key]);
225
221
  const legend = field.legend;
226
- const detail = field.detail;
222
+
227
223
  let legendClassName;
228
224
  let legendValue = 'fields.' + key + '.legend';
229
225
  if (legend) {
@@ -240,8 +236,7 @@ module.exports = function (options) {
240
236
  legend: t(legendValue),
241
237
  legendClassName: legendClassName,
242
238
  role: opts.type === 'radio' ? 'radiogroup' : 'group',
243
- isPageHeading: field.isPageHeading,
244
- detail: detail ? detail : '',
239
+ ariaRequired: opts.type === 'radio',
245
240
  hint: conditionalTranslate(getTranslationKey(field, key, 'hint')),
246
241
  options: _.map(field.options, function (obj) {
247
242
  let selected = false;
@@ -275,7 +270,6 @@ module.exports = function (options) {
275
270
  value: value,
276
271
  type: opts.type,
277
272
  selected: selected,
278
- radioOption: opts.type === 'radio',
279
273
  toggle: toggle,
280
274
  child: child,
281
275
  optionHint: conditionalTranslate(optionHint) || ''
@@ -361,7 +355,7 @@ module.exports = function (options) {
361
355
  }
362
356
  },
363
357
  'checkbox-group': {
364
- path: 'partials/forms/checkbox-group',
358
+ path: 'partials/forms/option-group',
365
359
  renderWith: optionGroup,
366
360
  options: {
367
361
  type: 'checkbox'
@@ -431,21 +425,16 @@ module.exports = function (options) {
431
425
  year: autocomplete + '-year'
432
426
  };
433
427
  }
434
- const isThisRequired = field.validate ? field.validate.indexOf('required') > -1 : false;
435
- const formGroupClassName = (field.formGroup && field.formGroup.className) ? field.formGroup.className : '';
436
- const classNameDay = (field.controlsClass && field.controlsClass.day) ? field.controlsClass.day : 'govuk-date-input__input govuk-input--width-2';
437
- const classNameMonth = (field.controlsClass && field.controlsClass.month) ? field.controlsClass.month : 'govuk-date-input__input govuk-input--width-2';
438
- const classNameYear = (field.controlsClass && field.controlsClass.year) ? field.controlsClass.year : 'govuk-date-input__input govuk-input--width-4';
439
428
 
440
429
  const parts = [];
441
430
 
442
431
  if (isExact) {
443
- 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 }));
432
+ const dayPart = compiled['partials/forms/input-text-group'].render(inputText.call(this, key + '-day', { pattern: '[0-9]*', min: 1, max: 31, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.day }));
444
433
  parts.push(dayPart);
445
434
  }
446
435
 
447
- 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, isRequired }));
448
- 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, isRequired }));
436
+ const monthPart = compiled['partials/forms/input-text-group'].render(inputText.call(this, key + '-month', { pattern: '[0-9]*', min: 1, max: 12, maxlength: 2, hintId: key + '-hint', date: true, autocomplete: autocomplete.month }));
437
+ const yearPart = compiled['partials/forms/input-text-group'].render(inputText.call(this, key + '-year', { pattern: '[0-9]*', maxlength: 4, hintId: key + '-hint', date: true, formGroupClassName: 'form-group-year', autocomplete: autocomplete.year }));
449
438
 
450
439
  return parts.concat(monthPart, yearPart).join('\n');
451
440
  };
@@ -1,7 +1,7 @@
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}}
3
- <div class="govuk-checkboxes__item">
4
- <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}}>
1
+ <div id="{{key}}-group" class="form-group{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} validation-error{{/error}}">
2
+ {{#error}}<p class="error-message" aria-hidden="true">{{error.message}}</p>{{/error}}
3
+ <div class="multiple-choice">
4
+ <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
5
  <label for="{{key}}" class="{{#className}}{{className}} {{/className}}{{#invalid}}invalid-input{{/invalid}}">
6
6
  {{{label}}}
7
7
  {{#error}}<span class="visuallyhidden">{{error.message}}</span>{{/error}}
@@ -1 +1 @@
1
- <input type="submit" {{#id}}id="{{id}}"{{/id}} value="{{{value}}}" class="govuk-button">
1
+ <input type="submit" {{#id}}id="{{id}}"{{/id}} value="{{{value}}}" class="button">
@@ -1,15 +1,11 @@
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}}">
3
- {{{label}}}
4
- </label>
5
- {{#isPageHeading}}</h1>{{/isPageHeading}}
6
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</span>{{/hint}}
7
- {{#error}}
8
- <p class="govuk-error-message">
9
- <span class="govuk-visually-hidden">Error:</span> {{error.message}}
10
- </p>
11
- {{/error}}
1
+ <div id="{{id}}-group" class="form-group{{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{^date}}{{#error}} validation-error{{/error}}{{/date}}">
2
+ <label for="{{id}}" class="{{labelClassName}}">
3
+ <span class="label-text">{{{label}}}</span>
4
+ {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="form-hint">{{hint}}</span>{{/hint}}
5
+ {{^date}}{{#error}}<span class="error-message">{{error.message}}</span>{{/error}}{{/date}}
6
+ </label>
12
7
  {{#renderChild}}{{/renderChild}}
8
+ <div class="govuk-input__wrapper">
13
9
  {{#attributes}}
14
10
  {{#prefix}}
15
11
  <div class="govuk-input__prefix" aria-hidden="true">{{prefix}}</div>
@@ -19,7 +15,7 @@
19
15
  type="{{type}}"
20
16
  name="{{id}}"
21
17
  id="{{id}}"
22
- class="{{^className}}govuk-input{{/className}}{{#className}}{{className}}{{/className}}{{#error}} invalid-input{{/error}}"
18
+ class="form-control{{#className}} {{className}}{{/className}}{{#error}} invalid-input{{/error}}"
23
19
  aria-required="{{required}}"
24
20
  {{#value}} value="{{value}}"{{/value}}
25
21
  {{#min}} min="{{min}}"{{/min}}
@@ -38,4 +34,5 @@
38
34
  <div class="govuk-input__prefix" aria-hidden="true">{{suffix}}</div>
39
35
  {{/suffix}}
40
36
  {{/attributes}}
37
+ </div>
41
38
  </div>
@@ -1,34 +1,27 @@
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
- {{#hint}}<div id="{{key}}-hint" class="govuk-hint">{{hint}}</div>{{/hint}}
9
- {{#error}}<p id="{{key}}-error" class="govuk-error-message"><span class="govuk-visually-hidden">Error:</span> {{error.message}}</p>{{/error}}
10
- {{{detail}}}
11
- <div class="govuk-radios" data-module="govuk-radios">
12
- {{#options}}
13
- <div class="govuk-radios__item">
14
- <input
15
- class="govuk-radios__input"
16
- type="{{type}}"
17
- name="{{key}}"
18
- id="{{key}}-{{value}}"
19
- value="{{value}}"
20
- {{#toggle}} data-toggle="{{toggle}}"{{/toggle}}
21
- {{#selected}} checked="checked"{{/selected}}
22
- {{^error}}{{#optionHint}} aria-describedby="{{key}}-{{value}}-hint"{{/optionHint}}{{^optionHint}}{{#hint}} aria-describedby="{{key}}-hint"{{/hint}}{{/optionHint}}{{/error}}
23
- {{#error}} aria-describedby="{{key}}-error" aria-invalid="true"{{/error}}
24
- >
25
- <label class="govuk-label govuk-radios__label" for="{{key}}-{{value}}">
26
- {{{label}}}
27
- {{#optionHint}}<div id="{{key}}-{{value}}-item-hint" class="govuk-hint govuk-radios__hint">{{optionHint}}</div>{{/optionHint}}
28
- </label>
29
- </div>
30
- {{#renderChild}}{{/renderChild}}
31
- {{/options}}
32
- </div>
33
- </fieldset>
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>
34
27
  </div>
@@ -1,15 +1,10 @@
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}}">
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
3
  {{{label}}}
4
- {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</span>{{/hint}}
5
- {{#error}}
6
- <p class="govuk-error-message">
7
- <span class="govuk-visually-hidden">Error:</span> {{error.message}}
8
- </p>
9
- {{/error}}
4
+ {{#hint}}<span {{$hintId}}id="{{hintId}}" {{/hintId}}class="form-hint">{{hint}}</span>{{/hint}}
5
+ {{#error}}<span class="error-message">{{error.message}}</span>{{/error}}
10
6
  </label>
11
- {{#isPageHeading}}</h1>{{/isPageHeading}}
12
- <select id="{{id}}" class="govuk-select{{#className}} {{className}}{{/className}}{{#error}} invalid-input{{/error}}" name="{{id}}" aria-required="{{required}}">
7
+ <select id="{{id}}" class="form-control{{#className}} {{className}}{{/className}}{{#error}} invalid-input{{/error}}" name="{{id}}" aria-required="{{required}}">
13
8
  {{#options}}
14
9
  <option value="{{value}}" {{#selected}}selected{{/selected}}>{{label}}</option>
15
10
  {{/options}}
@@ -1,22 +1,14 @@
1
- {{#maxlength}}
2
- <div class="govuk-character-count" data-module="govuk-character-count" data-maxlength="{{maxlength}}">
3
- {{/maxlength}}
4
- <div id="{{id}}-group" class="{{#compound}}form-group-compound {{/compound}}{{#formGroupClassName}}{{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
5
- {{#isPageHeading}}<h1 class="govuk-label-wrapper">{{/isPageHeading}}<label for="{{id}}" class="{{labelClassName}}">
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}}">
6
3
  {{{label}}}
7
- {{#error}}
8
- <p id="{{id}}-error" class="govuk-error-message">
9
- <span id="{{id}}-error" class="govuk-visually-hidden">Error:</span>{{error.message}}
10
- </p>
11
- {{/error}}
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}}
12
6
  </label>
13
- {{#isPageHeading}}</h1>{{/isPageHeading}}
14
- {{#hint}}<div {{$hintId}}id="{{hintId}}" {{/hintId}}class="govuk-hint">{{hint}}</div>{{/hint}}
15
7
  {{#renderChild}}{{/renderChild}}
16
8
  <textarea
17
9
  name="{{id}}"
18
10
  id="{{id}}"
19
- class="govuk-textarea{{#className}} {{className}}{{/className}} {{#maxlength}}maxlength{{/maxlength}}{{#error}} invalid-input{{/error}}"
11
+ class="form-control{{#className}} {{className}}{{/className}} {{#maxlength}}maxlength{{/maxlength}}{{#error}} invalid-input{{/error}}"
20
12
  aria-required="{{required}}"
21
13
  {{#maxlength}} maxlength="{{maxlength}}"{{/maxlength}}
22
14
  {{#attributes}}
@@ -27,6 +19,5 @@
27
19
  {{^error}}{{^hintId}}{{#maxlength}} aria-describedby="{{id}}-maxlength-hint"{{/maxlength}}{{/hintId}}{{/error}}
28
20
  {{#error}} aria-invalid="true" aria-describedby="{{id}}-error"{{/error}}
29
21
  >{{value}}</textarea>
30
- {{#maxlength}}<div id="{{id}}-maxlength-hint" class="govuk-character-count__message" aria-live="polite">You have {{maxlength}} characters remaining</div>{{/maxlength}}
22
+ {{#maxlength}}<span id="{{id}}-maxlength-hint" class="maxlength-hint form-hint" aria-live="polite">You can enter up to {{maxlength}} characters</span>{{/maxlength}}
31
23
  </div>
32
- {{#maxlength}}</div>{{/maxlength}}
@@ -1,4 +1,5 @@
1
- <div id="{{toggle}}-panel" class="{{#radioOption}}govuk-radios__conditional govuk-radios__conditional--hidden{{/radioOption}}
2
- {{^radioOption}}govuk-checkboxes__conditional govuk-checkboxes__conditional--hidden{{/radioOption}}">
3
- {{#renderMixin}}{{/renderMixin}}
1
+ <div id="{{toggle}}-panel" class="reveal js-hidden">
2
+ <div class="panel-indent">
3
+ {{#renderMixin}}{{/renderMixin}}
4
+ </div>
4
5
  </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="govuk-list">
11
+ <ul class="list list-bullet">
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="govuk-list">
21
+ <ul class="list list-bullet">
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="govuk-list">
27
+ <ul class="list list-bullet">
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="govuk-list">
43
+ <ul class="list list-bullet">
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="govuk-form-group">
56
+ <div class="form-group">
57
57
  <fieldset>
58
58
  <legend>
59
59
  <h2>{{measuring-use}}</h2>
@@ -5,32 +5,25 @@
5
5
  {{$pageTitle}}
6
6
  {{#errorlist.length}}{{#t}}errorlist.prefix{{/t}}{{/errorlist.length}}{{$header}}{{/header}} &ndash; GOV.UK
7
7
  {{/pageTitle}}
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}}
8
+ {{$headerClass}}with-proposition{{/headerClass}}
12
9
  {{$insideHeader}}{{/insideHeader}}
13
10
  {{$main}}
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}}
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>
23
18
  <span id="step">
24
19
  {{> partials-back}} <span>{{$step}}{{/step}}</span>
25
20
  </span>
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>
21
+ <div class="grid-row" id="content">
22
+ {{> partials-maincontent-left}}
23
+ </div>
31
24
  {{> partials-continue}}
32
25
  <script type="text/javascript" src="{{assetPath}}/js/bundle.js"></script>
33
- </div>
26
+ </main>
34
27
  {{/main}}
35
28
  {{$cookieMessage}}
36
29
  {{#gaTagId}}
@@ -44,9 +37,16 @@
44
37
  {{/gaTagId}}
45
38
  {{/cookieMessage}}
46
39
  {{$footerSupportLinks}}
47
- <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/cookies">{{#t}}base.cookies{{/t}}</a></li>
48
- <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/accessibility">{{#t}}base.accessibility{{/t}}</a></li>
49
- <li class="govuk-footer__inline-list-item"><a class="govuk-footer__link" href="/terms-and-conditions">{{#t}}base.terms{{/t}}</a></li>
40
+ <ul>
41
+ {{#footerSupportLinks}}
42
+ <li><a href="{{path}}">{{#t}}{{property}}{{/t}}</a></li>
43
+ {{/footerSupportLinks}}
44
+ {{^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>
48
+ {{/footerSupportLinks}}
49
+ </ul>
50
50
  {{/footerSupportLinks}}
51
51
  {{$bodyEnd}}
52
52
  {{> partials-gatag}}
@@ -1,5 +1,5 @@
1
1
  {{$back}}
2
2
  {{#backLink}}
3
- <a class="govuk-back-link" href="{{#url}}{{backLink}}{{/url}}">{{#t}}buttons.back{{/t}}</a>
3
+ <a class="link-back" href="{{#url}}{{backLink}}{{/url}}">{{#t}}buttons.back{{/t}}</a>
4
4
  {{/backLink}}
5
5
  {{/back}}
@@ -1,4 +1,4 @@
1
- <ul class="govuk-list govuk-list--bullet">
1
+ <ul class="list-bullet">
2
2
  {{#items}}
3
3
  <li>
4
4
  {{.}}
@@ -1,6 +1,5 @@
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}}
1
+ <div class="alert-complete" role="alert">
2
+ <div class="alert-message">
3
+ <h1>{{#t}}journey.confirmation.message{{/t}}</h1>
5
4
  </div>
6
5
  </div>
@@ -1,5 +1,5 @@
1
1
  {{$continue}}
2
2
  {{#continueLink}}
3
- <a class="govuk-button" href="{{#url}}{{continueLink}}{{/url}}">{{#t}}buttons.continue{{/t}}</a>
3
+ <a class="button" href="{{#url}}{{continueLink}}{{/url}}">{{#t}}buttons.continue{{/t}}</a>
4
4
  {{/continueLink}}
5
5
  {{/continue}}
@@ -1,29 +1,26 @@
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" tabindex="0" 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="/student-help/cookies">change your cookie settings</a> at any time.
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.
24
13
  </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>
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>
29
26
  </div>
@@ -1,8 +1,8 @@
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>
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>
4
4
  </div>
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>
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>
8
8
  </div>
@@ -1 +1 @@
1
- <p class="govuk-body">{{before}}<a class="govuk-link" href="{{href}}" rel="external">{{link}}</a>{{after}}</p>
1
+ <p>{{before}}<a href="{{href}}" rel="external">{{link}}</a>{{after}}</p>
@@ -1,6 +1,6 @@
1
1
  <form action="" method="POST" {{$encoding}}{{/encoding}} autocomplete="off" novalidate="true" spellcheck="false">
2
2
  {{$intro}}
3
- {{#intro}}<span class="govuk-hint" >{{intro}}</span>{{/intro}}
3
+ {{#intro}}<p class="form-block">{{intro}}</p>{{/intro}}
4
4
  {{/intro}}
5
5
  {{$form}}{{/form}}
6
6
  {{#csrf-token}}
@@ -1,10 +1,10 @@
1
1
  {{$content-outer}}
2
2
  {{$preloader}}{{/preloader}}
3
- <div class="govuk-grid-column-two-thirds">
3
+ <div class="column-two-thirds">
4
4
  {{$validationSummary}}{{/validationSummary}}
5
- {{#captionHeading}}<span class="govuk-caption-l">{{captionHeading}}</span>{{/captionHeading}}
6
- {{#header}}<h1 class="govuk-heading-xl">{{header}}</h1>{{/header}}
7
- {{#subHeading}}<div id="page-header" class="govuk-heading-l">{{subHeading}}</div>{{/subHeading}}
5
+ <header>
6
+ <h1>{{$header}}{{/header}}</h1>
7
+ </header>
8
8
  {{$content}}{{/content}}
9
9
  </div>
10
10
  {{/content-outer}}
@@ -1,8 +1,7 @@
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="{{baseUrl}}" class="govuk-header__link govuk-header__link--service-name" id="proposition-name">{{$journeyHeader}}{{/journeyHeader}}</a>
7
- {{/startPageRedirectUrl}}
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>
8
7
  </div>
@@ -1,15 +1,15 @@
1
- <table class="govuk-table">
2
- <thead class="govuk-table__head">
3
- <tr class="govuk-table__row">
1
+ <table>
2
+ <thead>
3
+ <tr>
4
4
  {{#headers}}
5
- <th scope="col" class="govuk-table__header app-custom-class">{{.}}</th>
5
+ <th>{{.}}</th>
6
6
  {{/headers}}
7
7
  </tr>
8
8
  </thead>
9
9
  <tbody>
10
- <tr class="govuk-table__row">
10
+ <tr>
11
11
  {{#cookieName}}
12
- <td scope="row" class="govuk-table__header">{{cookieName}}</td>
12
+ <td>{{cookieName}}</td>
13
13
  {{/cookieName}}
14
14
  {{^cookieName}}
15
15
  <td>{{defaultCookieName}}</td>
@@ -1,16 +1,16 @@
1
- <table class="govuk-table">
2
- <thead class="govuk-table__head">
3
- <tr class="govuk-table__row">
1
+ <table>
2
+ <thead>
3
+ <tr>
4
4
  {{#headers}}
5
- <th scope="col" class="govuk-table__header app-custom-class">{{.}}</th>
5
+ <th>{{.}}</th>
6
6
  {{/headers}}
7
7
  </tr>
8
8
  </thead>
9
- <tbody class="govuk-table__body">
9
+ <tbody>
10
10
  {{#rows}}
11
- <tr class="govuk-table__row">
11
+ <tr>
12
12
  {{#.}}
13
- <td class="govuk-table__cell">{{.}}</td>
13
+ <td>{{.}}</td>
14
14
  {{/.}}
15
15
  </tr>
16
16
  {{/rows}}