@ons/design-system 73.0.3 → 73.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/components/accordion/_macro.njk +2 -0
  2. package/components/accordion/_macro.spec.js +39 -0
  3. package/components/accordion/accordion.js +2 -0
  4. package/components/accordion/example-accordion.njk +6 -1
  5. package/components/back-to-top/example-full-page-back-to-top.njk +2 -2
  6. package/components/button/example-button-new-window.njk +1 -0
  7. package/components/chart/_chart.scss +2 -2
  8. package/components/chart/_macro.spec.js +32 -0
  9. package/components/chart/annotations-options.js +1 -0
  10. package/components/chart/area-chart.js +3 -0
  11. package/components/chart/bar-chart.js +1 -0
  12. package/components/chart/chart-constants.js +2 -1
  13. package/components/chart/chart.js +8 -4
  14. package/components/chart/column-chart.js +3 -0
  15. package/components/chart/example-area-chart-with-axis-min-and-max-values.njk +1 -1
  16. package/components/chart/example-area-chart.njk +2 -2
  17. package/components/chart/example-clustered-column-chart.njk +1 -1
  18. package/components/chart/example-line-chart-with-annotations.njk +1 -1
  19. package/components/chart/example-line-chart-with-axis-min-and-max-values.njk +1 -1
  20. package/components/chart/example-line-chart-with-custom-reference-line-value.njk +1 -1
  21. package/components/chart/example-line-chart-with-label-format.njk +89 -0
  22. package/components/chart/example-line-chart-with-markers.njk +1 -37
  23. package/components/chart/example-line-chart-with-range-annotations-inside.njk +1 -1
  24. package/components/chart/example-line-chart-with-range-annotations-outside-left-right.njk +1 -1
  25. package/components/chart/example-line-chart-with-range-annotations-outside-top-bottom.njk +1 -1
  26. package/components/chart/example-line-chart-with-reference-line-annotations.njk +1 -1
  27. package/components/chart/example-line-chart.njk +1 -1
  28. package/components/chart/example-scatter-chart-with-axis-min-and-max-values.njk +1 -1
  29. package/components/chart/example-scatter-chart.njk +1 -1
  30. package/components/chart/example-stacked-column-chart.njk +26 -37
  31. package/components/chart/reference-line-annotations-options.js +1 -0
  32. package/components/chart/specific-chart-options.js +23 -1
  33. package/components/cookies-banner/_macro.njk +1 -3
  34. package/components/details-panel/_macro.njk +6 -6
  35. package/components/featured-article/example-featured-article-with-chart.njk +1 -1
  36. package/components/header/_macro.njk +64 -31
  37. package/components/header/_macro.spec.js +223 -0
  38. package/components/header/example-header-basic-with-search-and-language-DEPRECATED.njk +207 -0
  39. package/components/header/example-header-basic-with-search-and-language.njk +36 -27
  40. package/components/header/example-header-basic-with-search-button.njk +35 -27
  41. package/components/hero/_macro.njk +4 -1
  42. package/components/hero/_macro.spec.js +26 -0
  43. package/components/icon/_macro.njk +2 -2
  44. package/components/icon/_macro.spec.js +2 -2
  45. package/components/list/_list.scss +0 -3
  46. package/components/list/example-inline-list-with-social-icon-prefix.njk +2 -2
  47. package/components/panel/_panel.scss +5 -0
  48. package/components/radios/_macro.njk +1 -1
  49. package/components/related-content/example-related-content-social-media.njk +2 -2
  50. package/components/share-page/_macro.njk +6 -6
  51. package/components/share-page/_macro.spec.js +9 -9
  52. package/components/share-page/example-share-page.njk +1 -1
  53. package/components/skip-to-content/_macro.njk +1 -1
  54. package/components/skip-to-content/_skip.scss +0 -2
  55. package/components/table-of-contents/example-table-of-contents-grouped-with-single-list-item.njk +34 -0
  56. package/css/main.css +1 -1
  57. package/js/cookies-settings.js +5 -5
  58. package/layout/_template.njk +5 -5
  59. package/package.json +18 -12
  60. package/scripts/main.es5.js +5 -3
  61. package/scripts/main.js +2 -2
  62. package/scss/utilities/_highlight.scss +2 -1
  63. /package/favicons/{twitter.png → x.png} +0 -0
