govuk-components 1.1.3 → 1.1.8

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