govuk-components 1.1.3 → 1.1.8

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: 5e09cd54a51ac03334ecd626e7511d08fb8978a2cbb7b10bbdd6390a0e74fc7a
4
- data.tar.gz: f6258410434e206cd0f43352f390f794467fc67ea541ddf2de84d6a5faf29ab5
3
+ metadata.gz: c829ddc2492475939db14c1ad3af5ead810f8fbff0cf43ed79c747f01b7866cf
4
+ data.tar.gz: 777a37175936a10048a020be1bd5612607fb6d1db954b5031af8fe5147b3272b
5
5
  SHA512:
6
- metadata.gz: 639e347636e7bcecf2fdefeba4adfd8b1d1040c90beb083fb52455ecdfc4461531ee7ded5010fdf37291fd8977a1d808d7e92c82c69bb854d2858c12b957a9d0
7
- data.tar.gz: 6e0fe55bfd952729a9a65ff5d9cbca76e500e213e448acb964ccc6ae6f0807f8402df3b18ec01926a015321a4fc396f2adad88008670c47306a8c6c030769d9b
6
+ metadata.gz: ea38981feda270c38323611dcf24440162e0c868de8193501b8b461dc38c8e6533bb17884c60cea42fb75e5b2a855f4ce99dfcf211a9648675d6bd673bd64fdc
7
+ data.tar.gz: 211d2ce55a3a39dea50606a0a076c02a73e2f05904f0cdaf5ad8540ad0e498aa05d62fa58cc185d17ec4cbfe137e18067e593926b758e6eb76c97c9f63722153
@@ -1,15 +1,20 @@
1
1
  class GovukComponent::Breadcrumbs < GovukComponent::Base
2
2
  attr_accessor :breadcrumbs
3
3
 
4
- def initialize(breadcrumbs:, classes: [], html_attributes: {})
4
+ def initialize(breadcrumbs:, hide_in_print: false, collapse_on_mobile: false, classes: [], html_attributes: {})
5
5
  super(classes: classes, html_attributes: html_attributes)
6
6
 
7
- @breadcrumbs = breadcrumbs
7
+ @breadcrumbs = breadcrumbs
8
+ @hide_in_print = hide_in_print
9
+ @collapse_on_mobile = collapse_on_mobile
8
10
  end
9
11
 
10
12
  private
11
13
 
12
14
  def default_classes
13
- %w(govuk-breadcrumbs)
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
14
19
  end
15
20
  end
@@ -5,6 +5,6 @@
5
5
  </span>
6
6
  </summary>
7
7
  <div class="govuk-details__text">
8
- <%= @description || content %>
8
+ <%= content.presence || @description %>
9
9
  </div>
10
10
  <% end %>
@@ -11,6 +11,15 @@
11
11
  <%= @logo %>
12
12
  </span>
13
13
  </span>
14
+ <% if @product_name.present? %>
15
+ <span class="govuk-header__product-name">
16
+ <%= @product_name %>
17
+ </span>
18
+ <% end %>
19
+
20
+ <% if product_description.present? %>
21
+ <%= product_description.content %>
22
+ <% end %>
14
23
  </a>
15
24
  </div>
16
25
  <div class="govuk-header__content">
@@ -21,16 +30,21 @@
21
30
  <% end %>
22
31
 
23
32
  <% if items.any? %>
33
+ <button type="button" class="govuk-header__menu-button govuk-js-header-toggle" aria-controls="navigation" aria-label="Show or hide navigation menu">
34
+ <%= menu_button_label %>
35
+ </button>
24
36
  <nav>
25
- <ul class="govuk-header__navigation " aria-label="Top Level Navigation">
37
+ <%= tag.ul(class: navigation_classes, aria: { label: "Top Level Navigation" }) do %>
26
38
  <% items.each do |item| %>
27
39
  <%= tag.li(class: item.classes.append(item.active_class), **item.html_attributes) do %>
28
- <a class="govuk-header__link" href="<%= item.href %>">
40
+ <% if item.link? %>
41
+ <%= link_to(item.title, item.href, class: "govuk-header__link") %>
42
+ <% else %>
29
43
  <%= item.title %>
30
- </a>
44
+ <% end %>
31
45
  <% end %>
32
46
  <% end %>
33
- </ul>
47
+ <% end %>
34
48
  </nav>
35
49
  <% end %>
36
50
  </div>
@@ -1,18 +1,24 @@
1
1
  class GovukComponent::Header < GovukComponent::Base
2
2
  include ViewComponent::Slotable
3
3
 
4
- attr_accessor :logo, :logo_href, :service_name, :service_name_href
4
+ attr_accessor :logo, :logo_href, :service_name, :service_name_href, :product_name, :menu_button_label
5
5
 
6
6
  with_slot :item, collection: true, class_name: 'Item'
7
7
  wrap_slot :item
8
8
 
9
- def initialize(logo: 'GOV.UK', logo_href: '/', service_name: nil, service_name_href: '/', classes: [], html_attributes: {})
9
+ with_slot :product_description
10
+ wrap_slot :product_description
11
+
12
+ def initialize(logo: 'GOV.UK', logo_href: '/', service_name: nil, service_name_href: '/', product_name: nil, menu_button_label: 'Menu', classes: [], navigation_classes: [], html_attributes: {})
10
13
  super(classes: classes, html_attributes: html_attributes)
11
14
 
