govuk_design_system_formbuilder 1.2.0b4 → 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/govuk_design_system_formbuilder.rb +4 -0
- data/lib/govuk_design_system_formbuilder/base.rb +5 -0
- data/lib/govuk_design_system_formbuilder/builder.rb +6 -4
- data/lib/govuk_design_system_formbuilder/containers/character_count.rb +8 -7
- data/lib/govuk_design_system_formbuilder/containers/check_boxes.rb +8 -1
- data/lib/govuk_design_system_formbuilder/containers/check_boxes_fieldset.rb +18 -10
- data/lib/govuk_design_system_formbuilder/containers/fieldset.rb +23 -13
- data/lib/govuk_design_system_formbuilder/containers/radio_buttons_fieldset.rb +18 -10
- data/lib/govuk_design_system_formbuilder/containers/radios.rb +8 -1
- data/lib/govuk_design_system_formbuilder/containers/supplemental.rb +1 -3
- data/lib/govuk_design_system_formbuilder/elements/caption.rb +2 -2
- data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection.rb +17 -12
- data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb +17 -15
- data/lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb +23 -27
- data/lib/govuk_design_system_formbuilder/elements/date.rb +44 -41
- data/lib/govuk_design_system_formbuilder/elements/error_message.rb +8 -7
- data/lib/govuk_design_system_formbuilder/elements/error_summary.rb +23 -26
- data/lib/govuk_design_system_formbuilder/elements/file.rb +18 -20
- data/lib/govuk_design_system_formbuilder/elements/hint.rb +10 -13
- data/lib/govuk_design_system_formbuilder/elements/label.rb +33 -22
- data/lib/govuk_design_system_formbuilder/elements/radios/collection.rb +32 -23
- data/lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb +24 -14
- data/lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb +18 -19
- data/lib/govuk_design_system_formbuilder/elements/select.rb +15 -22
- data/lib/govuk_design_system_formbuilder/elements/submit.rb +29 -25
- data/lib/govuk_design_system_formbuilder/elements/text_area.rb +37 -39
- data/lib/govuk_design_system_formbuilder/traits/caption.rb +5 -6
- data/lib/govuk_design_system_formbuilder/traits/input.rb +19 -28
- data/lib/govuk_design_system_formbuilder/traits/label.rb +2 -2
- data/lib/govuk_design_system_formbuilder/version.rb +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d0ec456d05c0f92a86c39b688f0ac2a498160f473002f2fb4004567f4b17496
|
4
|
+
data.tar.gz: 0aa054ef3feb33eaf5b402aaea08ab2942e9b9be6708f04de41c1255e455dc86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a79e3ac6187857d917f7eb253abfbb414b8ed44a3a4488a29f82052ca234daeba9f1926a0df12697544fa266420ebe8eba8ab26840fe8d371b713d82c2df312
|
7
|
+
data.tar.gz: 1334ddb5eb6a36dfbcd5b8f91b50548ecfac38481682e683aec5071d2f91b7577f3cadd532c8dd8c1b1c5dba34fa837479ef55d5f63669b15756159e5b9fb5aa
|
@@ -14,6 +14,9 @@ module GOVUKDesignSystemFormBuilder
|
|
14
14
|
# * +:brand+ sets the value used to prefix all classes, used to allow the
|
15
15
|
# builder to be branded for alternative (similar) design systems.
|
16
16
|
#
|
17
|
+
# * +:default_caption_size+ controls the default size of caption text.
|
18
|
+
# Can be either +xl+, +l+ or +m+.
|
19
|
+
#
|
17
20
|
# * +:default_legend_size+ controls the default size of legend text.
|
18
21
|
# Can be either +xl+, +l+, +m+ or +s+.
|
19
22
|
#
|
@@ -45,6 +48,7 @@ module GOVUKDesignSystemFormBuilder
|
|
45
48
|
|
46
49
|
default_legend_size: 'm',
|
47
50
|
default_legend_tag: 'h1',
|
51
|
+
default_caption_size: 'm',
|
48
52
|
default_submit_button_text: 'Continue',
|
49
53
|
default_radio_divider_text: 'or',
|
50
54
|
default_error_summary_title: 'There is a problem',
|
@@ -18,6 +18,11 @@ module GOVUKDesignSystemFormBuilder
|
|
18
18
|
@block_content = capture { block.call } if block_given?
|
19
19
|
end
|
20
20
|
|
21
|
+
# objects that implement #to_s can be passed directly into #safe_join
|
22
|
+
def to_s
|
23
|
+
html || ''
|
24
|
+
end
|
25
|
+
|
21
26
|
private
|
22
27
|
|
23
28
|
def brand(override = nil)
|
@@ -312,7 +312,10 @@ module GOVUKDesignSystemFormBuilder
|
|
312
312
|
# @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
|
313
313
|
# @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
|
314
314
|
# @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
|
315
|
+
# @param options [Hash] Options hash passed through to Rails' +collection_select+ helper
|
316
|
+
# @param html_options [Hash] HTML Options hash passed through to Rails' +collection_select+ helper
|
315
317
|
# @param block [Block] arbitrary HTML that will be rendered between the hint and the input
|
318
|
+
# @see https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select Rails collection_select (called by govuk_collection_select)
|
316
319
|
# @return [ActiveSupport::SafeBuffer] HTML output
|
317
320
|
#
|
318
321
|
# @example A select box with hint
|
@@ -677,14 +680,13 @@ module GOVUKDesignSystemFormBuilder
|
|
677
680
|
# @param text [String] the button text
|
678
681
|
# @param warning [Boolean] makes the button red ({https://design-system.service.gov.uk/components/button/#warning-buttons warning}) when true
|
679
682
|
# @param secondary [Boolean] makes the button grey ({https://design-system.service.gov.uk/components/button/#secondary-buttons secondary}) when true
|
680
|
-
# @todo The GOV.UK design system also supports {https://design-system.service.gov.uk/components/button/#disabled-buttons disabled buttons}, they
|
681
|
-
# should probably be supported too
|
682
683
|
# @param classes [String] Classes to add to the submit button
|
683
684
|
# @param prevent_double_click [Boolean] adds JavaScript to safeguard the
|
684
685
|
# form from being submitted more than once
|
685
686
|
# @param validate [Boolean] adds the formnovalidate to the submit button when true, this disables all
|
686
687
|
# client-side validation provided by the browser. This is to provide a more consistent and accessible user
|
687
688
|
# experience
|
689
|
+
# @param disabled [Boolean] makes the button disabled when true
|
688
690
|
# @param block [Block] Any supplied HTML will be inserted immediately after
|
689
691
|
# the submit button. It is intended for other buttons directly related to
|
690
692
|
# the form's operation, such as 'Cancel' or 'Safe draft'
|
@@ -699,8 +701,8 @@ module GOVUKDesignSystemFormBuilder
|
|
699
701
|
# = f.govuk_submit "Proceed", prevent_double_click: true do
|
700
702
|
# = link_to 'Cancel', some_other_path, class: 'govuk-button__secondary'
|
701
703
|
#
|
702
|
-
def govuk_submit(text = config.default_submit_button_text, warning: false, secondary: false, classes: nil, prevent_double_click: true, validate: false, &block)
|
703
|
-
Elements::Submit.new(self, text, warning: warning, secondary: secondary, classes: classes, prevent_double_click: prevent_double_click, validate: validate, &block).html
|
704
|
+
def govuk_submit(text = config.default_submit_button_text, warning: false, secondary: false, classes: nil, prevent_double_click: true, validate: false, disabled: false, &block)
|
705
|
+
Elements::Submit.new(self, text, warning: warning, secondary: secondary, classes: classes, prevent_double_click: prevent_double_click, validate: validate, disabled: disabled, &block).html
|
704
706
|
end
|
705
707
|
|
706
708
|
# Generates three inputs for the +day+, +month+ and +year+ components of a date
|
@@ -14,17 +14,18 @@ module GOVUKDesignSystemFormBuilder
|
|
14
14
|
def html
|
15
15
|
return yield unless limit?
|
16
16
|
|
17
|
-
content_tag(
|
18
|
-
'div',
|
19
|
-
class: %(#{brand}-character-count),
|
20
|
-
data: { module: %(#{brand}-character-count) }.merge(**limit, **threshold).compact
|
21
|
-
) do
|
22
|
-
yield
|
23
|
-
end
|
17
|
+
content_tag('div', **character_count_options) { yield }
|
24
18
|
end
|
25
19
|
|
26
20
|
private
|
27
21
|
|
22
|
+
def character_count_options
|
23
|
+
{
|
24
|
+
class: %(#{brand}-character-count),
|
25
|
+
data: { module: %(#{brand}-character-count) }.merge(**limit, **threshold).compact
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
28
29
|
def limit
|
29
30
|
if @max_words
|
30
31
|
{ maxwords: @max_words }
|
@@ -10,13 +10,20 @@ module GOVUKDesignSystemFormBuilder
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def html
|
13
|
-
content_tag('div',
|
13
|
+
content_tag('div', **check_boxes_options) do
|
14
14
|
yield
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
19
19
|
|
20
|
+
def check_boxes_options
|
21
|
+
{
|
22
|
+
class: check_boxes_classes,
|
23
|
+
data: { module: %(#{brand}-checkboxes) }
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
20
27
|
def check_boxes_classes
|
21
28
|
%w(checkboxes).prefix(brand).tap do |c|
|
22
29
|
c.push(%(#{brand}-checkboxes--small)) if @small
|
@@ -17,19 +17,27 @@ module GOVUKDesignSystemFormBuilder
|
|
17
17
|
|
18
18
|
def html
|
19
19
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
20
|
-
Containers::Fieldset.new(@builder, @object_name, @attribute_name,
|
21
|
-
safe_join(
|
22
|
-
[
|
23
|
-
hint_element.html,
|
24
|
-
error_element.html,
|
25
|
-
Containers::CheckBoxes.new(@builder, small: @small, classes: @classes).html do
|
26
|
-
@block_content
|
27
|
-
end
|
28
|
-
]
|
29
|
-
)
|
20
|
+
Containers::Fieldset.new(@builder, @object_name, @attribute_name, **fieldset_options).html do
|
21
|
+
safe_join([hint_element, error_element, checkboxes])
|
30
22
|
end
|
31
23
|
end
|
32
24
|
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def fieldset_options
|
29
|
+
{
|
30
|
+
legend: @legend,
|
31
|
+
caption: @caption,
|
32
|
+
described_by: [error_element.error_id, hint_element.hint_id]
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
def checkboxes
|
37
|
+
Containers::CheckBoxes.new(@builder, small: @small, classes: @classes).html do
|
38
|
+
@block_content
|
39
|
+
end
|
40
|
+
end
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
@@ -26,40 +26,50 @@ module GOVUKDesignSystemFormBuilder
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def html
|
29
|
-
content_tag('fieldset',
|
30
|
-
safe_join([
|
29
|
+
content_tag('fieldset', **fieldset_options) do
|
30
|
+
safe_join([legend, (@block_content || yield)])
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
-
def
|
37
|
-
|
36
|
+
def fieldset_options
|
37
|
+
{
|
38
|
+
class: fieldset_classes,
|
39
|
+
aria: { describedby: @described_by }
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def fieldset_classes
|
44
|
+
%w(fieldset).prefix(brand)
|
38
45
|
end
|
39
46
|
|
40
|
-
def
|
47
|
+
def legend
|
48
|
+
@legend_raw || legend_content
|
49
|
+
end
|
50
|
+
|
51
|
+
def legend_content
|
41
52
|
if legend_text.present?
|
42
53
|
content_tag('legend', class: legend_classes) do
|
43
54
|
content_tag(@legend_options.dig(:tag), class: legend_heading_classes) do
|
44
|
-
safe_join([caption_element
|
55
|
+
safe_join([caption_element, legend_text])
|
45
56
|
end
|
46
57
|
end
|
47
58
|
end
|
48
59
|
end
|
49
60
|
|
50
61
|
def legend_text
|
51
|
-
|
62
|
+
@legend_options.dig(:text) || localised_text(:legend)
|
52
63
|
end
|
53
64
|
|
54
|
-
def
|
55
|
-
|
65
|
+
def legend_size
|
66
|
+
@legend_options.dig(:size).tap do |size|
|
67
|
+
fail "invalid size '#{size}', must be #{LEGEND_SIZES.join(', ')}" unless size.in?(LEGEND_SIZES)
|
68
|
+
end
|
56
69
|
end
|
57
70
|
|
58
71
|
def legend_classes
|
59
|
-
|
60
|
-
fail "invalid size '#{size}', must be #{LEGEND_SIZES.join(', ')}" unless size.in?(LEGEND_SIZES)
|
61
|
-
|
62
|
-
[%(fieldset__legend), %(fieldset__legend--#{size})].prefix(brand).tap do |classes|
|
72
|
+
[%(fieldset__legend), %(fieldset__legend--#{legend_size})].prefix(brand).tap do |classes|
|
63
73
|
classes.push(%(#{brand}-visually-hidden)) if @legend_options.dig(:hidden)
|
64
74
|
end
|
65
75
|
end
|
@@ -18,19 +18,27 @@ module GOVUKDesignSystemFormBuilder
|
|
18
18
|
|
19
19
|
def html
|
20
20
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
21
|
-
Containers::Fieldset.new(@builder, @object_name, @attribute_name,
|
22
|
-
safe_join(
|
23
|
-
[
|
24
|
-
hint_element.html,
|
25
|
-
error_element.html,
|
26
|
-
Containers::Radios.new(@builder, inline: @inline, small: @small, classes: @classes).html do
|
27
|
-
@block_content
|
28
|
-
end
|
29
|
-
]
|
30
|
-
)
|
21
|
+
Containers::Fieldset.new(@builder, @object_name, @attribute_name, **fieldset_options).html do
|
22
|
+
safe_join([hint_element, error_element, radios])
|
31
23
|
end
|
32
24
|
end
|
33
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def fieldset_options
|
30
|
+
{
|
31
|
+
legend: @legend,
|
32
|
+
caption: @caption,
|
33
|
+
described_by: [error_element.error_id, hint_element.hint_id]
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def radios
|
38
|
+
Containers::Radios.new(@builder, inline: @inline, small: @small, classes: @classes).html do
|
39
|
+
@block_content
|
40
|
+
end
|
41
|
+
end
|
34
42
|
end
|
35
43
|
end
|
36
44
|
end
|
@@ -13,13 +13,20 @@ module GOVUKDesignSystemFormBuilder
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def html
|
16
|
-
content_tag('div',
|
16
|
+
content_tag('div', **radios_options) do
|
17
17
|
yield
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
private
|
22
22
|
|
23
|
+
def radios_options
|
24
|
+
{
|
25
|
+
class: radios_classes,
|
26
|
+
data: { module: %(#{brand}-radios) }
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
23
30
|
def radios_classes
|
24
31
|
%w(radios).prefix(brand).tap do |c|
|
25
32
|
c.push(%(#{brand}-radios--inline)) if @inline
|
@@ -3,7 +3,7 @@ module GOVUKDesignSystemFormBuilder
|
|
3
3
|
class Caption < Base
|
4
4
|
include Traits::Localisation
|
5
5
|
|
6
|
-
def initialize(builder, object_name, attribute_name, text:, size:
|
6
|
+
def initialize(builder, object_name, attribute_name, text:, size: nil)
|
7
7
|
super(builder, object_name, attribute_name)
|
8
8
|
|
9
9
|
@text = caption_text(text)
|
@@ -21,7 +21,7 @@ module GOVUKDesignSystemFormBuilder
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def caption_size_class(size)
|
24
|
-
case size
|
24
|
+
case size || config.default_caption_size
|
25
25
|
when 'xl' then %(#{brand}-caption-xl)
|
26
26
|
when 'l' then %(#{brand}-caption-l)
|
27
27
|
when 'm' then %(#{brand}-caption-m)
|
@@ -22,23 +22,28 @@ module GOVUKDesignSystemFormBuilder
|
|
22
22
|
|
23
23
|
def html
|
24
24
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
25
|
-
Containers::Fieldset.new(@builder, @object_name, @attribute_name,
|
26
|
-
safe_join(
|
27
|
-
[
|
28
|
-
supplemental_content.html,
|
29
|
-
hint_element.html,
|
30
|
-
error_element.html,
|
31
|
-
Containers::CheckBoxes.new(@builder, small: @small, classes: @classes).html do
|
32
|
-
build_collection
|
33
|
-
end
|
34
|
-
]
|
35
|
-
)
|
25
|
+
Containers::Fieldset.new(@builder, @object_name, @attribute_name, **fieldset_options).html do
|
26
|
+
safe_join([supplemental_content, hint_element, error_element, check_boxes])
|
36
27
|
end
|
37
28
|
end
|
38
29
|
end
|
39
30
|
|
40
31
|
private
|
41
32
|
|
33
|
+
def fieldset_options
|
34
|
+
{
|
35
|
+
legend: @legend,
|
36
|
+
caption: @caption,
|
37
|
+
described_by: [error_id, hint_id, supplemental_id]
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def check_boxes
|
42
|
+
Containers::CheckBoxes.new(@builder, small: @small, classes: @classes).html do
|
43
|
+
collection
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
42
47
|
# Builds a collection of check {Elements::CheckBoxes::CheckBox}
|
43
48
|
# @return [ActiveSupport::SafeBuffer] HTML output
|
44
49
|
#
|
@@ -47,7 +52,7 @@ module GOVUKDesignSystemFormBuilder
|
|
47
52
|
# be rendered when it happens we need to work on the chance that it might, so
|
48
53
|
# the +link_errors+ variable is set to +true+ if this attribute has errors and
|
49
54
|
# always set back to +false+ after the first checkbox has been rendered
|
50
|
-
def
|
55
|
+
def collection
|
51
56
|
link_errors = has_errors?
|
52
57
|
|
53
58
|
@builder.collection_check_boxes(@attribute_name, @collection, @value_method, @text_method) do |check_box|
|
@@ -10,31 +10,33 @@ module GOVUKDesignSystemFormBuilder
|
|
10
10
|
def initialize(builder, object_name, attribute_name, checkbox, hint_method = nil, link_errors: false)
|
11
11
|
super(builder, object_name, attribute_name)
|
12
12
|
|
13
|
-
@checkbox
|
14
|
-
@item
|
15
|
-
@value
|
16
|
-
@hint_text
|
13
|
+
@checkbox = checkbox
|
14
|
+
@item = checkbox.object
|
15
|
+
@value = checkbox.value
|
16
|
+
@hint_text = retrieve(@item, hint_method)
|
17
17
|
@link_errors = link_errors
|
18
18
|
end
|
19
19
|
|
20
20
|
def html
|
21
21
|
content_tag('div', class: %(#{brand}-checkboxes__item)) do
|
22
|
-
safe_join(
|
23
|
-
[
|
24
|
-
@checkbox.check_box(
|
25
|
-
id: field_id(link_errors: @link_errors),
|
26
|
-
class: %(#{brand}-checkboxes__input),
|
27
|
-
aria: { describedby: hint_id }
|
28
|
-
),
|
29
|
-
label_element.html,
|
30
|
-
hint_element.html
|
31
|
-
]
|
32
|
-
)
|
22
|
+
safe_join([check_box, label_element, hint_element])
|
33
23
|
end
|
34
24
|
end
|
35
25
|
|
36
26
|
private
|
37
27
|
|
28
|
+
def check_box
|
29
|
+
@checkbox.check_box(**check_box_options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def check_box_options
|
33
|
+
{
|
34
|
+
id: field_id(link_errors: @link_errors),
|
35
|
+
class: %(#{brand}-checkboxes__input),
|
36
|
+
aria: { describedby: hint_id }
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
38
40
|
def label_element
|
39
41
|
@label_element ||= Label.new(@builder, @object_name, @attribute_name, @checkbox, value: @value, link_errors: @link_errors)
|
40
42
|
end
|
@@ -24,41 +24,37 @@ module GOVUKDesignSystemFormBuilder
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def html
|
27
|
-
safe_join(
|
28
|
-
[
|
29
|
-
content_tag('div', class: %(#{brand}-checkboxes__item)) do
|
30
|
-
safe_join(
|
31
|
-
[
|
32
|
-
input,
|
33
|
-
label_element.html,
|
34
|
-
hint_element.html,
|
35
|
-
]
|
36
|
-
)
|
37
|
-
end,
|
38
|
-
@conditional_content
|
39
|
-
]
|
40
|
-
)
|
27
|
+
safe_join([check_box, @conditional_content])
|
41
28
|
end
|
42
29
|
|
43
30
|
private
|
44
31
|
|
32
|
+
def check_box
|
33
|
+
content_tag('div', class: %(#{brand}-checkboxes__item)) do
|
34
|
+
safe_join([input, label_element, hint_element])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
45
38
|
def input
|
46
|
-
@builder.check_box(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
},
|
55
|
-
@
|
56
|
-
|
57
|
-
)
|
39
|
+
@builder.check_box(@attribute_name, input_options, @value, false)
|
40
|
+
end
|
41
|
+
|
42
|
+
def input_options
|
43
|
+
{
|
44
|
+
id: field_id(link_errors: @link_errors),
|
45
|
+
class: check_box_classes,
|
46
|
+
multiple: @multiple,
|
47
|
+
aria: { describedby: hint_id },
|
48
|
+
data: { 'aria-controls' => @conditional_id }
|
49
|
+
}
|
58
50
|
end
|
59
51
|
|
60
52
|
def label_element
|
61
|
-
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name,
|
53
|
+
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
|
54
|
+
end
|
55
|
+
|
56
|
+
def label_options
|
57
|
+
{ checkbox: true, value: @value, link_errors: @link_errors }
|
62
58
|
end
|
63
59
|
|
64
60
|
def hint_element
|