govuk_design_system_formbuilder 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -5
  3. data/lib/govuk_design_system_formbuilder/base.rb +13 -2
  4. data/lib/govuk_design_system_formbuilder/builder.rb +39 -16
  5. data/lib/govuk_design_system_formbuilder/containers/check_boxes_fieldset.rb +1 -1
  6. data/lib/govuk_design_system_formbuilder/containers/fieldset.rb +1 -1
  7. data/lib/govuk_design_system_formbuilder/containers/supplemental.rb +24 -0
  8. data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection.rb +3 -4
  9. data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb +1 -1
  10. data/lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb +1 -1
  11. data/lib/govuk_design_system_formbuilder/elements/date.rb +3 -4
  12. data/lib/govuk_design_system_formbuilder/elements/error_summary.rb +1 -1
  13. data/lib/govuk_design_system_formbuilder/elements/file.rb +4 -3
  14. data/lib/govuk_design_system_formbuilder/elements/input.rb +17 -7
  15. data/lib/govuk_design_system_formbuilder/elements/label.rb +13 -6
  16. data/lib/govuk_design_system_formbuilder/elements/radios/collection.rb +7 -6
  17. data/lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb +7 -2
  18. data/lib/govuk_design_system_formbuilder/elements/select.rb +5 -6
  19. data/lib/govuk_design_system_formbuilder/elements/submit.rb +1 -1
  20. data/lib/govuk_design_system_formbuilder/elements/text_area.rb +10 -4
  21. data/lib/govuk_design_system_formbuilder/version.rb +1 -1
  22. data/lib/govuk_design_system_formbuilder.rb +2 -1
  23. metadata +108 -10
  24. data/Rakefile +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3261eb0310f8ef07e0171a828c3f56f93e206a027fb3f92f7bcc3633de198f24
4
- data.tar.gz: 2b6b2145defccbf2614162482a6236f35a07363845371c226e595f6475f3c6c7
3
+ metadata.gz: '038b9fbda5b650e3f3a0b954180f2e1d6ad0f78292e35b5ada83a105383e63a1'
4
+ data.tar.gz: baf3d3ec5d4a8eb9626ce905eec6581391c039078fd3b4f61658f5e7f89406f0
5
5
  SHA512:
