govuk_design_system_formbuilder 3.0.3b1 → 3.1.1

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: e8688a1ed5a9271f5618ba56617a4eab9aa1c341514b6d956558adc314282a2a
4
- data.tar.gz: 29e1c726ef83a28da2bda26a917590ee672e4fb85cb1c3a9a89000636c2fef09
3
+ metadata.gz: 849a616e7c297a30b940baee74c033d8ee809d80397d1a09bca32993058a7127
4
+ data.tar.gz: b154ec1a5517573f061eb294bbd0b7bb2e1ccaacee2868dc2efe8bea4a26d55d
5
5
  SHA512:
6
- metadata.gz: fa735d3a296e2dd9f3b12cdb689fd659a9696f8cd33f866502cb48ddc63bba05013d4e87e6c688dacf25cc2de63b554fa6da6acf65bf9887c7e660265d21cc9c
7
- data.tar.gz: 8273c13b2e36dba076b2120ee5ddd66c25c62153f9aabcc7e041d5eca9e93c4eadde7cfffedf88ebbabb8a7a509551ef0d7f5a3425c002d8afb02e245fb222d2
6
+ metadata.gz: a54832be5fe555c971756f3d80c4439b2a18c7a55642d4f11433c4a9174eb8bed2aaa313be6721a6174b996bfbd60333c6e677481e8b443c9ac0c5436618749b
7
+ data.tar.gz: 1a49c45ed2ec43cc1eca56eb52adc0bae7a4543813516de3005b12fa79974bc4863b8f9218bc64f83a190f9b46dad2738c2986bc5b6e2311f2314a49a4628933
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Gem](https://img.shields.io/gem/dt/govuk_design_system_formbuilder?logo=rubygems)](https://rubygems.org/gems/govuk_design_system_formbuilder)
7
7
  [![Test Coverage](https://api.codeclimate.com/v1/badges/110136fb22341d3ba646/test_coverage)](https://codeclimate.com/github/DFE-Digital/govuk-formbuilder/test_coverage)
8
8
  [![GitHub license](https://img.shields.io/github/license/DFE-Digital/govuk_design_system_formbuilder)](https://github.com/DFE-Digital/govuk-formbuilder/blob/main/LICENSE)
9
- [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-4.0.1-brightgreen)](https://design-system.service.gov.uk)
9
+ [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-4.2.0-brightgreen)](https://design-system.service.gov.uk)
10
10
  [![Rails](https://img.shields.io/badge/Rails-6.1.5%20%E2%95%B1%207.0.3-E16D6D)](https://weblog.rubyonrails.org/releases/)
11
11
  [![Ruby](https://img.shields.io/badge/Ruby-2.7.6%20%20%E2%95%B1%203.0.4%20%20%E2%95%B1%203.1.2-E16D6D)](https://www.ruby-lang.org/en/downloads/)
12
12
 
@@ -913,7 +913,6 @@ module GOVUKDesignSystemFormBuilder
913
913
  # @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
914
914
  # @param omit_day [Boolean] do not render a day input, only capture month and year
915
915
  # @param maxlength_enabled [Boolean] adds maxlength attribute to day, month and year inputs (2, 2, and 4, respectively)
916
- # @param wildcards [Boolean] add an 'X' to the day and month patterns so users can add approximate dates
917
916
  # @param form_group [Hash] configures the form group
918
917
  # @option form_group classes [Array,String] sets the form group's classes
919
918
  # @option form_group kwargs [Hash] additional attributes added to the form group
@@ -937,8 +936,8 @@ module GOVUKDesignSystemFormBuilder
937
936
  # @example A date input with legend supplied as a proc
938
937
  # = f.govuk_date_field :finishes_on,
939
938
  # legend: -> { tag.h3('Which category do you belong to?') }
940
- def govuk_date_field(attribute_name, hint: {}, legend: {}, caption: {}, date_of_birth: false, omit_day: false, maxlength_enabled: false, form_group: {}, wildcards: false, **kwargs, &block)
941
- Elements::Date.new(self, object_name, attribute_name, hint: hint, legend: legend, caption: caption, date_of_birth: date_of_birth, omit_day: omit_day, maxlength_enabled: maxlength_enabled, form_group: form_group, wildcards: wildcards, **kwargs, &block).html
939
+ def govuk_date_field(attribute_name, hint: {}, legend: {}, caption: {}, date_of_birth: false, omit_day: false, maxlength_enabled: false, form_group: {}, **kwargs, &block)
940
+ Elements::Date.new(self, object_name, attribute_name, hint: hint, legend: legend, caption: caption, date_of_birth: date_of_birth, omit_day: omit_day, maxlength_enabled: maxlength_enabled, form_group: form_group, **kwargs, &block).html
942
941
  end
943
942
 
944
943
  # Generates a summary of errors in the form, each linking to the corresponding
@@ -11,7 +11,7 @@ module GOVUKDesignSystemFormBuilder
11
11
  SEGMENTS = { day: '3i', month: '2i', year: '1i' }.freeze
12
12
  MULTIPARAMETER_KEY = { day: 3, month: 2, year: 1 }.freeze
13
13
 
14
- def initialize(builder, object_name, attribute_name, legend:, caption:, hint:, omit_day:, maxlength_enabled:, form_group:, wildcards:, date_of_birth: false, **kwargs, &block)
14
+ def initialize(builder, object_name, attribute_name, legend:, caption:, hint:, omit_day:, maxlength_enabled:, form_group:, date_of_birth: false, **kwargs, &block)
15
15
  super(builder, object_name, attribute_name, &block)
16
16
 
17
17
  @legend = legend
@@ -21,7 +21,6 @@ module GOVUKDesignSystemFormBuilder
21
21
  @omit_day = omit_day
22
22
  @maxlength_enabled = maxlength_enabled
23
23
  @form_group = form_group
24
- @wildcards = wildcards
25
24
  @html_attributes = kwargs
26
25
  end
27
26
 
@@ -54,7 +53,14 @@ module GOVUKDesignSystemFormBuilder
54
53
  end
55
54
 
56
55
  def day
57
- return if omit_day?
56
+ if omit_day?
57
+ return tag.input(
58
+ id: id(:day, false),
59
+ name: name(:day),
60
+ type: 'hidden',
61
+ value: value(:day) || 1,
62
+ )
63
+ end
58
64
 
59
65
  date_part(:day, width: 2, link_errors: true)
60
66
  end
@@ -107,7 +113,6 @@ module GOVUKDesignSystemFormBuilder
107
113
  class: classes(width),
108
114
  name: name(segment),
109
115
  type: 'text',
110
- pattern: pattern(segment),
111
116
  inputmode: 'numeric',
112
117
  value: value,
113
118
  autocomplete: date_of_birth_autocomplete_value(segment),
@@ -115,12 +120,6 @@ module GOVUKDesignSystemFormBuilder
115
120
  )
116
121
  end
117
122
 
118
- def pattern(segment)
119
- return '[0-9X]*' if @wildcards && segment.in?(%i(day month))
120
-
121
- '[0-9]*'
122
- end
123
-
124
123
  def classes(width)
125
124
  build_classes(
126
125
  %(input),
@@ -21,11 +21,7 @@ module GOVUKDesignSystemFormBuilder
21
21
  @classes = classes
22
22
  @form_group = form_group
23
23
  @include_hidden = include_hidden
24
- @bold_labels = if bold_labels.nil?
25
- hint_method.present?
26
- else
27
- bold_labels
28
- end
24
+ @bold_labels = (bold_labels.nil? && auto_bold_labels?) || bold_labels
29
25
  end
30
26
 
31
27
  def html
@@ -38,6 +34,11 @@ module GOVUKDesignSystemFormBuilder
38
34
 
39
35
  private
40
36
 
37
+ def auto_bold_labels?
38
+ (config.default_collection_radio_buttons_auto_bold_labels &&
39
+ @hint_method.present?)
40
+ end
41
+
41
42
  def fieldset_options
42
43
  {
43
44
  legend: @legend,
@@ -78,7 +78,7 @@ module GOVUKDesignSystemFormBuilder
78
78
  def limit_description
79
79
  return unless limit?
80
80
 
81
- tag.span(id: limit_id, class: limit_description_classes, aria: { live: 'polite' }) do
81
+ tag.span(id: limit_id, class: limit_description_classes) do
82
82
  "You can enter up to #{limit_quantity} #{limit_type}"
83
83
  end
84
84
  end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '3.0.3b1'.freeze
2
+ VERSION = '3.1.1'.freeze
3
3
  end
@@ -43,6 +43,11 @@ module GOVUKDesignSystemFormBuilder
43
43
  # * +:default_collection_radio_buttons_include_hidden+ controls whether or not
44
44
  # a hidden field is added when rendering a collection of radio buttons
45
45
  #
46
+ # * +:default_collection_radio_buttons_auto_bold_labels+ will automatically
47
+ # make labels on {#govuk_collection_radio_buttons} bold when a +:hint_method+
48
+ # is present. The default can be overridden using the +bold_labels:+ argument.
49
+ # The default value is 'true'.
50
+ #
46
51
  # * +:default_error_summary_title+ sets the text used in error summary
47
52
  # blocks. As per the GOV.UK Design System spec, it defaults to
48
53
  # 'There is a problem'.
@@ -91,6 +96,7 @@ module GOVUKDesignSystemFormBuilder
91
96
  default_error_summary_turbo_prefix: 'turbo',
92
97
  default_collection_check_boxes_include_hidden: true,
93
98
  default_collection_radio_buttons_include_hidden: true,
99
+ default_collection_radio_buttons_auto_bold_labels: true,
94
100
  default_submit_validate: false,
95
101
 
96
102
  localisation_schema_fallback: %i(helpers __context__),
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: 3.0.3b1
4
+ version: 3.1.1
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: 2022-04-19 00:00:00.000000000 Z
11
+ date: 2022-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html-attributes-utils
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
19
+ version: '0.9'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.9.2
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: 0.9.0
29
+ version: '0.9'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: actionview
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +140,14 @@ dependencies:
134
140
  requirements:
135
141
  - - "~>"
136
142
  - !ruby/object:Gem::Version
137
- version: 4.3.0
143
+ version: 4.5.0
138
144
  type: :development
139
145
  prerelease: false
140
146
  version_requirements: !ruby/object:Gem::Requirement
141
147
  requirements:
142
148
  - - "~>"
143
149
  - !ruby/object:Gem::Version
144
- version: 4.3.0
150
+ version: 4.5.0
145
151
  - !ruby/object:Gem::Dependency
146
152
  name: simplecov
147
153
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +196,14 @@ dependencies:
190
196
  requirements:
191
197
  - - "~>"
192
198
  - !ruby/object:Gem::Version
193
- version: 3.28.0
199
+ version: 3.29.0
194
200
  type: :development
195
201
  prerelease: false
196
202
  version_requirements: !ruby/object:Gem::Requirement
197
203
  requirements:
198
204
  - - "~>"
199
205
  - !ruby/object:Gem::Version
200
- version: 3.28.0
206
+ version: 3.29.0
201
207
  - !ruby/object:Gem::Dependency
202
208
  name: rubypants
203
209
  requirement: !ruby/object:Gem::Requirement
@@ -290,7 +296,6 @@ executables: []
290
296
  extensions: []
291
297
  extra_rdoc_files: []
292
298
  files:
293
- - LICENSE
294
299
  - README.md
295
300
  - lib/govuk_design_system_formbuilder.rb
296
301
  - lib/govuk_design_system_formbuilder/base.rb
@@ -357,7 +362,7 @@ metadata:
357
362
  homepage_uri: https://govuk-form-builder.netlify.app
358
363
  source_code_uri: https://github.com/DFE-Digital/govuk-formbuilder
359
364
  github_repo: https://github.com/DFE-Digital/govuk-formbuilder
360
- post_install_message:
365
+ post_install_message:
361
366
  rdoc_options: []
362
367
  require_paths:
363
368
  - lib
@@ -368,12 +373,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
368
373
  version: '0'
369
374
  required_rubygems_version: !ruby/object:Gem::Requirement
370
375
  requirements:
371
- - - ">"
376
+ - - ">="
372
377
  - !ruby/object:Gem::Version
373
- version: 1.3.1
378
+ version: '0'
374
379
  requirements: []
375
380
  rubygems_version: 3.1.6
376
- signing_key:
381
+ signing_key:
377
382
  specification_version: 4
378
383
  summary: GOV.UK-compliant Rails form builder
379
384
  test_files: []
data/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License
2
-
3
- Copyright (C) 2019 Crown Copyright (Government Digital Service)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
- of the Software, and to permit persons to whom the Software is furnished to do
10
- so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.