govuk_publishing_components 35.15.5 → 35.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|