govuk_design_system_formbuilder 2.0.0b1 → 2.0.0b2

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: 52cc4abc62b3ac208e8fe2befb527b6deda60868d2094a3172d907bc0ce82654
4
- data.tar.gz: fb0c810a65f025e226fe4dc0cee0c5b42b3b7baa499b032d6f88d4ec2fac9d54
3
+ metadata.gz: bd1f1c56336a4852ae5915c148e7c47abeef5590f87fc083437a4f4a680addba
4
+ data.tar.gz: 929a16808249de59a675c3215837e1522d2982a46497fea6b207e90f9c9d8aa0
5
5
  SHA512:
6
- metadata.gz: 996a9f979a4eab0a16499f81cf39fdcfbd0c641dd5d2944c52be697cd6f1f8870b75c6fd4b498d3769265fa39168f7baefe36bb53255bc50a9bfcb82f06bd641
7
- data.tar.gz: ef2f8f3eaba7ea21b2ae18a7a4ba8c181981164f36917d082ff5f2545896df17c6b27c9acab09621d3e5453013d9e5747e5f838b54bc2f2e68aed585980190d9
6
+ metadata.gz: ad2ad55fb5f7752862fde79ec8ffcfba5ef9cb1ea20e30b266c7152a7d78eef6fa9f40682f69a7db395b9f8104645735eb71c1efbc538506d3015fb888542932
7
+ data.tar.gz: 2c1d49579c09742a5dc2f8be8ddf7bcee4edb6d2d9d39e610705dfd10efc4bf0df18ad00026cd932d10b790aca1ee93a964079329ee9be0067c4c4f84c84a83a
@@ -8,7 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
9
9
  # supplied the hint will be wrapped in a +div+ instead of a +span+
10
10
  # @option hint text [String] the hint text
11
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
11
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
12
12
  #
13
13
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
14
14
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
@@ -17,13 +17,15 @@ module GOVUKDesignSystemFormBuilder
17
17
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
18
18
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
19
19
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
20
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
20
21
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
21
22
  # @option caption text [String] the caption text
22
23
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
23
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
24
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
25
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
24
26
  # @param form_group [Hash] configures the form group
25
27
  # @option form_group classes [Array,String] sets the form group's classes
26
- # @option form_group args [Hash] additional attributes added to the form group
28
+ # @option form_group kwargs [Hash] additional attributes added to the form group
27
29
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
28
30
  # @return [ActiveSupport::SafeBuffer] HTML output
29
31
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -47,8 +49,8 @@ module GOVUKDesignSystemFormBuilder
47
49
  # = f.govuk_text_field :callsign,
48
50
  # label: -> { tag.h3('Call-sign') }
49
51
  #
50
- def govuk_text_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **args, &block)
51
- Elements::Inputs::Text.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
52
+ def govuk_text_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **kwargs, &block)
53
+ Elements::Inputs::Text.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
52
54
  end
53
55
 
54
56
  # Generates a input of type +tel+
@@ -57,7 +59,7 @@ module GOVUKDesignSystemFormBuilder
57
59
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
58
60
  # supplied the hint will be wrapped in a +div+ instead of a +span+
59
61
  # @option hint text [String] the hint text
60
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
62
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
61
63
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
62
64
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
63
65
  # @param label [Hash,Proc] configures or sets the associated label content
@@ -65,13 +67,15 @@ module GOVUKDesignSystemFormBuilder
65
67
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
66
68
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
67
69
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
70
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
68
71
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
69
72
  # @option caption text [String] the caption text
70
73
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
71
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
74
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
75
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
72
76
  # @param form_group [Hash] configures the form group
73
77
  # @option form_group classes [Array,String] sets the form group's classes
74
- # @option form_group args [Hash] additional attributes added to the form group
78
+ # @option form_group kwargs [Hash] additional attributes added to the form group
75
79
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
76
80
  # @return [ActiveSupport::SafeBuffer] HTML output
77
81
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -96,8 +100,8 @@ module GOVUKDesignSystemFormBuilder
96
100
  # = f.govuk_phone_field :work_number,
97
101
  # label: -> { tag.h3('Work number') }
98
102
  #
