govuk_publishing_components 24.9.3 → 24.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics/pii.js +1 -1
  3. data/app/assets/javascripts/govuk_publishing_components/analytics/scroll-tracker.js +13 -248
  4. data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +1 -2
  5. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +1 -0
  6. data/app/assets/javascripts/govuk_publishing_components/components/show-password.js +12 -0
  7. data/app/assets/javascripts/govuk_publishing_components/lib/trigger-event.js +18 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +34 -34
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak.scss +1 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +15 -18
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_notice.scss +4 -2
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +4 -4
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +20 -20
  14. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss +27 -24
  15. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +1 -1
  16. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -0
  17. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_call-to-action.scss +1 -0
  18. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +1 -0
  19. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +1 -0
  20. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_example.scss +1 -0
  21. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +1 -0
  22. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_form-download.scss +19 -16
  23. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_fraction.scss +1 -0
  24. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +30 -27
  25. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_images.scss +1 -0
  26. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_information-callout.scss +1 -0
  27. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_legislative-list.scss +1 -0
  28. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +26 -21
  29. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_stat-headline.scss +1 -0
  30. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_steps.scss +19 -16
  31. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_summary.scss +21 -18
  32. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +1 -0
  33. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +1 -0
  34. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -0
  35. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_px-to-em.scss +2 -0
  36. data/app/views/govuk_publishing_components/components/_government_navigation.html.erb +7 -7
  37. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +1 -1
  38. data/app/views/govuk_publishing_components/components/_metadata.html.erb +9 -8
  39. data/app/views/govuk_publishing_components/components/_notice.html.erb +1 -1
  40. data/app/views/govuk_publishing_components/components/_phase_banner.html.erb +1 -5
  41. data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +1 -1
  42. data/app/views/govuk_publishing_components/components/_radio.html.erb +6 -11
  43. data/app/views/govuk_publishing_components/components/_show_password.html.erb +2 -0
  44. data/app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb +4 -4
  45. data/app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb +1 -1
  46. data/app/views/govuk_publishing_components/components/_subscription_links.html.erb +1 -1
  47. data/app/views/govuk_publishing_components/components/_success_alert.html.erb +1 -1
  48. data/app/views/govuk_publishing_components/components/docs/phase_banner.yml +2 -2
  49. data/app/views/govuk_publishing_components/components/docs/show_password.yml +10 -0
  50. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +1 -1
  51. data/app/views/govuk_publishing_components/components/metadata/_sentence.html.erb +2 -2
  52. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +2 -2
  53. data/config/locales/en.yml +11 -3
  54. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +5 -0
  55. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +4 -0
  56. data/lib/govuk_publishing_components/version.rb +1 -1
  57. metadata +17 -3
  58. data/app/assets/javascripts/component_guide/visual-regression.js +0 -71
@@ -0,0 +1,18 @@
1
+ (function (root) {
2
+ 'use strict'
3
+ window.GOVUK = window.GOVUK || {}
4
+
5
+ window.GOVUK.triggerEvent = function (element, eventName) {
6
+ var params = { bubbles: true, cancelable: true }
7
+ var event
8
+
9
+ if (typeof window.CustomEvent === 'function') {
10
+ event = new window.CustomEvent(eventName, params)
11
+ } else {
12
+ event = document.createEvent('CustomEvent')
13
+ event.initCustomEvent(eventName, params.bubbles, params.cancelable)
14
+ }
15
+
16
+ element.dispatchEvent(event)
17
+ }
18
+ }(window))
@@ -68,17 +68,17 @@ $gem-c-accordion-bottom-border-width: 1px;
68
68
  display: inline-block;
69
69
  box-sizing: border-box;
70
70
  position: relative;
71
- width: em(20, 14);
72
- height: em(20, 14);
73
- margin-left: em(5, 14);
74
- border: em(1, 14) solid;
75
- border-radius: em(100, 14);
71
+ width: govuk-em(20, 14);
72
+ height: govuk-em(20, 14);
73
+ margin-left: govuk-em(5, 14);
74
+ border: govuk-em(1, 14) solid;
75
+ border-radius: govuk-em(100, 14);
76
76
  // Main icon size across views, yet keep responsive for zoom
