govuk_publishing_components 11.0.0 → 11.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/admin_scripts.js +1 -1
  3. data/app/assets/javascripts/govuk_publishing_components/components/radio.js +1 -1
  4. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +11 -3
  5. data/app/assets/stylesheets/govuk_publishing_components/admin_styles.scss +2 -4
  6. data/app/assets/stylesheets/govuk_publishing_components/admin_styles_ie8.scss +2 -1
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss +2 -6
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +3 -9
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_details.scss +2 -1
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_error-message.scss +2 -6
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_file-upload.scss +3 -7
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_hint.scss +2 -6
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +3 -7
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_inset-text.scss +2 -1
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_label.scss +2 -6
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +2 -1
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +2 -13
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_panel.scss +2 -6
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +3 -8
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +2 -1
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_skip-link.scss +2 -1
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +15 -10
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +2 -1
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_textarea.scss +3 -1
  25. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -1
  26. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_govuk-frontend-settings.scss +5 -0
  27. data/app/views/govuk_publishing_components/components/_admin_analytics.html.erb +10 -0
  28. data/app/views/govuk_publishing_components/components/_file_upload.html.erb +1 -1
  29. data/app/views/govuk_publishing_components/components/_input.html.erb +7 -5
  30. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +43 -1
  31. data/app/views/govuk_publishing_components/components/_textarea.html.erb +1 -1
  32. data/app/views/govuk_publishing_components/components/docs/admin_analytics.yml +9 -0
  33. data/app/views/govuk_publishing_components/components/docs/details.yml +1 -2
  34. data/app/views/govuk_publishing_components/components/docs/input.yml +9 -0
  35. data/app/views/govuk_publishing_components/components/docs/inset_text.yml +1 -2
  36. data/app/views/govuk_publishing_components/components/docs/layout_footer.yml +117 -3
  37. data/app/views/govuk_publishing_components/components/docs/select.yml +1 -2
  38. data/app/views/govuk_publishing_components/components/docs/textarea.yml +1 -2
  39. data/config/initializers/assets.rb +1 -1
  40. data/lib/govuk_publishing_components.rb +1 -0
  41. data/lib/govuk_publishing_components/app_helpers/environment.rb +18 -0
  42. data/lib/govuk_publishing_components/version.rb +1 -1
  43. data/node_modules/govuk-frontend/all.js +3 -1
  44. data/node_modules/govuk-frontend/assets/images/favicon.ico +0 -0
  45. data/node_modules/govuk-frontend/components/back-link/macro-options.json +32 -0
  46. data/node_modules/govuk-frontend/components/breadcrumbs/README.md +12 -0
  47. data/node_modules/govuk-frontend/components/breadcrumbs/macro-options.json +40 -0
  48. data/node_modules/govuk-frontend/components/breadcrumbs/template.njk +1 -1
  49. data/node_modules/govuk-frontend/components/button/_button.scss +4 -9
  50. data/node_modules/govuk-frontend/components/button/macro-options.json +62 -0
  51. data/node_modules/govuk-frontend/components/checkboxes/_checkboxes.scss +2 -4
  52. data/node_modules/govuk-frontend/components/checkboxes/macro-options.json +129 -0
  53. data/node_modules/govuk-frontend/components/date-input/README.md +19 -7
  54. data/node_modules/govuk-frontend/components/date-input/macro-options.json +85 -0
  55. data/node_modules/govuk-frontend/components/date-input/template.njk +2 -22
  56. data/node_modules/govuk-frontend/components/details/_details.scss +3 -0
  57. data/node_modules/govuk-frontend/components/details/macro-options.json +50 -0
  58. data/node_modules/govuk-frontend/components/error-message/macro-options.json +32 -0
  59. data/node_modules/govuk-frontend/components/error-summary/README.md +12 -0
  60. data/node_modules/govuk-frontend/components/error-summary/_error-summary.scss +7 -3
  61. data/node_modules/govuk-frontend/components/error-summary/macro-options.json +70 -0
  62. data/node_modules/govuk-frontend/components/error-summary/template.njk +1 -1
  63. data/node_modules/govuk-frontend/components/fieldset/_fieldset.scss +1 -2
  64. data/node_modules/govuk-frontend/components/fieldset/macro-options.json +58 -0
  65. data/node_modules/govuk-frontend/components/file-upload/macro-options.json +53 -0
  66. data/node_modules/govuk-frontend/components/footer/README.md +48 -0
  67. data/node_modules/govuk-frontend/components/footer/_footer.scss +10 -2
  68. data/node_modules/govuk-frontend/components/footer/macro-options.json +100 -0
  69. data/node_modules/govuk-frontend/components/footer/template.njk +19 -12
  70. data/node_modules/govuk-frontend/components/header/README.md +14 -2
  71. data/node_modules/govuk-frontend/components/header/_header.scss +9 -1
  72. data/node_modules/govuk-frontend/components/header/macro-options.json +88 -0
  73. data/node_modules/govuk-frontend/components/header/template.njk +2 -2
  74. data/node_modules/govuk-frontend/components/hint/macro-options.json +32 -0
  75. data/node_modules/govuk-frontend/components/input/README.md +1 -1
  76. data/node_modules/govuk-frontend/components/input/_input.scss +1 -3
  77. data/node_modules/govuk-frontend/components/input/macro-options.json +52 -0
  78. data/node_modules/govuk-frontend/components/inset-text/macro-options.json +32 -0
  79. data/node_modules/govuk-frontend/components/label/macro-options.json +38 -0
  80. data/node_modules/govuk-frontend/components/panel/README.md +5 -5
  81. data/node_modules/govuk-frontend/components/panel/_panel.scss +1 -3
  82. data/node_modules/govuk-frontend/components/panel/macro-options.json +44 -0
  83. data/node_modules/govuk-frontend/components/panel/template.njk +1 -2
  84. data/node_modules/govuk-frontend/components/phase-banner/macro-options.json +33 -0
  85. data/node_modules/govuk-frontend/components/radios/_radios.scss +10 -4
  86. data/node_modules/govuk-frontend/components/radios/macro-options.json +135 -0
  87. data/node_modules/govuk-frontend/components/radios/template.njk +1 -1
  88. data/node_modules/govuk-frontend/components/select/README.md +63 -0
  89. data/node_modules/govuk-frontend/components/select/_select.scss +1 -4
  90. data/node_modules/govuk-frontend/components/select/macro-options.json +79 -0
  91. data/node_modules/govuk-frontend/components/select/template.njk +4 -1
  92. data/node_modules/govuk-frontend/components/skip-link/macro-options.json +32 -0
  93. data/node_modules/govuk-frontend/components/table/_table.scss +7 -4
  94. data/node_modules/govuk-frontend/components/table/macro-options.json +108 -0
  95. data/node_modules/govuk-frontend/components/tabs/README.md +29 -5
  96. data/node_modules/govuk-frontend/components/tabs/_tabs.scss +1 -1
  97. data/node_modules/govuk-frontend/components/tabs/macro-options.json +58 -0
  98. data/node_modules/govuk-frontend/components/tabs/tabs.js +3 -1
  99. data/node_modules/govuk-frontend/components/tabs/template.njk +3 -2
  100. data/node_modules/govuk-frontend/components/tag/macro-options.json +26 -0
  101. data/node_modules/govuk-frontend/components/textarea/_textarea.scss +4 -3
  102. data/node_modules/govuk-frontend/components/textarea/macro-options.json +65 -0
  103. data/node_modules/govuk-frontend/components/warning-text/macro-options.json +32 -0
  104. data/node_modules/govuk-frontend/core/_links.scss +1 -14
  105. data/node_modules/govuk-frontend/core/_lists.scss +0 -18
  106. data/node_modules/govuk-frontend/helpers/_grid.scss +1 -2
  107. data/node_modules/govuk-frontend/helpers/_links.scss +52 -1
  108. data/node_modules/govuk-frontend/overrides/_width.scss +4 -0
  109. data/node_modules/govuk-frontend/package.json +19 -19
  110. data/node_modules/govuk-frontend/settings/_colours-applied.scss +10 -0
  111. data/node_modules/govuk-frontend/settings/_compatibility.scss +3 -3
  112. data/node_modules/govuk-frontend/settings/_typography-responsive.scss +10 -3
  113. data/node_modules/govuk-frontend/template.njk +1 -1
  114. data/node_modules/govuk-frontend/utilities/_visually-hidden.scss +0 -5
  115. metadata +32 -2