99
- def govuk_phone_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **args, &block)
100
- Elements::Inputs::Phone.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
103
+ def govuk_phone_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **kwargs, &block)
104
+ Elements::Inputs::Phone.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
101
105
  end
102
106
 
103
107
  # Generates a input of type +email+
@@ -106,7 +110,7 @@ module GOVUKDesignSystemFormBuilder
106
110
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
107
111
  # supplied the hint will be wrapped in a +div+ instead of a +span+
108
112
  # @option hint text [String] the hint text
109
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
113
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
110
114
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
111
115
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
112
116
  # @param label [Hash,Proc] configures or sets the associated label content
@@ -114,13 +118,15 @@ module GOVUKDesignSystemFormBuilder
114
118
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
115
119
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
116
120
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
121
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
117
122
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
118
123
  # @option caption text [String] the caption text
119
124
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
120
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
125
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
126
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
121
127
  # @param form_group [Hash] configures the form group
122
128
  # @option form_group classes [Array,String] sets the form group's classes
123
- # @option form_group args [Hash] additional attributes added to the form group
129
+ # @option form_group kwargs [Hash] additional attributes added to the form group
124
130
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
125
131
  # @return [ActiveSupport::SafeBuffer] HTML output
126
132
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -143,8 +149,8 @@ module GOVUKDesignSystemFormBuilder
143
149
  # = f.govuk_email_field :personal_email,
144
150
  # label: -> { tag.h3('Personal email address') }
145
151
  #
146
- def govuk_email_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **args, &block)
147
- Elements::Inputs::Email.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
152
+ def govuk_email_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **kwargs, &block)
153
+ Elements::Inputs::Email.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
148
154
  end
149
155
 
150
156
  # Generates a input of type +password+
@@ -153,7 +159,7 @@ module GOVUKDesignSystemFormBuilder
153
159
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
154
160
  # supplied the hint will be wrapped in a +div+ instead of a +span+
155
161
  # @option hint text [String] the hint text
156
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
162
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
157
163
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
158
164
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
159
165
  # @param label [Hash,Proc] configures or sets the associated label content
@@ -161,13 +167,15 @@ module GOVUKDesignSystemFormBuilder
161
167
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
162
168
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
163
169
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
170
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
164
171
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
165
172
  # @option caption text [String] the caption text
166
173
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
167
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
174
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
175
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
168
176
  # @param form_group [Hash] configures the form group
169
177
  # @option form_group classes [Array,String] sets the form group's classes
170
- # @option form_group args [Hash] additional attributes added to the form group
178
+ # @option form_group kwargs [Hash] additional attributes added to the form group
171
179
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
172
180
  # @return [ActiveSupport::SafeBuffer] HTML output
173
181
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -189,8 +197,8 @@ module GOVUKDesignSystemFormBuilder
189
197
  # = f.govuk_password_field :passcode,
190
198
  # label: -> { tag.h3('What is your secret pass code?') }
191
199
  #
192
- def govuk_password_field(attribute_name, hint: {}, label: {}, width: nil, form_group: {}, caption: {}, **args, &block)
193
- Elements::Inputs::Password.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
200
+ def govuk_password_field(attribute_name, hint: {}, label: {}, width: nil, form_group: {}, caption: {}, **kwargs, &block)
201
+ Elements::Inputs::Password.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
194
202
  end
195
203
 
196
204
  # Generates a input of type +url+
@@ -199,7 +207,7 @@ module GOVUKDesignSystemFormBuilder
199
207
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
200
208
  # supplied the hint will be wrapped in a +div+ instead of a +span+
201
209
  # @option hint text [String] the hint text
202
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
210
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
203
211
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
204
212
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
205
213
  # @param label [Hash,Proc] configures or sets the associated label content
@@ -207,13 +215,15 @@ module GOVUKDesignSystemFormBuilder
207
215
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
208
216
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
209
217
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
218
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
210
219
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
211
220
  # @option caption text [String] the caption text
212
221
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
213
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
222
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
223
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
214
224
  # @param form_group [Hash] configures the form group
215
225
  # @option form_group classes [Array,String] sets the form group's classes
216
- # @option form_group args [Hash] additional attributes added to the form group
226
+ # @option form_group kwargs [Hash] additional attributes added to the form group
217
227
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
218
228
  # @return [ActiveSupport::SafeBuffer] HTML output
