govuk_publishing_components 27.16.0 → 27.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/govuk_publishing_components/image-card-srcset/cop26-170.jpg +0 -0
  3. data/app/assets/images/govuk_publishing_components/image-card-srcset/cop26-240.jpg +0 -0
  4. data/app/assets/images/govuk_publishing_components/image-card-srcset/cop26-320.jpg +0 -0
  5. data/app/assets/images/govuk_publishing_components/image-card-srcset/cop26-480.jpg +0 -0
  6. data/app/assets/images/govuk_publishing_components/image-card-srcset/cop26.jpg +0 -0
  7. data/app/assets/javascripts/govuk_publishing_components/analytics/explicit-cross-domain-links.js +49 -48
  8. data/app/assets/javascripts/govuk_publishing_components/analytics/page-content.js +74 -65
  9. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +0 -1
  10. data/app/assets/javascripts/govuk_publishing_components/components/single-page-notification-button.js +25 -11
  11. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_big-number.scss +1 -6
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +19 -14
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +17 -7
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +10 -109
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +24 -14
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_signup-link.scss +34 -0
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_single-page-notification-button.scss +8 -0
  19. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +8 -4
  20. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +7 -0
  21. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_grid-helper.scss +141 -0
  22. data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +5 -1
  23. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +1 -1
  24. data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -0
  25. data/app/views/govuk_publishing_components/components/_intervention.html.erb +10 -1
  26. data/app/views/govuk_publishing_components/components/_search.html.erb +1 -0
  27. data/app/views/govuk_publishing_components/components/_signup_link.html.erb +30 -0
  28. data/app/views/govuk_publishing_components/components/_single_page_notification_button.html.erb +1 -1
  29. data/app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_cta.html.erb +3 -3
  30. data/app/views/govuk_publishing_components/components/contextual_sidebar/_covid_cta.html.erb +27 -0
  31. data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +15 -87
  32. data/app/views/govuk_publishing_components/components/docs/image_card.yml +29 -0
  33. data/app/views/govuk_publishing_components/components/docs/intervention.yml +9 -0
  34. data/app/views/govuk_publishing_components/components/docs/search.yml +3 -0
  35. data/app/views/govuk_publishing_components/components/docs/signup_link.yml +39 -0
  36. data/app/views/govuk_publishing_components/components/layout_header/_header_logo.html.erb +1 -1
  37. data/config/i18n-tasks.yml +8 -0
  38. data/config/locales/ar.yml +134 -131
  39. data/config/locales/az.yml +131 -131
  40. data/config/locales/be.yml +136 -130
  41. data/config/locales/bg.yml +135 -131
  42. data/config/locales/bn.yml +132 -131
  43. data/config/locales/cs.yml +136 -131
  44. data/config/locales/cy.yml +129 -125
  45. data/config/locales/da.yml +132 -131
  46. data/config/locales/de.yml +135 -131
  47. data/config/locales/dr.yml +133 -131
  48. data/config/locales/el.yml +131 -131
  49. data/config/locales/en.yml +19 -14
  50. data/config/locales/es-419.yml +131 -131
  51. data/config/locales/es.yml +131 -131
  52. data/config/locales/et.yml +134 -131
  53. data/config/locales/fa.yml +130 -131
  54. data/config/locales/fi.yml +133 -131
  55. data/config/locales/fr.yml +130 -130
  56. data/config/locales/gd.yml +133 -131
  57. data/config/locales/gu.yml +131 -131
  58. data/config/locales/he.yml +131 -131
  59. data/config/locales/hi.yml +131 -131
  60. data/config/locales/hr.yml +133 -131
  61. data/config/locales/hu.yml +134 -131
  62. data/config/locales/hy.yml +135 -131
  63. data/config/locales/id.yml +132 -131
  64. data/config/locales/is.yml +131 -131
  65. data/config/locales/it.yml +131 -131
  66. data/config/locales/ja.yml +128 -131
  67. data/config/locales/ka.yml +134 -131
  68. data/config/locales/kk.yml +131 -131
  69. data/config/locales/ko.yml +13 -17
  70. data/config/locales/lt.yml +136 -131
  71. data/config/locales/lv.yml +135 -131
  72. data/config/locales/ms.yml +131 -131
  73. data/config/locales/mt.yml +133 -131
  74. data/config/locales/nl.yml +131 -131
  75. data/config/locales/no.yml +131 -131
  76. data/config/locales/pa-pk.yml +128 -132
  77. data/config/locales/pa.yml +131 -131
  78. data/config/locales/pl.yml +135 -131
  79. data/config/locales/ps.yml +128 -131
  80. data/config/locales/pt.yml +131 -131
  81. data/config/locales/ro.yml +132 -131
  82. data/config/locales/ru.yml +135 -131
  83. data/config/locales/si.yml +131 -131
  84. data/config/locales/sk.yml +136 -131
  85. data/config/locales/sl.yml +138 -131
  86. data/config/locales/so.yml +131 -131
  87. data/config/locales/sq.yml +131 -131
  88. data/config/locales/sr.yml +133 -131
  89. data/config/locales/sv.yml +131 -131
  90. data/config/locales/sw.yml +131 -131
  91. data/config/locales/ta.yml +132 -131
  92. data/config/locales/th.yml +130 -131
  93. data/config/locales/tk.yml +132 -131
  94. data/config/locales/tr.yml +132 -131
  95. data/config/locales/uk.yml +138 -131
  96. data/config/locales/ur.yml +128 -131
  97. data/config/locales/uz.yml +133 -131
  98. data/config/locales/vi.yml +131 -131
  99. data/config/locales/zh-hk.yml +130 -131
  100. data/config/locales/zh-tw.yml +130 -131
  101. data/config/locales/zh.yml +130 -131
  102. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +42 -170
  103. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +11 -1
  104. data/lib/govuk_publishing_components/presenters/single_page_notification_button_helper.rb +3 -1
  105. data/lib/govuk_publishing_components/version.rb +1 -1
  106. metadata +12 -2