@@ -49,10 +49,14 @@
49
49
  &:link,
50
50
  &:visited,
51
51
  &:hover,
52
- &:active,
53
- &:focus {
52
+ &:active {
54
53
  color: $govuk-error-colour;
55
- text-decoration: underline;
54
+ }
55
+
56
+ // When focussed, the text colour needs to be darker to ensure that colour
57
+ // contrast is still acceptable
58
+ &:focus {
59
+ color: $govuk-focus-text-colour;
56
60
  }
57
61
 
58
62
  // alphagov/govuk_template includes a specific a:link:focus selector
@@ -0,0 +1,70 @@
1
+ [
2
+ {
3
+ "name": "titleText",
4
+ "type": "string",
5
+ "required": true,
6
+ "description": "If `titleHtml` is set, this is not required. Text to use for the heading of the error summary block. If `titleHtml` is provided, `titleText` will be ignored."
7
+ },
8
+ {
9
+ "name": "titleHtml",
10
+ "type": "string",
11
+ "required": true,
12
+ "description": "If `titleText` is set, this is not required. HTML to use for the heading of the error summary block. If `titleHtml` is provided, `titleText` will be ignored."
13
+ },
14
+ {
15
+ "name": "descriptionText",
16
+ "type": "string",
17
+ "required": false,
18
+ "description": "If `descriptionHtml` is set, this is not required. Text to use for the description of the errors. If `descriptionHtml` is provided, `descriptionText` will be ignored."
19
+ },
20
+ {
21
+ "name": "descriptionHtml",
22
+ "type": "string",
23
+ "required": true,
24
+ "description": "If `descriptionText` is set, this is not required. HTML to use for the description of the errors. If `descriptionHtml` is provided, `descriptionText` will be ignored."
25
+ },
26
+ {
27
+ "name": "errorList",
28
+ "type": "array",
29
+ "required": true,
30
+ "description": "Contains an array of error link items and all their available arguments.",
31
+ "params": [
32
+ {
33
+ "name": "href",
34
+ "type": "string",
35
+ "required": false,
36
+ "description": "Href attribute for the error link item. If provided item will be an anchor."
37
+ },
38
+ {
39
+ "name": "text",
40
+ "type": "string",
41
+ "required": true,
42
+ "description": "If `html` is set, this is not required. Text for the error link item. If `html` is provided, the `text` argument will be ignored."
43
+ },
44
+ {
45
+ "name": "html",
46
+ "type": "string",
47
+ "required": true,
48
+ "description": "If `text` is set, this is not required. HTML for the error link item. If `html` is provided, the `text` argument will be ignored."
49
+ },
50
+ {
51
+ "name": "attributes",
52
+ "type": "object",
53
+ "required": false,
54
+ "description": "HTML attributes (for example data attributes) to add to the error link anchor."
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "name": "classes",
60
+ "type": "string",
61
+ "required": false,
62
+ "description": "Classes to add to the error-summary container."
63
+ },
64
+ {
65
+ "name": "attributes",
66
+ "type": "object",
67
+ "required": false,
68
+ "description": "HTML attributes (for example data attributes) to add to the error-summary container."
69
+ }
70
+ ]
@@ -14,7 +14,7 @@
14
14
  {% for item in params.errorList %}
15
15
  <li>
16
16
  {% if item.href %}
17
- <a href="{{ item.href }}">{{ item.html | safe if item.html else item.text }}</a>
17
+ <a href="{{ item.href }}"{% for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>{{ item.html | safe if item.html else item.text }}</a>
18
18
  {% else %}
19
19
  {{ item.html | safe if item.html else item.text }}
20
20
  {% endif %}
@@ -17,8 +17,7 @@
17
17
  // Fix legend text wrapping in Edge and IE
18
18
  // 1. IE9-11 & Edge 12-13
19
19
  // 2. IE8-11
20
- -webkit-box-sizing: border-box;
21
- box-sizing: border-box; // 1
20
+ box-sizing: border-box; // 1
22
21
  display: table; // 2
23
22
  max-width: 100%; // 1
24
23
  margin-bottom: govuk-spacing(2);
@@ -0,0 +1,58 @@
1
+ [
2
+ {
3
+ "name": "describedBy",
4
+ "type": "string",
5
+ "required": false,
6
+ "description": "Text or element id to add to the `aria-describedby` attribute to provide description of the group of fields for screenreader users."
7
+ },
8
+ {
9
+ "name": "legend",
10
+ "type": "object",
11
+ "required": false,
12
+ "description": "Options for the legend",
13
+ "params": [
14
+ {
15
+ "name": "text",
16
+ "type": "string",
17
+ "required": true,
18
+ "description": "If `html` is set, this is not required. Text to use within the legend. If `html` is provided, the `text` argument will be ignored."
19
+ },
20
+ {
21
+ "name": "html",
22
+ "type": "string",
23
+ "required": true,
24
+ "description": "If `text` is set, this is not required. HTML to use within the legend. If `html` is provided, the `text` argument will be ignored."
25
+ },
26
+ {
27
+ "name": "classes",
28
+ "type": "string",
29
+ "required": false,
30
+ "description": "Classes to add to the legend."
31
+ },
32
+ {
33
+ "name": "isPageHeading",
34
+ "type": "boolean",
35
+ "required": false,
36
+ "description": "Whether the legend also acts as the heading for the page."
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ "name": "classes",
42
+ "type": "string",
43
+ "required": false,
44
+ "description": "Classes to add to the fieldset container."
45
+ },
46
+ {
47
+ "name": "attributes",
48
+ "type": "object",
49
+ "required": false,
50
+ "description": "HTML attributes (for example data attributes) to add to the fieldset container."
51
+ },
52
+ {
53
+ "name": "caller",
54
+ "type": "nunjucks-block",
55
+ "required": false,
56
+ "description": "Not strictly a parameter but [Nunjucks code convention](https://mozilla.github.io/nunjucks/templating.html#call). Using a `call` block enables you to call a macro with all the text inside the tag. This is helpful if you want to pass a lot of content into a macro. To use it, you will need to wrap the entire fielset component in a `call` block. See [checkboxes component](https://github.com/alphagov/govuk-frontend/blob/master/src/components/checkboxes/template.njk#L86) for an example."
57
+ }
58
+ ]
@@ -0,0 +1,53 @@
1
+ [
2
+ {
3
+ "name": "name",
4
+ "type": "string",
5
+ "required": true,
6
+ "description": "The name of the input, which is submitted with the form data."
7
+ },
8
+ {
9
+ "name": "id",
10
+ "type": "string",
11
+ "required": true,
12
+ "description": "The id of the input"
13
+ },
14
+ {
15
+ "name": "value",
16
+ "type": "string",
17
+ "required": false,
18
+ "description": "Optional initial value of the input"
19
+ },
20
+ {
21
+ "name": "label",
22
+ "type": "object",
23
+ "required": true,
24
+ "description": "Options for the label component.",
25
+ "isComponent": true
26
+ },
27
+ {
28
+ "name": "hint",
29
+ "type": "object",
30
+ "required": false,
31
+ "description": "Options for the hint component.",
32
+ "isComponent": true
33
+ },
34
+ {
35
+ "name": "errorMessage",
36
+ "type": "object",
37
+ "required": false,
38
+ "description": "Options for the errorMessage component.",
39
+ "isComponent": true
40
+ },
41
+ {
42
+ "name": "classes",
43
+ "type": "string",
44
+ "required": false,
45
+ "description": "Classes to add to the file upload component."
46
+ },
47
+ {
48
+ "name": "attributes",
49
+ "type": "object",
50
+ "required": false,
51
+ "description": "HTML attributes (for example data attributes) to add to the file upload component."
52
+ }
53
+ ]
@@ -117,6 +117,30 @@ If you are using Nunjucks,then macros take the following arguments
117
117
 
118
118
  <tr class="govuk-table__row">
119
119
 
120
+ <th class="govuk-table__header" scope="row">meta.text</th>
121
+
122
+ <td class="govuk-table__cell ">string</td>
123
+
124
+ <td class="govuk-table__cell ">No</td>
125
+
126
+ <td class="govuk-table__cell ">Text to add to the meta section of the footer, which will appear below any links specified using meta.items. If meta.html is specified, this option is ignored.</td>
127
+
128
+ </tr>
129
+
130
+ <tr class="govuk-table__row">
131
+
132
+ <th class="govuk-table__header" scope="row">meta.html</th>
133
+
134
+ <td class="govuk-table__cell ">string</td>
135
+
136
+ <td class="govuk-table__cell ">No</td>
137
+
138
+ <td class="govuk-table__cell ">HTML to add to the meta section of the footer, which will appear below any links specified using meta.items. If you do not need to use HTML, use meta.text instead.</td>
139
+
140
+ </tr>
141
+
142
+ <tr class="govuk-table__row">
143
+
120
144
  <th class="govuk-table__header" scope="row">meta.items</th>
121
145
 
122
146
  <td class="govuk-table__cell ">array</td>
@@ -153,6 +177,18 @@ If you are using Nunjucks,then macros take the following arguments
153
177
 
154
178
  <tr class="govuk-table__row">
155
179
 
180
+ <th class="govuk-table__header" scope="row">meta.items.{}.attributes</th>
181
+
182
+ <td class="govuk-table__cell ">object</td>
183
+
184
+ <td class="govuk-table__cell ">No</td>
185
+
186
+ <td class="govuk-table__cell ">Any extra HTML attributes (for example data attributes) to add to the anchor in the footer meta section.</td>
187
+
188
+ </tr>
189
+
190
+ <tr class="govuk-table__row">
191
+
156
192
  <th class="govuk-table__header" scope="row">navigation</th>
157
193
 
158
194
  <td class="govuk-table__cell ">array</td>
@@ -225,6 +261,18 @@ If you are using Nunjucks,then macros take the following arguments
225
261
 
226
262
  <tr class="govuk-table__row">
227
263
 
264
+ <th class="govuk-table__header" scope="row">navigation.items.{}.attributes</th>
265
+
266
+ <td class="govuk-table__cell ">object</td>
267
+
268
+ <td class="govuk-table__cell ">No</td>
269
+
270
+ <td class="govuk-table__cell ">Any extra HTML attributes (for example data attributes) to add to the anchor in the footer navigation section.</td>
271
+
272
+ </tr>
273
+
274
+ <tr class="govuk-table__row">
275
+
228
276
  <th class="govuk-table__header" scope="row">containerClasses</th>
229
277
 
230
278
  <td class="govuk-table__cell ">string</td>
@@ -43,9 +43,10 @@
43
43
  color: $govuk-footer-link-hover;
44
44
  }
45
45
 
46
- // Use text colour when focussed
46
+ // When focussed, the text colour needs to be darker to ensure that colour
47
+ // contrast is still acceptable
47
48
  &:focus {
48
- color: $govuk-text-colour;
49
+ color: $govuk-focus-text-colour;
49
50
  }
50
51
 
51
52
  // alphagov/govuk_template includes a specific a:link:focus selector
@@ -132,6 +133,10 @@
132
133
  padding: 0;
133
134
  }
134
135
 
136
+ .govuk-footer__meta-custom {
137
+ margin-bottom: govuk-spacing(4);
138
+ }
139
+
135
140
  .govuk-footer__inline-list-item {
136
141
  display: inline-block;
137
142
  margin-right: govuk-spacing(3);
@@ -191,17 +196,20 @@
191
196
  padding: 0;
192
197
  list-style: none;
193
198
  -webkit-column-gap: $govuk-gutter;
199
+ -moz-column-gap: $govuk-gutter;
194
200
  column-gap: $govuk-gutter; // Support: Columns
195
201
  }
196
202
 
197
203
  @include mq ($from: desktop) {
198
204
  .govuk-footer__list--columns-2 {
199
205
  -webkit-column-count: 2;
206
+ -moz-column-count: 2;
200
207
  column-count: 2; // Support: Columns
201
208
  }
202
209
 
203
210
  .govuk-footer__list--columns-3 {
204
211
  -webkit-column-count: 3;
212
+ -moz-column-count: 3;
205
213
  column-count: 3; // Support: Columns
206
214
  }
207
215
  }
@@ -0,0 +1,100 @@
1
+ [
2
+ {
3
+ "name": "meta",
4
+ "type": "object",
5
+ "required": false,
6
+ "description": "Object containing options for the meta navigation.",
7
+ "arguments": [
8
+ {
9
+ "name": "items",
10
+ "type": "array",
11
+ "required": false,
12
+ "description": "Array of items for use in the meta section of the footer.",
13
+ "params": [
14
+ {
15
+ "name": "text",
16
+ "type": "string",
17
+ "required": false,
18
+ "description": "List item text in the meta section of the footer."
19
+ },
20
+ {
21
+ "name": "href",
22
+ "type": "string",
23
+ "required": false,
24
+ "description": "List item href attribute in the meta section of the footer."
25
+ },
26
+ {
27
+ "name": "attributes",
28
+ "type": "object",
29
+ "required": false,
30
+ "description": "HTML attributes (for example data attributes) to add to the anchor in the footer meta section."
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "name": "navigation",
38
+ "type": "array",
39
+ "required": false,
40
+ "description": "Array of items for use in the navigation section of the footer.",
41
+ "arguments": [
42
+ {
43
+ "name": "title",
44
+ "type": "string",
45
+ "required": false,
46
+ "description": "Title for a section"
47
+ },
48
+ {
49
+ "name": "columns",
50
+ "type": "integer",
51
+ "required": false,
52
+ "description": "Amount of columns to display items in navigation section of the footer."
53
+ },
54
+ {
55
+ "name": "items",
56
+ "type": "array",
57
+ "required": false,
58
+ "description": "Array of items to display in the list in navigation section of the footer.",
59
+ "arguments": [
60
+ {
61
+ "name": "text",
62
+ "type": "string",
63
+ "required": false,
64
+ "description": "List item text in the navigation section of the footer."
65
+ },
66
+ {
67
+ "name": "href",
68
+ "type": "string",
69
+ "required": false,
70
+ "description": "List item href attribute in the navigation section of the footer. Both `text` and `href` attributes need to be present to create a link."
71
+ },
72
+ {
73
+ "name": "attributes",
74
+ "type": "object",
75
+ "required": false,
76
+ "description": "HTML attributes (for example data attributes) to add to the anchor in the footer navigation section."
77
+ }
78
+ ]
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "name": "containerClasses",
84
+ "type": "string",
85
+ "required": false,
86
+ "description": "Classes that can be added to the inner container, useful if you want to make the footer full width."
87
+ },
88
+ {
89
+ "name": "classes",
90
+ "type": "string",
91
+ "required": false,
92
+ "description": "Classes to add to the footer component container."
93
+ },
94
+ {
95
+ "name": "attributes",
96
+ "type": "object",
97
+ "required": false,
98
+ "description": "HTML attributes (for example data attributes) to add to the footer component container."
99
+ }
100
+ ]
@@ -16,7 +16,7 @@
16
16
  {% for item in item.items %}
17
17
  {% if item.href and item.text %}
18
18
  <li class="govuk-footer__list-item">
19
- <a class="govuk-footer__link" href="{{ item.href }}">
19
+ <a class="govuk-footer__link" href="{{ item.href }}"{% for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>
20
20
  {{ item.text }}
21
21
  </a>
22
22
  </li>
@@ -31,17 +31,24 @@
31
31
  {% endif %}
32
32
  <div class="govuk-footer__meta">
33
33
  <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
34
- {% if params.meta and params.meta.items %}
35
- <h2 class="govuk-visually-hidden">Support links</h2>
36
- <ul class="govuk-footer__inline-list">
37
- {% for item in params.meta.items %}
38
- <li class="govuk-footer__inline-list-item">
39
- <a class="govuk-footer__link" href="{{ item.href }}">
40
- {{ item.text }}
41
- </a>
42
- </li>
43
- {% endfor %}
44
- </ul>
34
+ {% if params.meta %}
35
+ {% if params.meta.items %}
36
+ <h2 class="govuk-visually-hidden">Support links</h2>
37
+ <ul class="govuk-footer__inline-list">
38
+ {% for item in params.meta.items %}
39
+ <li class="govuk-footer__inline-list-item">
40
+ <a class="govuk-footer__link" href="{{ item.href }}"{% for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>
41
+ {{ item.text }}
42
+ </a>
43
+ </li>
44
+ {% endfor %}
45
+ </ul>
46
+ {% endif %}
47
+ {% if params.meta.text or params.meta.html %}
48
+ <div class="govuk-footer__meta-custom">
49
+ {{ params.meta.html | safe if params.meta.html else params.meta.text }}
50
+ </div>
51
+ {% endif %}
45
52
  {% endif %}
46
53
  {#- The SVG needs `focusable="false"` so that Internet Explorer does not
47
54
  treat it as an interactive element - without this it will be