219
229
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -236,8 +246,8 @@ module GOVUKDesignSystemFormBuilder
236
246
  # = f.govuk_url_field :work_website,
237
247
  # label: -> { tag.h3("Enter your company's website") }
238
248
  #
239
- def govuk_url_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **args, &block)
240
- Elements::Inputs::URL.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
249
+ def govuk_url_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **kwargs, &block)
250
+ Elements::Inputs::URL.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
241
251
  end
242
252
 
243
253
  # Generates a input of type +number+
@@ -246,7 +256,7 @@ module GOVUKDesignSystemFormBuilder
246
256
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
247
257
  # supplied the hint will be wrapped in a +div+ instead of a +span+
248
258
  # @option hint text [String] the hint text
249
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
259
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
250
260
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
251
261
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
252
262
  # @param label [Hash,Proc] configures or sets the associated label content
@@ -254,13 +264,15 @@ module GOVUKDesignSystemFormBuilder
254
264
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
255
265
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
256
266
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
267
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
257
268
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
258
269
  # @option caption text [String] the caption text
259
270
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
260
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
271
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
272
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
261
273
  # @param form_group [Hash] configures the form group
262
274
  # @option form_group classes [Array,String] sets the form group's classes
263
- # @option form_group args [Hash] additional attributes added to the form group
275
+ # @option form_group kwargs [Hash] additional attributes added to the form group
264
276
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
265
277
  # @return [ActiveSupport::SafeBuffer] HTML output
266
278
  # @see https://design-system.service.gov.uk/components/text-input/ GOV.UK Text input
@@ -286,8 +298,8 @@ module GOVUKDesignSystemFormBuilder
286
298
  # = f.govuk_url_field :personal_best_over_100m,
287
299
  # label: -> { tag.h3("How many seconds does it take you to run 100m?") }
288
300
  #
289
- def govuk_number_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **args, &block)
290
- Elements::Inputs::Number.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **args, &block).html
301
+ def govuk_number_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, **kwargs, &block)
302
+ Elements::Inputs::Number.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, **kwargs, &block).html
291
303
  end
292
304
 
293
305
  # Generates a +textarea+ element with a label, optional hint. Also offers
@@ -298,23 +310,25 @@ module GOVUKDesignSystemFormBuilder
298
310
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
299
311
  # supplied the hint will be wrapped in a +div+ instead of a +span+
300
312
  # @option hint text [String] the hint text
301
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
313
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
302
314
  # @param label [Hash,Proc] configures or sets the associated label content
303
315
  # @option label text [String] the label text
304
316
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
305
317
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
306
318
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
319
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
307
320
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
308
321
  # @option caption text [String] the caption text
309
322
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
323
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
310
324
  # @param max_words [Integer] adds the GOV.UK max word count
311
325
  # @param max_chars [Integer] adds the GOV.UK max characters count
312
326
  # @param threshold [Integer] only show the +max_words+ and +max_chars+ warnings once a threshold (percentage) is reached
313
327
  # @param rows [Integer] sets the initial number of rows
314
- # @option args [Hash] args additional arguments are applied as attributes to the +textarea+ element
328
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +textarea+ element
315
329
  # @param form_group [Hash] configures the form group
316
330
  # @option form_group classes [Array,String] sets the form group's classes
317
- # @option form_group args [Hash] additional attributes added to the form group
331
+ # @option form_group kwargs [Hash] additional attributes added to the form group
318
332
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
319
333
  # @return [ActiveSupport::SafeBuffer] HTML output
320
334
  # @see https://design-system.service.gov.uk/components/textarea/ GOV.UK text area component
@@ -340,8 +354,8 @@ module GOVUKDesignSystemFormBuilder
340
354
  # = f.govuk_text_area :instructions,
341
355
  # label: -> { tag.h3("How do you set it up?") }
342
356
  #
343
- def govuk_text_area(attribute_name, hint: {}, label: {}, caption: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, form_group: {}, **args, &block)
344
- Elements::TextArea.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, max_words: max_words, max_chars: max_chars, rows: rows, threshold: threshold, form_group: form_group, **args, &block).html
357
+ def govuk_text_area(attribute_name, hint: {}, label: {}, caption: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, form_group: {}, **kwargs, &block)
358
+ Elements::TextArea.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, max_words: max_words, max_chars: max_chars, rows: rows, threshold: threshold, form_group: form_group, **kwargs, &block).html
345
359
  end
