@ons/design-system 73.13.1 → 74.0.0-cookies.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.
- package/README.md +12 -2
- package/components/access-code/example-access-code-error.njk +2 -2
- package/components/access-code/example-access-code.njk +2 -2
- package/components/address-input/_macro.njk +6 -6
- package/components/address-input/_macro.spec.js +0 -3
- package/components/address-output/_macro.njk +1 -1
- package/components/announcement-banner/_announcement-banner.scss +5 -0
- package/components/autosuggest/_autosuggest.scss +8 -0
- package/components/autosuggest/autosuggest.ui.js +8 -5
- package/components/back-to-top/_back-to-top.scss +7 -0
- package/components/back-to-top/_macro.njk +1 -1
- package/components/back-to-top/example-full-page-back-to-top.njk +1 -1
- package/components/breadcrumbs/_breadcrumbs.scss +4 -7
- package/components/breadcrumbs/_macro.njk +29 -25
- package/components/breadcrumbs/_macro.spec.js +39 -0
- package/components/breadcrumbs/example-breadcrumbs-wide.njk +52 -0
- package/components/char-check-limit/_macro.njk +16 -14
- package/components/cookies-banner/_macro.njk +1 -1
- package/components/cookies-banner/_macro.spec.js +15 -3
- package/components/details/_details.scss +9 -0
- package/components/details/example-details-with-warning.njk +1 -1
- package/components/details-panel/_macro.njk +1 -1
- package/components/featured-article/_macro.njk +4 -4
- package/components/featured-article/macro.spec.js +2 -2
- package/components/feedback/_macro.njk +4 -1
- package/components/feedback/_macro.spec.js +1 -1
- package/components/figure/_figure.scss +1 -0
- package/components/figure/_macro.njk +3 -3
- package/components/footer/_macro.njk +5 -2
- package/components/header/_macro.njk +7 -3
- package/components/header/_macro.spec.js +27 -0
- package/components/hero/_hero.scss +4 -0
- package/components/hero/_macro.njk +3 -2
- package/components/hero/_macro.spec.js +36 -0
- package/components/hero/example-hero-dark-wide.njk +17 -0
- package/components/hero/example-hero-dark-with-external-breadcrumbs.njk +17 -21
- package/components/hero/example-hero-default-full-width.njk +16 -0
- package/components/hero/example-hero-default-with-external-breadcrumbs.njk +165 -169
- package/components/hero/example-hero-grey-with-external-breadcrumbs.njk +207 -211
- package/components/hero/example-hero-navy-blue-with-external-breadcrumbs.njk +163 -167
- package/components/hero/example-hero-pale-blue-with-external-breadcrumbs.njk +165 -169
- package/components/input/_input.scss +4 -0
- package/components/input/_macro.njk +4 -1
- package/components/label/_label.scss +3 -0
- package/components/list/_list.scss +5 -0
- package/components/message-list/_message-list.scss +2 -0
- package/components/panel/_macro.njk +1 -1
- package/components/panel/_panel.scss +8 -0
- package/components/panel/example-panel-bare.njk +1 -1
- package/components/phase-banner/_phase-banner.scss +1 -0
- package/components/question/example-question-ccs.njk +1 -1
- package/components/question/example-question-fieldset.njk +1 -1
- package/components/question/example-question-interviewer-note.njk +1 -1
- package/components/question/example-question-no-fieldset.njk +1 -1
- package/components/quote/_macro.njk +1 -1
- package/components/relationships/example-relationships-error.njk +1 -1
- package/components/relationships/example-relationships-you.njk +1 -1
- package/components/relationships/example-relationships.njk +1 -1
- package/components/skip-to-content/_macro.njk +1 -1
- package/components/skip-to-content/_skip.scss +8 -0
- package/components/summary/_macro.njk +3 -2
- package/components/summary/_summary.scss +6 -1
- package/components/table-of-contents/example-table-of-contents-sticky-full-page-ordered.njk +105 -107
- package/components/table-of-contents/example-table-of-contents-sticky-full-page.njk +104 -106
- package/components/table-of-contents/example-table-of-contents-sticky.njk +1 -1
- package/components/table-of-contents/table-of-contents.spec.js +4 -5
- package/css/main.css +1 -1
- package/js/cookies-functions.js +46 -40
- package/js/cookies-functions.spec.js +103 -46
- package/layout/_template.njk +60 -47
- package/package.json +1 -1
- package/scripts/main.es5.js +1 -1
- package/scripts/main.js +1 -1
- package/scss/base/_typography.scss +9 -0
- package/scss/helpers/_mixins.scss +8 -0
- package/scss/objects/_page.scss +1 -1
- package/scss/objects/_spacing.scss +0 -4
- package/scss/utilities/_utilities.scss +10 -0
- package/scss/vars/_forms.scss +2 -1
- package/scss/vars/_index.scss +1 -0
- package/scss/vars/_utilities.scss +2 -0
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
{{ openingRootTag | safe }}
|
|
36
36
|
{% if params.figureNumber %}
|
|
37
|
-
<span class="ons-figure__number">{{ params.figureNumber }}</span>
|
|
37
|
+
<span class="ons-figure__number ons-u-reading-width">{{ params.figureNumber }}</span>
|
|
38
38
|
{% endif %}
|
|
39
39
|
{% if params.title %}
|
|
40
40
|
{{ openingTitleTag | safe }}{{ params.title }}{{ closingTitleTag | safe }}
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
|
|
62
62
|
{% if params.caption %}
|
|
63
63
|
{% if rootElement == 'figure' %}
|
|
64
|
-
<figcaption class="ons-figure__caption">{{ params.caption }}</figcaption>
|
|
64
|
+
<figcaption class="ons-figure__caption ons-u-reading-width">{{ params.caption }}</figcaption>
|
|
65
65
|
{% else %}
|
|
66
|
-
<span class="ons-figure__caption">{{ params.caption }}</span>
|
|
66
|
+
<span class="ons-figure__caption ons-u-reading-width">{{ params.caption }}</span>
|
|
67
67
|
{% endif %}
|
|
68
68
|
{% endif %}
|
|
69
69
|
{{ closingRootTag | safe }}
|
|
@@ -53,14 +53,17 @@
|
|
|
53
53
|
{% if params.footerWarning %}
|
|
54
54
|
{% from "components/panel/_macro.njk" import onsPanel %}
|
|
55
55
|
<div class="ons-footer__warning">
|
|
56
|
-
<div
|
|
56
|
+
<div
|
|
57
|
+
class="ons-container{{ ' ons-container--full-width' if params.fullWidth else "" }}{{ ' ons-container--wide' if params.wide else "" }}"
|
|
58
|
+
>
|
|
57
59
|
{%
|
|
58
60
|
call onsPanel({
|
|
59
61
|
"variant": "warn",
|
|
60
62
|
"classes": "ons-panel--warn--footer"
|
|
61
63
|
})
|
|
62
64
|
%}
|
|
63
|
-
{
|
|
65
|
+
{# p tag ensures reading width is applied #}
|
|
66
|
+
<div class="ons-u-reading-width">{{ params.footerWarning | safe }}</div>
|
|
64
67
|
{% endcall %}
|
|
65
68
|
</div>
|
|
66
69
|
</div>
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
{% set titleTag = "h1" if params.titleAsH1 else "div" %}
|
|
7
7
|
{% set openingTag = "<" + titleTag %}
|
|
8
8
|
{% set closingTag = "</" + titleTag + ">" %}
|
|
9
|
+
{% set rootElementTag = "div" if params.useDivForRootElement else "header" %}
|
|
9
10
|
{% set currentLanguageIsoCode = "en" %}
|
|
10
11
|
{% set logoAltText = params.mastheadLogoAltText or params.mastheadLogo.altText %}
|
|
11
12
|
|
|
@@ -13,10 +14,11 @@
|
|
|
13
14
|
{% set currentLanguage = params.language.languages | selectattr("current") | first %}
|
|
14
15
|
{% set currentLanguageIsoCode = currentLanguage.isoCode %}
|
|
15
16
|
{% endif %}
|
|
16
|
-
|
|
17
|
-
<
|
|
17
|
+
<!-- prettier-ignore-start -->
|
|
18
|
+
<{{ rootElementTag | safe }}
|
|
18
19
|
class="ons-header{{ ' '+ params.classes if params.classes }}{% if params.variants is not string %}{% for variant in params.variants %}{{ ' ' }}ons-header--{{ variant }}{% endfor %}{% else %}{{ ' ' }}ons-header--{{ params.variants }}{% endif %}"
|
|
19
20
|
>
|
|
21
|
+
<!-- prettier-ignore-end -->
|
|
20
22
|
{{
|
|
21
23
|
onsBrowserBanner({
|
|
22
24
|
"lang": currentLanguageIsoCode,
|
|
@@ -535,5 +537,7 @@
|
|
|
535
537
|
{% if params.navigation %}
|
|
536
538
|
{{ onsNavigation(params) }}
|
|
537
539
|
{% endif %}
|
|
538
|
-
|
|
540
|
+
<!-- prettier-ignore-start -->
|
|
541
|
+
</{{ rootElementTag | safe }}>
|
|
542
|
+
<!-- prettier-ignore-end -->
|
|
539
543
|
{% endmacro %}
|
|
@@ -36,6 +36,33 @@ describe('FOR: Macro: Header', () => {
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
+
describe('GIVEN: Params: useDivForRootElement', () => {
|
|
40
|
+
describe('WHEN: useDivForRootElement is not set', () => {
|
|
41
|
+
const $ = cheerio.load(
|
|
42
|
+
renderComponent('header', {
|
|
43
|
+
...EXAMPLE_HEADER_BASIC,
|
|
44
|
+
}),
|
|
45
|
+
);
|
|
46
|
+
test('THEN: renders the root element as a header tag', () => {
|
|
47
|
+
expect($('header.ons-header').length).toBe(1);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('WHEN: useDivForRootElement is set to true', () => {
|
|
51
|
+
const $ = cheerio.load(
|
|
52
|
+
renderComponent('header', {
|
|
53
|
+
...EXAMPLE_HEADER_BASIC,
|
|
54
|
+
useDivForRootElement: true,
|
|
55
|
+
}),
|
|
56
|
+
);
|
|
57
|
+
test('THEN: renders the root element as a div tag', () => {
|
|
58
|
+
expect($('div.ons-header').length).toBe(1);
|
|
59
|
+
});
|
|
60
|
+
test('THEN: does not render a header tag as the root element', () => {
|
|
61
|
+
expect($('header.ons-header').length).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
39
66
|
describe('Accessibility: search heading', () => {
|
|
40
67
|
test('THEN: axe passes when search heading is present (params.search.links.heading)', async () => {
|
|
41
68
|
const params = {
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
{% endfor %}
|
|
22
22
|
</div>
|
|
23
23
|
{% endif %}
|
|
24
|
-
<div
|
|
24
|
+
<div
|
|
25
|
+
class="ons-hero__container ons-container{{ ' ons-container--wide' if params.wide }}{{ ' ons-container--full-width' if params.fullWidth }}"
|
|
26
|
+
>
|
|
25
27
|
<div class="ons-hero__details ons-grid__col ons-col-{{ detailsColumns }}@m col-10@s@m">
|
|
26
28
|
<div class="ons-hero__content">
|
|
27
29
|
<div class="ons-hero__title-container">
|
|
@@ -44,7 +46,6 @@
|
|
|
44
46
|
{% elif params.richText %}
|
|
45
47
|
<div class="ons-hero__richtext">{{ params.richText | safe }}</div>
|
|
46
48
|
{% endif %}
|
|
47
|
-
|
|
48
49
|
</div>
|
|
49
50
|
|
|
50
51
|
{% if params.variants == "grey" and params.officialStatisticsBadge == true %}
|
|
@@ -34,6 +34,42 @@ describe('macro: hero', () => {
|
|
|
34
34
|
expect($('.ons-hero--variant-b').length).toBe(1);
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
+
it('has the `ons-container--wide` class on the container when `wide` is true', () => {
|
|
38
|
+
const $ = cheerio.load(renderComponent('hero', { ...EXAMPLE_HERO, wide: true }));
|
|
39
|
+
|
|
40
|
+
expect($('.ons-hero__container').hasClass('ons-container--wide')).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('does not have the `ons-container--wide` class on the container when `wide` is false', () => {
|
|
44
|
+
const $ = cheerio.load(renderComponent('hero', { ...EXAMPLE_HERO, wide: false }));
|
|
45
|
+
|
|
46
|
+
expect($('.ons-hero__container').hasClass('ons-container--wide')).toBe(false);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('does not have the `ons-container--wide` class on the container when `wide` is not set', () => {
|
|
50
|
+
const $ = cheerio.load(renderComponent('hero', EXAMPLE_HERO));
|
|
51
|
+
|
|
52
|
+
expect($('.ons-hero__container').hasClass('ons-container--wide')).toBe(false);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('has the `ons-container--full-width` class on the container when `fullWidth` is true', () => {
|
|
56
|
+
const $ = cheerio.load(renderComponent('hero', { ...EXAMPLE_HERO, fullWidth: true }));
|
|
57
|
+
|
|
58
|
+
expect($('.ons-hero__container').hasClass('ons-container--full-width')).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('does not have the `ons-container--full-width` class on the container when `fullWidth` is false', () => {
|
|
62
|
+
const $ = cheerio.load(renderComponent('hero', { ...EXAMPLE_HERO, fullWidth: false }));
|
|
63
|
+
|
|
64
|
+
expect($('.ons-hero__container').hasClass('ons-container--full-width')).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('does not have the `ons-container--full-width` class on the container when `fullWidth` is not set', () => {
|
|
68
|
+
const $ = cheerio.load(renderComponent('hero', EXAMPLE_HERO));
|
|
69
|
+
|
|
70
|
+
expect($('.ons-hero__container').hasClass('ons-container--full-width')).toBe(false);
|
|
71
|
+
});
|
|
72
|
+
|
|
37
73
|
it('has expected `title`', () => {
|
|
38
74
|
const $ = cheerio.load(renderComponent('hero', EXAMPLE_HERO));
|
|
39
75
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
'fullWidth': true
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
{% from "components/hero/_macro.njk" import onsHero %}
|
|
6
|
+
{{
|
|
7
|
+
onsHero({
|
|
8
|
+
"title": 'Design and build digital services for the ONS',
|
|
9
|
+
"text": 'Everything you need to make accessible, consistent digital products',
|
|
10
|
+
"button": {
|
|
11
|
+
"url": '#0',
|
|
12
|
+
"text": 'Get started'
|
|
13
|
+
},
|
|
14
|
+
"variants": 'dark',
|
|
15
|
+
"wide": true
|
|
16
|
+
})
|
|
17
|
+
}}
|
|
@@ -4,7 +4,6 @@ layout: ~
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
{% from "components/hero/_macro.njk" import onsHero %}
|
|
7
|
-
{% from "components/breadcrumbs/_macro.njk" import onsBreadcrumbs %}
|
|
8
7
|
{% extends "layout/_template.njk" %}
|
|
9
8
|
{%
|
|
10
9
|
set pageConfig = {
|
|
@@ -162,12 +161,8 @@ layout: ~
|
|
|
162
161
|
}
|
|
163
162
|
]
|
|
164
163
|
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
%}
|
|
168
|
-
{% block pageContent %}
|
|
169
|
-
{{
|
|
170
|
-
onsBreadcrumbs({
|
|
164
|
+
},
|
|
165
|
+
"breadcrumbs": {
|
|
171
166
|
"ariaLabel": 'Breadcrumbs',
|
|
172
167
|
"variant": "dark",
|
|
173
168
|
"itemsList": [
|
|
@@ -175,20 +170,21 @@ layout: ~
|
|
|
175
170
|
"url": '/',
|
|
176
171
|
"text": 'Home'
|
|
177
172
|
}
|
|
178
|
-
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
%}
|
|
177
|
+
|
|
178
|
+
{% block hero %}
|
|
179
|
+
{{
|
|
180
|
+
onsHero({
|
|
181
|
+
"title": 'Design and build digital services for the ONS',
|
|
182
|
+
"text": 'Everything you need to make accessible, consistent digital products',
|
|
183
|
+
"button": {
|
|
184
|
+
"url": '#0',
|
|
185
|
+
"text": 'Get started'
|
|
186
|
+
},
|
|
187
|
+
"variants": 'dark'
|
|
179
188
|
})
|
|
180
189
|
}}
|
|
181
|
-
<main id="main-content">
|
|
182
|
-
{{
|
|
183
|
-
onsHero({
|
|
184
|
-
"title": 'Design and build digital services for the ONS',
|
|
185
|
-
"text": 'Everything you need to make accessible, consistent digital products',
|
|
186
|
-
"button": {
|
|
187
|
-
"url": '#0',
|
|
188
|
-
"text": 'Get started'
|
|
189
|
-
},
|
|
190
|
-
"variants": 'dark'
|
|
191
|
-
})
|
|
192
|
-
}}
|
|
193
|
-
</main>
|
|
194
190
|
{% endblock %}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
'fullWidth': true
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
{% from "components/hero/_macro.njk" import onsHero %}
|
|
6
|
+
{{
|
|
7
|
+
onsHero({
|
|
8
|
+
"title": 'Design and build digital services for the ONS',
|
|
9
|
+
"text": 'Everything you need to make accessible, consistent digital products',
|
|
10
|
+
"button": {
|
|
11
|
+
"url": '#0',
|
|
12
|
+
"text": 'Get started'
|
|
13
|
+
},
|
|
14
|
+
"fullWidth": true
|
|
15
|
+
})
|
|
16
|
+
}}
|
|
@@ -4,170 +4,165 @@ layout: ~
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
{% from "components/hero/_macro.njk" import onsHero %}
|
|
7
|
-
{% from "components/breadcrumbs/_macro.njk" import onsBreadcrumbs %}
|
|
8
7
|
{% extends "layout/_template.njk" %}
|
|
9
8
|
{%
|
|
10
9
|
set pageConfig = {
|
|
11
10
|
"header": {
|
|
12
11
|
"variants": 'basic',
|
|
13
12
|
"menuLinks": {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
13
|
+
"id": "menu-links",
|
|
14
|
+
"keyLinks": [
|
|
15
|
+
{
|
|
16
|
+
'heading': 'Taking part in a survey?',
|
|
17
|
+
'description': 'It’s never been more important.'
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
'heading': 'Release calendar',
|
|
21
|
+
'description': 'View our latest and upcoming releases.'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
'heading': 'Explore local statistics',
|
|
25
|
+
'url': '#0',
|
|
26
|
+
'description': 'Explore statistics across the UK.'
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"columns": [
|
|
30
|
+
{
|
|
31
|
+
"groups": [
|
|
32
|
+
{
|
|
33
|
+
"heading": "People, population and community",
|
|
34
|
+
"groupItems": [
|
|
35
|
+
{
|
|
36
|
+
"text": "Armed forces community"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"text": "Births, deaths and marriages"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"text": "Crime and justice"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"text": "Cultural identity"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"text": "Education and childcare"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"text": "Elections"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"text": "Health and social care"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"text": "Household characteristics"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"text": "Housing"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"text": "Leisure and tourism"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"text": "Personal and household finances"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"text": "Population and migration"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"text": "Well-being"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"groups": [
|
|
80
|
+
{
|
|
81
|
+
"heading": "Business, industry and trade",
|
|
82
|
+
"groupItems": [
|
|
83
|
+
{
|
|
84
|
+
"text": "Business"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"text": "Changes to business"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"text": "Construction industry"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"text": "International trade"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"text": "IT and internet industry"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"text": "Manufacturing and production industry"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"text": "Retail industry",
|
|
103
|
+
"url": "#0"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"text": "Tourism industry"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"heading": "Employment and labour market",
|
|
112
|
+
"url": "#0",
|
|
113
|
+
"groupItems":
|
|
114
|
+
[
|
|
115
|
+
{
|
|
116
|
+
"text": "People in work"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"text": "People not in work"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
123
122
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
%}
|
|
168
|
-
{% block pageContent %}
|
|
169
|
-
{{
|
|
170
|
-
onsBreadcrumbs({
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"groups": [
|
|
128
|
+
{
|
|
129
|
+
"heading": "Economy",
|
|
130
|
+
"groupItems": [
|
|
131
|
+
{
|
|
132
|
+
"text": "Economic output and productivity"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"text": "Government, public sector and taxes"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"text": "Gross Value Added (GVA)"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"text": "Investments, pensions and trusts"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"text": "Regional accounts"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"text": "Environmental accounts"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"text": "Gross Domestic Product (GDP)"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"text": "Inflation and price indices"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"text": "National accounts"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
breadcrumbs: {
|
|
171
166
|
"ariaLabel": 'Breadcrumbs',
|
|
172
167
|
"variant": "pale-blue",
|
|
173
168
|
"itemsList": [
|
|
@@ -184,18 +179,19 @@ layout: ~
|
|
|
184
179
|
"text": 'Retail industry'
|
|
185
180
|
}
|
|
186
181
|
]
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
%}
|
|
185
|
+
|
|
186
|
+
{% block hero %}
|
|
187
|
+
{{
|
|
188
|
+
onsHero({
|
|
189
|
+
"title": 'Design and build digital services for the ONS',
|
|
190
|
+
"text": 'Everything you need to make accessible, consistent digital products',
|
|
191
|
+
"button": {
|
|
192
|
+
"url": '#0',
|
|
193
|
+
"text": 'Get started'
|
|
194
|
+
}
|
|
187
195
|
})
|
|
188
196
|
}}
|
|
189
|
-
<main id="main-content">
|
|
190
|
-
{{
|
|
191
|
-
onsHero({
|
|
192
|
-
"title": 'Design and build digital services for the ONS',
|
|
193
|
-
"text": 'Everything you need to make accessible, consistent digital products',
|
|
194
|
-
"button": {
|
|
195
|
-
"url": '#0',
|
|
196
|
-
"text": 'Get started'
|
|
197
|
-
}
|
|
198
|
-
})
|
|
199
|
-
}}
|
|
200
|
-
</main>
|
|
201
197
|
{% endblock %}
|