6
- metadata.gz: c5fd231254a061d60437c02823381d4227c7a6e4377dd979cc386894bb504585abcd86445bf630084d006ccfe5ae0bc8bf11e86c9b41a2e6d344dee91be3a505
7
- data.tar.gz: ceca49879d920f2372f2ff6b140fb21d6a908ae4641faeee0f159c7c97909d594fff72ad98ff7a4159bff565301956f0c7cc11b0c60b48344b7732d0ebaa5bc2
6
+ metadata.gz: 887c07fd7dfdef6d704cd12ce43fd3acf151896b761046bb1f6dbbc547f6dd06a76b0566faf0ba31f1abf912a3381aff319de80f55727e8e6b683a63cce5573b
7
+ data.tar.gz: 9905f1671e4603866744256b1595b43a220eac1bdbfc890c414de6972051bd6a34960b6b04165a3ec5050ea9709b052c12fa27b16dfc91876345e324ef542178
data/README.md CHANGED
@@ -3,9 +3,11 @@
3
3
  [![Build Status](https://travis-ci.com/DFE-Digital/govuk_design_system_formbuilder.svg?branch=master)](https://travis-ci.com/DFE-Digital/govuk_design_system_formbuilder)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/fde73b5dc9476197281b/maintainability)](https://codeclimate.com/github/DFE-Digital/govuk_design_system_formbuilder/maintainability)
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/fde73b5dc9476197281b/test_coverage)](https://codeclimate.com/github/DFE-Digital/govuk_design_system_formbuilder/test_coverage)
6
+ [![Gem Version](https://badge.fury.io/rb/govuk_design_system_formbuilder.svg)](https://badge.fury.io/rb/govuk_design_system_formbuilder)
7
+ [![Netlify Status](https://api.netlify.com/api/v1/badges/d4c50b8d-6ca3-4797-9ab3-6e0731c72b44/deploy-status)](https://app.netlify.com/sites/govuk-form-builder/deploys)
6
8
 
7
9
  This gem provides a easy-to-use form builder that generates forms that are
8
- fully-compliant with version 3 of the [GOV.UK Design System](https://design-system.service.gov.uk/),
10
+ fully-compliant with version 3.2.0 of the [GOV.UK Design System](https://design-system.service.gov.uk/),
9
11
  minimising the amount of markup you need to write.
10
12
 
11
13
  The latest version of this gem that supports GOV.UK Design System version 2 is
@@ -13,14 +15,15 @@ The latest version of this gem that supports GOV.UK Design System version 2 is
13
15
 
14
16
  In addition to the basic markup, the more-advanced functionality of the Design
15
17
  System is exposed via the API. Adding [JavaScript-enhanced word count
16
- checking](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder#govuk_text_area-instance_method)
18
+ checking](https://govuk-form-builder.netlify.com/form-elements/text-area/)
17
19
  to text areas or [setting the size and weight of
18
- labels](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder#govuk_text_field-instance_method)
20
+ labels](https://govuk-form-builder.netlify.com/introduction/labels-hints-and-legends/)
19
21
  on text fields requires only a single argument.
20
22
 
21
23
  If you're still not sure what a form builder is or how it works, don't worry!
22
24
  [This screencast](https://www.youtube.com/watch?v=PhoFZ0qXAlA) should give you
23
- an idea of what's on offer 😅
25
+ an idea of what's on offer and [the official guide](https://govuk-form-builder.netlify.com) goes
26
+ into a bit more depth on how everything works 😅
24
27
 
25
28
  ## What's included
26
29
 
@@ -32,8 +35,9 @@ an idea of what's on offer 😅
32
35
  * Additional params for programmatically adding hints to check box and radio
33
36
  button collections
34
37
  * No external dependencies
35
- * [Extensive documentation](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder)
36
38
  * An exhaustive test suite
39
+ * [Extensive documentation](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder)
40
+ * [A full guide](https://govuk-form-builder.netlify.com/)
37
41
 
38
42
  ## Installation
39
43
 
@@ -1,9 +1,10 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  class Base
3
- def initialize(builder, object_name, attribute_name)
3
+ def initialize(builder, object_name, attribute_name, &block)
4
4
  @builder = builder
5
5
  @object_name = object_name
6
6
  @attribute_name = attribute_name
7
+ @block_content = @builder.capture { block.call } if block_given?
7
8
  end
8
9
 
9
10
  def hint_element
@@ -18,6 +19,10 @@ module GOVUKDesignSystemFormBuilder
18
19
  @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **@label)
19
20
  end
20
21
 
22
+ def supplemental_content
23
+ @supplemental_content ||= Containers::Supplemental.new(@builder, @object_name, @attribute_name, @block_content)
24
+ end
25
+
21
26
  # returns the id value used for the input
22
27
  #
23
28
  # @note field_id is overridden so that the error summary can link to the
@@ -40,7 +45,7 @@ module GOVUKDesignSystemFormBuilder
40
45
  end
41
46
 
42
47
  def hint_id
43
- return nil if @hint_text.blank?
48
+ return nil unless @hint_text.present?
44
49
 
45
50
  build_id('hint')
46
51
  end
@@ -55,6 +60,12 @@ module GOVUKDesignSystemFormBuilder
55
60
  build_id('conditional')
56
61
  end
57
62
 
63
+ def supplemental_id
64
+ return nil unless @block_content.present?
65
+
66
+ build_id('supplemental')
67
+ end
68
+
58
69
  def has_errors?
59
70
  @builder.object.errors.any? &&
60
71
  @builder.object.errors.messages.dig(@attribute_name).present?
@@ -10,7 +10,9 @@ module GOVUKDesignSystemFormBuilder
10
10
  # @option label text [String] the label text
11
11
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
12
12
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
13
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
13
14
  # @option args [Hash] args additional arguments are applied as attributes to +input+ element
15
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
14
16
  # @return [ActiveSupport::SafeBuffer] HTML output
15
17
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
16
18
  #
@@ -20,8 +22,8 @@ module GOVUKDesignSystemFormBuilder
20
22
  # hint_text: 'It says it on your birth certificate',
21
23
  # required: true,
22
24
  # placeholder: 'Ralph Wiggum'
23
- def govuk_text_field(attribute_name, hint_text: nil, label: {}, width: 'full', **args)
24
- Elements::Input.new(self, object_name, attribute_name, attribute_type: :text, hint_text: hint_text, label: label, width: width, **args).html
25
+ def govuk_text_field(attribute_name, hint_text: nil, label: {}, width: nil, **args, &block)
26
+ Elements::Input.new(self, object_name, attribute_name, attribute_type: :text, hint_text: hint_text, label: label, width: width, **args, &block).html
25
27
  end
26
28
 
27
29
  # Generates a input of type +tel+
@@ -34,7 +36,9 @@ module GOVUKDesignSystemFormBuilder
34
36
  # @option label text [String] the label text
35
37
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
36
38
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
39
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
37
40
  # @option args [Hash] args additional arguments are applied as attributes to +input+ element
41
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
38
42
  # @return [ActiveSupport::SafeBuffer] HTML output
39
43
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
40
44
  # @see https://design-system.service.gov.uk/patterns/telephone-numbers/ GOV.UK Telephone number patterns
@@ -45,8 +49,8 @@ module GOVUKDesignSystemFormBuilder
45
49
  # hint_text: 'Include the dialling code',
46
50
  # required: true,
47
51
  # placeholder: '0123 456 789'
48
- def govuk_phone_field(attribute_name, hint_text: nil, label: {}, width: 'full', **args)
49
- Elements::Input.new(self, object_name, attribute_name, attribute_type: :phone, hint_text: hint_text, label: label, width: width, **args).html
52
+ def govuk_phone_field(attribute_name, hint_text: nil, label: {}, width: nil, **args, &block)
53
+ Elements::Input.new(self, object_name, attribute_name, attribute_type: :phone, hint_text: hint_text, label: label, width: width, **args, &block).html
50
54
  end
51
55
 
52
56
  # Generates a input of type +email+
@@ -59,7 +63,9 @@ module GOVUKDesignSystemFormBuilder
59
63
  # @option label text [String] the label text
60
64
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
61
65
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
66
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
62
67
  # @option args [Hash] args additional arguments are applied as attributes to +input+ element
68
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
63
69
  # @return [ActiveSupport::SafeBuffer] HTML output
64
70
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
65
71
  # @see https://design-system.service.gov.uk/patterns/email-addresses/ GOV.UK Email address patterns
@@ -68,8 +74,8 @@ module GOVUKDesignSystemFormBuilder
68
74
  # = f.govuk_email_field :email_address,
69
75
  # label: { text: 'Enter your email address' },
70
76
  # placeholder: 'ralph.wiggum@springfield.edu'
71
- def govuk_email_field(attribute_name, hint_text: nil, label: {}, width: 'full', **args)
72
- Elements::Input.new(self, object_name, attribute_name, attribute_type: :email, hint_text: hint_text, label: label, width: width, **args).html
77
+ def govuk_email_field(attribute_name, hint_text: nil, label: {}, width: nil, **args, &block)
78
+ Elements::Input.new(self, object_name, attribute_name, attribute_type: :email, hint_text: hint_text, label: label, width: width, **args, &block).html
73
79
  end
74
80
 
75
81
  # Generates a input of type +url+
@@ -82,7 +88,9 @@ module GOVUKDesignSystemFormBuilder
82
88
  # @option label text [String] the label text
83
89
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
84
90
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
91
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
85
92
  # @option args [Hash] args additional arguments are applied as attributes to +input+ element
93
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
86
94
  # @return [ActiveSupport::SafeBuffer] HTML output
87
95
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
88
96
  #
@@ -91,8 +99,8 @@ module GOVUKDesignSystemFormBuilder
91
99
  # label: { text: 'Enter your favourite website' },
92
100
  # placeholder: 'https://www.gov.uk',
93
101
  # autocomplete: 'url'
94
- def govuk_url_field(attribute_name, hint_text: nil, label: {}, width: 'full', **args)
95
- Elements::Input.new(self, object_name, attribute_name, attribute_type: :url, hint_text: hint_text, label: label, width: width, **args).html
102
+ def govuk_url_field(attribute_name, hint_text: nil, label: {}, width: nil, **args, &block)
103
+ Elements::Input.new(self, object_name, attribute_name, attribute_type: :url, hint_text: hint_text, label: label, width: width, **args, &block).html
96
104
  end
97
105
 
98
106
  # Generates a input of type +number+
@@ -105,7 +113,9 @@ module GOVUKDesignSystemFormBuilder
105
113
  # @option label text [String] the label text
106
114
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
107
115
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
116
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
108
117
  # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
118
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
109
119
  # @return [ActiveSupport::SafeBuffer] HTML output
110
120
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
111
121
  #
@@ -116,8 +126,8 @@ module GOVUKDesignSystemFormBuilder
116
126
  # min: 80,
117
127
  # max: 150,
118
128
  # step: 5
119
- def govuk_number_field(attribute_name, hint_text: nil, label: {}, width: 'full', **args)
120
- Elements::Input.new(self, object_name, attribute_name, attribute_type: :number, hint_text: hint_text, label: label, width: width, **args).html
129
+ def govuk_number_field(attribute_name, hint_text: nil, label: {}, width: nil, **args, &block)
130
+ Elements::Input.new(self, object_name, attribute_name, attribute_type: :number, hint_text: hint_text, label: label, width: width, **args, &block).html
121
131
  end
122
132
 
123
133
  # Generates a +textarea+ element with a label, optional hint. Also offers
@@ -130,11 +140,13 @@ module GOVUKDesignSystemFormBuilder
130
140
  # @option label text [String] the label text
131
141
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
132
142
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
143
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
133
144
  # @param max_words [Integer] adds the GOV.UK max word count
134
145
  # @param max_chars [Integer] adds the GOV.UK max characters count
135
146
  # @param threshold [Integer] only show the +max_words+ and +max_chars+ warnings once a threshold (percentage) is reached
136
147
  # @param rows [Integer] sets the initial number of rows
137
148
  # @option args [Hash] args additional arguments are applied as attributes to the +textarea+ element
149
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
138
150
  # @return [ActiveSupport::SafeBuffer] HTML output
139
151
  # @see https://design-system.service.gov.uk/components/character-count GOV.UK character count component
140
152
  # @note Setting +max_chars+ or +max_words+ will add a caption beneath the +textarea+ with a live count of words
@@ -145,8 +157,8 @@ module GOVUKDesignSystemFormBuilder
145
157
  # label: { text: 'Tell us about your work history' },
146
158
  # rows: 8,
147
159
  # max_words: 300
148
- def govuk_text_area(attribute_name, hint_text: nil, label: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, **args)
149
- Elements::TextArea.new(self, object_name, attribute_name, hint_text: hint_text, label: label, max_words: max_words, max_chars: max_chars, rows: rows, threshold: threshold, **args).html
160
+ def govuk_text_area(attribute_name, hint_text: nil, label: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, **args, &block)
161
+ Elements::TextArea.new(self, object_name, attribute_name, hint_text: hint_text, label: label, max_words: max_words, max_chars: max_chars, rows: rows, threshold: threshold, **args, &block).html
150
162
  end
151
163
 
152
164
  # Generates a +select+ element containing +option+ for each member in the provided collection
@@ -159,6 +171,8 @@ module GOVUKDesignSystemFormBuilder
159
171
  # @option label text [String] the label text
160
172
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
161
173
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
174
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
175
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
162
176
  # @return [ActiveSupport::SafeBuffer] HTML output
163
177
  def govuk_collection_select(attribute_name, collection, value_method, text_method, options: {}, html_options: {}, hint_text: nil, label: {}, &block)
164
178
  Elements::Select.new(
@@ -178,9 +192,13 @@ module GOVUKDesignSystemFormBuilder
178
192
 
179
193
  # Generates a radio button for each item in the supplied collection
180
194
  #
181
- # @note Unlike the Rails +collection_radio_buttons+ helper, this version can also insert
195
+ # @note Unlike the Rails +#collection_radio_buttons+ helper, this version can also insert
182
196
  # hints per item in the collection by supplying a +:hint_method+
183
197
  #
198
+ # @note +:bold_labels+, while false by default, is set to true when a
199
+ # +:hint_method+ is provided. This is done to make the label stand out more
200
+ # from the hint.
201
+ #
184
202
  # @param attribute_name [Symbol] The name of the attribute
185
203
  # @param collection [Enumerable<Object>] Options to be added to the +select+ element
186
204
  # @param value_method [Symbol] The method called against each member of the collection to provide the value
@@ -190,6 +208,7 @@ module GOVUKDesignSystemFormBuilder
190
208
  # @param legend [Hash] options for configuring the legend
191
209
  # @param inline [Boolean] controls whether the radio buttons are displayed inline or not
192
210
  # @param small [Boolean] controls whether small radio buttons are used instead of regular-sized ones
211
+ # @param bold_labels [Boolean] controls whether the radio button labels are bold
193
212
  # @option legend text [String] the fieldset legend's text content
194
213
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
195
214
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+, defaults to +h1+
@@ -210,7 +229,7 @@ module GOVUKDesignSystemFormBuilder
210
229
  # legend: { text: 'Pick your favourite colour', size: 'm' },
211
230
  # hint_text: 'If you cannot find the exact match choose something close',
212
231
  # inline: false
213
- def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method, hint_method = nil, hint_text: nil, legend: { text: nil, size: 'm' }, inline: false, small: false, &block)
232
+ def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method, hint_method = nil, hint_text: nil, legend: {}, inline: false, small: false, bold_labels: false, &block)
214
233
  Elements::Radios::Collection.new(
215
234
  self,
216
235
  object_name,
@@ -223,6 +242,7 @@ module GOVUKDesignSystemFormBuilder
223
242
  legend: legend,
224
243
  inline: inline,
225
244
  small: small,
245
+ bold_labels: bold_labels,
226
246
  &block
227
247
  ).html
228
248
  end
@@ -377,6 +397,7 @@ module GOVUKDesignSystemFormBuilder
377
397
  # @option label text [String] the label text
378
398
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
379
399
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
400
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
380
401
  # @param multiple [Boolean] controls whether the check box is part of a collection or represents a single attribute
381
402
  # @param block [Block] any HTML passed in will form the contents of the fieldset
382
403
  # @return [ActiveSupport::SafeBuffer] HTML output
@@ -504,8 +525,10 @@ module GOVUKDesignSystemFormBuilder
504
525
  # @option label text [String] the label text
505
526
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
506
527
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
528
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
507
529
  # @param hint_text [String] The content of the hint. No hint will be injected if left +nil+
508
530
  # @option args [Hash] args additional arguments are applied as attributes to +input+ element
531
+ # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
509
532
  #
510
533
  # @example A photo upload field with file type specifier
511
534
  # = f.govuk_file_field :photo, label: { text: 'Upload your photo' }, accept: 'image/*'
@@ -516,8 +539,8 @@ module GOVUKDesignSystemFormBuilder
516
539
  # @note Remember to set +multipart: true+ when creating a form with file
517
540
  # uploads, {https://guides.rubyonrails.org/form_helpers.html#uploading-files see
518
541
  # the Rails documentation} for more information
519
- def govuk_file_field(attribute_name, label: {}, hint_text: nil, **args)
520
- Elements::File.new(self, object_name, attribute_name, label: label, hint_text: hint_text, **args).html
542
+ def govuk_file_field(attribute_name, label: {}, hint_text: nil, **args, &block)
543
+ Elements::File.new(self, object_name, attribute_name, label: label, hint_text: hint_text, **args, &block).html
521
544
  end
522
545
  end
523
546
  end
@@ -2,7 +2,7 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Containers
3
3
  class CheckBoxesFieldset < GOVUKDesignSystemFormBuilder::Base
4
4
  def initialize(builder, object_name, attribute_name, hint_text:, legend:, small:, &block)
5
- super(builder, object_name, attribute_name)
5
+ super(builder, object_name, attribute_name, &block)
6
6
 
7
7
  @legend = legend
8
8
  @hint_text = hint_text
@@ -1,7 +1,7 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Containers
3
3
  class Fieldset < GOVUKDesignSystemFormBuilder::Base
4
- LEGEND_DEFAULTS = { text: nil, tag: 'h1', size: 'xl' }.freeze
4
+ LEGEND_DEFAULTS = { text: nil, tag: 'h1', size: 'm' }.freeze
5
5
  LEGEND_SIZES = %w(xl l m s).freeze
6
6
 
7
7
  def initialize(builder, legend: {}, described_by: nil)
@@ -0,0 +1,24 @@
1
+ module GOVUKDesignSystemFormBuilder
2
+ module Containers
3
+ class Supplemental < GOVUKDesignSystemFormBuilder::Base
4
+ def initialize(builder, object_name, attribute_name, content)
5
+ @builder = builder
6
+ @object_name = object_name
7
+ @attribute_name = attribute_name
8
+ @content = content
9
+ end
10
+
11
+ def html
12
+ return nil unless @content.present?
13
+
14
+ @builder.content_tag('div', id: supplemental_id) do
15
+ @content
16
+ end
17
+ end
18
+
19
+ def supplemental_id
20
+ build_id('supplemental')
21
+ end
22
+ end
23
+ end
24
+ end
@@ -3,7 +3,7 @@ module GOVUKDesignSystemFormBuilder
3
3
  module CheckBoxes
4
4
  class Collection < GOVUKDesignSystemFormBuilder::Base
5
5
  def initialize(builder, object_name, attribute_name, collection, value_method:, text_method:, hint_method: nil, hint_text:, legend:, small:, &block)
6
- super(builder, object_name, attribute_name)
6
+ super(builder, object_name, attribute_name, &block)
7
7
 
8
8
  @collection = collection
9
9
  @value_method = value_method
@@ -12,17 +12,16 @@ module GOVUKDesignSystemFormBuilder
12
12
  @small = small
13
13
  @legend = legend
14
14
  @hint_text = hint_text
15
- @block_content = @builder.capture { block.call } if block_given?
16
15
  end
17
16
 
18
17
  def html
19
18
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
20
- Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
19
+ Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_id, hint_id, supplemental_id]).html do
21
20
  @builder.safe_join(
22
21
  [
23
22
  hint_element.html,
24
23
  error_element.html,
25
- @block_content,
24
+ supplemental_content.html,
26
25
  Containers::CheckBoxes.new(@builder, small: @small).html do
27
26
  build_collection
28
27
  end
@@ -18,7 +18,7 @@ module GOVUKDesignSystemFormBuilder
18
18
  @checkbox.check_box(
19
19
  id: field_id(link_errors: @link_errors),
20
20
  class: "govuk-checkboxes__input",
21
- aria: { describedby: hint_element.hint_id }
21
+ aria: { describedby: hint_id }
22
22
  ),
23
23
  label_element.html,
24
24
  hint_element.html
@@ -52,7 +52,7 @@ module GOVUKDesignSystemFormBuilder
52
52
  end
53
53
 
54
54
  def hint_element
55
- @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text, checkbox: true)
55
+ @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text, @value, checkbox: true)
56
56
  end
57
57
 
58
58
  def conditional_classes
@@ -4,21 +4,20 @@ module GOVUKDesignSystemFormBuilder
4
4
  SEGMENTS = { day: '3i', month: '2i', year: '1i' }.freeze
5
5
 
6
6
  def initialize(builder, object_name, attribute_name, legend:, hint_text:, date_of_birth: false, &block)
7
- super(builder, object_name, attribute_name)
7
+ super(builder, object_name, attribute_name, &block)
8
8
  @legend = legend
9
9
  @hint_text = hint_text
10
10
  @date_of_birth = date_of_birth
11
- @block_content = @builder.capture { block.call } if block_given?
12
11
  end
13
12
 
14
13
  def html
15
14
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
16
- Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
15
+ Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_id, hint_id, supplemental_id]).html do
17
16
  @builder.safe_join(
18
17
  [
19
18
  hint_element.html,
20
19
  error_element.html,
21
- @block_content,
20
+ supplemental_content.html,
22
21
  @builder.content_tag('div', class: 'govuk-date-input') do
23
22
  @builder.safe_join(
24
23
  [
@@ -71,7 +71,7 @@ module GOVUKDesignSystemFormBuilder
71
71
  tabindex: -1,
72
72
  role: 'alert',
73
73
  data: {
74
- module: 'error-summary'
74
+ module: 'govuk-error-summary'
75
75
  },
76
76
  aria: {
77
77
  labelledby: error_summary_title_id
@@ -1,8 +1,8 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class File < GOVUKDesignSystemFormBuilder::Base
4
- def initialize(builder, object_name, attribute_name, hint_text:, label:, **extra_args)
5
- super(builder, object_name, attribute_name)
4
+ def initialize(builder, object_name, attribute_name, hint_text:, label:, **extra_args, &block)
5
+ super(builder, object_name, attribute_name, &block)
6
6
 
7
7
  @label = label
8
8
  @hint_text = hint_text
@@ -16,11 +16,12 @@ module GOVUKDesignSystemFormBuilder
16
16
  label_element.html,
17
17
  hint_element.html,
18
18
  error_element.html,
19
+ supplemental_content.html,
19
20
  @builder.file_field(
20
21
  @attribute_name,
21
22
  id: field_id(link_errors: true),
22
23
  class: file_classes,
23
- aria: { describedby: described_by(hint_element.hint_id, error_element.error_id) },
24
+ aria: { describedby: described_by(hint_id, error_id, supplemental_id) },
24
25
  **@extra_args
25
26
  )
26
27
  ]
@@ -1,8 +1,8 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class Input < GOVUKDesignSystemFormBuilder::Base
4
- def initialize(builder, object_name, attribute_name, attribute_type:, hint_text:, label:, width:, **extra_args)
5
- super(builder, object_name, attribute_name)
4
+ def initialize(builder, object_name, attribute_name, attribute_type:, hint_text:, label:, width:, **extra_args, &block)
5
+ super(builder, object_name, attribute_name, &block)
6
6
 
7
7
  @width = width
8
8
  @extra_args = extra_args
@@ -17,13 +17,20 @@ module GOVUKDesignSystemFormBuilder
17
17
  [
18
18
  label_element.html,
19
19
  hint_element.html,
20
+ supplemental_content.html,
20
21
  error_element.html,
21
22
  @builder.send(
22
23
  @builder_method,
23
24
  @attribute_name,
24
25
  id: field_id(link_errors: true),
25
26
  class: input_classes,
26
- aria: { describedby: described_by(hint_element.hint_id, error_element.error_id) },
27
+ aria: {
28
+ describedby: described_by(
29
+ hint_id,
30
+ error_id,
31
+ supplemental_id
32
+ )
33
+ },
27
34
  **@extra_args
28
35
  )
29
36
  ]
@@ -34,16 +41,19 @@ module GOVUKDesignSystemFormBuilder
34
41
  private
35
42
 
36
43
  def input_classes
37
- %w(govuk-input).tap do |classes|
38
- classes.push(width_classes)
39
- classes.push('govuk-input--error') if has_errors?
40
- end
44
+ %w(govuk-input).push(width_classes, error_classes).compact
45
+ end
46
+
47
+ def error_classes
48
+ ('govuk-input--error') if has_errors?
41
49
  end
42
50
 
43
51
  def width_classes
44
52
  return if @width.blank?
45
53
 
46
54
  case @width
55
+ when nil then nil
56
+
47
57
  # fixed (character) widths
48
58
  when 20 then 'govuk-input--width-20'
49
59
  when 10 then 'govuk-input--width-10'
@@ -1,10 +1,10 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class Label < GOVUKDesignSystemFormBuilder::Base
4
- def initialize(builder, object_name, attribute_name, text: nil, value: nil, size: nil, radio: false, checkbox: false, tag: nil)
4
+ def initialize(builder, object_name, attribute_name, text: nil, value: nil, size: nil, hidden: false, radio: false, checkbox: false, tag: nil)
5
5
  super(builder, object_name, attribute_name)
6
6
 
7
- @text = label_text(text)
7
+ @text = label_text(text, hidden)
8
8
  @value = value # used by field_id
9
9
  @size_class = label_size_class(size)
10
10
  @radio_class = radio_class(radio)
@@ -27,15 +27,22 @@ module GOVUKDesignSystemFormBuilder
27
27
  def build_label
28
28
  @builder.label(
29
29
  @attribute_name,
30
- @text,
31
30
  value: @value,
32
31
  for: field_id(link_errors: true),
33
32
  class: %w(govuk-label).push(@size_class, @weight_class, @radio_class, @checkbox_class).compact
34
- )
33
+ ) do
34
+ @text
35
+ end
35
36
  end
36
37
 
37
- def label_text(option_text)
38
- [option_text, @value, @attribute_name.capitalize].compact.first
38
+ def label_text(option_text, hidden)
39
+ text = [option_text, @value, @attribute_name.capitalize].compact.first
40
+
41
+ if hidden
42
+ @builder.tag.span(text, class: %w(govuk-visually-hidden))
43
+ else
44
+ @builder.raw(text)
45
+ end
39
46
  end
40
47
 
41
48
  def radio_class(radio)
@@ -2,8 +2,8 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Radios
4
4
  class Collection < GOVUKDesignSystemFormBuilder::Base
5
- def initialize(builder, object_name, attribute_name, collection, value_method:, text_method:, hint_method:, hint_text:, legend:, inline:, small:, &block)
6
- super(builder, object_name, attribute_name)
5
+ def initialize(builder, object_name, attribute_name, collection, value_method:, text_method:, hint_method:, hint_text:, legend:, inline:, small:, bold_labels:, &block)
6
+ super(builder, object_name, attribute_name, &block)
7
7
 
8
8
  @collection = collection
9
9
  @value_method = value_method
@@ -13,17 +13,17 @@ module GOVUKDesignSystemFormBuilder
13
13
  @small = small
14
14
  @legend = legend
15
15
  @hint_text = hint_text
16
- @block_content = @builder.capture { block.call } if block_given?
16
+ @bold_labels = hint_method.present? || bold_labels
17
17
  end
18
18
 
19
19
  def html
20
20
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
21
- Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
21
+ Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_id, hint_id, supplemental_id]).html do
22
22
  @builder.safe_join(
23
23
  [
24
24
  hint_element.html,
25
25
  error_element.html,
26
- @block_content,
26
+ supplemental_content.html,
27
27
  Containers::Radios.new(@builder, inline: @inline, small: @small).html do
28
28
  @builder.safe_join(build_collection)
29
29
  end
@@ -45,7 +45,8 @@ module GOVUKDesignSystemFormBuilder
45
45
  value_method: @value_method,
46
46
  text_method: @text_method,
47
47
  hint_method: @hint_method,
48
- link_errors: has_errors? && i.zero?
48
+ link_errors: has_errors? && i.zero?,
49
+ bold_labels: @bold_labels
49
50
  ).html
50
51
  end
51
52
  end
@@ -6,13 +6,14 @@ module GOVUKDesignSystemFormBuilder
6
6
  # error summary requires that the id of the first radio is linked-to from the corresponding
7
7
  # error message. As when the summary is built what happens later in the form is unknown, we
8
8
  # need to control this to ensure the link is generated correctly
9
- def initialize(builder, object_name, attribute_name, item, value_method:, text_method:, hint_method:, link_errors: false)
9
+ def initialize(builder, object_name, attribute_name, item, value_method:, text_method:, hint_method:, link_errors: false, bold_labels:)
10
10
  super(builder, object_name, attribute_name)
11
11
  @item = item
12
12
  @value = item.send(value_method)
13
13
  @text = item.send(text_method)
14
14
  @hint_text = item.send(hint_method) if hint_method.present?
15
15
  @link_errors = link_errors
16
+ @bold_labels = bold_labels
16
17
  end
17
18
 
18
19
  def html
@@ -40,7 +41,11 @@ module GOVUKDesignSystemFormBuilder
40
41
  end
41
42
 
42
43
  def label_element
43
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, text: @text, value: @value, radio: true)
44
+ @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, text: @text, value: @value, radio: true, size: label_size)
45
+ end
46
+
47
+ def label_size
48
+ @bold_labels.present? ? 's' : nil
44
49
  end
45
50
  end
46
51
  end
@@ -2,7 +2,7 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class Select < GOVUKDesignSystemFormBuilder::Base
4
4
  def initialize(builder, object_name, attribute_name, collection, value_method:, text_method:, options: {}, html_options: {}, hint_text:, label:, &block)
5
- super(builder, object_name, attribute_name)
5
+ super(builder, object_name, attribute_name, &block)
6
6
 
7
7
  @collection = collection
8
8
  @value_method = value_method
@@ -11,7 +11,6 @@ module GOVUKDesignSystemFormBuilder
11
11
  @html_options = html_options
12
12
  @label = label
13
13
  @hint_text = hint_text
14
- @block_content = @builder.capture { block.call } if block_given?
15
14
  end
16
15
 
17
16
  def html
@@ -21,14 +20,14 @@ module GOVUKDesignSystemFormBuilder
21
20
  label_element.html,
22
21
  hint_element.html,
23
22
  error_element.html,
24
- @block_content,
23
+ supplemental_content.html,
25
24
  @builder.collection_select(
26
25
  @attribute_name,
27
26
  @collection,
28
27
  @value_method,
29
28
  @text_method,
30
29
  @options,
31
- build_html_options(hint_element, error_element)
30
+ build_html_options
32
31
  )
33
32
  ]
34
33
  )
@@ -37,11 +36,11 @@ module GOVUKDesignSystemFormBuilder
37
36
 
38
37
  private
39
38
 
40
- def build_html_options(hint_element, error_element)
39
+ def build_html_options
41
40
  @html_options.deep_merge(
42
41
  id: field_id(link_errors: true),
43
42
  class: select_classes,
44
- aria: { describedby: described_by(hint_element.hint_id, error_element.error_id) }
43
+ aria: { describedby: described_by(hint_id, error_id, supplemental_id) }
45
44
  )
46
45
  end
47
46
 
@@ -23,7 +23,7 @@ module GOVUKDesignSystemFormBuilder
23
23
  warning_class,
24
24
  secondary_class,
25
25
  padding_class(@block_content.present?)
26
- ),
26
+ ).compact,
27
27
  **extra_args
28
28
  ),
