govuk_publishing_components 35.15.5 → 35.16.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/govuk_publishing_components_manifest.js +1 -0
- data/app/assets/images/option-select/input-icon.svg +3 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +37 -15
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-video-tracker.js +7 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/pii-remover.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/option-select.js +312 -0
- data/app/assets/stylesheets/component_guide/application.scss +6 -6
- data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +15 -15
- data/app/assets/stylesheets/govuk_publishing_components/components/_big-number.scss +3 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +3 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_cards.scss +5 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +31 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +40 -35
- data/app/assets/stylesheets/govuk_publishing_components/components/_option-select.scss +172 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +23 -19
- data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +6 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +2 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_steps.scss +3 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +4 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_media-down.scss +2 -2
- data/app/views/govuk_publishing_components/components/_attachment.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_contents_list.html.erb +20 -10
- data/app/views/govuk_publishing_components/components/_image_card.html.erb +8 -2
- data/app/views/govuk_publishing_components/components/_option_select.html.erb +71 -0
- data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +6 -6
- data/app/views/govuk_publishing_components/components/docs/contents_list.yml +1 -0
- data/app/views/govuk_publishing_components/components/docs/image_card.yml +13 -0
- data/app/views/govuk_publishing_components/components/docs/option_select.yml +343 -0
- data/config/locales/ar.yml +5 -0
- data/config/locales/az.yml +5 -0
- data/config/locales/be.yml +5 -0
- data/config/locales/bg.yml +5 -0
- data/config/locales/bn.yml +5 -0
- data/config/locales/cs.yml +5 -0
- data/config/locales/cy.yml +5 -0
- data/config/locales/da.yml +5 -0
- data/config/locales/de.yml +5 -0
- data/config/locales/dr.yml +5 -0
- data/config/locales/el.yml +5 -0
- data/config/locales/en.yml +6 -1
- data/config/locales/es-419.yml +5 -0
- data/config/locales/es.yml +5 -0
- data/config/locales/et.yml +5 -0
- data/config/locales/fa.yml +5 -0
- data/config/locales/fi.yml +5 -0
- data/config/locales/fr.yml +5 -0
- data/config/locales/gd.yml +5 -0
- data/config/locales/gu.yml +5 -0
- data/config/locales/he.yml +5 -0
- data/config/locales/hi.yml +5 -0
- data/config/locales/hr.yml +5 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/hy.yml +5 -0
- data/config/locales/id.yml +5 -0
- data/config/locales/is.yml +5 -0
- data/config/locales/it.yml +5 -0
- data/config/locales/ja.yml +5 -0
- data/config/locales/ka.yml +5 -0
- data/config/locales/kk.yml +5 -0
- data/config/locales/ko.yml +5 -0
- data/config/locales/lt.yml +5 -0
- data/config/locales/lv.yml +5 -0
- data/config/locales/ms.yml +5 -0
- data/config/locales/mt.yml +5 -0
- data/config/locales/nl.yml +5 -0
- data/config/locales/no.yml +5 -0
- data/config/locales/pa-pk.yml +5 -0
- data/config/locales/pa.yml +5 -0
- data/config/locales/pl.yml +5 -0
- data/config/locales/ps.yml +5 -0
- data/config/locales/pt.yml +5 -0
- data/config/locales/ro.yml +5 -0
- data/config/locales/ru.yml +5 -0
- data/config/locales/si.yml +5 -0
- data/config/locales/sk.yml +5 -0
- data/config/locales/sl.yml +5 -0
- data/config/locales/so.yml +5 -0
- data/config/locales/sq.yml +5 -0
- data/config/locales/sr.yml +5 -0
- data/config/locales/sv.yml +5 -0
- data/config/locales/sw.yml +5 -0
- data/config/locales/ta.yml +5 -0
- data/config/locales/th.yml +5 -0
- data/config/locales/tk.yml +5 -0
- data/config/locales/tr.yml +5 -0
- data/config/locales/uk.yml +5 -0
- data/config/locales/ur.yml +5 -0
- data/config/locales/uz.yml +5 -0
- data/config/locales/vi.yml +5 -0
- data/config/locales/zh-hk.yml +5 -0
- data/config/locales/zh-tw.yml +5 -0
- data/config/locales/zh.yml +5 -0
- data/lib/govuk_publishing_components/presenters/contents_list_helper.rb +8 -0
- data/lib/govuk_publishing_components/presenters/image_card_helper.rb +6 -2
- data/lib/govuk_publishing_components/presenters/meta_tags.rb +3 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/axe.js +6 -6
- data/node_modules/axe-core/axe.min.js +2 -2
- data/node_modules/axe-core/locales/_template.json +4 -4
- data/node_modules/axe-core/package.json +1 -1
- data/node_modules/axe-core/sri-history.json +4 -0
- metadata +7 -2
@@ -89,7 +89,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
89
89
|
}
|
90
90
|
|
91
91
|
// Create inner chevron arrow
|
92
|
-
|
92
|
+
&::after {
|
93
93
|
content: "";
|
94
94
|
box-sizing: border-box;
|
95
95
|
display: block;
|
@@ -128,7 +128,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
128
128
|
background: govuk-colour("black");
|
129
129
|
}
|
130
130
|
|
131
|
-
.gem-c-step-nav__chevron
|
131
|
+
.gem-c-step-nav__chevron::after {
|
132
132
|
color: govuk-colour("light-grey");
|
133
133
|
}
|
134
134
|
|
@@ -145,7 +145,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
145
145
|
background: govuk-colour("black");
|
146
146
|
}
|
147
147
|
|
148
|
-
.gem-c-step-nav__chevron
|
148
|
+
.gem-c-step-nav__chevron::after {
|
149
149
|
color: $govuk-focus-colour;
|
150
150
|
}
|
151
151
|
|
@@ -234,7 +234,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
234
234
|
list-style: none;
|
235
235
|
|
236
236
|
// line down the side of a step
|
237
|
-
|
237
|
+
&::after {
|
238
238
|
@include step-nav-vertical-line;
|
239
239
|
@include step-nav-line-position;
|
240
240
|
top: govuk-em(govuk-spacing(3), 16);
|
@@ -244,7 +244,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
244
244
|
@include govuk-media-query($from: tablet) {
|
245
245
|
padding-left: govuk-em(govuk-spacing(9), 16);
|
246
246
|
|
247
|
-
|
247
|
+
&::after { // stylelint-disable-line max-nesting-depth
|
248
248
|
@include step-nav-line-position-large;
|
249
249
|
top: govuk-em(govuk-spacing(6), 16);
|
250
250
|
}
|
@@ -254,7 +254,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
254
254
|
|
255
255
|
.gem-c-step-nav__step:last-child {
|
256
256
|
// little dash at the bottom of the line
|
257
|
-
|
257
|
+
&::before {
|
258
258
|
content: "";
|
259
259
|
position: absolute;
|
260
260
|
z-index: 6;
|
@@ -266,23 +266,23 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
266
266
|
border-bottom: solid $stroke-width govuk-colour("mid-grey", $legacy: "grey-2");
|
267
267
|
}
|
268
268
|
|
269
|
-
|
269
|
+
&::after {
|
270
270
|
height: -webkit-calc(100% - #{govuk-spacing(3)}); // fallback for iphone 4
|
271
271
|
height: calc(100% - #{govuk-spacing(3)});
|
272
272
|
}
|
273
273
|
|
274
|
-
.gem-c-step-nav__help
|
274
|
+
.gem-c-step-nav__help::after {
|
275
275
|
height: 100%;
|
276
276
|
}
|
277
277
|
|
278
278
|
.gem-c-step-nav--large & {
|
279
279
|
@include govuk-media-query($from: tablet) {
|
280
|
-
|
280
|
+
&::before {
|
281
281
|
margin-left: $number-circle-size-large / 4;
|
282
282
|
width: $number-circle-size-large / 2;
|
283
283
|
}
|
284
284
|
|
285
|
-
|
285
|
+
&::after {
|
286
286
|
height: calc(100% - #{govuk-spacing(6)});
|
287
287
|
}
|
288
288
|
}
|
@@ -290,10 +290,10 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
290
290
|
}
|
291
291
|
|
292
292
|
.gem-c-step-nav__step--active {
|
293
|
-
&:last-child
|
293
|
+
&:last-child::before,
|
294
294
|
.gem-c-step-nav__circle--number,
|
295
|
-
|
296
|
-
.gem-c-step-nav__help
|
295
|
+
&::after,
|
296
|
+
.gem-c-step-nav__help::after {
|
297
297
|
border-color: govuk-colour("black");
|
298
298
|
}
|
299
299
|
}
|
@@ -365,7 +365,11 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
365
365
|
$shadow-colour: govuk-colour("white");
|
366
366
|
|
367
367
|
// to make numbers readable for users zooming text only in browsers such as Firefox
|
368
|
-
text-shadow:
|
368
|
+
text-shadow:
|
369
|
+
0 -#{$shadow-offset} 0 $shadow-colour,
|
370
|
+
$shadow-offset 0 0 $shadow-colour,
|
371
|
+
0 $shadow-offset 0 $shadow-colour,
|
372
|
+
-#{$shadow-offset} 0 0 $shadow-colour;
|
369
373
|
}
|
370
374
|
|
371
375
|
.gem-c-step-nav__circle-step-label,
|
@@ -468,13 +472,13 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
468
472
|
margin-left: $links-margin;
|
469
473
|
list-style: disc;
|
470
474
|
|
471
|
-
.gem-c-step-nav__list-item--active
|
475
|
+
.gem-c-step-nav__list-item--active::before {
|
472
476
|
left: -(govuk-spacing(6) + govuk-spacing(3)) - $links-margin;
|
473
477
|
}
|
474
478
|
|
475
479
|
.gem-c-step-nav--large & {
|
476
480
|
@include govuk-media-query($from: tablet) {
|
477
|
-
.gem-c-step-nav__list-item--active
|
481
|
+
.gem-c-step-nav__list-item--active::before {
|
478
482
|
left: -(govuk-spacing(9)) - $links-margin;
|
479
483
|
}
|
480
484
|
}
|
@@ -497,7 +501,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
497
501
|
.gem-c-step-nav__list-item--active {
|
498
502
|
position: relative;
|
499
503
|
|
500
|
-
|
504
|
+
&::before {
|
501
505
|
box-sizing: border-box;
|
502
506
|
content: "";
|
503
507
|
position: absolute;
|
@@ -513,7 +517,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
513
517
|
|
514
518
|
.gem-c-step-nav--large & {
|
515
519
|
@include govuk-media-query($from: tablet) {
|
516
|
-
|
520
|
+
&::before {
|
517
521
|
left: -(govuk-spacing(9));
|
518
522
|
margin-left: ($number-circle-size-large / 2);
|
519
523
|
}
|
@@ -530,7 +534,7 @@ $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
|
|
530
534
|
font-weight: normal;
|
531
535
|
color: govuk-colour("dark-grey", $legacy: "grey-1");
|
532
536
|
|
533
|
-
|
537
|
+
&::before {
|
534
538
|
content: " \2013\00a0"; // dash followed by
|
535
539
|
}
|
536
540
|
}
|
@@ -44,7 +44,7 @@ $table-row-even-background-colour: govuk-colour("light-grey", $legacy: "grey-4")
|
|
44
44
|
@include govuk-focused-text;
|
45
45
|
}
|
46
46
|
|
47
|
-
.app-table__sort-link
|
47
|
+
.app-table__sort-link::after {
|
48
48
|
content: "";
|
49
49
|
position: absolute;
|
50
50
|
top: 5px;
|
@@ -52,7 +52,7 @@ $table-row-even-background-colour: govuk-colour("light-grey", $legacy: "grey-4")
|
|
52
52
|
@include govuk-shape-arrow($direction: up, $base: $sort-link-arrow-size-small, $display: block);
|
53
53
|
}
|
54
54
|
|
55
|
-
.app-table__sort-link
|
55
|
+
.app-table__sort-link::before {
|
56
56
|
content: "";
|
57
57
|
position: absolute;
|
58
58
|
top: 13px;
|
@@ -80,12 +80,12 @@ $table-row-even-background-colour: govuk-colour("light-grey", $legacy: "grey-4")
|
|
80
80
|
}
|
81
81
|
}
|
82
82
|
|
83
|
-
.app-table__sort-link--ascending
|
84
|
-
.app-table__sort-link--descending
|
83
|
+
.app-table__sort-link--ascending::before,
|
84
|
+
.app-table__sort-link--descending::before {
|
85
85
|
content: none;
|
86
86
|
}
|
87
87
|
|
88
|
-
.app-table__sort-link--ascending
|
88
|
+
.app-table__sort-link--ascending::after {
|
89
89
|
content: "";
|
90
90
|
position: absolute;
|
91
91
|
top: $sort-link-arrow-spacing;
|
@@ -95,7 +95,7 @@ $table-row-even-background-colour: govuk-colour("light-grey", $legacy: "grey-4")
|
|
95
95
|
@include govuk-shape-arrow($direction: up, $base: $sort-link-arrow-size, $display: inline-block);
|
96
96
|
}
|
97
97
|
|
98
|
-
.app-table__sort-link--descending
|
98
|
+
.app-table__sort-link--descending::after {
|
99
99
|
content: "";
|
100
100
|
position: absolute;
|
101
101
|
top: $sort-link-arrow-spacing;
|
@@ -10,7 +10,8 @@
|
|
10
10
|
}
|
11
11
|
|
12
12
|
// We have some styles within GOVUK (.content-block) which can leak into the list styles for this component.
|
13
|
-
// These styles are defined in Static:
|
13
|
+
// These styles are defined in Static:
|
14
|
+
// https://github.com/alphagov/static/blob/a815620cada7ea1c65428c1c3b3ac4dbe28977bf/app/assets/stylesheets/helpers/_text.scss
|
14
15
|
// This sets more specific selectors so those unwanted styles are overidden
|
15
16
|
ul.govuk-tabs__list { // stylelint-disable-line selector-no-qualifying-type
|
16
17
|
margin: 0;
|
@@ -17,7 +17,8 @@
|
|
17
17
|
width: 100%;
|
18
18
|
box-sizing: border-box;
|
19
19
|
|
20
|
-
|
20
|
+
// stylelint-disable max-nesting-depth
|
21
|
+
&::before {
|
21
22
|
background-color: govuk-colour("black");
|
22
23
|
border-radius: 50%;
|
23
24
|
color: govuk-colour("white");
|
@@ -37,6 +38,7 @@
|
|
37
38
|
content: "#{$i}";
|
38
39
|
}
|
39
40
|
}
|
41
|
+
// stylelint-enable max-nesting-depth
|
40
42
|
}
|
41
43
|
}
|
42
44
|
}
|
data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss
CHANGED
@@ -49,14 +49,14 @@
|
|
49
49
|
padding-left: govuk-spacing(6);
|
50
50
|
}
|
51
51
|
|
52
|
-
|
52
|
+
&::before {
|
53
53
|
content: "\201C";
|
54
54
|
float: left;
|
55
55
|
clear: both;
|
56
56
|
margin-left: (- govuk-spacing(3));
|
57
57
|
}
|
58
58
|
|
59
|
-
&:last-child
|
59
|
+
&:last-child::after {
|
60
60
|
content: "\201D";
|
61
61
|
}
|
62
62
|
}
|
@@ -78,14 +78,14 @@
|
|
78
78
|
padding-left: 0;
|
79
79
|
}
|
80
80
|
|
81
|
-
|
81
|
+
&::before {
|
82
82
|
content: "\201D";
|
83
83
|
float: right;
|
84
84
|
margin-right: (- govuk-spacing(3));
|
85
85
|
margin-left: 0;
|
86
86
|
}
|
87
87
|
|
88
|
-
&:last-child
|
88
|
+
&:last-child::after {
|
89
89
|
content: "\201C";
|
90
90
|
}
|
91
91
|
}
|
@@ -10,11 +10,11 @@ $is-ie: false !default;
|
|
10
10
|
@mixin media-down($size: false, $max-width: false, $min-width: false) {
|
11
11
|
@if $is-ie == false {
|
12
12
|
@if $size == mobile {
|
13
|
-
@media (max-width: 640px) {
|
13
|
+
@media (max-width: 640px) { // stylelint-disable-line media-feature-range-notation
|
14
14
|
@content;
|
15
15
|
}
|
16
16
|
} @else if $size == tablet {
|
17
|
-
@media (max-width: 800px) {
|
17
|
+
@media (max-width: 800px) { // stylelint-disable-line media-feature-range-notation
|
18
18
|
@content;
|
19
19
|
}
|
20
20
|
}
|
@@ -99,7 +99,7 @@
|
|
99
99
|
<% end %>
|
100
100
|
|
101
101
|
<% if attachment.preview_url.present? %>
|
102
|
-
<%= tag.p link_to(t("components.attachment.preview_link"), attachment.preview_url, class: "govuk-link"), class: "gem-c-attachment__metadata" %>
|
102
|
+
<%= tag.p link_to(t("components.attachment.preview_link"), attachment.preview_url, class: "govuk-link", "aria-label": t("components.attachment.preview_aria_label", title: attachment.title)), class: "gem-c-attachment__metadata" %>
|
103
103
|
<% end %>
|
104
104
|
|
105
105
|
<% if attachment.is_official_document && !hide_order_copy_link %>
|
@@ -14,9 +14,10 @@
|
|
14
14
|
|
15
15
|
ga4_tracking ||= false
|
16
16
|
ga4_data = {
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
event_name: "navigation",
|
18
|
+
type: "contents list",
|
19
|
+
section: t("components.contents_list.contents", locale: :en) || "",
|
20
|
+
index_total: cl_helper.get_index_total
|
20
21
|
} if ga4_tracking
|
21
22
|
local_assigns[:aria] ||= {}
|
22
23
|
component_helper = GovukPublishingComponents::Presenters::ComponentWrapperHelper.new(local_assigns)
|
@@ -37,15 +38,15 @@
|
|
37
38
|
<% end %>
|
38
39
|
|
39
40
|
<ol class="gem-c-contents-list__list">
|
41
|
+
<% index_link = 1 if ga4_tracking %>
|
40
42
|
<% contents.each.with_index(1) do |contents_item, position| %>
|
41
43
|
<li class="<%= cl_helper.list_item_classes(contents_item, false) %>" <%= "aria-current=true" if contents_item[:active] %>>
|
42
44
|
<% link_text = format_numbers ? cl_helper.wrap_numbers_with_spans(contents_item[:text]) : contents_item[:text]
|
43
|
-
|
45
|
+
if ga4_tracking
|
44
46
|
ga4_data[:index] = {
|
45
|
-
|
47
|
+
"index_link": index_link,
|
46
48
|
}
|
47
|
-
|
48
|
-
end
|
49
|
+
end
|
49
50
|
%>
|
50
51
|
<%= link_to_if !contents_item[:active], link_text, contents_item[:href],
|
51
52
|
class: link_classes,
|
@@ -59,11 +60,18 @@
|
|
59
60
|
ga4_link: (ga4_tracking ? ga4_data.to_json : nil)
|
60
61
|
}
|
61
62
|
%>
|
62
|
-
|
63
|
+
<% index_link += 1 if ga4_tracking %>
|
63
64
|
<% if contents_item[:items] && contents_item[:items].any? %>
|
64
65
|
<ol class="gem-c-contents-list__nested-list">
|
65
66
|
<% contents_item[:items].each.with_index(1) do |nested_contents_item, nested_position| %>
|
66
67
|
<li class="<%= cl_helper.list_item_classes(nested_contents_item, true) %>" <%= "aria-current=true" if nested_contents_item[:active] %>>
|
68
|
+
<%
|
69
|
+
if ga4_tracking
|
70
|
+
ga4_data[:index] = {
|
71
|
+
"index_link": index_link,
|
72
|
+
}
|
73
|
+
end
|
74
|
+
%>
|
67
75
|
<%= link_to_if !nested_contents_item[:active], nested_contents_item[:text], nested_contents_item[:href],
|
68
76
|
class: link_classes,
|
69
77
|
data: {
|
@@ -72,13 +80,15 @@
|
|
72
80
|
track_label: nested_contents_item[:href],
|
73
81
|
track_options: {
|
74
82
|
dimension29: nested_contents_item[:text]
|
75
|
-
}
|
83
|
+
},
|
84
|
+
ga4_link: (ga4_tracking ? ga4_data.to_json : nil)
|
76
85
|
}
|
77
86
|
%>
|
78
87
|
</li>
|
88
|
+
<% index_link += 1 if ga4_tracking %>
|
79
89
|
<% end %>
|
80
90
|
</ol>
|
81
|
-
|
91
|
+
<% end %>
|
82
92
|
</li>
|
83
93
|
<% end %>
|
84
94
|
</ol>
|
@@ -7,11 +7,17 @@
|
|
7
7
|
brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
|
8
8
|
card_helper = GovukPublishingComponents::Presenters::ImageCardHelper.new(local_assigns, brand_helper)
|
9
9
|
shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
|
10
|
+
|
10
11
|
classes = %w[gem-c-image-card]
|
12
|
+
classes << "govuk-grid-row" if card_helper.two_thirds
|
11
13
|
classes << "gem-c-image-card--large" if card_helper.large
|
14
|
+
classes << "gem-c-image-card--two-thirds" if card_helper.two_thirds
|
12
15
|
classes << "gem-c-image-card--no-image" unless (card_helper.image_src || card_helper.youtube_video_id)
|
13
16
|
classes << brand_helper.brand_class if brand_helper.brand_class
|
14
17
|
|
18
|
+
text_wrapper_classes = %w[gem-c-image-card__text-wrapper]
|
19
|
+
text_wrapper_classes << "gem-c-image-card__text-wrapper--two-thirds" if card_helper.two_thirds
|
20
|
+
|
15
21
|
font_size ||= card_helper.large ? 'm' : 's'
|
16
22
|
heading_class = %w[gem-c-image-card__title]
|
17
23
|
heading_class << shared_helper.get_heading_size(font_size, 's')
|
@@ -33,7 +39,7 @@
|
|
33
39
|
%>
|
34
40
|
<% if card_helper.href || card_helper.extra_details.any? %>
|
35
41
|
<%= content_tag(:div, class: classes, "data-module": data_modules, lang: card_helper.lang) do %>
|
36
|
-
|
42
|
+
<%= content_tag(:div, class: text_wrapper_classes) do %>
|
37
43
|
<div class="gem-c-image-card__header-and-context-wrapper">
|
38
44
|
<% if card_helper.heading_text %>
|
39
45
|
<%= content_tag(shared_helper.get_heading_level, class: heading_class) do %>
|
@@ -69,7 +75,7 @@
|
|
69
75
|
<% if card_helper.metadata %>
|
70
76
|
<p class="gem-c-image-card__metadata"><%= card_helper.metadata %></p>
|
71
77
|
<% end %>
|
72
|
-
|
78
|
+
<% end %>
|
73
79
|
<%= card_helper.media %>
|
74
80
|
<% end %>
|
75
81
|
<% end %>
|
@@ -0,0 +1,71 @@
|
|
1
|
+
<%
|
2
|
+
add_gem_component_stylesheet("option-select")
|
3
|
+
add_gem_component_stylesheet("input")
|
4
|
+
|
5
|
+
title_id = "option-select-title-#{title.parameterize}"
|
6
|
+
checkboxes_id = "checkboxes-#{SecureRandom.hex(4)}"
|
7
|
+
checkboxes_count_id = checkboxes_id + "-count"
|
8
|
+
show_filter ||= false
|
9
|
+
large ||= false
|
10
|
+
|
11
|
+
classes = %w[gem-c-option-select__container js-options-container]
|
12
|
+
classes << "gem-c-option-select__container--large" if large
|
13
|
+
%>
|
14
|
+
|
15
|
+
<% if show_filter %>
|
16
|
+
<%
|
17
|
+
filter_id ||= "input-#{SecureRandom.hex(4)}"
|
18
|
+
%>
|
19
|
+
<% filter = capture do %>
|
20
|
+
<%= tag.label for: filter_id, class: "govuk-label govuk-visually-hidden" do %>
|
21
|
+
Filter <%= title %>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<%= tag.input name: "option-select-filter",
|
25
|
+
id: filter_id,
|
26
|
+
class: "gem-c-option-select__filter-input govuk-input",
|
27
|
+
type: "text",
|
28
|
+
aria: {
|
29
|
+
describedby: checkboxes_count_id,
|
30
|
+
controls: checkboxes_id
|
31
|
+
}
|
32
|
+
%>
|
33
|
+
<% end %>
|
34
|
+
<% filter_element = CGI::escapeHTML(filter) %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<div
|
38
|
+
class="gem-c-option-select" data-module="option-select"
|
39
|
+
<% if local_assigns.include?(:closed_on_load) && closed_on_load %>data-closed-on-load="true"<% end %>
|
40
|
+
<% if local_assigns.include?(:closed_on_load_mobile) && closed_on_load_mobile %>data-closed-on-load-mobile="true"<% end %>
|
41
|
+
<% if local_assigns.include?(:aria_controls_id) %>data-input-aria-controls="<%= aria_controls_id %>"<% end %>
|
42
|
+
<% if show_filter %>data-filter-element="<%= filter_element %>"<% end %>
|
43
|
+
>
|
44
|
+
<h3 class="gem-c-option-select__heading js-container-heading">
|
45
|
+
<span class="gem-c-option-select__title js-container-button" id="<%= title_id %>"><%= title %></span>
|
46
|
+
<svg version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="0" height="0" class="gem-c-option-select__icon gem-c-option-select__icon--up" aria-hidden="true" focusable="false"><path d="m798.16 609.84l-256-256c-16.683-16.683-43.691-16.683-60.331 0l-256 256c-16.683 16.683-16.683 43.691 0 60.331s43.691 16.683 60.331 0l225.84-225.84 225.84 225.84c16.683 16.683 43.691 16.683 60.331 0s16.683-43.691 0-60.331z"/></svg>
|
47
|
+
<svg version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="0" height="0" class="gem-c-option-select__icon gem-c-option-select__icon--down" aria-hidden="true" focusable="false"><path d="m225.84 414.16l256 256c16.683 16.683 43.691 16.683 60.331 0l256-256c16.683-16.683 16.683-43.691 0-60.331s-43.691-16.683-60.331 0l-225.84 225.84-225.84-225.84c-16.683-16.683-43.691-16.683-60.331 0s-16.683 43.691 0 60.331z"/></svg>
|
48
|
+
</h3>
|
49
|
+
|
50
|
+
<%= content_tag(:div, role: "group", aria: { labelledby: title_id }, class: classes, id: options_container_id, tabindex: "-1") do %>
|
51
|
+
<div class="gem-c-option-select__container-inner js-auto-height-inner">
|
52
|
+
<% if show_filter %>
|
53
|
+
<span id="<%= checkboxes_count_id %>"
|
54
|
+
class="gem-c-option-select__count govuk-visually-hidden"
|
55
|
+
aria-live="polite"
|
56
|
+
data-single="<%= t('components.option_select.found_single') %>"
|
57
|
+
data-multiple="<%= t('components.option_select.found_multiple') %>"
|
58
|
+
data-selected="<%= t('components.option_select.selected') %>"></span>
|
59
|
+
<% end %>
|
60
|
+
<%= render "govuk_publishing_components/components/checkboxes", {
|
61
|
+
name: "#{key}[]",
|
62
|
+
id: checkboxes_id,
|
63
|
+
heading: title,
|
64
|
+
small: true,
|
65
|
+
visually_hide_heading: true,
|
66
|
+
no_hint_text: true,
|
67
|
+
items: options
|
68
|
+
} %>
|
69
|
+
</div>
|
70
|
+
<% end %>
|
71
|
+
</div>
|
data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb
CHANGED
@@ -19,8 +19,8 @@
|
|
19
19
|
link_text_classes << "govuk-pagination__link-title--decorated" unless previous_page[:label].present?
|
20
20
|
%>
|
21
21
|
<div class="govuk-pagination__prev">
|
22
|
-
<a class="govuk-link govuk-pagination__link"
|
23
|
-
href="<%= previous_page[:url] %>"
|
22
|
+
<a class="govuk-link govuk-pagination__link"
|
23
|
+
href="<%= previous_page[:url] %>"
|
24
24
|
rel="prev"
|
25
25
|
data-track-category="contentsClicked"
|
26
26
|
data-track-action="previous"
|
@@ -30,7 +30,7 @@
|
|
30
30
|
<% if ga4_tracking %>
|
31
31
|
data-ga4-link = "<%= {
|
32
32
|
event_name: "navigation",
|
33
|
-
type: "
|
33
|
+
type: "previous and next",
|
34
34
|
text: previous_page[:label] || title,
|
35
35
|
section: "Previous",
|
36
36
|
}.to_json %>"
|
@@ -55,8 +55,8 @@
|
|
55
55
|
link_text_classes << "govuk-pagination__link-title--decorated" unless next_page[:label].present?
|
56
56
|
%>
|
57
57
|
<div class="govuk-pagination__next">
|
58
|
-
<a class="govuk-link govuk-pagination__link"
|
59
|
-
href="<%= next_page[:url] %>"
|
58
|
+
<a class="govuk-link govuk-pagination__link"
|
59
|
+
href="<%= next_page[:url] %>"
|
60
60
|
rel="next"
|
61
61
|
data-track-category="contentsClicked"
|
62
62
|
data-track-action="next"
|
@@ -66,7 +66,7 @@
|
|
66
66
|
<% if ga4_tracking %>
|
67
67
|
data-ga4-link = "<%= {
|
68
68
|
event_name: "navigation",
|
69
|
-
type: "
|
69
|
+
type: "previous and next",
|
70
70
|
text: next_page[:label] || title,
|
71
71
|
section: "Next",
|
72
72
|
}.to_json %>"
|
@@ -205,6 +205,19 @@ examples:
|
|
205
205
|
<div class="govuk-!-width-full">
|
206
206
|
<%= component %>
|
207
207
|
</div>
|
208
|
+
two_thirds_column:
|
209
|
+
description: This variant is used for the featured section on the homepage.
|
210
|
+
data:
|
211
|
+
two_thirds: true
|
212
|
+
href: "/still-not-a-page"
|
213
|
+
image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/91397/s712_SG_Swear_in_1_.jpg"
|
214
|
+
image_alt: "some meaningful alt text please"
|
215
|
+
heading_text: "Something has happened nearby possibly"
|
216
|
+
description: "Following a news report that something has happened, further details are emerging of the thing that has happened and what that means for you."
|
217
|
+
embed: |
|
218
|
+
<div class="govuk-!-width-full">
|
219
|
+
<%= component %>
|
220
|
+
</div>
|
208
221
|
youtube_video:
|
209
222
|
description: |
|
210
223
|
Given a Youtube video id, the image card will render a Youtube embed instead of an image. If Javascript fails to execute for any reason, then a fallback link to the Youtube video will be rendered instead.
|