77
77
  @include govuk-media-query($from: tablet) {
78
- width: em(20, 16);
79
- height: em(20, 16);
80
- margin-left: em(5, 16);
81
- border: em(1, 16) solid;
78
+ width: govuk-em(20, 16);
79
+ height: govuk-em(20, 16);
80
+ margin-left: govuk-em(5, 16);
81
+ border: govuk-em(1, 16) solid;
82
82
  }
83
83
 
84
84
  &:after {
@@ -87,20 +87,20 @@ $gem-c-accordion-bottom-border-width: 1px;
87
87
  box-sizing: border-box;
88
88
  position: absolute;
89
89
  overflow: visible;
90
- width: em(6, 14);
91
- height: em(6, 14);
92
- border-top: em(2, 14) solid;
93
- border-right: em(2, 14) solid;
90
+ width: govuk-em(6, 14);
91
+ height: govuk-em(6, 14);
92
+ border-top: govuk-em(2, 14) solid;
93
+ border-right: govuk-em(2, 14) solid;
94
94
  transform: rotate(-45deg);
95
- left: em(6, 14);
96
- bottom: em(5, 14);
95
+ left: govuk-em(6, 14);
96
+ bottom: govuk-em(5, 14);
97
97
  @include govuk-media-query($from: tablet) {
98
- width: em(6, 16);
99
- height: em(6, 16);
100
- border-top: em(2, 16) solid;
101
- border-right: em(2, 16) solid;
102
- left: em(6, 16);
103
- bottom: em(5, 16);
98
+ width: govuk-em(6, 16);
99
+ height: govuk-em(6, 16);
100
+ border-top: govuk-em(2, 16) solid;
101
+ border-right: govuk-em(2, 16) solid;
102
+ left: govuk-em(6, 16);
103
+ bottom: govuk-em(5, 16);
104
104
  }
105
105
  }
106
106
  }
@@ -227,12 +227,12 @@ $gem-c-accordion-bottom-border-width: 1px;
227
227
 
228
228
  // Setting width of the text, so the icon doesn't shift (left / right) when toggled
229
229
  .gem-c-accordion__toggle-text {
230
- min-width: em(40, 16);
230
+ min-width: govuk-em(40, 16);
231
231
  display: inline-block;
232
232
  }
233
233
 
234
234
  .gem-c-accordion__open-all-text {
235
- min-width: em(120, 16);
235
+ min-width: govuk-em(120, 16);
236
236
  display: inline-block;
237
237
  text-align: left;
238
238
  }
@@ -277,20 +277,20 @@ $gem-c-accordion-bottom-border-width: 1px;
277
277
 
278
278
  // Reduce Chevron size
279
279
  .gem-c-accordion-nav__chevron {
280
- width: em(20, 14);
281
- height: em(20, 14);
282
- margin-left: em(5, 14);
283
- border: em(1, 14) solid;
284
- border-radius: em(100, 14);
280
+ width: govuk-em(20, 14);
281
+ height: govuk-em(20, 14);
282
+ margin-left: govuk-em(5, 14);
283
+ border: govuk-em(1, 14) solid;
284
+ border-radius: govuk-em(100, 14);
285
285
  transform: scale(.875);
286
286
 
287
287
  &:after {
288
- width: em(6, 14);
289
- height: em(6, 14);
290
- border-top: em(2, 14) solid;
291
- border-right: em(2, 14) solid;
292
- left: em(6, 14);
293
- bottom: em(5, 14);
288
+ width: govuk-em(6, 14);
289
+ height: govuk-em(6, 14);
290
+ border-top: govuk-em(2, 14) solid;
291
+ border-right: govuk-em(2, 14) solid;
292
+ left: govuk-em(6, 14);
293
+ bottom: govuk-em(5, 14);
294
294
  }
295
295
  }
296
296
 
@@ -21,6 +21,7 @@
21
21
  @import "govspeak/typography";