346
360
 
347
361
  # Generates a +select+ element containing +option+ for each member in the provided collection
@@ -353,16 +367,17 @@ module GOVUKDesignSystemFormBuilder
353
367
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
354
368
  # supplied the hint will be wrapped in a +div+ instead of a +span+
355
369
  # @option hint text [String] the hint text
356
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
370
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
357
371
  # @option label text [String] the label text
358
372
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
359
373
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
360
374
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
375
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
361
376
  # @param options [Hash] Options hash passed through to Rails' +collection_select+ helper
362
377
  # @param html_options [Hash] HTML Options hash passed through to Rails' +collection_select+ helper
363
378
  # @param form_group [Hash] configures the form group
364
379
  # @option form_group classes [Array,String] sets the form group's classes
365
- # @option form_group args [Hash] additional attributes added to the form group
380
+ # @option form_group kwargs [Hash] additional attributes added to the form group
366
381
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
367
382
  # @see https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select Rails collection_select (called by govuk_collection_select)
368
383
  # @return [ActiveSupport::SafeBuffer] HTML output
@@ -424,8 +439,8 @@ module GOVUKDesignSystemFormBuilder
424
439
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
425
440
  # supplied the hint will be wrapped in a +div+ instead of a +span+
426
441
  # @option hint text [String] the hint text
427
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
428
- # @param legend [Hash,Proc] options for configuring the legend
442
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
443
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
429
444
  # @param inline [Boolean] controls whether the radio buttons are displayed inline or not
430
445
  # @param small [Boolean] controls whether small radio buttons are used instead of regular-sized ones
431
446
  # @param bold_labels [Boolean] controls whether the radio button labels are bold
@@ -434,9 +449,11 @@ module GOVUKDesignSystemFormBuilder
434
449
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
435
450
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
436
451
  # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
452
+ # @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
437
453
  # @param caption [Hash] configures or sets the caption content which is inserted above the legend
438
454
  # @option caption text [String] the caption text
439
455
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
456
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
440
457
  # @return [ActiveSupport::SafeBuffer] HTML output
441
458
  #
442
459
  # @example A collection of radio buttons for favourite colours, labels capitalised via a proc
@@ -503,20 +520,22 @@ module GOVUKDesignSystemFormBuilder
503
520
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
504
521
  # supplied the hint will be wrapped in a +div+ instead of a +span+
505
522
  # @option hint text [String] the hint text
506
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
507
- # @param legend [Hash,Proc] options for configuring the legend
523
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
524
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
508
525
  # @param inline [Boolean] controls whether the radio buttons are displayed inline or not
509
526
  # @param small [Boolean] controls whether small radio buttons are used instead of regular-sized ones
510
527
  # @option legend text [String] the fieldset legend's text content
511
528
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
512
529
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
513
530
  # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
531
+ # @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
514
532
  # @param caption [Hash] configures or sets the caption content which is inserted above the legend
515
533
  # @option caption text [String] the caption text
516
534
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
535
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
517
536
  # @param form_group [Hash] configures the form group
518
537
  # @option form_group classes [Array,String] sets the form group's classes
519
- # @option form_group args [Hash] additional attributes added to the form group
538
+ # @option form_group kwargs [Hash] additional attributes added to the form group
520
539
  # @param block [Block] a block of HTML that will be used to populate the fieldset
521
540
  # @param classes [Array,String] Classes to add to the radio button container.
522
541
  # @see https://design-system.service.gov.uk/components/radios/ GOV.UK Radios
@@ -551,11 +570,13 @@ module GOVUKDesignSystemFormBuilder
551
570
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
552
571
  # supplied the hint will be wrapped in a +div+ instead of a +span+
553
572
  # @option hint text [String] the hint text
554
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
555
- # @option legend text [String] the fieldset legend's text content
556
- # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
557
- # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
558
- # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
573
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
574
+ # @param label [Hash,Proc] configures or sets the associated label content
575
+ # @option label text [String] the label text
576
+ # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
577
+ # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
578
+ # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
579
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
559
580
  # @see https://design-system.service.gov.uk/components/radios/ GOV.UK Radios