@@ -0,0 +1,207 @@
1
+ ---
2
+ 'fullWidth': true
3
+ ---
4
+
5
+ {% from "components/header/_macro.njk" import onsHeader %}
6
+
7
+ {{
8
+ onsHeader({
9
+ "variants": 'basic',
10
+ "language": {
11
+ "languages": [
12
+ {
13
+ "url": '#0',
14
+ "isoCode": 'en',
15
+ "text": 'English',
16
+ "current": false
17
+ },
18
+ {
19
+ "url": '#0',
20
+ "isoCode": 'cy',
21
+ "text": 'Cymraeg',
22
+ "current": true
23
+ }
24
+ ]
25
+ },
26
+ "menuLinks": {
27
+ "id": "menu-links",
28
+ "keyLinks": [
29
+ {
30
+ 'heading': 'Taking part in a survey?',
31
+ 'description': 'It’s never been more important.'
32
+ },
33
+ {
34
+ 'heading': 'Release calendar',
35
+ 'description': 'View our latest and upcoming releases.'
36
+ },
37
+ {
38
+ 'heading': 'Explore local statistics',
39
+ 'url': '#0',
40
+ 'description': 'Explore statistics across the UK.'
41
+ }
42
+ ],
43
+ "columns": [
44
+ {
45
+ "groups": [
46
+ {
47
+ "heading": "People, population and community",
48
+ "groupItems": [
49
+ {
50
+ "text": "Armed forces community"
51
+ },
52
+ {
53
+ "text": "Births, deaths and marriages"
54
+ },
55
+ {
56
+ "text": "Crime and justice"
57
+ },
58
+ {
59
+ "text": "Cultural identity"
60
+ },
61
+ {
62
+ "text": "Education and childcare"
63
+ },
64
+ {
65
+ "text": "Elections"
66
+ },
67
+ {
68
+ "text": "Health and social care"
69
+ },
70
+ {
71
+ "text": "Household characteristics"
72
+ },
73
+ {
74
+ "text": "Housing"
75
+ },
76
+ {
77
+ "text": "Leisure and tourism"
78
+ },
79
+ {
80
+ "text": "Personal and household finances"
81
+ },
82
+ {
83
+ "text": "Population and migration"
84
+ },
85
+ {
86
+ "text": "Well-being"
87
+ }
88
+ ]
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "groups": [
94
+ {
95
+ "heading": "Business, industry and trade",
96
+ "groupItems": [
97
+ {
98
+ "text": "Business"
99
+ },
100
+ {
101
+ "text": "Changes to business"
102
+ },
103
+ {
104
+ "text": "Construction industry"
105
+ },
106
+ {
107
+ "text": "International trade"
108
+ },
109
+ {
110
+ "text": "IT and internet industry"
111
+ },
112
+ {
113
+ "text": "Manufacturing and production industry"
114
+ },
115
+ {
116
+ "text": "Retail industry",
117
+ "url": "#0"
118
+ },
119
+ {
120
+ "text": "Tourism industry"
121
+ }
122
+ ]
123
+ },
124
+ {
125
+ "heading": "Employment and labour market",
126
+ "url": "#0",
127
+ "groupItems":
128
+ [
129
+ {
130
+ "text": "People in work"
131
+ },
132
+ {
133
+ "text": "People not in work"
134
+ }
135
+ ]
136
+
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ "groups": [
142
+ {
143
+ "heading": "Economy",
144
+ "groupItems": [
145
+ {
146
+ "text": "Economic output and productivity"
147
+ },
148
+ {
149
+ "text": "Government, public sector and taxes"
150
+ },
151
+ {
152
+ "text": "Gross Value Added (GVA)"
153
+ },
154
+ {
155
+ "text": "Investments, pensions and trusts"
156
+ },
157
+ {
158
+ "text": "Regional accounts"
159
+ },
160
+ {
161
+ "text": "Environmental accounts"
162
+ },
163
+ {
164
+ "text": "Gross Domestic Product (GDP)"
165
+ },
166
+ {
167
+ "text": "Inflation and price indices"
168
+ },
169
+ {
170
+ "text": "National accounts"
171
+ }
172
+ ]
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ },
178
+ "searchLinks": {
179
+ "id": "search-links",
180
+ "searchNavigationAriaLabel": 'Nav Search',
181
+ "searchButtonAriaLabel": 'Toggle search',
182
+ 'heading': 'Popular searches',
183
+ "itemsList": [
184
+ {
185
+ "url": '#1',
186
+ "text": 'Cost of living'
187
+ },
188
+ {
189
+ "url": '#1',
190
+ "text": 'Inflation'
191
+ },
192
+ {
193
+ "url": '#3',
194
+ "text": 'NHS waiting times'
195
+ },
196
+ {
197
+ "url": '#0',
198
+ "text": 'Wellbeing'
199
+ },
200
+ {
201
+ "url": '#0',
202
+ "text": 'Baby names'
203
+ }
204
+ ]
205
+ }
206
+ })
207
+ }}
@@ -175,33 +175,42 @@
175
175
  }
176
176
  ]
177
177
  },
178
- "searchLinks": {
179
- "id": "search-links",
180
- "searchNavigationAriaLabel": 'Nav Search',
181
- "searchButtonAriaLabel": 'Toggle search',
182
- 'heading': 'Popular searches',
183
- "itemsList": [
184
- {
185
- "url": '#1',
186
- "text": 'Cost of living'
187
- },
188
- {
189
- "url": '#1',
190
- "text": 'Inflation'
191
- },
192
- {
193
- "url": '#3',
194
- "text": 'NHS waiting times'
195
- },
196
- {
197
- "url": '#0',
198
- "text": 'Wellbeing'
199
- },
200
- {
201
- "url": '#0',
202
- "text": 'Baby names'
203
- }
204
- ]
178
+ "search": {
179
+ "id": "search",
180
+ "navAriaLabel": 'Nav Search',
181
+ "toggleAriaLabel": 'Toggle search',
182
+ "form": {
183
+ "action": "https://www.ons.gov.uk/search" ,
184
+ "inputName": "q",
185
+ "inputLabel": "Search the ONS",
186
+ "buttonText": "Search",
187
+ "buttonAriaLabel": "Submit search"
188
+ },
189
+ "links": {
190
+ 'heading': 'Popular searches',
191
+ "itemsList": [
192
+ {
193
+ "url": '#1',
194
+ "text": 'Cost of living'
195
+ },
196
+ {
197
+ "url": '#1',
198
+ "text": 'Inflation'
199
+ },
200
+ {
201
+ "url": '#3',
202
+ "text": 'NHS waiting times'
203
+ },
204
+ {
205
+ "url": '#0',
206
+ "text": 'Wellbeing'
207
+ },
208
+ {
209
+ "url": '#0',
210
+ "text": 'Baby names'
211
+ }
212
+ ]
213
+ }
205
214
  }
206
215
  })
207
216
  }}
@@ -159,33 +159,41 @@
159
159
  }
160
160
  ]
