govuk-components 2.1.0 → 2.1.4

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: 97d2ca8aa2e5c29f692f791ec5e91d98a8aea3ed49cb6d03071aca7ac19dfee5
4
- data.tar.gz: 6afbe25f03a8ee9d053a1c563d821e8e82b6f5471fdf9b30549aa3bed582a22a
3
+ metadata.gz: c5a21817c2a776dc4571b5d5dab5a6492d4648672c6ec1603b1955132a811108
4
+ data.tar.gz: 00e69dbbf540695dcaa130e21f9a340293d80cc73bbb1b9ee6827e39c063d0e7
5
5
  SHA512:
6
- metadata.gz: 2ea35b519c098911bdff24e526ed013baff28bd74a13a48661ff0531000e0f78274dad0c39bc99ebab2b8b2fb5643b19c021fa073ab805498edba1597c2697dd
7
- data.tar.gz: 62ed085b07abb5321f15b9a72ce4df1f07129a7147757b657bfb7c70961fae263e1554cca61fcaca01daadfd0530f8bced219623e5b223ff7f638a0421d9e5da
6
+ metadata.gz: e2308aa03c1af4efb1aae22af50322cbb7aebdf03b1c8668b12918b8c1edcf53c197217ef66b7ab19d46c218386f60075f78e99957726e898e3492df5e0c7dfa
7
+ data.tar.gz: 77bccd1dd23d937d82c1e058fed2803a14e62a99e15acdb4841134249b24bef8992a9347c11920a95a620d28a13f0d7af187f992c1e8f232c45eda5c99bc969e
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/cbcbc140f300b920d833/maintainability)](https://codeclimate.com/github/DFE-Digital/govuk-components/maintainability)
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/cbcbc140f300b920d833/test_coverage)](https://codeclimate.com/github/DFE-Digital/govuk-components/test_coverage)
6
6
  [![GitHub license](https://img.shields.io/github/license/DFE-Digital/govuk-components)](https://github.com/DFE-Digital/govuk-components/blob/master/LICENSE)
7
- [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-3.13.0-brightgreen)](https://design-system.service.gov.uk)
7
+ [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-3.13.1-brightgreen)](https://design-system.service.gov.uk)
8
8
 
9
9
  This gem provides a suite of reusable components for the [GOV.UK Design System](https://design-system.service.gov.uk/). It is intended to provide a lightweight alternative to the [GOV.UK Publishing Components](https://github.com/alphagov/govuk_publishing_components) library and is built with Github's [ViewComponent](https://github.com/github/view_component) framework.
10
10
 
@@ -32,6 +32,7 @@ The provided components are:
32
32
  * [Start button](https://dfe-digital.github.io/govuk-components/#start-button)
33
33
  * [Summary list](https://dfe-digital.github.io/govuk-components/#summary-list)
34
34
  * [Tabs](https://dfe-digital.github.io/govuk-components/#tabs)
35
+ * [Tables](https://dfe-digital.github.io/govuk-components/#table)
35
36
  * [Tags](https://dfe-digital.github.io/govuk-components/#tags)
36
37
  * [Warning text](https://dfe-digital.github.io/govuk-components/#warning-text)
37
38
 
@@ -34,8 +34,6 @@ class GovukComponent::AccordionComponent::SectionComponent < GovukComponent::Bas
34
34
  private
35
35
 
36
36
  def default_classes
37
- %w(govuk-accordion__section).tap do |classes|
38
- classes.append("govuk-accordion__section--expanded") if expanded?
39
- end
37
+ class_names("govuk-accordion__section", "govuk-accordion__section--expanded" => expanded?).split
40
38
  end
41
39
  end
@@ -12,10 +12,11 @@ class GovukComponent::BreadcrumbsComponent < GovukComponent::Base
12
12
  private
13
13
 
14
14
  def default_classes
15
- %w(govuk-breadcrumbs).tap do |classes|
16
- classes << "govuk-!-display-none-print" if hide_in_print
17
- classes << "govuk-breadcrumbs--collapse-on-mobile" if collapse_on_mobile
18
- end
15
+ class_names(
16
+ "govuk-breadcrumbs",
17
+ "govuk-!-display-none-print" => hide_in_print,
18
+ "govuk-breadcrumbs--collapse-on-mobile" => collapse_on_mobile
19
+ ).split
19
20
  end
20
21
 
21
22
  def build_list(breadcrumbs)
@@ -33,7 +34,7 @@ private
33
34
  if link.present?
34
35
  list_item { link_to(text, link, class: "govuk-breadcrumbs__link") }
35
36
  else
36
- list_item(aria: { current: "page" }) { text }
37
+ list_item(aria: { current: "page" }) { text.to_s }
37
38
  end
38
39
  end
39
40
 
@@ -51,7 +51,7 @@ private
51
51
  def wrap_in_p(message_text)
52
52
  return if message_text.blank?
53
53
 
54
- tag.p(message_text)
54
+ tag.p(message_text, class: "govuk-body")
55
55
  end
56
56
 
57
57
  def actions_element
@@ -1,13 +1,14 @@
1
1
  class GovukComponent::CookieBannerComponent < GovukComponent::Base
2
2
  renders_many :messages, GovukComponent::CookieBannerComponent::MessageComponent
3
3
 
4
- attr_accessor :aria_label, :hidden
4
+ attr_accessor :aria_label, :hidden, :hide_in_print
5
5
 
6
- def initialize(aria_label: "Cookie banner", hidden: false, classes: [], html_attributes: {})
6
+ def initialize(aria_label: "Cookie banner", hidden: false, hide_in_print: true, classes: [], html_attributes: {})
7
7
  super(classes: classes, html_attributes: html_attributes)
8
8
 
9
- @aria_label = aria_label
10
- @hidden = hidden
9
+ @aria_label = aria_label
10
+ @hidden = hidden
11
+ @hide_in_print = hide_in_print
11
12
  end
12
13
 
13
14
  def call
@@ -19,6 +20,6 @@ class GovukComponent::CookieBannerComponent < GovukComponent::Base
19
20
  private
20
21
 
21
22
  def default_classes
22
- %w(govuk-cookie-banner)
23
+ class_names("govuk-cookie-banner", "govuk-!-display-none-print" => hide_in_print).split
23
24
  end
24
25
  end
@@ -1,5 +1,13 @@
1
1
  <%= tag.footer(class: classes, role: 'contentinfo', **html_attributes) do %>
2
2
  <%= tag.div(class: container_classes, **container_html_attributes) do %>
3
+ <% if navigation.present? %>
4
+ <div class="govuk-footer__navigation">
5
+ <%= navigation %>
6
+ </div>
7
+
8
+ <hr class="govuk-footer__section-break">
9
+ <% end %>
10
+
3
11
  <%= tag.div(class: meta_classes, **meta_html_attributes) do %>
4
12
  <% if meta.present? %>
5
13
  <%= meta %>
@@ -31,9 +39,8 @@
31
39
  <%= meta_content %>
32
40
  <% end %>
33
41
  </div>
34
- <div class="govuk-footer__meta">
35
- <%= tag.div(copyright, class: "govuk-footer__meta-item") %>
36
- </div>
42
+
43
+ <%= tag.div(copyright, class: "govuk-footer__meta-item") %>
37
44
  <% end %>
38
45
  <% end %>
39
46
  <% end %>
@@ -1,6 +1,7 @@
1
1
  class GovukComponent::FooterComponent < GovukComponent::Base
2
2
  renders_one :meta_html
3
3
  renders_one :meta
4
+ renders_one :navigation
4
5
 
5
6
  attr_reader :meta_items, :meta_text, :meta_items_title, :meta_licence, :copyright, :custom_container_classes
6
7
 
@@ -7,11 +7,19 @@
7
7
  <%= custom_logo %>
8
8
  <% else %>
9
9
  <% if crown %>
10
+ <!--[if gt IE 8]><!-->
10
11
  <svg aria-hidden="true" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 132 97" height="30" width="36">
11
12
  <path fill="currentColor" fill-rule="evenodd" d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"></path>
12
- <image src="/assets/images/govuk-logotype-crown.png" xlink:href="" class="govuk-header__logotype-crown-fallback-image" width="36" height="32"></image>
13
13
  </svg>
14
+ <!--<![endif]-->
14
15
  <% end %>
16
+
17
+ <% if crown_fallback_image_path.present? %>
18
+ <!--[if IE 8]>
19
+ <%= image_tag(crown_fallback_image_path, **crown_fallback_image_attributes) %>
20
+ <![endif]-->
21
+ <% end %>
22
+
15
23
  <%= tag.span(logotype, class: "govuk-header__logotype-text") %>
16
24
  <% end %>
17
25
  </span>
@@ -32,9 +40,7 @@
32
40
  <nav>
33
41
  <%= tag.ul(class: navigation_classes, id: "navigation", aria: { label: navigation_label }) do %>
34
42
  <% navigation_items.each do |item| %>
35
- <%= tag.li(class: item.classes.append(item.active_class), **item.html_attributes) do %>
36
- <%= item %>
37
- <% end %>
43
+ <%= item %>
38
44
  <% end %>
39
45
  <% end %>
40
46
  </nav>
@@ -5,6 +5,7 @@ class GovukComponent::HeaderComponent < GovukComponent::Base
5
5
 
6
6
  attr_reader :logotype,
7
7
  :crown,
8
+ :crown_fallback_image_path,
8
9
  :homepage_url,
9
10
  :service_name,
10
11
  :service_url,
@@ -17,6 +18,7 @@ class GovukComponent::HeaderComponent < GovukComponent::Base
17
18
  html_attributes: {},
18
19
  logotype: 'GOV.UK',
19
20
  crown: true,
21
+ crown_fallback_image_path: nil,
20
22
  homepage_url: '/',
21
23
  menu_button_label: 'Show or hide navigation menu',
22
24
  navigation_classes: [],
@@ -29,6 +31,7 @@ class GovukComponent::HeaderComponent < GovukComponent::Base
29
31
 
30
32
  @logotype = logotype
31
33
  @crown = crown
34
+ @crown_fallback_image_path = crown_fallback_image_path
32
35
  @homepage_url = homepage_url
33
36
  @service_name = service_name
34
37
  @service_url = service_url
@@ -52,23 +55,33 @@ private
52
55
  combine_classes(%w(govuk-header__container govuk-width-container), custom_container_classes)
53
56
  end
54
57
 
58
+ def crown_fallback_image_attributes
59
+ {
60
+ class: "govuk-header__logotype-crown-fallback-image",
61
+ width: "36",
62
+ height: "32",
63
+ }
64
+ end
65
+
55
66
  class NavigationItem < GovukComponent::Base
56
- attr_reader :text, :href, :active
67
+ attr_reader :text, :href, :options, :active
57
68
 
58
- def initialize(text:, href: nil, active: false, classes: [], html_attributes: {})
69
+ def initialize(text:, href: nil, options: {}, active: nil, classes: [], html_attributes: {})
59
70
  super(classes: classes, html_attributes: html_attributes)
60
71
 
61
- @text = text
62
- @href = href
63
- @active = active
72
+ @text = text
73
+ @href = href
74
+ @options = options
75
+
76
+ @active_override = active
64
77
  end
65
78
 
66
- def active?
67
- active
79
+ def before_render
80
+ @active = active?(@active_override)
68
81
  end
69
82
 
70
83
  def active_class
71
- %w(govuk-header__navigation-item--active) if active?
84
+ %w(govuk-header__navigation-item--active) if @active
72
85
  end
73
86
 
74
87
  def link?
@@ -76,15 +89,23 @@ private
76
89
  end
77
90
 
78
91
  def call
79
- if link?
80
- link_to(text, href, class: "govuk-header__link")
81
- else
82
- text
92
+ tag.li(class: classes.append(active_class), **html_attributes) do
93
+ if link?
94
+ link_to(text, href, **options, class: "govuk-header__link")
95
+ else
96
+ text
97
+ end
83
98
  end
84
99
  end
85
100
 
86
101
  private
87
102
 
103
+ def active?(active_override)
104
+ return current_page?(href) if active_override.nil?
105
+
106
+ active_override
107
+ end
108
+
88
109
  def default_classes
89
110
  %w(govuk-header__navigation-item)
90
111
  end
@@ -35,9 +35,7 @@ private
35
35
  end
36
36
 
37
37
  def li_classes(i = nil)
38
- %w(govuk-tabs__list-item).tap do |c|
39
- c.append("govuk-tabs__list-item--selected") if i&.zero?
40
- end
38
+ class_names("govuk-tabs__list-item", "govuk-tabs__list-item--selected" => i&.zero?).split
41
39
  end
42
40
 
43
41
  def li_link
@@ -26,9 +26,7 @@ private
26
26
  end
27
27
 
28
28
  def default_classes
29
- %w(govuk-table__caption).tap do |c|
30
- c << caption_size_class if @size
31
- end
29
+ class_names("govuk-table__caption", caption_size_class => size).split
32
30
  end
33
31
 
34
32
  def caption_size_class
@@ -37,19 +37,13 @@ private
37
37
 
38
38
  def default_classes
39
39
  if header
40
- %w(govuk-table__header).tap do |c|
41
- c << "govuk-table__header--numeric" if numeric?
42
- c << width_class if width?
43
- end
40
+ class_names("govuk-table__header", "govuk-table__header--numeric" => numeric?, width_class => width?).split
44
41
  else
45
- %w(govuk-table__cell).tap do |c|
46
- c << "govuk-table__cell--numeric" if numeric?
47
- c << width_class if width?
48
- end
42
+ class_names("govuk-table__cell", "govuk-table__cell--numeric" => numeric?, width_class => width?).split
49
43
  end
50
44
  end
51
45
 
52
46
  def width_class
53
- WIDTHS.fetch(width)
47
+ WIDTHS.fetch(width, nil)
54
48
  end
55
49
  end
@@ -1,5 +1,5 @@
1
1
  module Govuk
2
2
  module Components
3
- VERSION = '2.1.0'.freeze
3
+ VERSION = '2.1.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk-components
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - DfE developers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-03 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -220,7 +220,7 @@ homepage: https://github.com/DFE-Digital/govuk-components
220
220
  licenses:
221
221
  - MIT
222
222
  metadata: {}
223
- post_install_message:
223
+ post_install_message:
224
224
  rdoc_options: []
225
225
  require_paths:
226
226
  - lib
@@ -236,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
236
  version: '0'
237
237
  requirements: []
238
238
  rubygems_version: 3.1.6
239
- signing_key:
239
+ signing_key:
240
240
  specification_version: 4
241
241
  summary: Lightweight set of reusable GOV.UK Design System components
242
242
  test_files: []