govuk_design_system_formbuilder 0.7.5 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe50b7c27f62909f066385d6c9e1315ee2cea569c07fa7e9fd33b9cadb006ddb
4
- data.tar.gz: f2a3eca142cbf8aea85d0895b80034ef49ab417c06d816d9fff650f0fa6445a3
3
+ metadata.gz: 0fc37b1f1f89baf5185ef1bc708f03ebe2a9d6a331ae880dacc2b797b670ce6a
4
+ data.tar.gz: a4195d6fd6b127f972c84277fd56d3ebc0b1eaed3a342257fa68db7c24ee6a14
5
5
  SHA512:
6
- metadata.gz: 26bd141d0e1953ac44a9a16cb5f957b677edb29faa9aac60b9b17bbca541411b6e3f7a4b337990084f43c6dcf9a7c5594a02d8839851d2a278b6d136d12a68e3
7
- data.tar.gz: f2df55515c72aa7978cd0886952013f36a10a3c671c0f8c1372517beec7ded401307191b7a1610dae9e57dab9b2cf3bd79c802eeb060c11b80abe750a10cec61
6
+ metadata.gz: 86bbb01e953d5711ce6767a2cbc4dc97c01ee21ab852a8afe919b4552388f30ed1a00724dc6883208cb609581a9c8c384ea44940289de0ed8931ec6bf7762819
7
+ data.tar.gz: 3608d0f9feddd47aa1879dfcbb068f0fad726d6f7604738e693a293a7d1dacd81466a81b07c48d69a7bc4701ce82237233c2e4de3e092a37f616bbf7041de5b4
@@ -32,7 +32,7 @@ module GOVUKDesignSystemFormBuilder
32
32
 
33
33
  def has_errors?
34
34
  @builder.object.errors.any? &&
35
- @builder.object.errors.messages.keys.include?(@attribute_name)
35
+ @builder.object.errors.messages.dig(@attribute_name).present?
36
36
  end
37
37
 
38
38
  def attribute_identifier
@@ -140,7 +140,7 @@ module GOVUKDesignSystemFormBuilder
140
140
  # @note Setting +max_chars+ or +max_words+ will add a caption beneath the +textarea+ with a live count of words
141
141
  # or characters
142
142
  #
143
- # @example A number field with placeholder, min, max and step
143
+ # @example A text area with a custom number of rows and a word limit
144
144
  # = f.govuk_number_field :cv,
145
145
  # label: { text: 'Tell us about your work history' },
146
146
  # rows: 8,
@@ -207,6 +207,7 @@ module GOVUKDesignSystemFormBuilder
207
207
  # @param inline [Boolean] controls whether the radio buttons are displayed inline or not
208
208
  # @option legend text [String] the fieldset legend's text content
209
209
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
210
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+, defaults to +h1+
210
211
  # @param block [Block] any HTML passed in is inserted inside the fieldset container,
211
212
  # between the error and the radios container element
212
213
  # @return [ActiveSupport::SafeBuffer] HTML output
@@ -261,6 +262,7 @@ module GOVUKDesignSystemFormBuilder
261
262
  # @param inline [Boolean] controls whether the radio buttons are displayed inline or not
262
263
  # @option legend text [String] the fieldset legend's text content
263
264
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
265
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
264
266
  # @param block [Block] any HTML passed in will be injected into the fieldset
265
267
  # element and should contain radio buttons and optionally a divider
266
268
  # @see https://design-system.service.gov.uk/components/radios/ GOV.UK Radios
@@ -299,6 +301,7 @@ module GOVUKDesignSystemFormBuilder
299
301
  # @param hint_text [String] the contents of the hint
300
302
  # @option legend text [String] the fieldset legend's text content
301
303
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
304
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
302
305
  # @see https://design-system.service.gov.uk/components/radios/ GOV.UK Radios
303
306
  # @param block [Block] Any supplied HTML will be wrapped in a conditional
304
307
  # container and only revealed when the radio button is picked
@@ -336,6 +339,7 @@ module GOVUKDesignSystemFormBuilder
336
339
  # @param legend [Hash] options for configuring the hash
337
340
  # @option legend text [String] the fieldset legend's text content
338
341
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
342
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
339
343
  # @param block [Block] any HTML passed in will be injected into the fieldset, after the hint and before the checkboxes
340
344
  # @return [ActiveSupport::SafeBuffer] HTML output
341
345
  #
@@ -401,7 +405,7 @@ module GOVUKDesignSystemFormBuilder
401
405
  Elements::Submit.new(self, text, warning: warning, secondary: secondary, prevent_double_click: prevent_double_click, &block).html
402
406
  end