161
161
  },
162
- "searchLinks": {
163
- "id": "search-links",
164
- "searchNavigationAriaLabel": 'Nav Search',
165
- "searchButtonAriaLabel": 'Toggle search',
166
- 'heading': 'Popular searches',
167
- "itemsList": [
168
- {
169
- "url": '#1',
170
- "text": 'Cost of living'
171
- },
172
- {
173
- "url": '#1',
174
- "text": 'Inflation'
175
- },
176
- {
177
- "url": '#3',
178
- "text": 'NHS waiting times'
179
- },
180
- {
181
- "url": '#0',
182
- "text": 'Wellbeing'
183
- },
184
- {
185
- "url": '#0',
186
- "text": 'Baby names'
187
- }
188
- ]
162
+ "search": {
163
+ "id": "search",
164
+ "navAriaLabel": 'Nav Search',
165
+ "toggleAriaLabel": 'Toggle search',
166
+ "form": {
167
+ "action": "https://www.ons.gov.uk/search" ,
168
+ "inputName": "q",
169
+ "inputLabel": "Search the ONS",
170
+ "buttonText": "Search"
171
+ },
172
+ "links": {
173
+ 'heading': 'Popular searches',
174
+ "itemsList": [
175
+ {
176
+ "url": '#1',
177
+ "text": 'Cost of living'
178
+ },
179
+ {
180
+ "url": '#1',
181
+ "text": 'Inflation'
182
+ },
183
+ {
184
+ "url": '#3',
185
+ "text": 'NHS waiting times'
186
+ },
187
+ {
188
+ "url": '#0',
189
+ "text": 'Wellbeing'
190
+ },
191
+ {
192
+ "url": '#0',
193
+ "text": 'Baby names'
194
+ }
195
+ ]
196
+ }
189
197
  }
190
198
  })