@@ -1,102 +1,5 @@
1
1
  @import "mixins/prefixed-transform";
2
-
3
- /// Set grid row or column value using the fraction unit.
4
- ///
5
- /// @param {Integer} $number - number of fractions that the grid row or column
6
- /// needs to be divided into.
7
- /// @returns {String} - the value
8
- ///
9
- /// @example scss - Five fractions will return `1fr 1fr 1fr 1fr 1fr`.
10
- /// .container {
11
- /// grid-template-rows: fractions(5);
12
- /// }
13
- ///
14
- @function fractions($number) {
15
- $fractions: "1fr";
16
-
17
- @for $i from 1 to $number {
18
- $fractions: $fractions + " 1fr";
19
- }
20
-
21
- @return unquote($fractions);
22
- }
23
-
24
- /// Arrange items into vertical columns
25
- ///
26
- /// @param {Integer} $items - number of items that need to be arranged
27
- /// @param {Integer} $columns - number of columns required
28
- /// @param {String} $selector - (optional) the inner element to be targeted.
29
- ///
30
- /// @example scss - A 7 item 2 column layout.
31
- /// .container {
32
- /// @include columns(7, 2);
33
- /// }
34
-
35
- /// @example scss - A 9 item 3 column layout that has `div`s as the inner
36
- /// elements.
37
- /// .container {
38
- /// @include columns(9, 3, "div");
39
- /// }
40
- ///
41
- @mixin columns($items, $columns, $selector: "*") {
42
- $rows: ceil($items / $columns);
43
-
44
- display: -ms-grid;
45
- display: grid;
46
- grid-auto-flow: column;
47
- -ms-grid-columns: fractions($columns);
48
- grid-template-columns: fractions($columns);
49
- -ms-grid-rows: fractions($rows);
50
- grid-template-rows: fractions($rows);
51
- }
52
-
53
- @mixin columns-children($items, $columns, $selector: "*") {
54
- $rows: ceil($items / $columns);
55
-
56
- // Internet Explorer 10-11 require each element to be placed in the grid -
57
- // the `grid-auto-flow` property isn't supported. This means that both the
58
- // column and row needs to be set for every element.
59
-
60
- // This creates a list of lists to represent the columns and rows; for
61
- // example, a 7 item 2 column list would create this:
62
- // [
63
- // [1, 2, 3, 4 ] // column one
64
- // [5, 6, 7] // column two
65
- // ]
66
- $grid: ();
67
- $counter: 0;
68
-
69
- @for $column from 1 through $columns {
70
- $this-row: ();
71
-
72
- @for $row from 1 through $rows {
73
- $counter: $counter + 1;
74
-
75
- @if $counter <= $items {
76
- $this-row: append($this-row, $counter);
77
- }
78
- }
79
-
80
- $grid: append($grid, $this-row, "comma");
81
- }
82
-
83
- // Now we can loop through the list of lists to create the rules needed for
84
- // the older grid syntax; fist looping through the list to get the number
85
- // needed for the column, then looping again to get the number for the grid
86
- // row:
87
- @for $column_index from 1 through length($grid) {
88
- $this-row: nth($grid, $column_index);
89
-
90
- @for $item-index from 1 through length($this-row) {
91
- $this-item: nth($this-row, $item-index);
92
-
93
- & > #{$selector}:nth-child(#{$this-item}) {
94
- -ms-grid-column: $column_index;
95
- -ms-grid-row: $item-index;
96
- }
97
- }
98
- }
99
- }
2
+ @import "mixins/grid-helper";
100
3
 