22
22
  @import "govspeak/warning-callout";
23
23
 
24
+ .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
24
25
  .gem-c-govspeak {
25
26
  &.direction-rtl {
26
27
  direction: rtl;
@@ -7,6 +7,11 @@
7
7
  a {
8
8
  @include govuk-link-common;
9
9
  @include govuk-link-style-default;
10
+ font-weight: bold;
11
+ }
12
+
13
+ .gem-c-metadata__definition-link {
14
+ font-weight: normal;
10
15
  }
11
16
  }
12
17
 
@@ -29,17 +34,19 @@
29
34
  }
30
35
  }
31
36
 
37
+ .gem-c-metadata__term,
38
+ .gem-c-metadata__definition {
39
+ line-height: 1.4;
40
+ }
41
+
32
42
  .gem-c-metadata__term {
33
43
  margin-top: .5em;
34
- line-height: 1.4;
35
44
 
36
45
  @include govuk-media-query($from: tablet) {
37
46
  box-sizing: border-box;
38
47
  float: left;
39
48
  clear: left;
40
- width: 30%;
41
- max-width: 11em;
42
- padding-right: govuk-spacing(2);
49
+ padding-right: govuk-spacing(1);
43
50
  margin-top: 0;
44
51
  }
45
52
  }
@@ -49,31 +56,21 @@
49
56
  clear: right;
50
57
 
51
58
  @include govuk-media-query($from: tablet) {
52
- padding-left: govuk-spacing(2);
59
+ padding-left: govuk-spacing(1);
53
60
  padding-right: 0;
54
61
  }
55
62
  }
56
63
 
57
64
  .gem-c-metadata__definition {
58
65
  margin: 0;
59
- line-height: 1.4;
60
66
 
61
67
  @include govuk-media-query($from: tablet) {
62
- float: left;
63
- width: 70%;
68
+ &:not(:last-of-type) {
69
+ margin-bottom: govuk-spacing(1);
70
+ }
64
71
  }
65
72
  }
66
73
 
67
- .gem-c-metadata__definition-link {
68
- text-decoration: none;
69
- }
70
-
71
- .gem-c-metadata__definition-link:focus,
72
- .gem-c-metadata__definition-link:active,
73
- .gem-c-metadata__definition-link:hover {
74
- text-decoration: underline;
75
- }
76
-
77
74
  .gem-c-metadata.direction-rtl .gem-c-metadata__definition {
78
75
  float: right;
79
76
  }
@@ -6,7 +6,7 @@
6
6
  clear: both;
7
7
  border: $govuk-border-width solid govuk-colour("blue");
8
8
 
9
- .govuk-govspeak, {
9
+ .govuk-govspeak {
10
10
  p:last-child {
11
11
  margin-bottom: 0;
12
12
  }
@@ -27,7 +27,9 @@
27
27
  }
28
28
 
29
29
  a {
30
- @extend %govuk-link;
30
+ @include govuk-link-common;
31
+ @include govuk-link-style-default;
32
+ @include govuk-link-print-friendly;
31
33
  }
32
34
  }
33
35
 
@@ -53,8 +53,8 @@ $large-input-size: 50px;
53
53
  @include govuk-font($size: 19, $line-height: (28 / 19));
54
54
  margin: 0;
55
55
  width: 100%;
56
- height: em(40, 16);
57
- padding: em(6, 16);
56
+ height: govuk-em(40, 16);
57
+ padding: govuk-em(6, 16);
58
58
  border: $govuk-border-width-form-element solid $govuk-input-border-colour;
59
59
  background: govuk-colour("white");
60
60
  border-radius: 0; //otherwise iphones apply an automatic border radius
@@ -63,8 +63,8 @@ $large-input-size: 50px;
63
63
  -moz-appearance: none;
64
64
  appearance: none;
65
65
  @include govuk-media-query($from: tablet) {
66
- height: em(40, 19);
67
- padding: em(6, 19);
66
+ height: govuk-em(40, 19);
67
+ padding: govuk-em(6, 19);
68
68
  }