191
199
  }}
@@ -6,7 +6,7 @@
6
6
  {% set detailsColumns = params.detailsColumns | default ('8') %}
7
7
 
8
8
  <section
9
- class="ons-hero ons-grid--gutterless{% if params.variants and params.variants is not string %}{% for variant in params.variants %}{{ ' ' }}ons-hero--{{ variant }}{% endfor %}{% else %}{{ ' ' }}ons-hero--{{ params.variants }}{% endif %}"
9
+ class="ons-hero ons-grid--gutterless{% if params.variants and params.variants is not string %}{% for variant in params.variants %}{{ ' ' }}ons-hero--{{ variant }}{% endfor %}{% elif params.variants %}{{ ' ' }}ons-hero--{{ params.variants }}{% endif %}"
10
10
  >
11
11
  {% if params.variants == 'navy-blue' %}
12
12
  <div class="ons-hero__circles" aria-hidden="true">
@@ -41,7 +41,10 @@
41
41
 
42
42
  {% if params.text %}
43
43
  <p class="ons-hero__text">{{ params.text | safe }}</p>
44
+ {% elif params.richText %}
45
+ <div class="ons-hero__richtext">{{ params.richText | safe }}</div>
44
46
  {% endif %}
47
+
45
48
  </div>
46
49
 
47
50
  {% if params.variants == "grey" and params.officialStatisticsBadge == true %}
@@ -55,6 +55,32 @@ describe('macro: hero', () => {
55
55
  expect(title).toBe('Hero text');
56
56
  });
57
57
 