12
- @logo = logo
13
- @logo_href = logo_href
14
- @service_name = service_name
15
- @service_name_href = service_name_href
15
+ @logo = logo
16
+ @logo_href = logo_href
17
+ @service_name = service_name
18
+ @service_name_href = service_name_href
19
+ @product_name = product_name
20
+ @menu_button_label = menu_button_label
21
+ @navigation_classes = navigation_classes
16
22
  end
17
23
 
18
24
  private
@@ -21,10 +27,16 @@ private
21
27
  %w(govuk-header)
22
28
  end
23
29
 
30
+ def navigation_classes
31
+ %w(govuk-header__navigation).tap { |nc|
32
+ nc.concat(@navigation_classes.is_a?(String) ? @navigation_classes.split : @navigation_classes)
33
+ }.uniq
34
+ end
35
+
24
36
  class Item < GovukComponent::Slot
25
37
  attr_accessor :title, :href, :active
26
38
 
27
- def initialize(title:, href:, active: false, classes: [], html_attributes: {})
39
+ def initialize(title:, href: nil, active: false, classes: [], html_attributes: {})
28
40
  super(classes: classes, html_attributes: html_attributes)
29
41
 
30
42
  self.title = title
@@ -40,6 +52,10 @@ private
40
52
  %w(govuk-header__navigation-item--active) if active?
41
53
  end
42
54
 
55
+ def link?
56
+ href.present?
57
+ end
58
+
43
59
  private
44
60
 
45
61
  def default_classes
@@ -1,14 +1,18 @@
1
1
  class GovukComponent::InsetText < GovukComponent::Base
2
2
  attr_accessor :text
3
3
 
4
- def initialize(text:, classes: [], html_attributes: {})
4
+ def initialize(text: nil, classes: [], html_attributes: {})
5
5
  super(classes: classes, html_attributes: html_attributes)
6
6
 
7
7
  @text = text
8
8
  end
9
9
 
10
10
  def call
11
- tag.div(class: classes, **html_attributes) { @text }
11
+ tag.div(class: classes, **html_attributes) { content.presence || @text }
12
+ end
13
+
14
+ def render?
15
+ @text.present? || content.present?
12
16
  end
13
17
 
14
18
  private
@@ -1,9 +1,13 @@
1
1
  <%= tag.div(class: classes, **html_attributes) do %>
2
- <h1 class="govuk-panel__title">
3
- <%= @title %>
4
- </h1>
2
+ <% if display_title? %>
3
+ <h1 class="govuk-panel__title">
4
+ <%= @title %>
5
+ </h1>
6
+ <% end %>
5
7
 
6
- <div class="govuk-panel__body">
7
- <%= @body %>
8
- </div>
8
+ <% if display_body? %>
9
+ <div class="govuk-panel__body">
10
+ <%= content.presence || @body %>
11
+ </div>
12
+ <% end %>
9
13
  <% end %>
@@ -1,7 +1,7 @@
1
1
  class GovukComponent::Panel < GovukComponent::Base
2
2
  attr_accessor :title, :body
3
3
 
4
- def initialize(title:, body:, classes: [], html_attributes: {})
4
+ def initialize(title: nil, body: nil, classes: [], html_attributes: {})
5
5
  super(classes: classes, html_attributes: html_attributes)
6
6
 
7
7
  @title = title
@@ -13,4 +13,16 @@ private
13
13
  def default_classes
14
14
  %w(govuk-panel govuk-panel--confirmation)
15
15
  end
16
+
17
+ def display_title?
18
+ @title.present?
19
+ end
20
+
21
+ def display_body?
22
+ [@body, content].any?(&:present?)
23
+ end
24
+
25
+ def render?
26
+ display_title? || display_body?
27
+ end
16
28
  end
@@ -1,10 +1,8 @@
1
1
  <%= tag.div(class: classes, **html_attributes) do %>
2
2
  <p class="govuk-phase-banner__content">
3
- <strong class="govuk-tag govuk-phase-banner__content__tag">
4
- <%= @phase %>
5
- </strong>
3
+ <%= render(phase_tag) %>
6
4
  <span class="govuk-phase-banner__text">
7
- <%= @text || content %>
5
+ <%= content.presence || @text %>
8
6
  </span>
9
7
  </p>
10
8
  <% end %>
@@ -1,11 +1,11 @@
1
1
  class GovukComponent::PhaseBanner < GovukComponent::Base
2
- attr_accessor :phase, :text
2
+ attr_accessor :phase_tag, :text
3
3
 
4
- def initialize(phase:, text: nil, classes: [], html_attributes: {})
4
+ def initialize(phase_tag: nil, text: nil, classes: [], html_attributes: {})
5
5
  super(classes: classes, html_attributes: html_attributes)
6
6
 
7
- @phase = phase
8
- @text = text
7
+ @phase_tag = GovukComponent::Tag.new(classes: "govuk-phase-banner__content__tag", **phase_tag)
8
+ @text = text
9
9
  end
10
10
 
11
11
  private
@@ -1,5 +1,5 @@
1
1
  module Govuk
2
2
  module Components
3
- VERSION = '1.1.3'.freeze
3
+ VERSION = '1.1.8'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk-components
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - DfE developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-11 00:00:00.000000000 Z
11
+ date: 2021-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,25 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: view_component
28
+ name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.22.1
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: 2.27.0
33
+ version: '6.0'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
- version: 2.22.1
44
- - - "<"
40
+ version: '6.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: view_component
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.20'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
45
53
  - !ruby/object:Gem::Version
46
- version: 2.27.0
54
+ version: '2.20'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: capybara
49
57
  requirement: !ruby/object:Gem::Requirement