560
581
  # @see https://design-system.service.gov.uk/styles/typography/#headings-with-captions Headings with captions
561
582
  # @param block [Block] Any supplied HTML will be wrapped in a conditional
@@ -596,10 +617,10 @@ module GOVUKDesignSystemFormBuilder
596
617
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
597
618
  # supplied the hint will be wrapped in a +div+ instead of a +span+
598
619
  # @option hint text [String] the hint text
599
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
620
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
600
621
  # @param small [Boolean] controls whether small check boxes are used instead of regular-sized ones
601
622
  # @param classes [Array,String] Classes to add to the checkbox container.
602
- # @param legend [Hash,Proc] options for configuring the legend
623
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
603
624
  # @option legend text [String] the fieldset legend's text content
604
625
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
605
626
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
@@ -607,9 +628,10 @@ module GOVUKDesignSystemFormBuilder
607
628
  # @param caption [Hash] configures or sets the caption content which is inserted above the legend
608
629
  # @option caption text [String] the caption text
609
630
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
631
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
610
632
  # @param form_group [Hash] configures the form group
611
633
  # @option form_group classes [Array,String] sets the form group's classes
612
- # @option form_group args [Hash] additional attributes added to the form group
634
+ # @option form_group kwargs [Hash] additional attributes added to the form group
613
635
  # @param block [Block] any HTML passed in will be injected into the fieldset, after the hint and before the checkboxes
614
636
  # @return [ActiveSupport::SafeBuffer] HTML output
615
637
  #
@@ -674,20 +696,22 @@ module GOVUKDesignSystemFormBuilder
674
696
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
675
697
  # supplied the hint will be wrapped in a +div+ instead of a +span+
676
698
  # @option hint text [String] the hint text
677
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
699
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
678
700
  # @param small [Boolean] controls whether small check boxes are used instead of regular-sized ones
679
- # @param legend [Hash,Proc] options for configuring the legend
701
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
680
702
  # @option legend text [String] the fieldset legend's text content
681
703
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
682
704
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
683
705
  # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
706
+ # @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
684
707
  # @param caption [Hash] configures or sets the caption content which is inserted above the legend
685
708
  # @option caption text [String] the caption text
686
709
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
710
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
687
711
  # @param classes [Array,String] Classes to add to the checkbox container.
688
712
  # @param form_group [Hash] configures the form group
689
713
  # @option form_group classes [Array,String] sets the form group's classes
690
- # @option form_group args [Hash] additional attributes added to the form group
714
+ # @option form_group kwargs [Hash] additional attributes added to the form group
691
715
  # @param block [Block] a block of HTML that will be used to populate the fieldset
692
716
  # @return [ActiveSupport::SafeBuffer] HTML output
693
717
  #
@@ -723,12 +747,13 @@ module GOVUKDesignSystemFormBuilder
723
747
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
724
748
  # supplied the hint will be wrapped in a +div+ instead of a +span+
725
749
  # @option hint text [String] the hint text
726
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
750
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
727
751
  # @param link_errors [Boolean] controls whether this radio button should be linked to from {#govuk_error_summary}
728
752
  # @option label text [String] the label text
729
753
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
730
754
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
731
755
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
756
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
732
757
  # @param multiple [Boolean] controls whether the check box is part of a collection or represents a single attribute
733
758
  # @param block [Block] any HTML passed in will form the contents of the fieldset
734
759
  # @return [ActiveSupport::SafeBuffer] HTML output
@@ -794,19 +819,21 @@ module GOVUKDesignSystemFormBuilder
794
819
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
795
820
  # supplied the hint will be wrapped in a +div+ instead of a +span+
796
821
  # @option hint text [String] the hint text
797
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
798
- # @param legend [Hash,Proc] options for configuring the legend
822
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
823
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
799
824
  # @option legend text [String] the fieldset legend's text content
800
825
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
801
826
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
802
827
  # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
828
+ # @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
803
829
  # @param caption [Hash] configures or sets the caption content which is inserted above the legend
804
830
  # @option caption text [String] the caption text