58
+ it('has expected `richText` when `text` is not provided', () => {
59
+ const $ = cheerio.load(
60
+ renderComponent('hero', {
61
+ ...EXAMPLE_HERO,
62
+ text: undefined,
63
+ richText: '<p>Hero <strong>rich</strong> text</p>',
64
+ }),
65
+ );
66
+
67
+ expect($('.ons-hero__text').length).toBe(0);
68
+ expect($('.ons-hero__richtext').length).toBe(1);
69
+ expect($('.ons-hero__richtext').html().trim()).toBe('<p>Hero <strong>rich</strong> text</p>');
70
+ });
71
+
72
+ it('does not render `richText` when `text` is provided', () => {
73
+ const $ = cheerio.load(
74
+ renderComponent('hero', {
75
+ ...EXAMPLE_HERO,
76
+ richText: '<p>Hero rich text</p>',
77
+ }),
78
+ );
79
+
80
+ expect($('.ons-hero__text').length).toBe(1);
81
+ expect($('.ons-hero__richtext').length).toBe(0);
82
+ });
83
+
58
84
  it('has expected `html`', () => {
59
85
  const $ = cheerio.load(renderComponent('hero', { ...EXAMPLE_HERO, html: '<span class="some-html">some html</span>' }));
60
86
 
@@ -241,10 +241,10 @@
241
241
  d="M32,16.0986285 C32.0009185,7.5342974 25.337417,0.468462963 16.8372092,0.0203294753 C8.33700136,-0.427804013 0.97607758,5.89865855 0.0874346352,14.4161886 C-0.801208309,22.9337186 5.09355054,30.6602611 13.5009524,31.9979281 L13.5009524,20.7518951 L9.44,20.7518951 L9.44,16.0986285 L13.5009524,16.0986285 L13.5009524,12.549267 C13.5009524,8.5169471 15.8857143,6.28613892 19.5428571,6.28613892 C20.742535,6.30277426 21.9393895,6.40782423 23.1238095,6.60044523 L23.1238095,10.5637711 L21.1047619,10.5637711 C19.1161905,10.5637711 18.4990476,11.8056643 18.4990476,13.0782216 L18.4990476,16.0986285 L22.9409524,16.0986285 L22.2247619,20.7518951 L18.4990476,20.7518951 L18.4990476,31.9979281 C26.2735701,30.760956 31.9991507,24.0182672 32,16.0986285 L32,16.0986285 Z"
242
242
  />
243
243
  </svg>
244
- {%- elif params.iconType == "twitter" -%}
244
+ {%- elif params.iconType == "x" -%}
245
245
  <svg
246
246
  class="{% if params.iconSize %}ons-icon ons-icon--{{ params.iconSize }}{% else %}ons-icon{% endif %}{{ iconClasses }}"
247
- id="icon-twitter"
247
+ id="icon-x"
248
248
  viewBox="0 0 90.01 90.01"
249
249
  xmlns="http://www.w3.org/2000/svg"
250
250
  focusable="false"
@@ -22,7 +22,7 @@ describe('macro: icon', () => {
22
22
  'search',
23
23
  'sort-sprite',
24
24
  'facebook',
25
- 'twitter',
25
+ 'x',
26
26
  'instagram',
27
27
  'linkedin',
28
28
  'loader',
@@ -80,7 +80,7 @@ describe('macro: icon', () => {
80
80
  'quote',
81
81
  'search',
82
82
  'facebook',
83
- 'twitter',
83
+ 'x',
84
84
  'instagram',
85
85
  'linkedin',
86
86
  ])('icon type: %s', (iconType) => {
@@ -90,9 +90,6 @@
90
90
 
91
91
  &--p {
92
92
  padding: 0;
93
- .ons-list__item {
94
- margin: 0;
95
- }
96
93
  }
97
94
 
98
95
  &--summary {
@@ -7,8 +7,8 @@
7
7
  "itemsList": [
8
8
  {
9
9
  "url": '#0',
10
- "text": 'Twitter',
11
- "iconType": 'twitter',
10
+ "text": 'X',
11
+ "iconType": 'x',
12
12
  "attributes": {
13
13
  "rel": 'noreferrer external'
14
14
  }
@@ -107,6 +107,11 @@
107
107
  &.ons-icon-margin--s {
108
108
  padding-left: 1.7rem !important;
109
109
  }
110
+ .ons-list--p {
111
+ .ons-list__item {
112
+ margin: 0;
113
+ }
114
+ }
110
115
  }
111
116
 
112
117
  &__error {
@@ -18,7 +18,7 @@
18
18
  <div class="ons-radios__items">
19
19
  {% for radio in params.radios %}
20
20
  {% if params.or and loop.revindex0 == 0 %}
21
- <span class="ons-radios__label ons-u-mt-s ons-u-fs-r--b" aria-hidden="true">{{ params.or }}</span>
21
+ <span class="ons-radios__label ons-u-mt-2xs ons-u-fs-r--b" aria-hidden="true">{{ params.or }}</span>
22
22
  {% endif %}
23
23
  <span class="ons-radios__item{{ " ons-radios__item--no-border" if params.borderless }}">
24
24
  <span class="ons-radio{{ " ons-radio--no-border" if params.borderless }}">
@@ -12,8 +12,8 @@
12
12
  "itemsList": [
13
13
  {
14
14
  "url": '#0',
15
- "text": 'Twitter',
16
- "iconType": 'twitter',
15
+ "text": 'X',
16
+ "iconType": 'x',
17
17
  "rel": 'noreferrer external'
18
18
  },
19
19
  {
@@ -21,13 +21,13 @@
21
21
  }
22
22
  %}
23
23
  {% endif %}
24
- {% if params.twitter and params.twitter == true %}
24
+ {% if params.x and params.x == true %}
25
25
  {%
26
- set twitter =
26
+ set x =
27
27
  {
28
- "url": 'https://twitter.com/intent/tweet?original_referer&text=' ~ params.pageTitle|urlencode ~ '&url=' ~ params.pageUrl|urlencode,
29
- "text": 'Twitter',
30
- "iconType": 'twitter',
28
+ "url": 'https://x.com/intent/tweet?original_referer&text=' ~ params.pageTitle|urlencode ~ '&url=' ~ params.pageUrl|urlencode,
29
+ "text": 'X',
30
+ "iconType": 'x',
31
31
  "rel": 'noreferrer external',
32
32
  "target": '_blank'
33
33
  }
@@ -38,7 +38,7 @@
38
38
  "variants": 'inline',
39
39
  "iconPosition": 'before',
40
40
  "iconSize": params.iconSize | default("2xl"),
41
- "itemsList": [facebook, twitter]
41
+ "itemsList": [facebook, x]
42
42
  })
43
43
  }}
44
44
  {% endmacro %}
@@ -10,7 +10,7 @@ const EXAMPLE_SHARE_PAGE = {
10
10
  pageTitle: 'An example page',
11
11
  pageUrl: 'https://example.com/an-example-page',
12
12
  facebook: true,
13
- twitter: true,
13
+ x: true,
14
14
  };
15
15
 
16
16
  describe('macro: share-page', () => {
@@ -50,16 +50,16 @@ describe('macro: share-page', () => {
50
50
  expect(listsSpy.occurrences[0].iconSize).toBe('xl');
51
51
  });
52
52
 
53
- describe('Share on Twitter', () => {
53
+ describe('Share on X', () => {
54
54
  it('has a link with the expected url', () => {
55
55
  const faker = templateFaker();
56
56
  const listsSpy = faker.spy('list');
57
57
 
58
58
  faker.renderComponent('share-page', EXAMPLE_SHARE_PAGE);
59
59
 
60
- const twitterItem = listsSpy.occurrences[0].itemsList.find((item) => item.text === 'Twitter');
61
- expect(twitterItem.url).toBe(
62
- 'https://twitter.com/intent/tweet?original_referer&text=An%20example%20page&url=https%3A%2F%2Fexample.com%2Fan-example-page',
60
+ const xItem = listsSpy.occurrences[0].itemsList.find((item) => item.text === 'X');
61
+ expect(xItem.url).toBe(
62
+ 'https://x.com/intent/tweet?original_referer&text=An%20example%20page&url=https%3A%2F%2Fexample.com%2Fan-example-page',
63
63
  );
64
64
  });
65
65
 
@@ -69,10 +69,10 @@ describe('macro: share-page', () => {
69
69
 
70
70
  faker.renderComponent('share-page', EXAMPLE_SHARE_PAGE);
71
71
 
72
- const twitterItem = listsSpy.occurrences[0].itemsList.find((item) => item.text === 'Twitter');
73
- expect(twitterItem.rel).toContain('noreferrer');
74
- expect(twitterItem.rel).toContain('external');
75
- expect(twitterItem.target).toBe('_blank');
72
+ const xItem = listsSpy.occurrences[0].itemsList.find((item) => item.text === 'X');
73
+ expect(xItem.rel).toContain('noreferrer');
74
+ expect(xItem.rel).toContain('external');
75
+ expect(xItem.target).toBe('_blank');
76
76
  });
77
77
  });
78
78
 
@@ -6,6 +6,6 @@
6
6
  "pageTitle": 'A page to share',
7
7
  "pageUrl": 'https://example.com/a-page-to-share',
8
8
  "facebook": true,
9
- "twitter": true
9
+ "x": true
10
10
  })
11
11
  }}
@@ -1,4 +1,4 @@
1
1
  {% macro onsSkipToContent(params) %}
2
2
  {% set text = params.text | default('Skip to content') %}
3
- <a class="ons-skip-to-content" href="{{ params.url }}">{{ text }}</a>
3
+ <a class="ons-skip-to-content ons-u-fs-r--b" href="{{ params.url }}">{{ text }}</a>
4
4
  {% endmacro %}
@@ -2,8 +2,6 @@
2
2
  clip: rect(0 0 0 0);
3
3
  clip-path: inset(50%);
4
4
  display: block;
5
- font-size: 1.1rem;
6
- font-weight: $font-weight-bold;
7
5
  height: 1px;
8
6
  margin: 0;
9
7
  overflow: hidden;
@@ -0,0 +1,34 @@
1
+ {% from "components/table-of-contents/_macro.njk" import onsTableOfContents %}
2
+
3
+ {{-
4
+ onsTableOfContents({
5
+ "title": 'Contents',
6
+ "ariaLabel": 'Links to page sections',
7
+ "skipLink": {
8
+ "url": '#0',
9
+ "text": 'Skip to guide content'
10
+ },
11
+ "lists": [
12
+ {
13
+ "listHeading": 'Household questions',
14
+ "listHeadingHidden": 'help topics',
15
+ "itemsList": [
16
+ {
17
+ "url": '#household1',
18
+ "text": 'Household and who lives here'
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ "listHeading": 'Individual questions',
24
+ "listHeadingHidden": 'help topics',
25
+ "itemsList": [
26
+ {
27
+ "url": '#individual1',
28
+ "text": 'Name, date of birth and marital status'
29
+ }
30
+ ]
31
+ }
32
+ ]
33
+ })
34
+ -}}