101
4
  $icon-size: 20px;
102
5
  $chevron-indent-spacing: 7px;
@@ -131,14 +34,14 @@ $pseudo-underline-height: 3px;
131
34
  top: 0;
132
35
  }
133
36
 
134
- @mixin pseudo-underline {
37
+ @mixin pseudo-underline($left: govuk-spacing(4), $right: govuk-spacing(4)) {
135
38
  background: none;
136
39
  bottom: 0;
137
40
  content: "";
138
41
  height: $pseudo-underline-height;
139
- left: govuk-spacing(5);
42
+ left: $left;
140
43
  position: absolute;
141
- right: govuk-spacing(6);
44
+ right: $right;
142
45
  top: auto;
143
46
  }
144
47
 
@@ -385,7 +288,7 @@ $pseudo-underline-height: 3px;
385
288
  // stylelint-enable max-nesting-depth
386
289
 
387
290
  &:after {
388
- @include pseudo-underline;
291
+ @include pseudo-underline($left: govuk-spacing(5), $right: govuk-spacing(6));
389
292
  }
390
293
  }
391
294
  }
@@ -431,7 +334,7 @@ $pseudo-underline-height: 3px;
431
334
 
432
335
  @include govuk-media-query($from: "desktop") {
433
336
  &:after {
434
- @include pseudo-underline;
337
+ @include pseudo-underline($left: govuk-spacing(5), $right: govuk-spacing(6));
435
338
  }
436
339
 
437
340
  @include focus-not-focus-visible {
@@ -866,15 +769,13 @@ $pseudo-underline-height: 3px;
866
769
 
867
770
  .gem-c-layout-super-navigation-header__navigation-second-items--topics {
868
771
  @include govuk-media-query($from: "desktop") {
869
- @include columns(17, 2, "li");
870
- @include columns-children(17, 2, "li");
772
+ @include columns($items: 17, $columns: 2, $selector: "li", $flow: column);
871
773
  }
872
774
  }
873
775
 
874
776
  .gem-c-layout-super-navigation-header__navigation-second-items--government-activity {
875
777
  @include govuk-media-query($from: "desktop") {
876
- @include columns(6, 2, "li");
877
- @include columns-children(6, 2, "li");
778
+ @include columns($items: 6, $columns: 2, $selector: "li", $flow: column);
878
779
  padding-bottom: 0;
879
780
 
880
781
  & > li {
@@ -924,8 +825,7 @@ $pseudo-underline-height: 3px;
924
825
  padding: 0 0 govuk-spacing(8) govuk-spacing(4);
925
826
 
926
827
  @include govuk-media-query($from: "desktop") {
927
- @include columns(2, 2, "li");
928
- @include columns-children(2, 2, "li");
828
+ @include columns($items: 2, $columns: 2, $selector: "li");
929
829
  margin: 0 (0 - govuk-spacing(3));
930
830
  padding: govuk-spacing(6) 0 govuk-spacing(7) 0;
931
831
  }
@@ -963,6 +863,7 @@ $pseudo-underline-height: 3px;
963
863
  }
964
864
 
965
865
  .gem-c-layout-super-navigation-header__navigation-second-item-description {
866
+ @include govuk-typography-common;
966
867
  font-size: 16px;
967
868
  @if $govuk-typography-use-rem {
968
869
  font-size: govuk-px-to-rem(16px);
@@ -1,6 +1,25 @@
1
1
  $input-size: 40px;
2
2
  $large-input-size: 50px;
3
3
 
4
+ @mixin large-mode {
5
+ .gem-c-search__label {
6
+ @include govuk-font($size: 19, $line-height: $large-input-size);
7
+ }
8
+
9
+ .gem-c-search__input[type="search"] {
10
+ height: $large-input-size;
11
+ }
12
+
13
+ .gem-c-search__submit {
14
+ width: $large-input-size;
15
+ height: $large-input-size;
16
+
17
+ .gem-c-search__icon {
18
+ @include icon-positioning($large-input-size);
19
+ }
20
+ }
21
+ }
22
+
4
23
  .gem-c-search {
5
24
  position: relative;
6
25
  margin-bottom: 30px;
@@ -220,21 +239,12 @@ $large-input-size: 50px;
220
239
  }
221
240
 
222
241
  .gem-c-search--large {
223
- .gem-c-search__label {
224
- @include govuk-font($size: 19, $line-height: $large-input-size);
225
- }
226
-
227
- .gem-c-search__input[type="search"] {
228
- height: $large-input-size;
229
- }
230
-
231
- .gem-c-search__submit {
232
- width: $large-input-size;
233
- height: $large-input-size;
242
+ @include large-mode;
243
+ }
234
244
 
235
- .gem-c-search__icon {
236
- @include icon-positioning($large-input-size);
237
- }
245
+ .gem-c-search--large-on-mobile {
246
+ @include govuk-media-query($until: "tablet") {
247
+ @include large-mode;
238
248
  }
239
249
  }
240
250
 
@@ -0,0 +1,34 @@
1
+ .gem-c-signup-link__link {
2
+ @include govuk-font($size: 19);
3
+ }
4
+
5
+ .gem-c-signup-link__inner {
6
+ position: relative;
7
+ }
8
+
9
+ .gem-c-signup-link__icon {
10
+ position: absolute;
11
+
12
+ @include govuk-media-query($from: tablet) {
13
+ top: 2px;
14
+ }
15
+ }
16
+
17
+ .gem-c-signup-link__title {
18
+ margin-bottom: govuk-spacing(2);
19
+ margin-left: govuk-spacing(5);
20
+ }
21
+
22
+ .gem-c-signup-link--with-background-and-border {
23
+ padding: govuk-spacing(6);
24
+ background-color: govuk-colour("light-grey");
25
+ border: 1px solid $govuk-border-colour;
26
+ }
27
+
28
+ .gem-c-signup-link--link-only .gem-c-signup-link__link {
29
+ display: inline-block;
30
+ vertical-align: top;
31
+ font-weight: bold;
32
+ margin-left: govuk-spacing(5);
33
+ margin-bottom: 0;
34
+ }
@@ -28,3 +28,11 @@
28
28
  vertical-align: top;
29
29
  margin-right: govuk-spacing(1);
30
30
  }
31
+
32
+ .js-enabled .gem-c-single-page-notification-button.js-personalisation-enhancement {
33
+ opacity: 0;
34
+
35
+ &.gem-c-single-page-notification-button--visible {
36
+ opacity: 1;
37
+ }
38
+ }
@@ -14,7 +14,7 @@
14
14
  margin: govuk-spacing(6) 0;
15
15
  overflow-x: auto;
16
16
  width: 100%;
17
- @include govuk-font($size: 14);
17
+ @include govuk-font($size: 19);
18
18
 
19
19
  caption {
20
20
  text-align: left;
@@ -24,12 +24,16 @@
24
24
  th,
25
25
  td {
26
26
  vertical-align: top;
27
- padding: govuk-spacing(2) govuk-spacing(2) govuk-spacing(2) 0;
28
- border-bottom: solid 1px govuk-colour("mid-grey", $legacy: "grey-2");
27
+ padding: govuk-spacing(2) govuk-spacing(4) govuk-spacing(2) 0;
28
+ border-bottom: 1px solid govuk-colour("mid-grey", $legacy: "grey-2");
29
+
30
+ &:last-child {
31
+ padding: govuk-spacing(2) 0 govuk-spacing(2) 0;
32
+ }
29
33
  }
30
34
 
31
35
  th {
32
- @include govuk-font($size: 14, $weight: bold);
36
+ @include govuk-font($size: 19, $weight: bold);
33
37
  text-align: left;
34
38
  color: $govuk-text-colour;
35
39
  }
@@ -34,4 +34,11 @@
34
34
  margin-left: 1em;
35
35
  }
36
36
  }
37
+
38
+ // Prevent excessive spacing when placed in a call-to-action block
39
+ .call-to-action {
40
+ .help-notice:first-child {
41
+ margin-top: 0;
42
+ }
43
+ }
37
44
  }
@@ -0,0 +1,141 @@
1
+ /// Set grid row or column value using the fraction unit.
2
+ ///
3
+ /// @param {Integer} $number - number of fractions that the grid row or column
4
+ /// needs to be divided into.
5
+ /// @returns {String} - the value
6
+ ///
7
+ /// @example scss - Five fractions will return `1fr 1fr 1fr 1fr 1fr`.
8
+ /// .container {
9
+ /// grid-template-rows: fractions(5);
10
+ /// }
11
+ ///
12
+ @function fractions($number) {
13
+ $fractions: "1fr";
14
+
15
+ @for $i from 1 to $number {
16
+ $fractions: $fractions + " 1fr";
17
+ }
18
+
19
+ @return unquote($fractions);
20
+ }
21
+
22
+ /// Arrange items into columns
23
+ ///
24
+ /// The items can flow from horizontally or vertically.
25
+ ///
26
+ /// @param {Integer} $items - number of items that need to be arranged
27
+ /// @param {Integer} $columns - number of columns required
28
+ /// @param {String} $selector - (optional) the inner element to be targeted.
29
+ /// @param {String} $direction - (optional) the flow of the items in the grid:
30
+ /// * `row` goes from the left to right, top to bottom one row at a time
31
+ /// * `column` goes from the top to bottom, left to right one column at a time
32
+ ///
33
+ /// @example scss - A 7 item 2 column layout going left to right, top to bottom.
34
+ /// .container {
35
+ /// @include columns($items: 7, $columns: 2);
36
+ /// }
37
+ ///
38
+ /// @example scss - A 9 item 3 column layout that has `div`s as the inner
39
+ /// elements.
40
+ /// .container {
41
+ /// @include columns($items: 9, $columns: 3, $selector:"div");
42
+ /// }
43
+ ///
44
+ /// @example scss - A 16 item 2 column layout going from top to bottom
45
+ /// elements.
46
+ /// .container {
47
+ /// @include columns($items: 9, $columns: 3, $flow:"column");
48
+ /// }
49
+ ///
50
+ @mixin columns($items, $columns, $selector: "*", $flow: row) {
51
+ $rows: ceil($items / $columns);
52
+
53
+ display: -ms-grid;
54
+ display: grid;
55
+ grid-auto-flow: $flow;
56
+ -ms-grid-columns: fractions($columns);
57
+ grid-template-columns: fractions($columns);
58
+ -ms-grid-rows: fractions($rows);
59
+ grid-template-rows: fractions($rows);
60
+
61
+ // Internet Explorer 10-11 require each element to be placed in the grid -
62
+ // the `grid-auto-flow` property isn't supported. This means that both the
63
+ // column and row needs to be set for every child element.
64
+ @if $flow == "row" {
65
+ $grid: ();
66
+ $counter: 0;
67
+
68
+ @for $row from 1 through $rows {
69
+ $this-row: ();
70
+
71
+ @for $column from 1 through $columns {
72
+ $counter: $counter + 1;
73
+
74
+ // stylelint-disable max-nesting-depth
75
+ @if $counter <= $items {
76
+ $this-row: append($this-row, $counter);
77
+ }
78
+ // stylelint-enable max-nesting-depth
79
+ }
80
+
81
+ $grid: append($grid, $this-row, "comma");
82
+ }
83
+
84
+ @for $row-count from 1 through length($grid) {
85
+ $this-column: nth($grid, $row-count);
86
+
87
+ @for $item-index from 1 through length($this-column) {
88
+ $this-item: nth($this-column, $item-index);
89
+
90
+ & > #{$selector}:nth-child(#{$this-item}) {
91
+ -ms-grid-column: $item-index;
92
+ -ms-grid-row: $row-count;
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ @if $flow == "column" {
99
+ // This creates a list of lists to represent the columns and rows; for
100
+ // example, a 7 item 2 column list would create this:
101
+ // [
102
+ // [1, 2, 3, 4 ] // column one
103
+ // [5, 6, 7] // column two
104
+ // ]
105
+ $grid: ();
106
+ $counter: 0;
107
+
108
+ @for $column from 1 through $columns {
109
+ $this-row: ();
110
+
111
+ @for $row from 1 through $rows {
112
+ $counter: $counter + 1;
113
+
114
+ // stylelint-disable max-nesting-depth
115
+ @if $counter <= $items {
116
+ $this-row: append($this-row, $counter);
117
+ }
118
+ // stylelint-enable max-nesting-depth
119
+ }
120
+
121
+ $grid: append($grid, $this-row, "comma");
122
+ }
123
+
124
+ // Now we can loop through the list of lists to create the rules needed for
125
+ // the older grid syntax; fist looping through the list to get the number
126
+ // needed for the column, then looping again to get the number for the grid
127
+ // row:
128
+ @for $column_index from 1 through length($grid) {
129
+ $this-row: nth($grid, $column_index);
130
+
131
+ @for $item-index from 1 through length($this-row) {
132
+ $this-item: nth($this-row, $item-index);
133
+
134
+ & > #{$selector}:nth-child(#{$this-item}) {
135
+ -ms-grid-column: $column_index;
136
+ -ms-grid-row: $item-index;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
@@ -24,7 +24,11 @@
24
24
  } %>
25
25
  <% end %>
26
26
 
27
- <% if navigation.show_brexit_cta? || navigation.show_brexit_related_links? %>
27
+ <% if navigation.show_brexit_cta? %>
28
28
  <%= render 'govuk_publishing_components/components/contextual_sidebar/brexit_cta', content_item: content_item %>
29
29
  <% end %>
30
+
31
+ <% if navigation.show_covid_booster_cta? %>
32
+ <%= render 'govuk_publishing_components/components/contextual_sidebar/covid_cta', content_item: content_item %>
33
+ <% end %>
30
34
  </div>
@@ -14,7 +14,7 @@
14
14
  text = raw(text)
15
15
 
16
16
  cookie_preferences_href ||= "/help/cookies"
17
- confirmation_message ||= raw(t("components.cookie_banner.confirmation_message",
17
+ confirmation_message ||= raw(t("components.cookie_banner.confirmation_message_html",
18
18
  link: link_to(
19
19
  t("components.cookie_banner.confirmation_message_link"),
20
20
  cookie_preferences_href,
@@ -1,4 +1,5 @@
1
1
  <%
2
+ sizes ||= false
2
3
  brand ||= false
3
4
  brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
5
  card_helper = GovukPublishingComponents::Presenters::ImageCardHelper.new(local_assigns)
@@ -3,8 +3,10 @@
3
3
  suggestion_link_text ||= false
4
4
  suggestion_link_url ||= false
5
5
  suggestion_text ||= nil
6
+ hide ||= false
6
7
  new_tab ||= false
7
8
 
9
+
8
10
  data_attributes ||= {}
9
11
  data_attributes[:module] = 'intervention'
10
12
  suggestion_data_attributes ||= {}
@@ -34,9 +36,16 @@
34
36
 
35
37
  suggestion_link_text = intervention_helper.accessible_text
36
38
  end
39
+
40
+ section_options = {
41
+ class: "gem-c-intervention",
42
+ role: "region", aria: aria_attributes,
43
+ data: data_attributes,
44
+ }
45
+ section_options.merge!({ hidden: true }) if hide
37
46
  %>
38
47
  <% if suggestion_text || (suggestion_link_text && suggestion_link_url) %>
39
- <%= tag.section class: "gem-c-intervention", role: "region", aria: aria_attributes, data: data_attributes do %>
48
+ <%= tag.section section_options do %>
40
49
  <p class="govuk-body">
41
50
  <%= tag.span suggestion_text, class: "gem-c-intervention__textwrapper" if suggestion_text %>
42
51
  <% if suggestion_link_text && suggestion_link_url %>
@@ -21,6 +21,7 @@
21
21
  classes << (shared_helper.get_margin_top)
22
22
  classes << (shared_helper.get_margin_bottom) if local_assigns[:margin_bottom]
23
23
  classes << "gem-c-search--large" if size == "large"
24
+ classes << "gem-c-search--large-on-mobile" if size == "large-mobile"
24
25
  classes << "gem-c-search--no-border" if no_border
25
26
  if local_assigns[:on_govuk_blue].eql?(true)
26
27
  classes << "gem-c-search--on-govuk-blue"
@@ -0,0 +1,30 @@
1
+ <%
2
+ local_assigns[:heading_level] ||= 3
3
+ local_assigns[:margin_bottom] ||= 0
4
+ link_text ||= false
5
+ link_href ||= false
6
+ heading ||= false
7
+ background ||= false
8
+ data ||= false
9
+
10
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
11
+
12
+ classes = %w(gem-c-signup-link govuk-!-display-none-print)
13
+ classes << shared_helper.get_margin_bottom
14
+ classes << "gem-c-signup-link--link-only" unless heading
15
+ classes << "gem-c-signup-link--with-background-and-border" if background
16
+ %>
17
+ <% if link_text && link_href %>
18
+ <div class="<%= classes.join(' ') %>">
19
+ <div class="gem-c-signup-link__inner govuk-width-container">
20
+ <svg class="gem-c-signup-link__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334">
21
+ <path fill="black" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/>
22
+ </svg>
23
+ <%= content_tag(shared_helper.get_heading_level, heading, class: "govuk-heading-s gem-c-signup-link__title") if heading %>
24
+ <%= link_to( link_text, link_href, {
25
+ class: "govuk-link gem-c-signup-link__link",
26
+ data: data
27
+ }) %>
28
+ </div>
29
+ </div>
30
+ <% end %>
@@ -9,7 +9,7 @@
9
9
  <svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><%= component_helper.button_text %>
10
10
  <% end %>
11
11
  <%= tag.div class: wrapper_classes, data: { module: "gem-track-click"} do %>
12
- <%= tag.form class: "gem-c-single-page-notification-button", action: "/email/subscriptions/single-page/new", method: "POST", data: component_helper.data do %>
12
+ <%= tag.form class: component_helper.classes, action: "/email/subscriptions/single-page/new", method: "POST", data: component_helper.data do %>
13
13
  <input type="hidden" name="base_path" value="<%= component_helper.base_path %>">
14
14
  <%= content_tag(:button, button_text, {
15
15
  class: "govuk-body-s gem-c-single-page-notification-button__submit",
@@ -15,9 +15,9 @@
15
15
  "track-dimension-index": "29",
16
16
  } %>
17
17
 
18
- <%= tag.div class: "gem-c-contextual-sidebar__brexit-cta" do %>
19
- <%= tag.h2 title, class: "gem-c-contextual-sidebar__brexit-heading govuk-heading-s" %>
20
- <%= tag.p class: "gem-c-contextual-sidebar__brexit-text govuk-body" do %>
18
+ <%= tag.div class: "gem-c-contextual-sidebar__cta gem-c-contextual-sidebar__cta--brexit" do %>
19
+ <%= tag.h2 title, class: "gem-c-contextual-sidebar__heading govuk-heading-s" %>
20
+ <%= tag.p class: "gem-c-contextual-sidebar__text govuk-body" do %>
21
21
  <%= link_to link_text,
22
22
  link_path,
23
23
  class: "govuk-link",
@@ -0,0 +1,27 @@
1
+ <% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
2
+ <%
3
+ title = t("components.related_navigation.covid_booster.title")
4
+ link_text = t("components.related_navigation.covid_booster.link_text")
5
+ link_path = t("components.related_navigation.covid_booster.link_path")
6
+ lang = shared_helper.t_locale("components.related_navigation.covid_booster.title")
7
+ %>
8
+
9
+ <% data_attributes = {
10
+ "module": "gem-track-click",
11
+ "track-category": "relatedLinkClicked",
12
+ "track-action": "1.0 Coronavirus",
13
+ "track-label": link_path,
14
+ "track-dimension": link_text,
15
+ "track-dimension-index": "29",
16
+ } %>
17
+
18
+ <%= tag.div class: "gem-c-contextual-sidebar__cta gem-c-contextual-sidebar__cta--covid" do %>
19
+ <%= tag.h2 title, class: "gem-c-contextual-sidebar__heading govuk-heading-s" %>
20
+ <%= tag.p class: "gem-c-contextual-sidebar__text govuk-body" do %>
21
+ <%= link_to link_text,
22
+ link_path,
23
+ class: "govuk-link",
24
+ data: data_attributes,
25
+ lang: lang %>
26
+ <% end %>
27
+ <% end %>