govuk_publishing_components 7.3.0 → 8.0.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/lib/track-share-button-clicks.js +26 -0
  3. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +3 -1
  4. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +43 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +49 -0
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +1 -0
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +40 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/{_organisation-colours.scss → _brand-colours.scss} +3 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_back-arrow.scss +13 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_touch-friendly-links.scss +11 -0
  11. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +49 -0
  12. data/app/views/govuk_publishing_components/components/_button.html.erb +2 -2
  13. data/app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb +4 -4
  14. data/app/views/govuk_publishing_components/components/_heading.html.erb +7 -9
  15. data/app/views/govuk_publishing_components/components/_share_links.html.erb +36 -0
  16. data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +24 -26
  17. data/app/views/govuk_publishing_components/components/_taxonomy_navigation.html.erb +1 -1
  18. data/app/views/govuk_publishing_components/components/_translation-nav.html.erb +19 -5
  19. data/app/views/govuk_publishing_components/components/docs/breadcrumbs.yml +94 -0
  20. data/app/views/govuk_publishing_components/components/docs/heading.yml +46 -7
  21. data/app/views/govuk_publishing_components/components/docs/inverse_header.yml +3 -3
  22. data/app/views/govuk_publishing_components/components/docs/meta_tags.yml +0 -10
  23. data/app/views/govuk_publishing_components/components/docs/share_links.yml +38 -0
  24. data/app/views/govuk_publishing_components/components/docs/subscription-links.yml +29 -0
  25. data/app/views/govuk_publishing_components/components/docs/translation-nav.yml +38 -0
  26. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +1 -1
  27. data/app/views/layouts/govuk_publishing_components/application.html.erb +1 -1
  28. data/lib/govuk_publishing_components.rb +4 -0
  29. data/lib/govuk_publishing_components/presenters/breadcrumbs.rb +39 -0
  30. data/lib/govuk_publishing_components/presenters/heading_helper.rb +20 -0
  31. data/lib/govuk_publishing_components/presenters/meta_tags.rb +0 -15
  32. data/lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb +6 -1
  33. data/lib/govuk_publishing_components/presenters/subscription_links_helper.rb +45 -0
  34. data/lib/govuk_publishing_components/presenters/translation_nav_helper.rb +23 -0
  35. data/lib/govuk_publishing_components/version.rb +1 -1
  36. metadata +16 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 718e4d3d0e9959be0f7d0270202b9af68951b66b1a75263232a3cff12dab9ec4
4
- data.tar.gz: c6c6c04682ea600c4ad69bc6dc1c494046efea44c2e3b3bf87c01d65dbf5d396
3
+ metadata.gz: dd52f88bf159c19cfb93fc4b1df1ac5f20640df6bf81701ca6f82d807a961d28
4
+ data.tar.gz: 9344c8672e431f493d26a544574b9c35a0e76bd1d0a10b1635251101bd24b98b
5
5
  SHA512:
6
- metadata.gz: 49462b2130f34c4172dc6680b4f1216f44fe5a973e639d573d61a39b712d899571f9a50b69000a37666fb6d7b696cf131833d97c1f731d9e71b63e11cb7ccae6
7
- data.tar.gz: a1d8b39fbb2216b2c04d7cdea21d84bf9f5d23f93e63f4f22bdc16ccd0050955f900a2557d17eda0049115af4f8fa440bbf633133eb3e0e2aa235e558234c723
6
+ metadata.gz: 5fba10ac52900e63df031d84ecc8d483907ed08562a063ff890a8be435daac246a99b8baf9222c738533ead8ddd947ecda024dc4a5a33fe8c7b52d451bc66198
7
+ data.tar.gz: 193ebcacae31c40abedf4de85212b0648ea679d5eee0caf0523a2fb9117a0751851835a046c63eb24c7a0a60b3666c40f1afa52768fe899f0f7113169d941344
@@ -0,0 +1,26 @@
1
+ window.GOVUK.Modules = window.GOVUK.Modules || {};
2
+
3
+ (function (Modules) {
4
+ 'use strict'
5
+
6
+ Modules.GemTrackShareButtonClicks = function () {
7
+ this.start = function (element) {
8
+ element.on('click', '.js-share-facebook', trackFacebook)
9
+ element.on('click', '.js-share-twitter', trackTwitter)
10
+
11
+ function trackFacebook () {
12
+ trackShare('facebook')
13
+ }
14
+
15
+ function trackTwitter () {
16
+ trackShare('twitter')
17
+ }
18
+
19
+ function trackShare (network) {
20
+ if (GOVUK.analytics && GOVUK.analytics.trackShare) {
21
+ GOVUK.analytics.trackShare(network)
22
+ }
23
+ }
24
+ }
25
+ }
26
+ })(window.GOVUK.Modules)
@@ -7,9 +7,10 @@
7
7
  @import "typography";
8
8
  @import "colours";
9
9
 
10
- @import "components/helpers/organisation-colours";
10
+ @import "components/helpers/brand-colours";
11
11
 
12
12
  @import "components/back-link";
13
+ @import "components/breadcrumbs";
13
14
  @import "components/button";
14
15
  @import "components/document-list";
15
16
  @import "components/error-summary";
@@ -28,4 +29,5 @@
28
29
  @import "components/feedback";
29
30
  @import "components/inverse-header";
30
31
  @import "components/success-alert";
32
+ @import "components/share-links";
31
33
  @import "components/taxonomy-navigation";