805
831
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
832
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
806
833
  # @param omit_day [Boolean] do not render a day input, only capture month and year
807
834
  # @param form_group [Hash] configures the form group
808
835
  # @option form_group classes [Array,String] sets the form group's classes
809
- # @option form_group args [Hash] additional attributes added to the form group
836
+ # @option form_group kwargs [Hash] additional attributes added to the form group
810
837
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input group
811
838
  # @param date_of_birth [Boolean] if +true+ {https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values birth date auto completion attributes}
812
839
  # will be added to the inputs
@@ -845,15 +872,17 @@ module GOVUKDesignSystemFormBuilder
845
872
 
846
873
  # Generates a fieldset containing the contents of the block
847
874
  #
848
- # @param legend [Hash,Proc] options for configuring the legend
875
+ # @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
849
876
  # @param described_by [Array<String>] the ids of the elements that describe this fieldset, usually hints and errors
850
877
  # @option legend text [String] the fieldset legend's text content
851
878
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
852
879
  # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
853
880
  # @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
881
+ # @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
854
882
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
855
883
  # @option caption text [String] the caption text
856
884
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
885
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
857
886
  #
858
887
  # @example A fieldset containing address fields
859
888
  # = f.govuk_fieldset legend: { text: 'Address' }
@@ -880,17 +909,19 @@ module GOVUKDesignSystemFormBuilder
880
909
  # @option label tag [Symbol,String] the label's wrapper tag, intended to allow labels to act as page headings
881
910
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
882
911
  # @option label hidden [Boolean] control the visability of the label. Hidden labels will stil be read by screenreaders
912
+ # @option label kwargs [Hash] additional arguments are applied as attributes on the +label+ element
883
913
  # @param caption [Hash] configures or sets the caption content which is inserted above the label
884
914
  # @option caption text [String] the caption text
885
915
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
916
+ # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
886
917
  # @param hint [Hash,Proc] The content of the hint. No hint will be added if 'text' is left +nil+. When a +Proc+ is
887
918
  # supplied the hint will be wrapped in a +div+ instead of a +span+
888
919
  # @option hint text [String] the hint text
889
- # @option hint args [Hash] additional arguments are applied as attributes to the hint
890
- # @option args [Hash] args additional arguments are applied as attributes to the +input+ element
920
+ # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
921
+ # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
891
922
  # @param form_group [Hash] configures the form group
892
923
  # @option form_group classes [Array,String] sets the form group's classes
893
- # @option form_group args [Hash] additional attributes added to the form group
924
+ # @option form_group kwargs [Hash] additional attributes added to the form group
894
925
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
895
926
  #
896
927
  # @example A photo upload field with file type specifier and injected content
@@ -909,8 +940,8 @@ module GOVUKDesignSystemFormBuilder
909
940
  # @note Remember to set +multipart: true+ when creating a form with file
910
941
  # uploads, {https://guides.rubyonrails.org/form_helpers.html#uploading-files see
911
942
  # the Rails documentation} for more information
912
- def govuk_file_field(attribute_name, label: {}, caption: {}, hint: {}, form_group: {}, **args, &block)
913
- Elements::File.new(self, object_name, attribute_name, label: label, caption: caption, hint: hint, form_group: form_group, **args, &block).html
943
+ def govuk_file_field(attribute_name, label: {}, caption: {}, hint: {}, form_group: {}, **kwargs, &block)
944
+ Elements::File.new(self, object_name, attribute_name, label: label, caption: caption, hint: hint, form_group: form_group, **kwargs, &block).html
914
945
  end
915
946
  end
916
947
  end
@@ -4,12 +4,12 @@ module GOVUKDesignSystemFormBuilder
4
4
  def initialize(builder, object_name, attribute_name, classes: nil, **kwargs)
5
5
  super(builder, object_name, attribute_name)
6
6
 
7
- @classes = classes
8
- @extra_options = kwargs
7
+ @classes = classes
8
+ @html_attributes = kwargs
9
9
  end
10
10
 
11
11
  def html
12
- tag.div(class: classes, **@extra_options) { yield }
12
+ tag.div(class: classes, **@html_attributes) { yield }
13
13
  end
14
14
 
15
15
  private
