govuk_publishing_components 21.55.0 → 21.56.0

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 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