403
407
 
404
- # Generates three number inputs for the +day+, +month+ and +year+ components of a date
408
+ # Generates three inputs for the +day+, +month+ and +year+ components of a date
405
409
  #
406
410
  # @note When using this input be aware that Rails's multiparam time and date handling falls foul
407
411
  # of {https://bugs.ruby-lang.org/issues/5988 this} bug, so incorrect dates like +2019-09-31+ will
@@ -411,11 +415,14 @@ module GOVUKDesignSystemFormBuilder
411
415
  # @param legend [Hash] options for configuring the hash
412
416
  # @option legend text [String] the fieldset legend's text content
413
417
  # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
418
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
414
419
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input group
415
420
  # @param date_of_birth [Boolean] if +true+ {https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values birth date auto completion attributes}
416
421
  # will be added to the inputs
417
422
  # @return [ActiveSupport::SafeBuffer] HTML output
418
423
  #
424
+ # @see https://github.com/alphagov/govuk-frontend/issues/1449 GOV.UK date input element attributes, using text instead of number
425
+ #
419
426
  # @example A regular date input with a legend and hint
420
427
  # = f.govuk_date_field :starts_on,
421
428
  # legend: { 'When does your event start?' },
@@ -13,7 +13,7 @@ module GOVUKDesignSystemFormBuilder
13
13
  end
14
14
 
15
15
  def html
16
- @builder.content_tag('div', class: fieldset_classes, aria: { describedby: @described_by }) do
16
+ @builder.content_tag('fieldset', class: fieldset_classes, aria: { describedby: @described_by }) do
17
17
  @builder.safe_join([
18
18
  build_legend,
19
19
  yield
@@ -38,6 +38,7 @@ module GOVUKDesignSystemFormBuilder
38
38
  def legend_classes
39
39
  size = @legend.dig(:size)
40
40
  fail "invalid size #{size}, must be #{LEGEND_SIZES.join(', ')}" unless size.in?(LEGEND_SIZES)
41
+
41
42
  "govuk-fieldset__legend govuk-fieldset__legend--#{size}"
42
43
  end
43
44
 
@@ -25,10 +25,9 @@ module GOVUKDesignSystemFormBuilder
25
25
  @builder.content_tag('div', class: 'govuk-date-input') do
26
26
  @builder.safe_join(
27
27
  [
28
- date_input_group(:day, min: 1, max: 31),
29
- date_input_group(:month, min: 1, max: 12),
30
- # FIXME there must be more sensible defaults than this!
31
- date_input_group(:year, min: 1900, max: 2100, width: 4)
28
+ date_input_group(:day),
29
+ date_input_group(:month),
30
+ date_input_group(:year, width: 4)
32
31
  ]
33
32
  )
34
33
  end
@@ -40,7 +39,7 @@ module GOVUKDesignSystemFormBuilder
40
39
 
41
40
  private
42
41
 
43
- def date_input_group(segment, min:, max:, width: 2)
42
+ def date_input_group(segment, width: 2)
44
43
  value = @builder.object.try(@attribute_name).try(segment)
45
44
 
46
45
  @builder.content_tag('div', class: %w(govuk-date-input__item)) do
@@ -57,10 +56,9 @@ module GOVUKDesignSystemFormBuilder
57
56
  id: date_attribute_descriptor(segment),
58
57
  class: date_input_classes(width),
59
58
  name: date_attribute_identifier(segment),
60
- type: 'number',
61
- min: min,
62
- max: max,
63
- step: 1,
59
+ type: 'text',
60
+ pattern: '[0-9]*',
61
+ inputmode: 'numeric',
64
62
  value: value,
65
63
  autocomplete: date_of_birth_autocomplete_value(segment)
66
64
  )
@@ -1,9 +1,8 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class ErrorMessage < GOVUKDesignSystemFormBuilder::Base
4
- def initialize(builder, object_name, attribute_name, options = {})
4
+ def initialize(builder, object_name, attribute_name)
5
5
  super(builder, object_name, attribute_name)
6
- @options = default_options.merge(options)
7
6
  end
8
7
 
9
8
  def html
@@ -18,13 +17,7 @@ module GOVUKDesignSystemFormBuilder
18
17
  end
19
18
 
20
19
  def message
21
- @builder.object.errors.messages[@attribute_name]
22
- end
23
-
24
- private
25
-
26
- def default_options
27
- {}
20
+ @builder.object.errors.messages.dig(@attribute_name)
28
21
  end
29
22
  end
30
23
  end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '0.7.5'.freeze
2
+ VERSION = '0.7.6'.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: 0.7.5
4
+ version: 0.7.6
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-07-03 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails