govuk-components 5.0.0 → 5.0.2
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 +4 -4
- data/README.md +1 -1
- data/app/components/govuk_component/accordion_component.rb +1 -1
- data/app/components/govuk_component/summary_list_component/action_component.rb +10 -4
- data/app/components/govuk_component/summary_list_component/card_component.html.erb +1 -1
- data/app/components/govuk_component/summary_list_component/card_component.rb +4 -0
- data/app/components/govuk_component/summary_list_component/row_component.rb +14 -3
- data/app/components/govuk_component/summary_list_component.rb +13 -7
- data/app/components/govuk_component/tab_component.rb +1 -1
- data/app/components/govuk_component/task_list_component/item_component.rb +6 -1
- data/app/components/govuk_component/task_list_component/status_component.rb +13 -6
- data/app/helpers/govuk_link_helper.rb +15 -1
- data/lib/govuk/components/version.rb +1 -1
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ea92186b060054ebbab68352b115d86c1a051ac637fa6cb2baf16299a0e1c9e
|
4
|
+
data.tar.gz: 4e230e506c271f6c905ae11f1b9703449d9cff10385b9722643865b55e135377
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad1b1774616a6345aacda5a61d92d7a11f4074d72eb00a86f055db0ad1d77f98485b843892d1f482fa231513f9a163b01bbb54e07b5be44e58e0c8884a6cf8a3
|
7
|
+
data.tar.gz: 773ab4a3aa83dc5eff40e946ceea1a9fda5d414cbabcaf8bd3838140cc0525ea97b151b3d7b98bca6e638be820ee7b133cd8a9089c8b7dce2485a9319866bcac
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
[](https://rubygems.org/gems/govuk-components)
|
7
7
|
[](https://codeclimate.com/github/x-govuk/govuk-components/test_coverage)
|
8
8
|
[](https://github.com/x-govuk/govuk-components/blob/main/LICENSE.txt)
|
9
|
-
[](https://design-system.service.gov.uk)
|
10
10
|
[](https://viewcomponent.org/)
|
11
11
|
[](https://weblog.rubyonrails.org/releases/)
|
12
12
|
[](https://www.ruby-lang.org/en/downloads/)
|
@@ -3,7 +3,7 @@ class GovukComponent::AccordionComponent < GovukComponent::Base
|
|
3
3
|
GovukComponent::AccordionComponent::SectionComponent.new(
|
4
4
|
classes: classes,
|
5
5
|
expanded: expanded,
|
6
|
-
heading_level: heading_level,
|
6
|
+
heading_level: heading_level, # set once at parent level, passed to all children
|
7
7
|
html_attributes: html_attributes,
|
8
8
|
summary_text: summary_text,
|
9
9
|
heading_text: heading_text,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class GovukComponent::SummaryListComponent::ActionComponent < GovukComponent::Base
|
2
|
-
attr_reader :href, :text, :visually_hidden_text, :attributes, :classes
|
2
|
+
attr_reader :href, :text, :visually_hidden_text, :visually_hidden_action_suffix, :attributes, :classes
|
3
3
|
|
4
|
-
def initialize(href: nil, text: 'Change', visually_hidden_text: false, classes: [], html_attributes: {})
|
4
|
+
def initialize(href: nil, text: 'Change', visually_hidden_text: false, visually_hidden_action_suffix: nil, classes: [], html_attributes: {})
|
5
5
|
@visually_hidden_text = visually_hidden_text
|
6
6
|
|
7
7
|
if config.require_summary_list_action_visually_hidden_text && visually_hidden_text == false
|
@@ -9,9 +9,9 @@ class GovukComponent::SummaryListComponent::ActionComponent < GovukComponent::Ba
|
|
9
9
|
end
|
10
10
|
|
11
11
|
super(classes: classes, html_attributes: html_attributes)
|
12
|
-
|
13
12
|
@href = href
|
14
13
|
@text = text
|
14
|
+
@visually_hidden_action_suffix = visually_hidden_action_suffix
|
15
15
|
end
|
16
16
|
|
17
17
|
def render?
|
@@ -36,7 +36,13 @@ private
|
|
36
36
|
content || text || fail(ArgumentError, "no text or content")
|
37
37
|
end
|
38
38
|
|
39
|
+
def visually_hidden_content
|
40
|
+
return "#{visually_hidden_text} (#{visually_hidden_action_suffix})" if visually_hidden_action_suffix
|
41
|
+
|
42
|
+
visually_hidden_text
|
43
|
+
end
|
44
|
+
|
39
45
|
def visually_hidden_span
|
40
|
-
tag.span(%( #{
|
46
|
+
tag.span(%( #{visually_hidden_content}), class: "#{brand}-visually-hidden") if visually_hidden_text.present?
|
41
47
|
end
|
42
48
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<% if actions.any? %>
|
6
6
|
<ul class="<%= brand %>-summary-card__actions">
|
7
7
|
<% actions.each do |action| %>
|
8
|
-
<%= tag.li(action, class: "#{brand}-summary-card__action") %>
|
8
|
+
<%= tag.li(action_text(action), class: "#{brand}-summary-card__action") %>
|
9
9
|
<% end %>
|
10
10
|
</ul>
|
11
11
|
<% end %>
|
@@ -1,12 +1,23 @@
|
|
1
1
|
class GovukComponent::SummaryListComponent::RowComponent < GovukComponent::Base
|
2
|
-
attr_reader :href, :visually_hidden_text, :show_actions_column
|
2
|
+
attr_reader :href, :visually_hidden_text, :show_actions_column, :visually_hidden_action_suffix
|
3
3
|
|
4
4
|
renders_one :key, GovukComponent::SummaryListComponent::KeyComponent
|
5
5
|
renders_one :value, GovukComponent::SummaryListComponent::ValueComponent
|
6
|
-
renders_many :actions,
|
6
|
+
renders_many :actions, ->(href: nil, text: 'Change', visually_hidden_text: false, classes: [], html_attributes: {}, &block) do
|
7
|
+
GovukComponent::SummaryListComponent::ActionComponent.new(
|
8
|
+
href: href,
|
9
|
+
text: text,
|
10
|
+
visually_hidden_text: visually_hidden_text,
|
11
|
+
visually_hidden_action_suffix: visually_hidden_action_suffix,
|
12
|
+
classes: classes,
|
13
|
+
html_attributes: html_attributes,
|
14
|
+
&block
|
15
|
+
)
|
16
|
+
end
|
7
17
|
|
8
|
-
def initialize(show_actions_column: nil, classes: [], html_attributes: {})
|
18
|
+
def initialize(show_actions_column: nil, visually_hidden_action_suffix: nil, classes: [], html_attributes: {})
|
9
19
|
@show_actions_column = show_actions_column
|
20
|
+
@visually_hidden_action_suffix = visually_hidden_action_suffix
|
10
21
|
|
11
22
|
super(classes: classes, html_attributes: html_attributes)
|
12
23
|
end
|
@@ -1,20 +1,22 @@
|
|
1
1
|
module GovukComponent
|
2
2
|
class SummaryListComponent < GovukComponent::Base
|
3
|
-
attr_reader :borders, :actions, :card
|
3
|
+
attr_reader :borders, :actions, :card, :visually_hidden_action_suffix
|
4
4
|
|
5
5
|
renders_many :rows, ->(classes: [], html_attributes: {}, &block) do
|
6
6
|
GovukComponent::SummaryListComponent::RowComponent.new(
|
7
7
|
show_actions_column: @show_actions_column,
|
8
|
+
visually_hidden_action_suffix: visually_hidden_action_suffix || card&.title,
|
8
9
|
classes: classes,
|
9
10
|
html_attributes: html_attributes,
|
10
11
|
&block
|
11
12
|
)
|
12
13
|
end
|
13
14
|
|
14
|
-
def initialize(rows: nil, actions: true, borders: config.default_summary_list_borders, card: nil, classes: [], html_attributes: {})
|
15
|
-
@borders
|
16
|
-
@show_actions_column
|
17
|
-
@card
|
15
|
+
def initialize(rows: nil, actions: true, borders: config.default_summary_list_borders, card: {}, visually_hidden_action_suffix: nil, classes: [], html_attributes: {})
|
16
|
+
@borders = borders
|
17
|
+
@show_actions_column = actions
|
18
|
+
@card = GovukComponent::SummaryListComponent::CardComponent.new(**card) if card.present?
|
19
|
+
@visually_hidden_action_suffix = visually_hidden_action_suffix
|
18
20
|
|
19
21
|
super(classes: classes, html_attributes: html_attributes)
|
20
22
|
|
@@ -26,16 +28,20 @@ module GovukComponent
|
|
26
28
|
def call
|
27
29
|
summary_list = tag.dl(**html_attributes) { safe_join(rows) }
|
28
30
|
|
29
|
-
(card
|
31
|
+
(card?) ? card_with(summary_list) : summary_list
|
30
32
|
end
|
31
33
|
|
32
34
|
private
|
33
35
|
|
36
|
+
def card?
|
37
|
+
@card.present?
|
38
|
+
end
|
39
|
+
|
34
40
|
# we're not using `renders_one` here because we always want the card to render
|
35
41
|
# outside of the summary list. when manually building use
|
36
42
|
# govuk_summary_list_card { govuk_summary_list }
|
37
43
|
def card_with(summary_list)
|
38
|
-
render(
|
44
|
+
render(@card) { summary_list }
|
39
45
|
end
|
40
46
|
|
41
47
|
def borders_class
|
@@ -1,10 +1,11 @@
|
|
1
1
|
module GovukComponent
|
2
2
|
class TaskListComponent::ItemComponent < GovukComponent::Base
|
3
|
-
renders_one :status, ->(text: nil, classes: [], html_attributes: {}, &block) do
|
3
|
+
renders_one :status, ->(text: nil, cannot_start_yet: false, classes: [], html_attributes: {}, &block) do
|
4
4
|
GovukComponent::TaskListComponent::StatusComponent.new(
|
5
5
|
id_prefix: @id_prefix,
|
6
6
|
count: @count,
|
7
7
|
text: text,
|
8
|
+
cannot_start_yet: cannot_start_yet,
|
8
9
|
classes: classes,
|
9
10
|
html_attributes: html_attributes,
|
10
11
|
&block
|
@@ -39,6 +40,10 @@ module GovukComponent
|
|
39
40
|
end
|
40
41
|
|
41
42
|
def call
|
43
|
+
if href.presence && status_content.cannot_start_yet
|
44
|
+
fail(ArgumentError, "item cannot have a href with status where cannot_start_yet: true")
|
45
|
+
end
|
46
|
+
|
42
47
|
adjusted_html_attributes = if href.present? || title&.href.present?
|
43
48
|
html_attributes_with_link_class
|
44
49
|
else
|
@@ -1,11 +1,12 @@
|
|
1
1
|
module GovukComponent
|
2
2
|
class TaskListComponent::StatusComponent < GovukComponent::Base
|
3
|
-
attr_reader :id_prefix, :text, :count
|
3
|
+
attr_reader :id_prefix, :text, :cannot_start_yet, :count
|
4
4
|
|
5
|
-
def initialize(text: nil, id_prefix: nil, count: nil, classes: [], html_attributes: {})
|
6
|
-
@text
|
7
|
-
@count
|
8
|
-
@id_prefix
|
5
|
+
def initialize(text: nil, id_prefix: nil, count: nil, cannot_start_yet: false, classes: [], html_attributes: {})
|
6
|
+
@text = text
|
7
|
+
@count = count
|
8
|
+
@id_prefix = id_prefix
|
9
|
+
@cannot_start_yet = cannot_start_yet
|
9
10
|
|
10
11
|
super(classes: classes, html_attributes: html_attributes)
|
11
12
|
end
|
@@ -21,7 +22,13 @@ module GovukComponent
|
|
21
22
|
private
|
22
23
|
|
23
24
|
def default_attributes
|
24
|
-
{
|
25
|
+
{
|
26
|
+
class: class_names(
|
27
|
+
"govuk-task-list__status",
|
28
|
+
"govuk-task-list__status--cannot-start-yet" => cannot_start_yet,
|
29
|
+
),
|
30
|
+
id: [id_prefix, count, "status"].compact.join("-"),
|
31
|
+
}
|
25
32
|
end
|
26
33
|
|
27
34
|
def status_text
|
@@ -44,7 +44,7 @@ module GovukLinkHelper
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def govuk_breadcrumb_link_to(name, href = nil, **kwargs, &block)
|
47
|
-
link_args = { class: "#{brand}-
|
47
|
+
link_args = { class: "#{brand}-breadcrumbs__link" }.deep_merge_html_attributes(kwargs)
|
48
48
|
|
49
49
|
link_to(name, href, **link_args, &block)
|
50
50
|
end
|
@@ -88,12 +88,18 @@ private
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def extract_link_args(new_tab: false, inverse: false, muted: false, no_underline: false, no_visited_state: false, text_colour: false, **kwargs)
|
91
|
+
Rails.logger.warn(actions_warning_message(kwargs.fetch(:action))) if kwargs.key?(:action)
|
92
|
+
Rails.logger.warn(controller_warning_message(kwargs.fetch(:controller))) if kwargs.key?(:controller)
|
93
|
+
|
91
94
|
link_classes = extract_link_classes(inverse: inverse, muted: muted, no_underline: no_underline, no_visited_state: no_visited_state, text_colour: text_colour)
|
92
95
|
|
93
96
|
{ **link_classes, **new_tab_args(new_tab) }.deep_merge_html_attributes(kwargs)
|
94
97
|
end
|
95
98
|
|
96
99
|
def extract_button_link_args(new_tab: false, disabled: false, inverse: false, secondary: false, warning: false, **kwargs)
|
100
|
+
Rails.logger.warn(actions_warning_message(kwargs.fetch(:action))) if kwargs.key?(:action)
|
101
|
+
Rails.logger.warn(controller_warning_message(kwargs.fetch(:controller))) if kwargs.key?(:controller)
|
102
|
+
|
97
103
|
button_classes = extract_button_classes(inverse: inverse, secondary: secondary, warning: warning)
|
98
104
|
|
99
105
|
{ **button_classes, **button_attributes(disabled), **new_tab_args(new_tab) }.deep_merge_html_attributes(kwargs)
|
@@ -139,6 +145,14 @@ private
|
|
139
145
|
|
140
146
|
safe_join([govuk_visually_hidden(prefix), text, govuk_visually_hidden(suffix)].compact)
|
141
147
|
end
|
148
|
+
|
149
|
+
def actions_warning_message(value)
|
150
|
+
"action: '#{value}' parameter detected Support for old style controller/action links has been removed. See https://github.com/x-govuk/govuk-components/releases/tag/v5.0.0"
|
151
|
+
end
|
152
|
+
|
153
|
+
def controller_warning_message(value)
|
154
|
+
"controller: '#{value}' parameter detected. Support for old style controller/action links has been removed. See https://github.com/x-govuk/govuk-components/releases/tag/v5.0.0"
|
155
|
+
end
|
142
156
|
end
|
143
157
|
|
144
158
|
ActiveSupport.on_load(:action_view) { include GovukLinkHelper }
|
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: 5.0.
|
4
|
+
version: 5.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DfE developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: html-attributes-utils
|
@@ -50,20 +50,20 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '3.
|
53
|
+
version: '3.9'
|
54
54
|
- - "<"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '3.
|
56
|
+
version: '3.10'
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '3.
|
63
|
+
version: '3.9'
|
64
64
|
- - "<"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '3.
|
66
|
+
version: '3.10'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: deep_merge
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,14 +126,14 @@ dependencies:
|
|
126
126
|
requirements:
|
127
127
|
- - '='
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 4.
|
129
|
+
version: 4.13.0
|
130
130
|
type: :development
|
131
131
|
prerelease: false
|
132
132
|
version_requirements: !ruby/object:Gem::Requirement
|
133
133
|
requirements:
|
134
134
|
- - '='
|
135
135
|
- !ruby/object:Gem::Version
|
136
|
-
version: 4.
|
136
|
+
version: 4.13.0
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
138
|
name: sassc-rails
|
139
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -280,14 +280,14 @@ dependencies:
|
|
280
280
|
requirements:
|
281
281
|
- - "~>"
|
282
282
|
- !ruby/object:Gem::Version
|
283
|
-
version: 5.
|
283
|
+
version: 5.2.0
|
284
284
|
type: :development
|
285
285
|
prerelease: false
|
286
286
|
version_requirements: !ruby/object:Gem::Requirement
|
287
287
|
requirements:
|
288
288
|
- - "~>"
|
289
289
|
- !ruby/object:Gem::Version
|
290
|
-
version: 5.
|
290
|
+
version: 5.2.0
|
291
291
|
- !ruby/object:Gem::Dependency
|
292
292
|
name: slim_lint
|
293
293
|
requirement: !ruby/object:Gem::Requirement
|