govuk_tech_docs 3.4.0 → 3.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/lib/assets/stylesheets/_govuk_tech_docs.scss +13 -0
- data/lib/govuk_tech_docs/version.rb +1 -1
- data/lib/source/favicon.ico +0 -0
- data/lib/source/layouts/_header.erb +13 -15
- data/node_modules/govuk-frontend/govuk/all-ie8.scss +8 -0
- data/node_modules/govuk-frontend/govuk/all.js +4918 -3796
- data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +54 -49
- data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +17 -0
- data/node_modules/govuk-frontend/govuk/common/index.js +172 -152
- data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +334 -321
- data/node_modules/govuk-frontend/govuk/common.js +171 -151
- data/node_modules/govuk-frontend/govuk/components/_all.scss +3 -2
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +26 -7
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +2203 -1650
- data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +24 -16
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +34 -11
- data/node_modules/govuk-frontend/govuk/components/button/_index.scss +49 -9
- data/node_modules/govuk-frontend/govuk/components/button/button.js +961 -916
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +2142 -2038
- data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -6
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +1204 -1145
- data/node_modules/govuk-frontend/govuk/components/details/details.js +826 -799
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +1097 -1044
- data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +2 -0
- data/node_modules/govuk-frontend/govuk/components/exit-this-page/_index.scss +97 -0
- data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +2120 -0
- data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +6 -1
- data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -7
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +6 -0
- data/node_modules/govuk-frontend/govuk/components/header/header.js +683 -1003
- data/node_modules/govuk-frontend/govuk/components/input/_index.scss +15 -3
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +786 -751
- data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +5 -5
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +1151 -1105
- data/node_modules/govuk-frontend/govuk/components/select/_index.scss +7 -1
- data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +1045 -1014
- data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +107 -0
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +1514 -1268
- data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +18 -18
- data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +8 -1
- data/node_modules/govuk-frontend/govuk/core/_all.scss +1 -0
- data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +5 -0
- data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +5 -2
- data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +1 -1
- data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +1 -1
- data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +12 -0
- data/node_modules/govuk-frontend/govuk/i18n.js +371 -364
- data/node_modules/govuk-frontend/govuk/objects/_template.scss +20 -0
- data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +1 -1
- data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +4 -0
- data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +16 -0
- data/node_modules/govuk-frontend/govuk/settings/_links.scss +5 -1
- data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +5 -5
- data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +38 -2
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +243 -241
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +14 -12
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +18 -16
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +553 -545
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +40 -36
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +257 -250
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +22 -20
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +204 -197
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +204 -197
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +109 -105
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +407 -399
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +242 -238
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +73 -71
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +15 -13
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +18 -16
- data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +1 -0
- data/package-lock.json +7 -7
- data/package.json +1 -1
- metadata +8 -3
@@ -1,174 +1,194 @@
|
|
1
1
|
(function (global, factory) {
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
3
|
+
typeof define === 'function' && define.amd ? define('GOVUKFrontend', ['exports'], factory) :
|
4
|
+
(factory((global.GOVUKFrontend = {})));
|
5
5
|
}(this, (function (exports) { 'use strict';
|
6
6
|
|
7
|
-
/**
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
/**
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
7
|
+
/**
|
8
|
+
* Common helpers which do not require polyfill.
|
9
|
+
*
|
10
|
+
* IMPORTANT: If a helper require a polyfill, please isolate it in its own module
|
11
|
+
* so that the polyfill can be properly tree-shaken and does not burden
|
12
|
+
* the components that do not need that helper
|
13
|
+
*
|
14
|
+
* @module common/index
|
15
|
+
*/
|
16
|
+
|
17
|
+
/**
|
18
|
+
* TODO: Ideally this would be a NodeList.prototype.forEach polyfill
|
19
|
+
* This seems to fail in IE8, requires more investigation.
|
20
|
+
* See: https://github.com/imagitama/nodelist-foreach-polyfill
|
21
|
+
*
|
22
|
+
* @deprecated Will be made private in v5.0
|
23
|
+
* @template {Node} ElementType
|
24
|
+
* @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()
|
25
|
+
* @param {nodeListIterator<ElementType>} callback - Callback function to run for each node
|
26
|
+
* @returns {void}
|
27
|
+
*/
|
28
|
+
function nodeListForEach (nodes, callback) {
|
29
|
+
if (window.NodeList.prototype.forEach) {
|
30
|
+
return nodes.forEach(callback)
|
31
|
+
}
|
32
|
+
for (var i = 0; i < nodes.length; i++) {
|
33
|
+
callback.call(window, nodes[i], i, nodes);
|
34
|
+
}
|
32
35
|
}
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
function generateUniqueID () {
|
43
|
-
|
44
|
-
|
45
|
-
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Used to generate a unique string, allows multiple instances of the component
|
39
|
+
* without them conflicting with each other.
|
40
|
+
* https://stackoverflow.com/a/8809472
|
41
|
+
*
|
42
|
+
* @deprecated Will be made private in v5.0
|
43
|
+
* @returns {string} Unique ID
|
44
|
+
*/
|
45
|
+
function generateUniqueID () {
|
46
|
+
var d = new Date().getTime();
|
47
|
+
if (typeof window.performance !== 'undefined' && typeof window.performance.now === 'function') {
|
48
|
+
d += window.performance.now(); // use high-precision timer if available
|
49
|
+
}
|
50
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
51
|
+
var r = (d + Math.random() * 16) % 16 | 0;
|
52
|
+
d = Math.floor(d / 16);
|
53
|
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
|
54
|
+
})
|
46
55
|
}
|
47
|
-
|
48
|
-
var r = (d + Math.random() * 16) % 16 | 0;
|
49
|
-
d = Math.floor(d / 16);
|
50
|
-
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
|
51
|
-
})
|
52
|
-
}
|
53
|
-
|
54
|
-
/**
|
55
|
-
* Config flattening function
|
56
|
-
*
|
57
|
-
* Takes any number of objects, flattens them into namespaced key-value pairs,
|
58
|
-
* (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with
|
59
|
-
* greatest priority on the LAST item passed in.
|
60
|
-
*
|
61
|
-
* @returns {object} A flattened object of key-value pairs.
|
62
|
-
*/
|
63
|
-
function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {
|
56
|
+
|
64
57
|
/**
|
65
|
-
*
|
66
|
-
*
|
67
|
-
*
|
68
|
-
*
|
58
|
+
* Config flattening function
|
59
|
+
*
|
60
|
+
* Takes any number of objects, flattens them into namespaced key-value pairs,
|
61
|
+
* (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with
|
62
|
+
* greatest priority on the LAST item passed in.
|
69
63
|
*
|
70
|
-
* @
|
71
|
-
* @returns {
|
64
|
+
* @deprecated Will be made private in v5.0
|
65
|
+
* @returns {Object<string, unknown>} A flattened object of key-value pairs.
|
72
66
|
*/
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
67
|
+
function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {
|
68
|
+
/**
|
69
|
+
* Function to take nested objects and flatten them to a dot-separated keyed
|
70
|
+
* object. Doing this means we don't need to do any deep/recursive merging of
|
71
|
+
* each of our objects, nor transform our dataset from a flat list into a
|
72
|
+
* nested object.
|
73
|
+
*
|
74
|
+
* @param {Object<string, unknown>} configObject - Deeply nested object
|
75
|
+
* @returns {Object<string, unknown>} Flattened object with dot-separated keys
|
76
|
+
*/
|
77
|
+
var flattenObject = function (configObject) {
|
78
|
+
// Prepare an empty return object
|
79
|
+
/** @type {Object<string, unknown>} */
|
80
|
+
var flattenedObject = {};
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Our flattening function, this is called recursively for each level of
|
84
|
+
* depth in the object. At each level we prepend the previous level names to
|
85
|
+
* the key using `prefix`.
|
86
|
+
*
|
87
|
+
* @param {Partial<Object<string, unknown>>} obj - Object to flatten
|
88
|
+
* @param {string} [prefix] - Optional dot-separated prefix
|
89
|
+
*/
|
90
|
+
var flattenLoop = function (obj, prefix) {
|
91
|
+
// Loop through keys...
|
92
|
+
for (var key in obj) {
|
93
|
+
// Check to see if this is a prototypical key/value,
|
94
|
+
// if it is, skip it.
|
95
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key)) {
|
96
|
+
continue
|
97
|
+
}
|
98
|
+
var value = obj[key];
|
99
|
+
var prefixedKey = prefix ? prefix + '.' + key : key;
|
100
|
+
if (typeof value === 'object') {
|
101
|
+
// If the value is a nested object, recurse over that too
|
102
|
+
flattenLoop(value, prefixedKey);
|
103
|
+
} else {
|
104
|
+
// Otherwise, add this value to our return object
|
105
|
+
flattenedObject[prefixedKey] = value;
|
106
|
+
}
|
96
107
|
}
|
97
|
-
}
|
108
|
+
};
|
109
|
+
|
110
|
+
// Kick off the recursive loop
|
111
|
+
flattenLoop(configObject);
|
112
|
+
return flattenedObject
|
98
113
|
};
|
99
114
|
|
100
|
-
//
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
for (var key in obj) {
|
114
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
115
|
-
formattedConfigObject[key] = obj[key];
|
115
|
+
// Start with an empty object as our base
|
116
|
+
/** @type {Object<string, unknown>} */
|
117
|
+
var formattedConfigObject = {};
|
118
|
+
|
119
|
+
// Loop through each of the remaining passed objects and push their keys
|
120
|
+
// one-by-one into configObject. Any duplicate keys will override the existing
|
121
|
+
// key with the new value.
|
122
|
+
for (var i = 0; i < arguments.length; i++) {
|
123
|
+
var obj = flattenObject(arguments[i]);
|
124
|
+
for (var key in obj) {
|
125
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
126
|
+
formattedConfigObject[key] = obj[key];
|
127
|
+
}
|
116
128
|
}
|
117
129
|
}
|
118
|
-
}
|
119
130
|
|
120
|
-
|
121
|
-
}
|
122
|
-
|
123
|
-
/**
|
124
|
-
* Extracts keys starting with a particular namespace from a flattened config
|
125
|
-
* object, removing the namespace in the process.
|
126
|
-
*
|
127
|
-
* @param {object} configObject - The object to extract key-value pairs from.
|
128
|
-
* @param {string} namespace - The namespace to filter keys with.
|
129
|
-
* @returns {object} Flattened object with dot-separated key namespace removed
|
130
|
-
*/
|
131
|
-
function extractConfigByNamespace (configObject, namespace) {
|
132
|
-
// Check we have what we need
|
133
|
-
if (!configObject || typeof configObject !== 'object') {
|
134
|
-
throw new Error('Provide a `configObject` of type "object".')
|
135
|
-
}
|
136
|
-
if (!namespace || typeof namespace !== 'string') {
|
137
|
-
throw new Error('Provide a `namespace` of type "string" to filter the `configObject` by.')
|
131
|
+
return formattedConfigObject
|
138
132
|
}
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
133
|
+
|
134
|
+
/**
|
135
|
+
* Extracts keys starting with a particular namespace from a flattened config
|
136
|
+
* object, removing the namespace in the process.
|
137
|
+
*
|
138
|
+
* @deprecated Will be made private in v5.0
|
139
|
+
* @param {Object<string, unknown>} configObject - The object to extract key-value pairs from.
|
140
|
+
* @param {string} namespace - The namespace to filter keys with.
|
141
|
+
* @returns {Object<string, unknown>} Flattened object with dot-separated key namespace removed
|
142
|
+
* @throws {Error} Config object required
|
143
|
+
* @throws {Error} Namespace string required
|
144
|
+
*/
|
145
|
+
function extractConfigByNamespace (configObject, namespace) {
|
146
|
+
// Check we have what we need
|
147
|
+
if (!configObject || typeof configObject !== 'object') {
|
148
|
+
throw new Error('Provide a `configObject` of type "object".')
|
149
|
+
}
|
150
|
+
|
151
|
+
if (!namespace || typeof namespace !== 'string') {
|
152
|
+
throw new Error('Provide a `namespace` of type "string" to filter the `configObject` by.')
|
153
|
+
}
|
154
|
+
|
155
|
+
/** @type {Object<string, unknown>} */
|
156
|
+
var newObject = {};
|
157
|
+
|
158
|
+
for (var key in configObject) {
|
159
|
+
// Split the key into parts, using . as our namespace separator
|
160
|
+
var keyParts = key.split('.');
|
161
|
+
// Check if the first namespace matches the configured namespace
|
162
|
+
if (Object.prototype.hasOwnProperty.call(configObject, key) && keyParts[0] === namespace) {
|
163
|
+
// Remove the first item (the namespace) from the parts array,
|
164
|
+
// but only if there is more than one part (we don't want blank keys!)
|
165
|
+
if (keyParts.length > 1) {
|
166
|
+
keyParts.shift();
|
167
|
+
}
|
168
|
+
// Join the remaining parts back together
|
169
|
+
var newKey = keyParts.join('.');
|
170
|
+
// Add them to our new object
|
171
|
+
newObject[newKey] = configObject[key];
|
149
172
|
}
|
150
|
-
// Join the remaining parts back together
|
151
|
-
var newKey = keyParts.join('.');
|
152
|
-
// Add them to our new object
|
153
|
-
newObject[newKey] = configObject[key];
|
154
173
|
}
|
174
|
+
return newObject
|
155
175
|
}
|
156
|
-
return newObject
|
157
|
-
}
|
158
176
|
|
159
|
-
/**
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
177
|
+
/**
|
178
|
+
* @template {Node} ElementType
|
179
|
+
* @callback nodeListIterator
|
180
|
+
* @param {ElementType} value - The current node being iterated on
|
181
|
+
* @param {number} index - The current index in the iteration
|
182
|
+
* @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()
|
183
|
+
* @returns {void}
|
184
|
+
*/
|
166
185
|
|
167
|
-
// Implementation of common function is gathered in the `common` folder
|
186
|
+
// Implementation of common function is gathered in the `common` folder
|
168
187
|
|
169
|
-
exports.nodeListForEach = nodeListForEach;
|
170
|
-
exports.generateUniqueID = generateUniqueID;
|
171
|
-
exports.mergeConfigs = mergeConfigs;
|
172
|
-
exports.extractConfigByNamespace = extractConfigByNamespace;
|
188
|
+
exports.nodeListForEach = nodeListForEach;
|
189
|
+
exports.generateUniqueID = generateUniqueID;
|
190
|
+
exports.mergeConfigs = mergeConfigs;
|
191
|
+
exports.extractConfigByNamespace = extractConfigByNamespace;
|
173
192
|
|
174
193
|
})));
|
194
|
+
//# sourceMappingURL=common.js.map
|
@@ -7,16 +7,16 @@
|
|
7
7
|
@import "checkboxes/index";
|
8
8
|
@import "character-count/index";
|
9
9
|
@import "cookie-banner/index";
|
10
|
-
@import "summary-list/index";
|
11
10
|
@import "date-input/index";
|
12
11
|
@import "details/index";
|
13
12
|
@import "error-message/index";
|
14
13
|
@import "error-summary/index";
|
14
|
+
@import "exit-this-page/index";
|
15
15
|
@import "fieldset/index";
|
16
16
|
@import "file-upload/index";
|
17
17
|
@import "footer/index";
|
18
|
-
@import "hint/index";
|
19
18
|
@import "header/index";
|
19
|
+
@import "hint/index";
|
20
20
|
@import "input/index";
|
21
21
|
@import "inset-text/index";
|
22
22
|
@import "label/index";
|
@@ -29,6 +29,7 @@
|
|
29
29
|
@import "radios/index";
|
30
30
|
@import "select/index";
|
31
31
|
@import "skip-link/index";
|
32
|
+
@import "summary-list/index";
|
32
33
|
@import "table/index";
|
33
34
|
@import "textarea/index";
|
34
35
|
@import "warning-text/index";
|
@@ -46,11 +46,26 @@
|
|
46
46
|
padding-top: 0;
|
47
47
|
}
|
48
48
|
|
49
|
-
// Hide the body of collapsed sections
|
49
|
+
// Hide the body of collapsed sections by default for browsers that lack
|
50
|
+
// support for `content-visibility` paired with [hidden=until-found]
|
50
51
|
.govuk-accordion__section-content {
|
51
52
|
display: none;
|
52
|
-
|
53
|
+
|
53
54
|
@include govuk-responsive-padding(3, "top");
|
55
|
+
@include govuk-responsive-padding(8, "bottom");
|
56
|
+
}
|
57
|
+
|
58
|
+
// Hide the body of collapsed sections using `content-visibility` to enable
|
59
|
+
// page search within [hidden=until-found] regions where browser supported
|
60
|
+
.govuk-accordion__section-content[hidden] {
|
61
|
+
@supports (content-visibility: hidden) {
|
62
|
+
content-visibility: hidden;
|
63
|
+
display: inherit;
|
64
|
+
}
|
65
|
+
|
66
|
+
// Hide the padding of collapsed sections
|
67
|
+
padding-top: 0;
|
68
|
+
padding-bottom: 0;
|
54
69
|
}
|
55
70
|
|
56
71
|
// Show the body of expanded sections
|
@@ -74,7 +89,7 @@
|
|
74
89
|
cursor: pointer;
|
75
90
|
-webkit-appearance: none;
|
76
91
|
|
77
|
-
@include govuk-media-query ($from:
|
92
|
+
@include govuk-media-query ($from: tablet) {
|
78
93
|
margin-bottom: 14px;
|
79
94
|
}
|
80
95
|
|
@@ -140,7 +155,7 @@
|
|
140
155
|
vertical-align: middle;
|
141
156
|
|
142
157
|
// IE8 fallback of icon
|
143
|
-
@include
|
158
|
+
@include _govuk-if-ie8 {
|
144
159
|
display: inline-block;
|
145
160
|
max-height: 20px;
|
146
161
|
line-height: 1;
|
@@ -169,7 +184,7 @@
|
|
169
184
|
border-right: govuk-px-to-rem(2px) solid;
|
170
185
|
|
171
186
|
// IE8 fallback of icon with HTML symbol
|
172
|
-
@include
|
187
|
+
@include _govuk-if-ie8 {
|
173
188
|
content: "\25B2"; // "▲"
|
174
189
|
position: relative;
|
175
190
|
border: 0;
|
@@ -184,7 +199,7 @@
|
|
184
199
|
transform: rotate(180deg);
|
185
200
|
|
186
201
|
// IE8 fallback of arrow icon
|
187
|
-
@include
|
202
|
+
@include _govuk-if-ie8 {
|
188
203
|
&:after {
|
189
204
|
content: "\25BC"; // "▼"
|
190
205
|
-webkit-transform: none;
|
@@ -274,8 +289,12 @@
|
|
274
289
|
// relates to the content below. Adjust padding to maintain the height of the element.
|
275
290
|
// See https://github.com/alphagov/govuk-frontend/pull/2257#issuecomment-951920798
|
276
291
|
.govuk-accordion__section--expanded .govuk-accordion__section-button {
|
277
|
-
padding-bottom: govuk-spacing(
|
292
|
+
padding-bottom: govuk-spacing(3);
|
278
293
|
border-bottom: 0;
|
294
|
+
|
295
|
+
@include govuk-media-query ($from: tablet) {
|
296
|
+
padding-bottom: govuk-spacing(4);
|
297
|
+
}
|
279
298
|
}
|
280
299
|
|
281
300
|
// As Chevron icon is vertically aligned it overlaps with the focus state bottom border
|