69
69
 
70
70
  // the .focus class is added by JS and ensures that the input remains above the label once clicked/filled in
@@ -15,12 +15,12 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
15
15
 
16
16
  @mixin step-nav-line-position {
17
17
  left: 0;
18
- margin-left: em(($number-circle-size / 2) - ($stroke-width / 2), 16);
18
+ margin-left: govuk-em(($number-circle-size / 2) - ($stroke-width / 2), 16);
19
19
  }
20
20
 
21
21
  @mixin step-nav-line-position-large {
22
22
  left: 0;
23
- margin-left: em(($number-circle-size-large / 2) - ($stroke-width / 2), 16);
23
+ margin-left: govuk-em(($number-circle-size-large / 2) - ($stroke-width / 2), 16);
24
24
  }
25
25
 
26
26
  // custom mixin as govuk-font does undesirable things at different breakpoints
@@ -136,10 +136,10 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
136
136
  .gem-c-step-nav__chevron {
137
137
  display: inline-block;
138
138
  vertical-align: middle;
139
- margin-left: em(5, 14);
139
+ margin-left: govuk-em(5, 14);
140
140
 
141
141
  .gem-c-step-nav--large & {
142
- margin-left: em(5, 16);
142
+ margin-left: govuk-em(5, 16);
143
143
  }
144
144
 
145
145
  svg {
@@ -150,18 +150,18 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
150
150
  .gem-c-step-nav__button-text {
151
151
  display: inline-block;
152
152
  text-align: left;
153
- min-width: em(35, 14);
153
+ min-width: govuk-em(35, 14);
154
154
 
155
155
  .gem-c-step-nav--large & {
156
- min-width: em(40, 16);
156
+ min-width: govuk-em(40, 16);
157
157
  }
158
158
  }
159
159
 
160
160
  .gem-c-step-nav__button-text--all {
161
- min-width: em(87, 14);
161
+ min-width: govuk-em(87, 14);
162
162
 
163
163
  .gem-c-step-nav--large & {
164
- min-width: em(100, 16);
164
+ min-width: govuk-em(100, 16);
165
165
  }
166
166
  }
167
167
 
@@ -172,23 +172,23 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
172
172
 
173
173
  .gem-c-step-nav__step {
174
174
  position: relative;
175
- padding-left: em(govuk-spacing(6) + govuk-spacing(3), 16);
175
+ padding-left: govuk-em(govuk-spacing(6) + govuk-spacing(3), 16);
176
176
  list-style: none;
177
177
 
178
178
  // line down the side of a step
179
179
  &:after {
180
180
  @include step-nav-vertical-line;
181
181
  @include step-nav-line-position;
182
- top: em(govuk-spacing(3), 16);
182
+ top: govuk-em(govuk-spacing(3), 16);
183
183
  }
184
184
 
185
185
  .gem-c-step-nav--large & {
186
186
  @include govuk-media-query($from: tablet) {
187
- padding-left: em(govuk-spacing(9), 16);
187
+ padding-left: govuk-em(govuk-spacing(9), 16);
188
188
 
189
189
  &:after { // stylelint-disable-line max-nesting-depth
190
190
  @include step-nav-line-position-large;
191
- top: em(govuk-spacing(6), 16);
191
+ top: govuk-em(govuk-spacing(6), 16);
192
192
  }
193
193
  }
194
194
  }
@@ -246,8 +246,8 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
246
246
  z-index: 5;
247
247
  top: 3px;
248
248
  left: 0;
249
- width: em($number-circle-size, 16);
250
- height: em($number-circle-size, 16);
249
+ width: govuk-em($number-circle-size, 16);
250
+ height: govuk-em($number-circle-size, 16);
251
251
  color: govuk-colour("black");
252
252
  background: govuk-colour("white");
253
253
  border-radius: 100px;
@@ -256,8 +256,8 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
256
256
  .gem-c-step-nav--large & {
257
257
  @include govuk-media-query($from: tablet) {
258
258
  top: 11px;
259
- width: em($number-circle-size-large, 19);
260
- height: em($number-circle-size-large, 19);
259
+ width: govuk-em($number-circle-size-large, 19);
260
+ height: govuk-em($number-circle-size-large, 19);
261
261
  }
262
262
  }
263
263
  }
@@ -283,15 +283,15 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
283
283
  .gem-c-step-nav__circle--logic {
284
284
  @include step-nav-font(19, $weight: bold, $line-height: 28px);
285
285
  left: 3px;
286
- width: em($number-circle-size, 19);
287
- height: em($number-circle-size, 19);
286
+ width: govuk-em($number-circle-size, 19);
287
+ height: govuk-em($number-circle-size, 19);
288
288
 
289
289
  .gem-c-step-nav--large & {
290
290
  @include step-nav-font(19, $tablet-size: 24, $weight: bold, $line-height: 28px, $tablet-line-height: 34px);
291
291
 
292
292
  @include govuk-media-query($from: tablet) {
293
- width: em($number-circle-size-large, 24);
294
- height: em($number-circle-size-large, 24);
293
+ width: govuk-em($number-circle-size-large, 24);
294
+ height: govuk-em($number-circle-size-large, 24);
295
295
  }
296
296
  }
297
297
  }
@@ -1,33 +1,36 @@
1
1
  $info-background: #d5e8f3;
2
2
  $high-alert-border: #cc0000;
3
3
 
4
- .gem-c-govspeak .advisory {
5
- background-image: image-url("govuk_publishing_components/icon-important.svg");
6
- background-repeat: no-repeat;
7
- background-size: 30px 30px;
8
- background-position: 98% center;
9
- background-color: $info-background;
10
- line-height: 1.3em;
11
- margin: 0 -1em 1em;
12
- padding: govuk-spacing(3) govuk-spacing(8) govuk-spacing(3) govuk-spacing(3);
13
- text-align: left;
4
+ .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
5
+ .gem-c-govspeak {
6
+ .advisory {
7
+ background-image: image-url("govuk_publishing_components/icon-important.svg");
8
+ background-repeat: no-repeat;
9
+ background-size: 30px 30px;
10
+ background-position: 98% center;
11
+ background-color: $info-background;
12
+ line-height: 1.3em;
13
+ margin: 0 -1em 1em;
14
+ padding: govuk-spacing(3) govuk-spacing(8) govuk-spacing(3) govuk-spacing(3);
15
+ text-align: left;
14
16
 
15
- p {
16
- margin: 0 .75em 0 0;
17
- min-height: 1.75em;
18
- padding-right: 3em;
19
- }
17
+ p {
18
+ margin: 0 .75em 0 0;
19
+ min-height: 1.75em;
20
+ padding-right: 3em;
21
+ }
20
22
 
21
- strong {
22
- font-weight: 400;
23
- }
23
+ strong {
24
+ font-weight: 400;
25
+ }
24
26
 
25
- &.high-alert {
26
- background-color: govuk-colour("light-grey", $legacy: "grey-3");
27
- border: 1px solid $high-alert-border;
28
- }
27
+ &.high-alert {
28
+ background-color: govuk-colour("light-grey", $legacy: "grey-3");
29
+ border: 1px solid $high-alert-border;
30
+ }
29
31
 
30
- @include govuk-media-query($until: tablet) {
31
- margin: 0 0 1em;
32
+ @include govuk-media-query($until: tablet) {
33
+ margin: 0 0 1em;
34
+ }
32
35
  }
33
36
  }
@@ -7,8 +7,8 @@
7
7
 
8
8
  // stylelint-disable max-nesting-depth
9
9
 
10
+ .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
10
11
  .gem-c-govspeak {
11
-
12
12
  // Scope attachment and attachment-link component styles to gem-c-govspeak
13
13
  @import "../attachment-link";
14
14
  @import "../attachment";
@@ -1,4 +1,5 @@
1
1
  // stylelint-disable scss/at-extend-no-missing-placeholder
2
+ .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
2
3
  .gem-c-govspeak {
3
4
  @import "govuk/components/button/button";
4
5