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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67b6a6a998771d72bbbe83523102343350d083190a7c77e2bfd158d89104be3a
4
- data.tar.gz: f64d56023c03cc92dc84dec30e06436e5904f98f2334e14440e4468886d27f55
3
+ metadata.gz: 3773fbe78d9426cfe8fc0d8356057ac637399673ed546c07eb436a3500e4728a
4
+ data.tar.gz: dafffb370895b4a7d26cba3e3ebe5b0345d178f3e32e3c3a1e3c1f4370ce71a7
5
5
  SHA512:
6
- metadata.gz: a9fb15374f204846907e809baff835885ae63698064184bbe55b0dbe0c5fbf82ed0986595de7ebfdc62b50144ee0173c73c2b30f58468c72e1701745848f50c7
7
- data.tar.gz: 30a0a5885f0bf9343d2bcb9679630829d394148447ee1041ff737704105b07ff4e28fd7711bee68ac604d7c864c6bd103606d7204ee2e010a94a0c9ebdd9a977
6
+ metadata.gz: 25c2b1ec246ffc2315f37dd9cc929f42404ed1c338e5e80f927ae045785f501af00537463ca6d91e6559dab5f265bf2d482eaed337412c47bf361a7f213fe3db
7
+ data.tar.gz: 462df79e0ff9bf3dad96caf7d10f594ae6049c96b145b0c7f8788fedc75995f9f71689ca93d7bbb2eefd4f78e7f00aebf7cff77f60fe19b0a350c0ccbddede07
@@ -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[event.data],
127
- label: { transport: 'beacon', label: event.target.getVideoUrl() }
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) auto 0 auto;
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-list__edit-section-link {
20
- position: absolute;
21
- top: 0;
22
- right: 0;
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(/(govuk_publishing_components\/components\/[a-z_-]+)/)
91
+ matches << data.scan(MATCH_COMPONENTS)
108
92
  end
109
93
 
110
- matches.flatten.uniq.map(&:to_s).sort.map { |m| m.gsub("govuk_publishing_components/components/", "") }
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
- data = File.read(@component_gem_path + "/app/views/govuk_publishing_components/components/_#{component}.html.erb")
124
- match = data.scan(/(govuk_publishing_components\/components\/[a-z_-]+)/)
125
- match.flatten.uniq.map(&:to_s).sort.map { |m| m.gsub("govuk_publishing_components/components/", "") }
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
- <%= tag.h3 title, class: "govuk-heading-m" %>
13
- <% if edit.any? %>
14
- <%= tag.ul class: "govuk-summary-list__actions-list" do %>
15
- <%= tag.li class: "govuk-summary-list__actions-list-item" do %>
16
- <%= link_to edit.fetch(:href),
17
- class: "govuk-link gem-c-summary-list__edit-section-link",
18
- title: "#{edit.fetch(:link_text, "Change")} #{title}",
19
- data: edit.fetch(:data_attributes, {}) do %>
20
- <%= edit.fetch(:link_text, "Change") %> <%= tag.span title, class: "govuk-visually-hidden" %>
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] || "Change" %>
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" %><% end %>
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] || "Delete" %>
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.
@@ -71,3 +71,6 @@ en:
71
71
  email_signup_link_text: "Get email alerts"
72
72
  feed_link_text: "Subscribe to feed"
73
73
  subscriptions: "Subscriptions"
74
+ summary_list:
75
+ edit: "Change"
76
+ delete: "Delete"
@@ -58,20 +58,20 @@ module GovukPublishingComponents
58
58
  end
59
59
 
60
60
  def options(navigation)
61
- if navigation.priority_breadcrumbs
61
+ if navigation.content_tagged_to_a_finder?
62
62
  {
63
- step_by_step: true,
64
- breadcrumbs: navigation.priority_breadcrumbs,
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.content_tagged_to_a_finder?
71
+ elsif navigation.priority_breadcrumbs
72
72
  {
73
- step_by_step: false,
74
- breadcrumbs: navigation.breadcrumbs,
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
  {
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "21.55.0".freeze
2
+ VERSION = "21.56.0".freeze
3
3
  end
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.55.0
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-02 00:00:00.000000000 Z
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