29
29
  @block_content
@@ -1,8 +1,8 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class TextArea < Base
4
- def initialize(builder, object_name, attribute_name, hint_text:, label:, rows:, max_words:, max_chars:, threshold:, **extra_args)
5
- super(builder, object_name, attribute_name)
4
+ def initialize(builder, object_name, attribute_name, hint_text:, label:, rows:, max_words:, max_chars:, threshold:, **extra_args, &block)
5
+ super(builder, object_name, attribute_name, &block)
6
6
  @label = label
7
7
  @hint_text = hint_text
8
8
  @extra_args = extra_args
@@ -17,12 +17,18 @@ module GOVUKDesignSystemFormBuilder
17
17
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
18
18
  @builder.safe_join(
19
19
  [
20
- [label_element, hint_element, error_element].map(&:html),
20
+ [label_element, hint_element, error_element, supplemental_content].map(&:html),
21
21
  @builder.text_area(
22
22
  @attribute_name,
23
23
  id: field_id(link_errors: true),
24
24
  class: govuk_textarea_classes,
25
- aria: { describedby: described_by(hint_element.hint_id, error_element.error_id) },
25
+ aria: {
26
+ describedby: described_by(
27
+ hint_id,
28
+ error_id,
29
+ supplemental_id
30
+ )
31
+ },
26
32
  **@extra_args.merge(rows: @rows)
27
33
  )
28
34
  ].flatten.compact
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '0.9.2'.freeze
2
+ VERSION = '0.9.3'.freeze
3
3
  end
@@ -31,10 +31,11 @@ require 'govuk_design_system_formbuilder/containers/radios'
31
31
  require 'govuk_design_system_formbuilder/containers/radio_buttons_fieldset'
32
32
  require 'govuk_design_system_formbuilder/containers/check_boxes'
33
33
  require 'govuk_design_system_formbuilder/containers/character_count'
34
+ require 'govuk_design_system_formbuilder/containers/supplemental'
34
35
 
35
36
  module GOVUKDesignSystemFormBuilder
36
37
  class FormBuilder < ActionView::Helpers::FormBuilder
37
- delegate :content_tag, :tag, :safe_join, :safe_concat, :capture, :link_to, to: :@template
38
+ delegate :content_tag, :tag, :safe_join, :safe_concat, :capture, :link_to, :raw, to: :@template
38
39
 
39
40
  include GOVUKDesignSystemFormBuilder::Builder
40
41
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_design_system_formbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-27 00:00:00.000000000 Z
11
+ date: 2019-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '5.2'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 5.2.3
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '5.2'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: 5.2.3
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: govuk-lint
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +134,104 @@ dependencies:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
+ - !ruby/object:Gem::Dependency
138
+ name: nanoc
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '4.11'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '4.11'
151
+ - !ruby/object:Gem::Dependency
152
+ name: slim
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: 4.0.1
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: 4.0.1
165
+ - !ruby/object:Gem::Dependency
166
+ name: adsf
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 1.4.2
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 1.4.2
179
+ - !ruby/object:Gem::Dependency
180
+ name: adsf-live
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 1.4.2
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: 1.4.2
193
+ - !ruby/object:Gem::Dependency
194
+ name: rouge
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: 3.8.0
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: 3.8.0
207
+ - !ruby/object:Gem::Dependency
208
+ name: htmlbeautifier
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: 1.3.1
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: 1.3.1
221
+ - !ruby/object:Gem::Dependency
222
+ name: sassc
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: 2.1.0
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: 2.1.0
137
235
  description: A Rails form builder that generates form inputs adhering to the GOV.UK
138
236
  Design System
139
237
  email:
@@ -143,7 +241,6 @@ extensions: []
143
241
  extra_rdoc_files: []
144
242
  files:
145
243
  - README.md
146
- - Rakefile
147
244
  - lib/govuk_design_system_formbuilder.rb
148
245
  - lib/govuk_design_system_formbuilder/base.rb
149
246
  - lib/govuk_design_system_formbuilder/builder.rb
@@ -154,6 +251,7 @@ files:
154
251
  - lib/govuk_design_system_formbuilder/containers/form_group.rb
155
252
  - lib/govuk_design_system_formbuilder/containers/radio_buttons_fieldset.rb
156
253
  - lib/govuk_design_system_formbuilder/containers/radios.rb
254
+ - lib/govuk_design_system_formbuilder/containers/supplemental.rb
157
255
  - lib/govuk_design_system_formbuilder/elements/check_boxes/collection.rb
158
256
  - lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
159
257
  - lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb
@@ -173,7 +271,7 @@ files:
173
271
  - lib/govuk_design_system_formbuilder/elements/submit.rb
174
272
  - lib/govuk_design_system_formbuilder/elements/text_area.rb
175
273
  - lib/govuk_design_system_formbuilder/version.rb
176
- homepage: https://github.com/DFE-Digital
274
+ homepage: https://govuk-form-builder.netlify.com
177
275
  licenses:
178
276
  - MIT
179
277
  metadata: {}
data/Rakefile DELETED
File without changes