@@ -3,21 +3,26 @@ module GOVUKDesignSystemFormBuilder
3
3
  class Caption < Base
4
4
  include Traits::Localisation
5
5
 
6
- def initialize(builder, object_name, attribute_name, text:, size: nil)
6
+ def initialize(builder, object_name, attribute_name, text: nil, size: nil, **kwargs)
7
7
  super(builder, object_name, attribute_name)
8
8
 
9
- @text = text(text)
10
- @size_class = size_class(size)
9
+ @text = text(text)
10
+ @size_class = size_class(size)
11
+ @html_attributes = kwargs
11
12
  end
12
13
 
13
14
  def html
14
- return nil if @text.blank?
15
+ return nil unless active?
15
16
 
16
- tag.span(@text, class: @size_class)
17
+ tag.span(@text, class: @size_class, **@html_attributes)
17
18
  end
18
19
 
19
20
  private
20
21
 
22
+ def active?
23
+ @text.present?
24
+ end
25
+
21
26
  def text(override)
22
27
  override || localised_text(:caption)
23
28
  end
@@ -11,11 +11,11 @@ module GOVUKDesignSystemFormBuilder
11
11
  def initialize(builder, object_name, attribute_name, hint:, label:, caption:, form_group:, **kwargs, &block)
12
12
  super(builder, object_name, attribute_name, &block)
13
13
 
14
- @label = label
15
- @caption = caption
16
- @hint = hint
17
- @extra_options = kwargs
18
- @form_group = form_group
14
+ @label = label
15
+ @caption = caption
16
+ @hint = hint
17
+ @html_attributes = kwargs
18
+ @form_group = form_group
19
19
  end
20
20
 
21
21
  def html
@@ -27,7 +27,7 @@ module GOVUKDesignSystemFormBuilder
27
27
  private
28
28
 
29
29
  def file
30
- @builder.file_field(@attribute_name, **options, **@extra_options)
30
+ @builder.file_field(@attribute_name, **options, **@html_attributes)
31
31
  end
32
32
 
33
33
  def options
@@ -13,7 +13,7 @@ module GOVUKDesignSystemFormBuilder
13
13
  @html_attributes = kwargs
14
14
 
15
15
  if content
16
- @content = capture { content.call }
16
+ @raw = capture { content.call }
17
17
  else
18
18
  @text = retrieve_text(text)
19
19
  @value = value
@@ -21,7 +21,7 @@ module GOVUKDesignSystemFormBuilder
21
21
  end
22
22
 
23
23
  def active?
24
- [@text, @content].any?(&:present?)
24
+ [@text, @raw].any?(&:present?)
25
25
  end
26
26
 
27
27
  def html
@@ -43,11 +43,11 @@ module GOVUKDesignSystemFormBuilder
43
43
  end
44
44
 
45
45
  def hint_tag
46
- @content.presence ? 'div' : 'span'
46
+ @raw.presence ? 'div' : 'span'
47
47
  end
48
48
 
49
49
  def hint_body
50
- @content || @text
50
+ @raw || @text
51
51
  end
52
52
 
53
53
  def retrieve_text(supplied)
@@ -6,22 +6,24 @@ module GOVUKDesignSystemFormBuilder
6
6
  include Traits::Caption
7
7
  include Traits::Localisation
8
8
 
9
- def initialize(builder, object_name, attribute_name, text: nil, value: nil, size: nil, hidden: false, radio: false, checkbox: false, tag: nil, link_errors: true, content: nil, caption: nil)
9
+ def initialize(builder, object_name, attribute_name, text: nil, value: nil, size: nil, hidden: false, radio: false, checkbox: false, tag: nil, link_errors: true, content: nil, caption: nil, **kwargs)
10
10
  super(builder, object_name, attribute_name)
11
11
 
12
+ @value = value # used by field_id
13
+ @tag = tag
14
+ @radio = radio
15
+ @checkbox = checkbox
16
+ @link_errors = link_errors
17
+ @html_attributes = kwargs
18
+
12
19
  # content is passed in directly via a proc and overrides
13
20
  # the other display options
14
21
  if content
15
22
  @content = capture { content.call }
16
23
  else
