govuk_publishing_components 21.55.0 → 21.56.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +5 -4
- data/app/assets/stylesheets/govuk_publishing_components/component_support.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +1 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/_summary-list.scss +18 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_link.scss +17 -0
- data/app/controllers/govuk_publishing_components/component_guide_controller.rb +47 -25
- data/app/views/govuk_publishing_components/components/_summary_list.html.erb +34 -14
- data/app/views/govuk_publishing_components/components/docs/summary_list.yml +27 -0
- data/config/locales/en.yml +3 -0
- data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +6 -6
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3773fbe78d9426cfe8fc0d8356057ac637399673ed546c07eb436a3500e4728a
|
4
|
+
data.tar.gz: dafffb370895b4a7d26cba3e3ebe5b0345d178f3e32e3c3a1e3c1f4370ce71a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25c2b1ec246ffc2315f37dd9cc929f42404ed1c338e5e80f927ae045785f501af00537463ca6d91e6559dab5f265bf2d482eaed337412c47bf361a7f213fe3db
|
7
|
+
data.tar.gz: 462df79e0ff9bf3dad96caf7d10f594ae6049c96b145b0c7f8788fedc75995f9f71689ca93d7bbb2eefd4f78e7f00aebf7cff77f60fe19b0a350c0ccbddede07
|
data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js
CHANGED
@@ -109,6 +109,8 @@
|
|
109
109
|
event.target.f.title = videoTitle + ' (video)'
|
110
110
|
},
|
111
111
|
onStateChange: function (event) {
|
112
|
+
var eventData = event.data
|
113
|
+
var eventTarget = event.target
|
112
114
|
var states = {
|
113
115
|
"-1": "VideoUnstarted",
|
114
116
|
"0": "VideoEnded",
|
@@ -117,14 +119,13 @@
|
|
117
119
|
"3": "VideoBuffering",
|
118
120
|
"5": "VideoCued"
|
119
121
|
}
|
120
|
-
|
121
|
-
if (states[event.data] && options.tracking && options.tracking.hasTracking
|
122
|
+
if (states[eventData] && options.tracking && options.tracking.hasTracking
|
122
123
|
&& window.GOVUK.analytics && window.GOVUK.analytics.trackEvent)
|
123
124
|
{
|
124
125
|
var tracking = {
|
125
126
|
category: options.tracking.category,
|
126
|
-
action: states[
|
127
|
-
label: { transport: 'beacon', label:
|
127
|
+
action: states[eventData],
|
128
|
+
label: { transport: 'beacon', label: eventTarget.getVideoData && eventTarget.getVideoData().title }
|
128
129
|
}
|
129
130
|
|
130
131
|
window.GOVUK.analytics.trackEvent(tracking.category, tracking.action, tracking.label)
|
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
@import "govuk_publishing_components/components/helpers/variables";
|
10
10
|
@import "govuk_publishing_components/components/helpers/brand-colours";
|
11
|
+
@import "govuk_publishing_components/components/helpers/link";
|
11
12
|
@import "govuk_publishing_components/components/mixins/govuk-template-link-focus-override";
|
12
13
|
@import "govuk_publishing_components/components/mixins/media-down";
|
13
14
|
@import "govuk_publishing_components/components/mixins/margins";
|
@@ -1,8 +1,6 @@
|
|
1
1
|
.gem-c-feedback {
|
2
2
|
background: govuk-colour("white");
|
3
|
-
margin: govuk-spacing(6)
|
4
|
-
max-width: $govuk-page-width;
|
5
|
-
position: relative;
|
3
|
+
margin-top: govuk-spacing(6);
|
6
4
|
|
7
5
|
@include govuk-media-query($from: tablet) {
|
8
6
|
margin-top: govuk-spacing(9);
|
@@ -182,7 +180,6 @@
|
|
182
180
|
}
|
183
181
|
|
184
182
|
.gem-c-feedback__form {
|
185
|
-
margin: govuk-spacing(3) govuk-spacing(2) 0 govuk-spacing(2);
|
186
183
|
padding: govuk-spacing(3) 0;
|
187
184
|
border-top: govuk-spacing(2) solid govuk-colour("blue");
|
188
185
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
@import "govuk/components/summary-list/summary-list";
|
2
2
|
|
3
3
|
.gem-c-summary-list {
|
4
|
-
position: relative;
|
5
4
|
border-bottom: 1px solid $govuk-border-colour;
|
6
5
|
|
7
6
|
@include govuk-font(19);
|
@@ -14,12 +13,26 @@
|
|
14
13
|
&:nth-last-of-type(1) {
|
15
14
|
border-bottom: 0;
|
16
15
|
}
|
16
|
+
|
17
|
+
.govuk-summary-list {
|
18
|
+
clear: both;
|
19
|
+
}
|
17
20
|
}
|
18
21
|
|
19
|
-
.gem-c-summary-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
.gem-c-summary-list__group-title {
|
23
|
+
@include govuk-media-query($from: tablet) {
|
24
|
+
display: inline-block;
|
25
|
+
margin-right: govuk-spacing(3);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
.gem-c-summary-list__group-actions-list {
|
30
|
+
margin-bottom: govuk-spacing(3);
|
31
|
+
|
32
|
+
@include govuk-media-query($from: tablet) {
|
33
|
+
float: right;
|
34
|
+
width: auto;
|
35
|
+
}
|
23
36
|
}
|
24
37
|
|
25
38
|
.gem-c-summary__block {
|
@@ -0,0 +1,17 @@
|
|
1
|
+
.gem-link--destructive {
|
2
|
+
@include govuk-font(19);
|
3
|
+
|
4
|
+
&:link {
|
5
|
+
color: $govuk-error-colour;
|
6
|
+
}
|
7
|
+
|
8
|
+
&:visited,
|
9
|
+
&:hover,
|
10
|
+
&:active {
|
11
|
+
color: darken($govuk-error-colour, 5%);
|
12
|
+
}
|
13
|
+
|
14
|
+
&:focus {
|
15
|
+
color: $govuk-focus-text-colour;
|
16
|
+
}
|
17
|
+
}
|
@@ -2,6 +2,8 @@ module GovukPublishingComponents
|
|
2
2
|
class ComponentGuideController < GovukPublishingComponents::ApplicationController
|
3
3
|
append_view_path File.join(Rails.root, "app", "views", GovukPublishingComponents::Config.component_directory_name)
|
4
4
|
|
5
|
+
MATCH_COMPONENTS = /(?<=govuk_publishing_components\/components\/)[\/a-zA-Z_-]+(?=['"])/.freeze
|
6
|
+
|
5
7
|
def index
|
6
8
|
@application_path = Rails.root
|
7
9
|
@component_gem_path = Gem.loaded_specs["govuk_publishing_components"].full_gem_path
|
@@ -47,16 +49,7 @@ module GovukPublishingComponents
|
|
47
49
|
additional_files = "@import 'govuk_publishing_components/govuk_frontend_support';\n"
|
48
50
|
additional_files << "@import 'govuk_publishing_components/component_support';\n" unless print_styles
|
49
51
|
|
50
|
-
components = components_in_use
|
51
|
-
extra_components = []
|
52
|
-
|
53
|
-
components.each do |component|
|
54
|
-
components_in_component = components_within_component(component)
|
55
|
-
extra_components << components_in_component
|
56
|
-
end
|
57
|
-
|
58
|
-
components << extra_components.compact
|
59
|
-
components = components.flatten.uniq.sort
|
52
|
+
components = find_all_partials_in(components_in_use)
|
60
53
|
|
61
54
|
components.map { |component|
|
62
55
|
"@import 'govuk_publishing_components/components/#{print_path}#{component.gsub('_', '-')}';" if component_has_sass_file(component.gsub("_", "-"), print_styles)
|
@@ -66,16 +59,7 @@ module GovukPublishingComponents
|
|
66
59
|
def components_in_use_js
|
67
60
|
additional_files = "//= require govuk_publishing_components/lib\n"
|
68
61
|
|
69
|
-
components = components_in_use
|
70
|
-
extra_components = []
|
71
|
-
|
72
|
-
components.each do |component|
|
73
|
-
components_in_component = components_within_component(component)
|
74
|
-
extra_components << components_in_component
|
75
|
-
end
|
76
|
-
|
77
|
-
components << extra_components.compact
|
78
|
-
components = components.flatten.uniq.sort
|
62
|
+
components = find_all_partials_in(components_in_use)
|
79
63
|
|
80
64
|
components.map { |component|
|
81
65
|
"//= require govuk_publishing_components/components/#{component.gsub('_', '-')}" if component_has_js_file(component.gsub("_", "-"))
|
@@ -104,10 +88,43 @@ module GovukPublishingComponents
|
|
104
88
|
|
105
89
|
files.each do |file|
|
106
90
|
data = File.read(file)
|
107
|
-
matches << data.scan(
|
91
|
+
matches << data.scan(MATCH_COMPONENTS)
|
108
92
|
end
|
109
93
|
|
110
|
-
matches.flatten.uniq.map(&:to_s).sort
|
94
|
+
matches.flatten.uniq.map(&:to_s).sort
|
95
|
+
end
|
96
|
+
|
97
|
+
def find_all_partials_in(templates)
|
98
|
+
components = [templates]
|
99
|
+
|
100
|
+
templates.each do |template|
|
101
|
+
partials_found = true
|
102
|
+
components_to_search = [template]
|
103
|
+
components_found = []
|
104
|
+
|
105
|
+
while partials_found
|
106
|
+
extra_components = find_partials_in(components_to_search)
|
107
|
+
|
108
|
+
if extra_components.any?
|
109
|
+
components_found << extra_components
|
110
|
+
components_to_search = extra_components
|
111
|
+
else
|
112
|
+
partials_found = false
|
113
|
+
components << components_found.uniq.sort if components_found.any?
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
components.flatten.uniq.sort
|
119
|
+
end
|
120
|
+
|
121
|
+
def find_partials_in(components)
|
122
|
+
extra_components = []
|
123
|
+
components.each do |component|
|
124
|
+
extra_components << components_within_component(component)
|
125
|
+
end
|
126
|
+
|
127
|
+
extra_components.flatten.uniq.sort
|
111
128
|
end
|
112
129
|
|
113
130
|
def component_has_sass_file(component, print_styles)
|
@@ -120,9 +137,14 @@ module GovukPublishingComponents
|
|
120
137
|
end
|
121
138
|
|
122
139
|
def components_within_component(component)
|
123
|
-
|
124
|
-
|
125
|
-
|
140
|
+
filename = @component_gem_path + "/app/views/govuk_publishing_components/components/#{component}.html.erb"
|
141
|
+
filename = filename.sub(/.*\K\//, "/_") # files begin with _ but the method may have been passed 'filename' or 'dir/partial'
|
142
|
+
|
143
|
+
return [] unless File.file?(filename)
|
144
|
+
|
145
|
+
data = File.read(filename)
|
146
|
+
match = data.scan(MATCH_COMPONENTS)
|
147
|
+
match.flatten.uniq.map(&:to_s).sort
|
126
148
|
end
|
127
149
|
|
128
150
|
def index_breadcrumb
|
@@ -1,23 +1,42 @@
|
|
1
1
|
<%
|
2
|
+
local_assigns[:heading_level] ||= 3
|
3
|
+
heading_size = 'm' unless ['s', 'm', 'l', 'xl'].include?(heading_size)
|
4
|
+
shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
|
5
|
+
|
2
6
|
id ||= nil
|
3
7
|
title ||= nil
|
4
8
|
borderless ||= false
|
5
9
|
edit ||= {}
|
10
|
+
delete ||= {}
|
6
11
|
items ||= []
|
7
12
|
block ||= yield
|
8
13
|
%>
|
9
14
|
<% if title || items.any? %>
|
10
15
|
<%= tag.div class: "gem-c-summary-list #{"govuk-summary-list--no-border" if borderless}", id: id do %>
|
11
16
|
<% if title %>
|
12
|
-
<%=
|
13
|
-
<% if edit.any? %>
|
14
|
-
<%= tag.ul class: "govuk-summary-list__actions-list" do %>
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
<%= content_tag(shared_helper.get_heading_level, title, class: "govuk-heading-#{heading_size} gem-c-summary-list__group-title") %>
|
18
|
+
<% if edit.any? || delete.any? %>
|
19
|
+
<%= tag.ul class: "govuk-summary-list__actions-list gem-c-summary-list__group-actions-list" do %>
|
20
|
+
<%- if edit.any? %>
|
21
|
+
<% edit_section_link_text = edit[:link_text] || t("components.summary_list.edit") %>
|
22
|
+
<%= tag.li class: "govuk-summary-list__actions-list-item" do -%>
|
23
|
+
<%= link_to edit.fetch(:href),
|
24
|
+
class: "govuk-link",
|
25
|
+
title: "#{edit_section_link_text} #{title}",
|
26
|
+
data: edit.fetch(:data_attributes, {}) do %>
|
27
|
+
<%= edit_section_link_text %><%= tag.span " #{title}", class: "govuk-visually-hidden" -%>
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
31
|
+
<% if delete.any? %>
|
32
|
+
<% delete_section_link_text = delete[:link_text] || t("components.summary_list.delete") %>
|
33
|
+
<%= tag.li class: "govuk-summary-list__actions-list-item" do -%>
|
34
|
+
<%= link_to delete.fetch(:href),
|
35
|
+
class: "govuk-link gem-link--destructive",
|
36
|
+
title: "#{delete_section_link_text} #{title}",
|
37
|
+
data: delete.fetch(:data_attributes, {}) do %>
|
38
|
+
<%= delete_section_link_text %><%= tag.span " #{title}", class: "govuk-visually-hidden" -%>
|
39
|
+
<% end %>
|
21
40
|
<% end %>
|
22
41
|
<% end %>
|
23
42
|
<% end %>
|
@@ -37,22 +56,23 @@
|
|
37
56
|
<%= tag.ul class: "govuk-summary-list__actions-list" do %>
|
38
57
|
<% if item.fetch(:edit, {}).any? %>
|
39
58
|
<%= tag.li class: "govuk-summary-list__actions-list-item" do %>
|
40
|
-
<% edit_link_text = item[:edit][:link_text] || "
|
59
|
+
<% edit_link_text = item[:edit][:link_text] || t("components.summary_list.edit") %>
|
41
60
|
<%= link_to item[:edit].fetch(:href),
|
42
61
|
class: "govuk-link",
|
43
62
|
title: "#{edit_link_text} #{item[:field]}",
|
44
63
|
data: item[:edit].fetch(:data_attributes, {}) do %>
|
45
|
-
<%= edit_link_text %><%= tag.span " #{item[:field]}", class: "govuk-visually-hidden"
|
64
|
+
<%= edit_link_text %><%= tag.span " #{item[:field]}", class: "govuk-visually-hidden" -%>
|
65
|
+
<% end %>
|
46
66
|
<% end %>
|
47
67
|
<% end %>
|
48
68
|
<% if item.fetch(:delete, {}).any? %>
|
49
69
|
<%= tag.li class: "govuk-summary-list__actions-list-item" do %>
|
50
|
-
<% delete_link_text = item[:delete][:link_text] || "
|
70
|
+
<% delete_link_text = item[:delete][:link_text] || t("components.summary_list.delete") %>
|
51
71
|
<%= link_to item[:delete].fetch(:href),
|
52
|
-
class: "govuk-link",
|
72
|
+
class: "govuk-link gem-link--destructive",
|
53
73
|
title: "#{delete_link_text} #{item[:field]}",
|
54
74
|
data: item[:delete].fetch(:data_attributes, {}) do %>
|
55
|
-
<%= delete_link_text %><%= tag.span " #{item[:field]}", class: "govuk-visually-hidden"
|
75
|
+
<%= delete_link_text %><%= tag.span " #{item[:field]}", class: "govuk-visually-hidden" -%>
|
56
76
|
<% end %>
|
57
77
|
<% end %>
|
58
78
|
<% end %>
|
@@ -1,5 +1,6 @@
|
|
1
1
|
name: Summary list
|
2
2
|
description: Use the summary list to summarise information, for example, a user’s responses at the end of a form.
|
3
|
+
body: This component extends the [Summary list component in the Design System](https://design-system.service.gov.uk/components/summary-list/) allowing the rendering of multiple groups of lists, and actions at the group level.
|
3
4
|
accessibility_criteria: |
|
4
5
|
Action links in the component must:
|
5
6
|
|
@@ -41,6 +42,32 @@ examples:
|
|
41
42
|
data_attributes:
|
42
43
|
gtm: "edit-title-summary-body"
|
43
44
|
|
45
|
+
with_delete_on_section:
|
46
|
+
data:
|
47
|
+
<<: *default-example-data
|
48
|
+
delete:
|
49
|
+
href: "delete-title-summary-body"
|
50
|
+
data_attributes:
|
51
|
+
gtm: "delete-title-summary-body"
|
52
|
+
|
53
|
+
with_edit_and_delete_on_section:
|
54
|
+
data:
|
55
|
+
<<: *default-example-data
|
56
|
+
edit:
|
57
|
+
href: "edit-title-summary-body"
|
58
|
+
data_attributes:
|
59
|
+
gtm: "edit-title-summary-body"
|
60
|
+
delete:
|
61
|
+
href: "delete-title-summary-body"
|
62
|
+
data_attributes:
|
63
|
+
gtm: "delete-title-summary-body"
|
64
|
+
|
65
|
+
with_custom_section_heading:
|
66
|
+
data:
|
67
|
+
<<: *default-example-data
|
68
|
+
heading_level: 2
|
69
|
+
heading_size: l
|
70
|
+
|
44
71
|
with_custom_link_on_section:
|
45
72
|
description: |
|
46
73
|
Take care that the provided `link_text` still makes sense to screen readers when combined with the title.
|
data/config/locales/en.yml
CHANGED
@@ -58,20 +58,20 @@ module GovukPublishingComponents
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def options(navigation)
|
61
|
-
if navigation.
|
61
|
+
if navigation.content_tagged_to_a_finder?
|
62
62
|
{
|
63
|
-
step_by_step:
|
64
|
-
breadcrumbs: navigation.
|
63
|
+
step_by_step: false,
|
64
|
+
breadcrumbs: navigation.breadcrumbs,
|
65
65
|
}
|
66
66
|
elsif navigation.content_tagged_to_current_step_by_step?
|
67
67
|
{
|
68
68
|
step_by_step: true,
|
69
69
|
breadcrumbs: navigation.step_nav_helper.header,
|
70
70
|
}
|
71
|
-
elsif navigation.
|
71
|
+
elsif navigation.priority_breadcrumbs
|
72
72
|
{
|
73
|
-
step_by_step:
|
74
|
-
breadcrumbs: navigation.
|
73
|
+
step_by_step: true,
|
74
|
+
breadcrumbs: navigation.priority_breadcrumbs,
|
75
75
|
}
|
76
76
|
elsif navigation.content_is_tagged_to_a_live_taxon? && prioritise_taxon_breadcrumbs
|
77
77
|
{
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_publishing_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 21.
|
4
|
+
version: 21.56.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gds-api-adapters
|
@@ -548,6 +548,7 @@ files:
|
|
548
548
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss
|
549
549
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_contents-list-helper.scss
|
550
550
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_govuk-frontend-settings.scss
|
551
|
+
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_link.scss
|
551
552
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss
|
552
553
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_px-to-em.scss
|
553
554
|
- app/assets/stylesheets/govuk_publishing_components/components/helpers/_variables.scss
|