@@ -0,0 +1,43 @@
1
+ @import "design-patterns/breadcrumbs";
2
+ @import "mixins/back-arrow";
3
+ @import "mixins/media-down";
4
+ @import "mixins/touch-friendly-links";
5
+
6
+ .gem-c-breadcrumbs {
7
+ // reset the default browser styles
8
+ ol {
9
+ padding: 0;
10
+ margin: 0;
11
+ }
12
+
13
+ @include breadcrumbs;
14
+ @include touch-friendly-links();
15
+
16
+ .gem-c-breadcrumbs--current {
17
+ color: $secondary-text-colour;
18
+ text-decoration: none;
19
+ }
20
+
21
+ @include media-down(mobile) {
22
+ &.gem-c-breadcrumbs--collapse-on-mobile .gem-c-breadcrumbs--item {
23
+ display: none;
24
+
25
+ &.gem-c-breadcrumbs--parent {
26
+ background-image: none;
27
+ display: block;
28
+ margin-left: 0;
29
+ padding-left: 14px;
30
+ position: relative;
31
+
32
+ &:before {
33
+ @include back-arrow;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+ .gem-c-breadcrumbs--current.gem-c-breadcrumbs--inverse,
41
+ .gem-c-breadcrumbs .gem-c-breadcrumbs--inverse {
42
+ color: $white;
43
+ }
@@ -1,5 +1,18 @@
1
1
  .gem-c-heading {
2
2
  @include bold-27;
3
+ }
4
+
5
+ .gem-c-heading--font-size-24 {
6
+ @include bold-24;
7
+ }
8
+
9
+ .gem-c-heading--font-size-19 {
10
+ @include bold-19;
11
+ }
12
+
13
+ // special case for publications and consultations pages
14
+ // separated to allow normalisation of the component for wider use
15
+ .gem-c-heading--mobile-top-margin {
3
16
  margin-top: $gutter;
4
17
  margin-bottom: $gutter-half;
5
18
 
@@ -8,3 +21,39 @@
8
21
  margin-bottom: $gutter;
9
22
  }
10
23
  }
24
+
25
+ .gem-c-heading--padding {
26
+ padding: $gutter-half 0;
27
+ }
28
+
29
+ // margins would ideally be handled by a general model for all components
30
+ // but we don't have one yet, so this is in anticipation of that
31
+ // suggested scale is as follows, not fully implemented
32
+ // $gutter = 4
33
+ // $gutter-two-thirds = 3
34
+ // $gutter-half = 2
35
+ // $gutter-one-third = 1
36
+ .gem-c-heading--margin-bottom-4 {
37
+ margin-bottom: $gutter;
38
+ }
39
+
40
+ .gem-c-heading--margin-bottom-2 {
41
+ margin-bottom: $gutter-half;
42
+ }
43
+
44
+ // border color will default to black
45
+ // can be changed using the branding functionality
46
+ .gem-c-heading--border-top-1 {
47
+ border-top-style: solid;
48
+ border-top-width: 1px;
49
+ }
50
+
51
+ .gem-c-heading--border-top-2 {
52
+ border-top-style: solid;
53
+ border-top-width: 2px;
54
+ }
55
+
56
+ .gem-c-heading--border-top-5 {
57
+ border-top-style: solid;
58
+ border-top-width: 5px;
59
+ }
@@ -26,6 +26,7 @@
26
26
  }
27
27
 
28
28
  .gem-c-radio__input {
29
+ font-size: inherit;
29
30
  position: absolute;
30
31
 
31
32
  z-index: 1;
@@ -0,0 +1,40 @@
1
+ $share-button-width: 32px;
2
+ $share-button-height: 32px;
3
+
4
+ .gem-c-share-links__link {
5
+ margin-right: $gutter;
6
+ margin-bottom: $gutter-one-third;
7
+ @include bold-16($line-height: $share-button-height, $line-height-640: $share-button-height);
8
+ text-decoration: none;
9
+ }
10
+
11
+ .gem-c-share-links__title {
12
+ margin-bottom: $gutter-one-third;
13
+ }
14
+
15
+ .gem-c-share-links__link__icon {
16
+ display: inline-block;
17
+ width: $share-button-width;
18
+ height: $share-button-height;
19
+ margin-right: $gutter-one-third;
20
+ vertical-align: top;
21
+ }
22
+
23
+ .direction-rtl {
24
+ .gem-c-share-links__link {
25
+ // By changing the link to inline-block the browser
26
+ // calculates the icon and the text as a single run of text
27
+ // rather than two. When they are considered to be two runs
28
+ // the browser splits the first link, putting the text before
29
+ // the second link, and the icon after the second link.
30
+ display: inline-block;
31
+ margin-right: 0;
32
+ margin-left: $gutter;
33
+
34
+ .gem-c-share-links__link__icon {
35
+ margin-right: 0;
36
+ margin-left: $gutter-one-third;
37
+ vertical-align: middle;
38
+ }
39
+ }
40
+ }
@@ -10,6 +10,9 @@
10
10
  color: nth($organisation, 3);
11
11
  }
12
12
 
13
+ // the & declaration allows border-color to also be applied to the parent
14
+ // element as required by the heading component, adds 2KB to the CSS
15
+ &.brand__border-color,
13
16
  .brand__border-color {
14
17
  border-color: nth($organisation, 2);
15
18
  }
@@ -0,0 +1,13 @@
1
+ // An arrow to represent a "back" link
2
+
3
+ @mixin back-arrow {
4
+ border-bottom: 5px solid transparent;
5
+ border-right: 6px solid;
6
+ border-top: 5px solid transparent;
7
+ content: '';
8
+ display: block;
9
+ left: 0;
10
+ margin-top: -6px;
11
+ position: absolute;
12
+ top: 50%;
13
+ }
@@ -0,0 +1,11 @@
1
+ // This mixin will expand the clickable area for a link to make it easier to click on a touch-enabled
2
+ // device.
3
+
4
+ @mixin touch-friendly-links($padding: 3px) {
5
+ a {
6
+ padding: $padding;
7
+ margin: -1 * $padding;
8
+ outline-color: transparent;
9
+ display: inline-block;
10
+ }
11
+ }
@@ -0,0 +1,49 @@
1
+ <%
2
+ breadcrumbs ||= []
3
+ collapse_on_mobile ||= false
4
+ inverse ||= false
5
+ collapse_class = collapse_on_mobile && breadcrumbs.any? { |crumb| crumb[:is_page_parent] } ? "gem-c-breadcrumbs--collapse-on-mobile" : ""
6
+ invert_class = inverse ? "gem-c-breadcrumbs--inverse" : ""
7
+ structured_data = GovukPublishingComponents::Presenters::Breadcrumbs.new(breadcrumbs, request.path).structured_data
8
+ %>
9
+
10
+ <script type="application/ld+json">
11
+ <%= raw structured_data.to_json %>
12
+ </script>
13
+
14
+ <div class="gem-c-breadcrumbs <%= collapse_class %>" data-module="track-click">
15
+ <ol>
16
+ <% breadcrumbs.each_with_index do |crumb, index| %>
17
+ <%
18
+ is_link = crumb[:url].present? || crumb[:is_current_page]
19
+ path = crumb[:is_current_page] ? '#content' : crumb[:url]
20
+ aria_current = crumb[:is_current_page] ? 'page' : 'false'
21
+ css_class = invert_class.concat(crumb[:is_current_page] ? ' gem-c-breadcrumbs--current ' : '')
22
+ %>
23
+
24
+ <li class='gem-c-breadcrumbs--item <%= "gem-c-breadcrumbs--parent" if crumb[:is_page_parent] %>'>
25
+ <% if is_link %>
26
+ <%= link_to(
27
+ crumb[:title],
28
+ path,
29
+ data: {
30
+ track_category: 'breadcrumbClicked',
31
+ track_action: index + 1,
32
+ track_label: path,
33
+ track_options: {
34
+ dimension28: breadcrumbs.length.to_s,
35
+ dimension29: crumb[:title]
36
+ }
37
+ },
38
+ class: css_class,
39
+ aria: {
40
+ current: aria_current,
41
+ }
42
+ ) %>
43
+ <% else %>
44
+ <%= crumb[:title] %>
45
+ <% end %>
46
+ </li>
47
+ <% end %>
48
+ </ol>
49
+ </div>
@@ -18,12 +18,12 @@
18
18
  html_options[:title] = title if title
19
19
  %>
20
20
  <% if href %>
21
- <%= link_to(text, href.try(:html_safe), html_options) %>
21
+ <%= link_to(text, href, html_options) %>
22
22
  <% else %>
23
23
  <%= button_tag(text, html_options) %>
24
24
  <% end %>
25
25
  <% if info_text %>
26
26
  <span class="gem-c-button__info-text">
27
- <%= info_text.try(:html_safe) %>
27
+ <%= info_text %>
28
28
  </span>
29
29
  <% end %>
@@ -6,18 +6,18 @@
6
6
  navigation.step_nav_helper.header %>
7
7
  <% elsif navigation.content_tagged_to_mainstream_browse_pages? %>
8
8
  <!-- Rendering parent-based breadcrumbs because the page is tagged to mainstream browse -->
9
- <%= render 'govuk_component/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
9
+ <%= render 'govuk_publishing_components/components/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
10
10
  <% elsif navigation.content_has_curated_related_items? %>
11
11
  <!-- Rendering parent-based breadcrumbs because the page has curated related links -->
12
- <%= render 'govuk_component/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
12
+ <%= render 'govuk_publishing_components/components/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
13
13
  <% elsif navigation.content_is_tagged_to_a_live_taxon? %>
14
14
  <!-- Rendering taxonomy breadcrumbs because the page is tagged to live taxons -->
15
- <%= render 'govuk_component/breadcrumbs',
15
+ <%= render 'govuk_publishing_components/components/breadcrumbs',
16
16
  breadcrumbs: navigation.taxon_breadcrumbs[:breadcrumbs],
17
17
  collapse_on_mobile: true %>
18
18
  <% elsif navigation.breadcrumbs.any? %>
19
19
  <!-- Rendering parent-based breadcrumbs because no browse, no related links, no live taxons -->
20
- <%= render 'govuk_component/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
20
+ <%= render 'govuk_publishing_components/components/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
21
21
  <% else %>
22
22
  <!-- Not rendering any breadcrumbs because there aren't any -->
23
23
  <% end %>
@@ -1,11 +1,9 @@
1
1
  <%
2
- id = "id=#{id}" if id
3
- heading_level ||= 1
4
- heading_level_tag = "h#{heading_level}" if [1,2,3,4,5,6].include? heading_level
2
+ brand ||= false
3
+ brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
+ heading_helper = GovukPublishingComponents::Presenters::HeadingHelper.new(local_assigns)
5
5
  %>
6
- <<%= heading_level_tag %>
7
- <%= id %>
8
- class="gem-c-heading"
9
- >
10
- <%= text %>
11
- </<%= heading_level_tag %>>
6
+ <%= content_tag(heading_helper.heading_tag, text,
7
+ class: "gem-c-heading #{heading_helper.classes} #{brand_helper.brand_class} #{brand_helper.border_color_class}",
8
+ id: heading_helper.id
9
+ ) %>
@@ -0,0 +1,36 @@
1
+ <%
2
+ title ||= 'Share this page'
3
+ facebook_href ||= false
4
+ twitter_href ||= false
5
+ %>
6
+ <% if facebook_href || twitter_href %>
7
+ <div class="gem-c-share-links dont-print" data-module="gem-track-share-button-clicks">
8
+ <h2 class="gem-c-share-links__title"><%= title %></h2>
9
+
10
+ <% if facebook_href %>
11
+ <%= link_to facebook_href,
12
+ target: "_blank",
13
+ rel: "noopener noreferrer",
14
+ class: "gem-c-share-links__link js-share-facebook" do %>
15
+ <span class="gem-c-share-links__link__icon">
16
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
17
+ <path fill="currentColor" d="M31.006 0H.993A.997.997 0 0 0 0 .993v30.014c0 .55.452.993.993.993h30.013a.998.998 0 0 0 .994-.993V.993A.999.999 0 0 0 31.006 0z"/>
18
+ <path fill="#FFF" d="M17.892 10.751h1.787V8.009L17.216 8c-2.73 0-3.352 2.045-3.352 3.353v1.828h-1.581v2.824h1.581V24h3.322v-7.995h2.242l.291-2.824h-2.533V11.52c.001-.623.415-.769.706-.769z"/>
19
+ </svg>
20
+ </span><span class="visually-hidden">Share on </span>Facebook<% end %>
21
+ <% end %>
22
+
23
+ <% if twitter_href %>
24
+ <%= link_to twitter_href,
25
+ target: "_blank",
26
+ rel: "noopener noreferrer",
27
+ class: "gem-c-share-links__link js-share-twitter" do %>
28
+ <span class="gem-c-share-links__link__icon">
29
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
30
+ <path fill="currentColor" d="M31.007 0H.993A.999.999 0 0 0 0 .993v30.014c0 .55.452.993.993.993h30.014a.997.997 0 0 0 .993-.993V.993A.998.998 0 0 0 31.007 0z"/>
31
+ <path fill="#FFF" d="M8 21.027a9.286 9.286 0 0 0 5.032 1.475c6.038 0 9.34-5.002 9.34-9.339 0-.143-.004-.284-.012-.425a6.619 6.619 0 0 0 1.639-1.699c-.6.265-1.234.439-1.885.516a3.287 3.287 0 0 0 1.443-1.816 6.571 6.571 0 0 1-2.086.797 3.28 3.28 0 0 0-5.592 2.993 9.311 9.311 0 0 1-6.766-3.43 3.294 3.294 0 0 0-.443 1.651 3.28 3.28 0 0 0 1.46 2.732 3.278 3.278 0 0 1-1.488-.411v.041a3.288 3.288 0 0 0 2.633 3.22 3.28 3.28 0 0 1-1.481.055 3.285 3.285 0 0 0 3.065 2.281 6.59 6.59 0 0 1-4.076 1.404A6.76 6.76 0 0 1 8 21.027z"/>
32
+ </svg>
33
+ </span><span class="visually-hidden">Share on </span>Twitter<% end %>
34
+ <% end %>
35
+ </div>
36
+ <% end %>
@@ -1,42 +1,40 @@
1
1
  <%
2
- email_signup_link ||= false
3
- email_signup_link_text ||= t("govuk_component.subscription_links.email_signup_link_text", default: "Get email alerts")
4
- feed_link ||= false
5
- feed_link_text ||= t("govuk_component.subscription_links.feed_link_text", default: "Subscribe to feed")
6
- feed_link_box_value ||= false
7
- feed_link_data = false
8
-
9
- if feed_link_box_value
10
- feed_link = "#"
11
- feed_link_data = {
12
- controls: "feed-reader",
13
- expanded: "false"
14
- }
15
- end
2
+ brand ||= false
3
+ brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
+ sl_helper = GovukPublishingComponents::Presenters::SubscriptionLinksHelper.new(local_assigns)
16
5
  %>
17
- <% if email_signup_link || feed_link || feed_link_box_value %>
18
- <section class="gem-c-subscription-links" data-module="gem-toggle">
6
+ <% if sl_helper.component_data_is_valid? %>
7
+ <section
8
+ class="gem-c-subscription-links <%= brand_helper.brand_class %>"
9
+ <%= "data-module=gem-toggle" if sl_helper.feed_link_box_value %>
10
+ >
19
11
  <h2 class="visuallyhidden"><%= t("govuk_component.subscription_links.subscriptions", default: "Subscriptions") %></h2>
20
- <ul class="gem-c-subscription-links__list">
21
- <% if email_signup_link.present? %>
12
+ <ul
13
+ class="gem-c-subscription-links__list"
14
+ <%= "data-module=track-click" if sl_helper.tracking_is_present? %>
15
+ >
16
+ <% if sl_helper.email_signup_link.present? %>
22
17
  <li class="gem-c-subscription-links__list-item">
23
- <%= link_to email_signup_link_text, email_signup_link, class: "gem-c-subscription-links__link gem-c-subscription-links__link--email-alerts" %>
18
+ <%= link_to sl_helper.email_signup_link_text, sl_helper.email_signup_link,
19
+ class: "gem-c-subscription-links__link gem-c-subscription-links__link--email-alerts #{brand_helper.color_class}",
20
+ data: sl_helper.email_signup_link_data_attributes
21
+ %>
24
22
  </li>
25
23
  <% end %>
26
24
 
27
- <% if feed_link_box_value || feed_link.present? %>
25
+ <% if sl_helper.feed_link_box_value || sl_helper.feed_link %>
28
26
  <li class="gem-c-subscription-links__list-item">
29
- <%= link_to feed_link_text, feed_link,
30
- class: "gem-c-subscription-links__link gem-c-subscription-links__link--feed",
31
- data: feed_link_data
27
+ <%= link_to sl_helper.feed_link_text, sl_helper.feed_link,
28
+ class: "gem-c-subscription-links__link gem-c-subscription-links__link--feed #{brand_helper.color_class}",
29
+ data: sl_helper.feed_link_data_attributes
32
30
  %>
33
31
  </li>
34
32
  <% end %>
35
33
  </ul>
36
34
 
37
- <% if feed_link_box_value %>
38
- <div class="gem-c-subscription-links__feed-box js-hidden" id="feed-reader">
39
- <p class="gem-c-subscription-links__feed-description js-hidden"><%= feed_link_text %></p>
35
+ <% if sl_helper.feed_link_box_value %>
36
+ <div class="gem-c-subscription-links__feed-box js-hidden" id="<%= sl_helper.feed_box_id %>">
37
+ <p class="gem-c-subscription-links__feed-description js-hidden"><%= sl_helper.feed_link_text %></p>
40
38
  <%= render "govuk_publishing_components/components/input", {
41
39
  label: {
42
40
  text: "Copy and paste this URL into your feed reader"
@@ -102,7 +102,7 @@
102
102
  </li>
103
103
  <li class="gem-c-taxonomy-navigation__link">
104
104
  <span id="toggle_<%= section_name %>" class="js-hidden">
105
- <%= hidden_links.to_sentence.html_safe %>
105
+ <%= to_sentence(hidden_links) %>
106
106
  </span>
107
107
  </li>
108
108
  <% end %>
@@ -1,13 +1,27 @@
1
- <% translations ||= [] %>
2
- <% if translations.length > 1 %>
3
- <nav role="navigation" class="gem-c-translation-nav" aria-label="<%= t("common.translations") %>">
1
+ <%
2
+ brand ||= false
3
+ brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
+ translation_helper = GovukPublishingComponents::Presenters::TranslationNavHelper.new(local_assigns)
5
+ %>
6
+ <% if translation_helper.has_translations? %>
7
+ <nav role="navigation"
8
+ class="gem-c-translation-nav <%= brand_helper.brand_class %>"
9
+ aria-label="<%= t("common.translations") %>"
10
+ <%= "data-module=\"track-click\"" if translation_helper.tracking_is_present? %>
11
+ >
4
12
  <ul class="gem-c-translation-nav__list">
5
- <% translations.each.with_index do |translation, i| %>
13
+ <% translation_helper.translations.each.with_index do |translation, i| %>
6
14
  <li class="gem-c-translation-nav__list-item">
7
15
  <% if translation[:active] %>
8
16
  <span lang="<%= translation[:locale] %>"><%= translation[:text] %></span>
9
17
  <% else %>
10
- <%= link_to translation[:text], translation[:base_path], hreflang: translation[:locale], lang: translation[:locale], rel: "alternate" %>
18
+ <%= link_to translation[:text], translation[:base_path],
19
+ hreflang: translation[:locale],
20
+ lang: translation[:locale],
21
+ rel: "alternate",
22
+ class: brand_helper.color_class,
23
+ data: translation[:data_attributes]
24
+ %>
11
25
  <% end %>
12
26
  </li>
13
27
  <% end %>
@@ -0,0 +1,94 @@
1
+ name: "Breadcrumbs"
2
+ description: "Navigational breadcrumbs, showing page hierarchy"
3
+ body: |
4
+ Accepts an array of breadcrumb objects. Each crumb must have a title and a URL.
5
+ shared_accessibility_criteria:
6
+ - link
7
+ accessibility_criteria:
8
+ The breadcrumb links must have a text contrast ratio higher than 4.5:1 against the background colour to meet WCAG AA
9
+ (this especially applies when [using the inverse flag](/component-guide/breadcrumbs/inverse)).
10
+ examples:
11
+ default:
12
+ data:
13
+ breadcrumbs:
14
+ - title: 'Section'
15
+ url: '/section'
16
+ - title: 'Sub-section'
17
+ url: '/section/sub-section'
18
+ inverse:
19
+ description: On a dark background, such as the header of topic pages
20
+ data:
21
+ breadcrumbs:
22
+ - title: 'Section'
23
+ url: '/section'
24
+ - title: 'Sub-section'
25
+ url: '/section/sub-section'
26
+ title: 'Education of disadvantaged children'
27
+ is_current_page: true
28
+ inverse: true
29
+ context:
30
+ dark_background: true
31
+ no_breadcrumbs:
32
+ data:
33
+ breadcrumbs: []
34
+ single_section:
35
+ data:
36
+ breadcrumbs:
37
+ - title: 'Section'
38
+ url: '/section'
39
+ many_breadcrumbs:
40
+ data:
41
+ breadcrumbs:
42
+ - title: 'Home'
43
+ url: '/'
44
+ - title: 'Section'
45
+ url: '/section'
46
+ - title: 'Sub-section'
47
+ url: '/section/sub-section'
48
+ - title: 'Sub Sub-section'
49
+ url: '/section/sub-section/sub-sub-section'
50
+ no_home:
51
+ data:
52
+ breadcrumbs:
53
+ - title: 'Service Manual'
54
+ url: '/service-manual'
55
+ - title: 'Agile Delivery'
56
+ url: '/service-manual/agile-delivery'
57
+ real:
58
+ data:
59
+ breadcrumbs:
60
+ - title: 'Home'
61
+ url: '/'
62
+ - title: 'Passports, travel and living abroad'
63
+ url: '/browse/abroad'
64
+ - title: 'Travel abroad'
65
+ url: '/browse/abroad/travel-abroad'
66
+ last_breadcrumb_is_current_page:
67
+ data:
68
+ breadcrumbs:
69
+ - title: 'Home'
70
+ url: '/'
71
+ - title: 'Passports, travel and living abroad'
72
+ url: '/browse/abroad'
73
+ - title: 'Travel abroad'
74
+ highlight_current_page:
75
+ description: This is currently used on pages tagged to the taxonomy, such as [on this page](https://www.gov.uk/guidance/pupil-premium-information-for-schools-and-alternative-provision-settings).
76
+ data:
77
+ breadcrumbs:
78
+ - title: 'Home'
79
+ url: '/'
80
+ - title: 'Education, training and skills'
81
+ url: '/education'
82
+ - title: 'Education of disadvantaged children'
83
+ is_current_page: true
84
+ collapse_on_mobile:
85
+ description: This is currently used within on pages tagged to the taxonomy, such as [on this page](https://www.gov.uk/guidance/pupil-premium-information-for-schools-and-alternative-provision-settings).
86
+ data:
87
+ collapse_on_mobile: true
88
+ breadcrumbs:
89
+ - title: 'Home'
90
+ url: '/'
91
+ - title: 'Education, training and skills'
92
+ url: '/education'
93
+ is_page_parent: true
94
+ - title: 'Education of disadvantaged children'
@@ -1,7 +1,7 @@
1
1
  name: Heading
2
2
  description: A text heading
3
3
  body: |
4
- A heading tag with an optional id attribute, used predominantly to the left of content on consultations and publications.
4
+ A versatile heading tag component, including options for different heading levels and font sizes.
5
5
 
6
6
  Real world examples:
7
7
 
@@ -17,16 +17,55 @@ examples:
17
17
  default:
18
18
  data:
19
19
  text: 'Download the full outcome'
20
+ specific_heading_level:
21
+ data:
22
+ text: 'Original consultation'
23
+ heading_level: 3
24
+ different_font_sizes:
25
+ description: Choose a different font size. Valid options are 24 (24px) and 19 (19px), with the component defaulting to 27px, appropriate for a H1. This option is not tied to the heading_level option in order to give flexibility.
26
+ data:
27
+ text: 'Heading 3'
28
+ font_size: 19
29
+ with_id_attribute:
30
+ data:
31
+ text: 'Detail of outcome'
32
+ id: 'detail_of_outcome'
20
33
  right_to_left:
21
34
  data:
22
35
  text: 'مستندات'
23
36
  context:
24
37
  right_to_left: true
25
- with_id_attribute:
38
+ with_padding:
39
+ description:
26
40
  data:
27
- text: 'Detail of outcome'
28
- id: 'detail_of_outcome'
29
- specific_heading_level:
41
+ text: 'Padded'
42
+ padding: true
43
+ with_margin:
44
+ description: |
45
+ Configurable bottom margin for the component. This has been built in anticipation of being compatible with a theoretical future model for component margins.
46
+
47
+ Accepted parameters for this option are 2 (gives a margin of gutter-half) and 4 (gutter). See the Sass file for more detail.
30
48
  data:
31
- text: 'Original consultation'
32
- heading_level: 3
49
+ text: 'Really big bottom margin'
50
+ margin_bottom: 4
51
+ with_mobile_top_margin:
52
+ description: |
53
+ On publications and consultations the layout of the page requires that the heading component have spacing above it on mobile. Since this is a specific use case, this is now an option on the component rather than the default behaviour.
54
+
55
+ It is intended that this option will ultimately be deprecated once more of the frontend is componentised and a general component model of margins is implemented.
56
+ data:
57
+ text: 'Consultation description'
58
+ mobile_top_margin: true
59
+ with_border:
60
+ description: A top border can be applied to the component of different thicknesses. Accepted values are 1 (1px), 2 (2px) and 5 (5px). Note that this works best with padding applied.
61
+ data:
62
+ text: 'With a border'
63
+ padding: true
64
+ border_top: 2
65
+ with_branding:
66
+ description: Organisation [colour branding](https://github.com/alphagov/govuk_publishing_components/blob/master/docs/component_branding.md) can be added to the component as shown, if a top border is included.
67
+ data:
68
+ text: 'Branding'
69
+ brand: 'department-for-environment-food-rural-affairs'
70
+ padding: true
71
+ border_top: 5
@@ -43,13 +43,13 @@ examples:
43
43
  data:
44
44
  padding_top: false
45
45
  block: |
46
- <div class="govuk-breadcrumbs " data-module="track-click">
46
+ <div class="gem-c-breadcrumbs " data-module="track-click">
47
47
  <ol>
48
48
  <li class="">
49
- <a data-track-category="breadcrumbClicked" data-track-action="1" data-track-label="/section" data-track-options="{&quot;dimension28&quot;:&quot;2&quot;,&quot;dimension29&quot;:&quot;Section&quot;}" class="govuk-breadcrumbs--inverse" aria-current="false" href="/section">Section</a>
49
+ <a data-track-category="breadcrumbClicked" data-track-action="1" data-track-label="/section" data-track-options="{&quot;dimension28&quot;:&quot;2&quot;,&quot;dimension29&quot;:&quot;Section&quot;}" class="gem-c-breadcrumbs--inverse" aria-current="false" href="/section">Section</a>
50
50
  </li>
51
51
  <li class="">
52
- <a data-track-category="breadcrumbClicked" data-track-action="2" data-track-label="#content" data-track-options="{&quot;dimension28&quot;:&quot;2&quot;,&quot;dimension29&quot;:&quot;Education of disadvantaged children&quot;}" class="govuk-breadcrumbs--inverse breadcrumb-for-current-page " aria-current="page" href="#content">Education of disadvantaged children</a>
52
+ <a data-track-category="breadcrumbClicked" data-track-action="2" data-track-label="#content" data-track-options="{&quot;dimension28&quot;:&quot;2&quot;,&quot;dimension29&quot;:&quot;Education of disadvantaged children&quot;}" class="gem-c-breadcrumbs--inverse gem-c-breadcrumbs--current " aria-current="page" href="#content">Education of disadvantaged children</a>
53
53
  </li>
54
54
  </ol>
55
55
  </div>
@@ -23,13 +23,3 @@ examples:
23
23
  links:
24
24
  world_locations:
25
25
  - analytics_identifier: WL3
26
- with_default_canonical_path:
27
- data:
28
- content_item:
29
- base_path: /test
30
- canonical_path: true
31
- with_overridden_canonical_path:
32
- data:
33
- content_item:
34
- base_path: /test
35
- canonical_path: /this-is-a-test-path
@@ -0,0 +1,38 @@
1
+ name: Share links
2
+ description: Links to share the current page on Facebook or Twitter
3
+ body: |
4
+ Pass complete share URLs to the component. The component will not process a URL into a share link itself.
5
+
6
+ Use only with content that benefits from being shared, for example a consultation.
7
+
8
+ The component will track interactions with the share links to Google Analytics using [Social Interactions](https://developers.google.com/analytics/devguides/collection/analyticsjs/social-interactions)
9
+
10
+ Real world examples:
11
+
12
+ - [News article](/government/news/fast-tracking-uk-innovation-apply-for-business-funding)
13
+ - [Consultation](/government/consultations/soft-drinks-industry-levy)
14
+ - [Right to left](/government/news/uk-sets-out-long-term-support-for-stable-secure-and-prosperous-afghanistan-to-2020.ur)
15
+
16
+ accessibility_criteria: |
17
+ The share link icons must be presentational and ignored by screen readers.
18
+ shared_accessibility_criteria:
19
+ - link
20
+ examples:
21
+ default:
22
+ data:
23
+ facebook_href: '/facebook-link'
24
+ twitter_href: '/twitter-link'
25
+ with_custom_text:
26
+ data:
27
+ title: 'Share this news article'
28
+ facebook_href: '/facebook-share-link'
29
+ twitter_href: '/twitter-share-link'
30
+ with_only_one_link_provided:
31
+ data:
32
+ facebook_href: '/only-facebook-link'
33
+ right_to_left:
34
+ data:
35
+ facebook_href: '/facebook-link'
36
+ twitter_href: '/twitter-link'
37
+ context:
38
+ right_to_left: true
@@ -37,3 +37,32 @@ examples:
37
37
  data:
38
38
  email_signup_link: '/foreign-travel-advice/singapore/email-signup'
39
39
  feed_link_box_value: 'https://www.gov.uk/government/organisations/attorney-generals-office.atom'
40
+ with_branding:
41
+ description: Organisation [colour branding](https://github.com/alphagov/govuk_publishing_components/blob/master/docs/component_branding.md) can be added to the component as shown.
42
+ data:
43
+ brand: 'attorney-generals-office'
44
+ email_signup_link: '/foreign-travel-advice/singapore/email-signup'
45
+ feed_link: '/foreign-travel-advice/singapore.atom'
46
+ with_tracking:
47
+ description: Data attributes can be passed for each link as shown.
48
+ data:
49
+ email_signup_link: '/foreign-travel-advice/singapore/email-signup'
50
+ email_signup_link_data_attributes: {
51
+ track_category: 'email_link_category',
52
+ track_action: 1.1,
53
+ track_label: 'email_link_label',
54
+ track_options: {
55
+ dimension28: 1,
56
+ dimension29: 'dimension29EmailLink'
57
+ }
58
+ }
59
+ feed_link_box_value: 'https://www.gov.uk/government/organisations/attorney-generals-office.atom'
60
+ feed_link_data_attributes: {
61
+ track_category: 'feed_link_category',
62
+ track_action: 1.2,
63
+ track_label: 'feed_link_label',
64
+ track_options: {
65
+ dimension28: 7,
66
+ dimension29: 'dimension29feedLink'
67
+ }
68
+ }
@@ -59,3 +59,41 @@ examples:
59
59
  active: true
60
60
  context:
61
61
  right_to_left: true
62
+ with_branding:
63
+ description: Organisation [colour branding](https://github.com/alphagov/govuk_publishing_components/blob/master/docs/component_branding.md) can be added to the component as shown.
64
+ data:
65
+ brand: 'wales-office'
66
+ translations:
67
+ - locale: 'en'
68
+ base_path: '/en'
69
+ text: 'English'
70
+ active: true
71
+ - locale: 'cy'
72
+ base_path: '/cy'
73
+ text: 'Cymraeg'
74
+ with_tracking:
75
+ description: Data attributes can be passed for each link as shown.
76
+ data:
77
+ translations:
78
+ - locale: 'en'
79
+ base_path: '/en'
80
+ text: 'English'
81
+ active: true
82
+ data_attributes:
83
+ track_category: 'categoryEnglish'
84
+ track_action: 1.1
85
+ track_label: 'labelEnglish'
86
+ track_options:
87
+ dimension28: 1
88
+ dimension29: 'dimension29English'
89
+ - locale: 'cy'
90
+ base_path: '/cy'
91
+ text: 'Cymraeg'
92
+ data_attributes:
93
+ track_category: 'categoryWelsh'
94
+ track_action: 1.2
95
+ track_label: 'labelWelsh'
96
+ track_options:
97
+ dimension28: 1
98
+ dimension29: 'dimension29Welsh'
99
+
@@ -55,7 +55,7 @@
55
55
 
56
56
  <li class="gem-c-related-navigation__link">
57
57
  <span id="toggle_<%= section_title %>" class="js-hidden">
58
- <%= constructed_link_array.to_sentence.html_safe %>
58
+ <%= to_sentence(constructed_link_array) %>
59
59
  </span>
60
60
  </li>
61
61
  <% end %>
@@ -36,7 +36,7 @@
36
36
  </div>
37
37
 
38
38
  <main id="wrapper" class="govuk-component-guide-wrapper">
39
- <%= render 'govuk_component/breadcrumbs', breadcrumbs: @guide_breadcrumbs %>
39
+ <%= render 'govuk_publishing_components/components/breadcrumbs', breadcrumbs: @guide_breadcrumbs %>
40
40
  <% else %>
41
41
  <main id="wrapper">
42
42
  <% end %>
@@ -1,5 +1,6 @@
1
1
  require "govuk_publishing_components/config"
2
2
  require "govuk_publishing_components/engine"
3
+ require "govuk_publishing_components/presenters/breadcrumbs"
3
4
  require "govuk_publishing_components/presenters/contextual_navigation"
4
5
  require "govuk_publishing_components/presenters/related_navigation_helper"
5
6
  require "govuk_publishing_components/presenters/step_by_step_nav_helper"
@@ -12,6 +13,9 @@ require "govuk_publishing_components/presenters/taxonomy_navigation"
12
13
  require "govuk_publishing_components/presenters/rummager_taxonomy_sidebar_links"
13
14
  require "govuk_publishing_components/presenters/curated_taxonomy_sidebar_links"
14
15
  require "govuk_publishing_components/presenters/content_item"
16
+ require "govuk_publishing_components/presenters/translation_nav_helper"
17
+ require "govuk_publishing_components/presenters/subscription_links_helper"
18
+ require "govuk_publishing_components/presenters/heading_helper"
15
19
 
16
20
  require "govuk_publishing_components/app_helpers/taxon_breadcrumbs"
17
21
  require "govuk_publishing_components/app_helpers/brand_helper"
@@ -0,0 +1,39 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class Breadcrumbs
4
+ def initialize(breadcrumbs, request_path)
5
+ @breadcrumbs = breadcrumbs
6
+ @request_path = request_path
7
+ end
8
+
9
+ def structured_data
10
+ {
11
+ "@context" => "http://schema.org",
12
+ "@type" => "BreadcrumbList",
13
+ "itemListElement" => item_list_element,
14
+ }
15
+ end
16
+
17
+ private
18
+
19
+ attr_reader :breadcrumbs, :request_path
20
+
21
+ def item_list_element
22
+ breadcrumbs.each_with_index.map do |crumb, index|
23
+ {
24
+ "@type" => "ListItem",
25
+ "position" => index + 1,
26
+ "item" => list_item_item(crumb)
27
+ }
28
+ end
29
+ end
30
+
31
+ def list_item_item(crumb)
32
+ path = crumb[:is_current_page] ? request_path : crumb[:url]
33
+ item = { "name" => crumb[:title] }
34
+ item["@id"] = Plek.new.website_root + path if path
35
+ item
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,20 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class HeadingHelper
4
+ attr_reader :heading_tag, :id, :classes
5
+
6
+ def initialize(options)
7
+ @heading_tag = "h1"
8
+ @heading_tag = "h#{options[:heading_level]}" if [1, 2, 3, 4, 5, 6].include? options[:heading_level]
9
+ @id = options[:id]
10
+
11
+ @classes = ""
12
+ @classes << " gem-c-heading--font-size-#{options[:font_size]}" if [24, 19].include? options[:font_size]
13
+ @classes << " gem-c-heading--mobile-top-margin" if options[:mobile_top_margin]
14
+ @classes << " gem-c-heading--padding" if options[:padding]
15
+ @classes << " gem-c-heading--margin-bottom-#{options[:margin_bottom]}" if [2, 4].include? options[:margin_bottom]
16
+ @classes << " gem-c-heading--border-top-#{options[:border_top]}" if [1, 2, 5].include? options[:border_top]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -20,7 +20,6 @@ module GovukPublishingComponents
20
20
  meta_tags = add_political_tags(meta_tags)
21
21
  meta_tags = add_taxonomy_tags(meta_tags)
22
22
  meta_tags = add_step_by_step_tags(meta_tags)
23
- meta_tags = add_canonical_tag(meta_tags)
24
23
  meta_tags
25
24
  end
26
25
 
@@ -107,20 +106,6 @@ module GovukPublishingComponents
107
106
  meta_tags
108
107
  end
109
108
 
110
- def add_canonical_tag(meta_tags)
111
- if local_assigns.key?(:canonical_path)
112
- canonical_path = if local_assigns[:canonical_path] == true
113
- content_item[:base_path]
114
- else
115
- local_assigns[:canonical_path]
116
- end
117
-
118
- meta_tags["canonical"] = Plek.new.website_root + canonical_path
119
- end
120
-
121
- meta_tags
122
- end
123
-
124
109
  def has_content_history?
125
110
  (content_item[:public_updated_at] && details[:first_public_at] && content_item[:public_updated_at] != details[:first_public_at]) ||
126
111
  (details[:change_history] && details[:change_history].size > 1)
@@ -84,7 +84,12 @@ module GovukPublishingComponents
84
84
  if link[:href]
85
85
  @link_index += 1
86
86
  href = link_href(link[:active], link[:href])
87
- text = "#{link_text(link[:active], link[:text])} #{create_context(link[:context])}".html_safe
87
+
88
+ text = capture do
89
+ concat link_text(link[:active], link[:text])
90
+ concat " "
91
+ concat create_context(link[:context])
92
+ end
88
93
 
89
94
  link_to(
90
95
  href,
@@ -0,0 +1,45 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class SubscriptionLinksHelper
4
+ attr_reader :feed_box_id, :email_signup_link, :email_signup_link_data_attributes, :feed_link_box_value
5
+
6
+ def initialize(local_assigns)
7
+ @local_assigns = local_assigns
8
+ @feed_box_id = "feed-reader-#{SecureRandom.hex(2)}"
9
+ @email_signup_link = @local_assigns[:email_signup_link]
10
+ @email_signup_link_data_attributes = @local_assigns[:email_signup_link_data_attributes]
11
+ @feed_link_box_value = @local_assigns[:feed_link_box_value]
12
+ end
13
+
14
+ def email_signup_link_text
15
+ return @local_assigns[:email_signup_link_text] if @local_assigns[:email_signup_link_text]
16
+ I18n.t("govuk_component.subscription_links.email_signup_link_text", default: "Get email alerts")
17
+ end
18
+
19
+ def feed_link_text
20
+ return @local_assigns[:feed_link_text] if @local_assigns[:feed_link_text]
21
+ I18n.t("govuk_component.subscription_links.feed_link_text", default: "Subscribe to feed")
22
+ end
23
+
24
+ def component_data_is_valid?
25
+ email_signup_link.present? || feed_link.present? || feed_link_box_value.present?
26
+ end
27
+
28
+ def tracking_is_present?
29
+ @local_assigns[:email_signup_link_data_attributes].present? || @local_assigns[:feed_link_data_attributes].present?
30
+ end
31
+
32
+ def feed_link
33
+ return "#" if feed_link_box_value
34
+ @local_assigns[:feed_link]
35
+ end
36
+
37
+ def feed_link_data_attributes
38
+ data = @local_assigns[:feed_link_data_attributes] || {}
39
+ data[:controls] = feed_box_id
40
+ data[:expanded] = "false"
41
+ data
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class TranslationNavHelper
4
+ attr_reader :translations
5
+
6
+ def initialize(local_assigns)
7
+ @translations = []
8
+ @translations = local_assigns[:translations] if local_assigns[:translations]
9
+ end
10
+
11
+ def has_translations?
12
+ true if @translations.length > 1
13
+ end
14
+
15
+ def tracking_is_present?
16
+ @translations.each do |translation|
17
+ return true if translation[:data_attributes]
18
+ end
19
+ false
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = '7.3.0'.freeze
2
+ VERSION = '8.0.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: 7.3.0
4
+ version: 8.0.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: 2018-05-10 00:00:00.000000000 Z
11
+ date: 2018-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -319,12 +319,14 @@ files:
319
319
  - app/assets/javascripts/govuk_publishing_components/lib/history-support.js
320
320
  - app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
321
321
  - app/assets/javascripts/govuk_publishing_components/lib/toggle.js
322
+ - app/assets/javascripts/govuk_publishing_components/lib/track-share-button-clicks.js
322
323
  - app/assets/stylesheets/component_guide/all_components.scss
323
324
  - app/assets/stylesheets/component_guide/all_components_print.scss
324
325
  - app/assets/stylesheets/component_guide/application.scss
325
326
  - app/assets/stylesheets/govuk_publishing_components/_all_components.scss
326
327
  - app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss
327
328
  - app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss
329
+ - app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss
328
330
  - app/assets/stylesheets/govuk_publishing_components/components/_button.scss
329
331
  - app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss
330
332
  - app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss
@@ -337,6 +339,7 @@ files:
337
339
  - app/assets/stylesheets/govuk_publishing_components/components/_radio.scss
338
340
  - app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss
339
341
  - app/assets/stylesheets/govuk_publishing_components/components/_search.scss
342
+ - app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss
340
343
  - app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss
341
344
  - app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss
342
345
  - app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss
@@ -344,12 +347,14 @@ files:
344
347
  - app/assets/stylesheets/govuk_publishing_components/components/_success-alert.scss
345
348
  - app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-navigation.scss
346
349
  - app/assets/stylesheets/govuk_publishing_components/components/_translation-nav.scss
347
- - app/assets/stylesheets/govuk_publishing_components/components/helpers/_organisation-colours.scss
350
+ - app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss
348
351
  - app/assets/stylesheets/govuk_publishing_components/components/helpers/_px-to-em.scss
349
352
  - app/assets/stylesheets/govuk_publishing_components/components/helpers/_variables.scss
353
+ - app/assets/stylesheets/govuk_publishing_components/components/mixins/_back-arrow.scss
350
354
  - app/assets/stylesheets/govuk_publishing_components/components/mixins/_clearfix.scss
351
355
  - app/assets/stylesheets/govuk_publishing_components/components/mixins/_margins.scss
352
356
  - app/assets/stylesheets/govuk_publishing_components/components/mixins/_media-down.scss
357
+ - app/assets/stylesheets/govuk_publishing_components/components/mixins/_touch-friendly-links.scss
353
358
  - app/assets/stylesheets/govuk_publishing_components/components/print/_feedback.scss
354
359
  - app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss
355
360
  - app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav.scss
@@ -368,6 +373,7 @@ files:
368
373
  - app/views/govuk_publishing_components/component_guide/preview.html.erb
369
374
  - app/views/govuk_publishing_components/component_guide/show.html.erb
370
375
  - app/views/govuk_publishing_components/components/_back_link.html.erb
376
+ - app/views/govuk_publishing_components/components/_breadcrumbs.html.erb
371
377
  - app/views/govuk_publishing_components/components/_button.html.erb
372
378
  - app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb
373
379
  - app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb
@@ -383,6 +389,7 @@ files:
383
389
  - app/views/govuk_publishing_components/components/_radio.html.erb
384
390
  - app/views/govuk_publishing_components/components/_related_navigation.html.erb
385
391
  - app/views/govuk_publishing_components/components/_search.html.erb
392
+ - app/views/govuk_publishing_components/components/_share_links.html.erb
386
393
  - app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb
387
394
  - app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb
388
395
  - app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb
@@ -391,6 +398,7 @@ files:
391
398
  - app/views/govuk_publishing_components/components/_taxonomy_navigation.html.erb
392
399
  - app/views/govuk_publishing_components/components/_translation-nav.html.erb
393
400
  - app/views/govuk_publishing_components/components/docs/back_link.yml
401
+ - app/views/govuk_publishing_components/components/docs/breadcrumbs.yml
394
402
  - app/views/govuk_publishing_components/components/docs/button.yml
395
403
  - app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml
396
404
  - app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml
@@ -406,6 +414,7 @@ files:
406
414
  - app/views/govuk_publishing_components/components/docs/radio.yml
407
415
  - app/views/govuk_publishing_components/components/docs/related_navigation.yml
408
416
  - app/views/govuk_publishing_components/components/docs/search.yml
417
+ - app/views/govuk_publishing_components/components/docs/share_links.yml
409
418
  - app/views/govuk_publishing_components/components/docs/step_by_step_nav.yml
410
419
  - app/views/govuk_publishing_components/components/docs/step_by_step_nav_header.yml
411
420
  - app/views/govuk_publishing_components/components/docs/step_by_step_nav_related.yml
@@ -430,18 +439,22 @@ files:
430
439
  - lib/govuk_publishing_components/config.rb
431
440
  - lib/govuk_publishing_components/engine.rb
432
441
  - lib/govuk_publishing_components/minitest/component_guide_test.rb
442
+ - lib/govuk_publishing_components/presenters/breadcrumbs.rb
433
443
  - lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
434
444
  - lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_taxons.rb
435
445
  - lib/govuk_publishing_components/presenters/content_item.rb
436
446
  - lib/govuk_publishing_components/presenters/contextual_navigation.rb
437
447
  - lib/govuk_publishing_components/presenters/curated_taxonomy_sidebar_links.rb
448
+ - lib/govuk_publishing_components/presenters/heading_helper.rb
438
449
  - lib/govuk_publishing_components/presenters/meta_tags.rb
439
450
  - lib/govuk_publishing_components/presenters/page_with_step_by_step_navigation.rb
440
451
  - lib/govuk_publishing_components/presenters/related_navigation_helper.rb
441
452
  - lib/govuk_publishing_components/presenters/rummager_taxonomy_sidebar_links.rb
442
453
  - lib/govuk_publishing_components/presenters/services.rb
443
454
  - lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb
455
+ - lib/govuk_publishing_components/presenters/subscription_links_helper.rb
444
456
  - lib/govuk_publishing_components/presenters/taxonomy_navigation.rb
457
+ - lib/govuk_publishing_components/presenters/translation_nav_helper.rb
445
458
  - lib/govuk_publishing_components/version.rb
446
459
  - lib/tasks/govuk_publishing_components_tasks.rake
447
460
  homepage: https://github.com/alphagov/govuk_publishing_components