17
- @value = value # used by field_id
18
- @text = retrieve_text(text, hidden)
19
- @size_class = size_class(size)
20
- @radio = radio
21
- @checkbox = checkbox
22
- @tag = tag
23
- @link_errors = link_errors
24
- @caption = caption
24
+ @text = retrieve_text(text, hidden)
25
+ @size_class = size_class(size)
26
+ @caption = caption
25
27
  end
26
28
  end
27
29
 
@@ -42,7 +44,7 @@ module GOVUKDesignSystemFormBuilder
42
44
  private
43
45
 
44
46
  def label
45
- @builder.label(@attribute_name, **options) do
47
+ @builder.label(@attribute_name, **options, **@html_attributes) do
46
48
  @content || safe_join([caption, @text])
47
49
  end
48
50
  end
@@ -4,15 +4,19 @@ module GOVUKDesignSystemFormBuilder
4
4
  include Traits::Caption
5
5
  include Traits::Localisation
6
6
 
7
- def initialize(builder, object_name, attribute_name, legend:, caption:)
7
+ def initialize(builder, object_name, attribute_name, legend:, caption:, **kwargs)
8
8
  super(builder, object_name, attribute_name)
9
9
 
10
+ @html_attributes = kwargs
11
+
10
12
  case legend
13
+ when NilClass
14
+ @active = false
11
15
  when Proc
12
16
  @raw = capture { legend.call }
13
17
  when Hash
14
18
  defaults.merge(legend).tap do |l|
15
- @text = text(l.dig(:text))
19
+ @text = retrieve_text(l.dig(:text))
16
20
  @hidden = l.dig(:hidden)
17
21
  @tag = l.dig(:tag)
18
22
  @size = l.dig(:size)
@@ -29,18 +33,22 @@ module GOVUKDesignSystemFormBuilder
29
33
 
30
34
  private
31
35
 
36
+ def active?
37
+ [@text, @raw].any?(&:present?)
38
+ end
39
+
32
40
  def content
33
- if @text.present?
34
- tag.legend(class: classes) do
35
- content_tag(@tag, class: heading_classes) do
36
- safe_join([caption_element, @text])
37
- end
41
+ return nil unless active?
42
+
43
+ tag.legend(class: classes, **@html_attributes) do
44
+ content_tag(@tag, class: heading_classes) do
45
+ safe_join([caption_element, @text])
38
46
  end
39
47
  end
40
48
  end
41
49
 
42
- def text(supplied_text)
43
- supplied_text || localised_text(:legend)
50
+ def retrieve_text(supplied_text)
51
+ [supplied_text, localised_text(:legend), @attribute_name&.capitalize].compact.first
44
52
  end
45
53
 
46
54
  def classes
@@ -39,7 +39,7 @@ module GOVUKDesignSystemFormBuilder
39
39
  end
40
40
 
41
41
  def label_element
42
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options, **@label)
42
+ @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
43
43
  end
44
44
 
45
45
  def label_options
@@ -8,15 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  end
9
9
 
10
10
  def caption_options
11
- { text: nil }.merge({ text: caption_text, size: caption_size }.compact)
12
- end
13
-
14
- def caption_text
15
- @caption&.dig(:text)
16
- end
17
-
18
- def caption_size
19
- @caption&.dig(:size)
11
+ @caption
20
12
  end
21
13
  end
22
14
  end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '2.0.0b1'.freeze
2
+ VERSION = '2.0.0b2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_design_system_formbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0b1
4
+ version: 2.0.0b2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yates
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-27 00:00:00.000000000 Z
11
+ date: 2020-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -303,7 +303,7 @@ metadata:
303
303
  documentation_uri: https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder
304
304
  homepage_uri: https://govuk-form-builder.netlify.app
305
305
  source_code_uri: https://github.com/DFE-Digital/govuk_design_system_formbuilder
306
- post_install_message:
306
+ post_install_message:
307
307
  rdoc_options: []
308
308
  require_paths:
309
309
  - lib
@@ -319,7 +319,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
319
  version: 1.3.1
320
320
  requirements: []
321
321
  rubygems_version: 3.1.2
322
- signing_key:
322
+ signing_key:
323
323
  specification_version: 4
324
324
  summary: GOV.UK-compliant Rails form builder
325
325
  test_files: []