govuk_design_system_formbuilder 4.0.0rc1 → 4.1.0

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: d47c45ad2ca56f3942aea3cd0f7d6e2f06a89ebfde5b94254ae56477dac2b611
4
- data.tar.gz: 7f8ed5d840ab7b3f5c338ef7ad764b2f5eac7d6e1f35e0918521b385425b9a47
3
+ metadata.gz: 7f5a6a3bf20a1265053dcc1412b8e1cd3a401b67000d4baea725d1e38de52115
4
+ data.tar.gz: 336536cec3118c2b2f408bfd17e173b12026031bf4147bf92fac910c4a73fff9
5
5
  SHA512:
6
- metadata.gz: 33328d0ac48cea098b5ae01024341b08733b4aef090d673b800e240295bcdc5902f686a000ad482be4bfcb439a7c98d07fda68e97d7951f72ad54aca5d05b9e8
7
- data.tar.gz: 0276bb87a3cd4a20f26152ba72aa1b439cb05726a56c9770f65d2b1cbc417b5820cf5d02d580954faa3766aaac36029d21395688c13e394e6e6ed49775b1c546
6
+ metadata.gz: c9ccef41328fbf34c365e0d18f4709a3ef25d26ad4a22b0ca0836f36835eb14a7628b0a5100f0724fe05b422e9ae184c236648d421389e2aecaf5d39610c4279
7
+ data.tar.gz: e08a35440a95b29e82e62c9ab0b3c5bbb421899eb4b118331ea29d818a55c257965e0e983b311038a60956aefcbb01d2ed6a2719ae1f6fedf69d073c4da03ffa
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
- # GOV.UK Design System Form Builder for Rails
1
+ # GOV.UK Form Builder for Ruby on Rails
2
2
 
3
- [![Tests](https://github.com/DFE-Digital/govuk-formbuilder/workflows/Tests/badge.svg)](https://github.com/DFE-Digital/govuk-formbuilder/actions)
4
- [![Maintainability](https://api.codeclimate.com/v1/badges/110136fb22341d3ba646/maintainability)](https://codeclimate.com/github/DFE-Digital/govuk-formbuilder/maintainability)
5
- [![Gem Version](https://badge.fury.io/rb/govuk_design_system_formbuilder.svg)](https://badge.fury.io/rb/govuk_design_system_formbuilder)
3
+ [![Tests](https://github.com/x-govuk/govuk-form-builder/workflows/Tests/badge.svg)](https://github.com/x-govuk/govuk-form-builder/actions)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/110136fb22341d3ba646/maintainability)](https://codeclimate.com/github/x-govuk/govuk-form-builder/maintainability)
5
+ [![Gem version](https://img.shields.io/gem/dt/govuk_design_system_formbuilder?logo=rubygems)](https://rubygems.org/gems/govuk_design_system_formbuilder)
6
6
  [![Gem](https://img.shields.io/gem/dt/govuk_design_system_formbuilder?logo=rubygems)](https://rubygems.org/gems/govuk_design_system_formbuilder)
7
- [![Test Coverage](https://api.codeclimate.com/v1/badges/110136fb22341d3ba646/test_coverage)](https://codeclimate.com/github/DFE-Digital/govuk-formbuilder/test_coverage)
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.5.0-brightgreen)](https://design-system.service.gov.uk)
7
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/110136fb22341d3ba646/test_coverage)](https://codeclimate.com/github/x-govuk/govuk-form-builder/test_coverage)
8
+ [![GitHub license](https://img.shields.io/github/license/x-govuk/govuk-form-builder)](https://github.com/x-govuk/govuk-form-builder/blob/main/LICENSE)
9
+ [![GOV.UK Design System version](https://img.shields.io/badge/GOV.UK%20Design%20System-4.7.0-brightgreen)](https://design-system.service.gov.uk)
10
10
  [![Rails](https://img.shields.io/badge/Rails-6.1.7%20%E2%95%B1%207.0.4-E16D6D)](https://weblog.rubyonrails.org/releases/)
11
11
  [![Ruby](https://img.shields.io/badge/Ruby-3.0.5%20%20%E2%95%B1%203.1.3%20%20%E2%95%B1%203.2.0-E16D6D)](https://www.ruby-lang.org/en/downloads/)
12
12
 
@@ -16,22 +16,18 @@ It is intended to make creating forms **quick**, **easy** and **familiar** for R
16
16
 
17
17
  ## Documentation
18
18
 
19
- The gem comes with [a full guide](https://govuk-form-builder.netlify.app/) that
20
- covers most aspects of day-to-day use, along with code and output examples. The
21
- examples in the guide are generated from the builder itself so it will always
22
- be up to date.
19
+ The gem comes with [a full guide](https://govuk-form-builder.netlify.app/) that covers most aspects of day-to-day use, along with code and output examples. The examples in the guide are generated from the builder itself so it will always be up to date.
23
20
 
24
21
  [![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)
25
22
 
26
- ## What's included
23
+ ## Whats included
27
24
 
28
25
  * 100% compatibility with the GOV.UK Design System
29
26
  * Full control of labels, legends, hints, captions and fieldsets
30
- * No overwriting of Rails' default form helpers
27
+ * No overwriting of Rails default form helpers
31
28
  * Automatic ARIA associations between hints, errors and inputs
32
29
  * Most helpers take blocks for arbitrary content
33
- * Additional params for programmatically adding hints to check box and radio
34
- button collections
30
+ * Additional params for programmatically adding hints to check box and radio button collections
35
31
  * Full I18n support
36
32
  * Automatic handling of ActiveRecord validation error messages
37
33
  * No external dependencies
@@ -40,29 +36,22 @@ be up to date.
40
36
 
41
37
  ## Installation
42
38
 
43
- You can install the form builder gem by running the `gem install
44
- govuk_design_system_formbuilder` or by adding the following line
45
- to your `Gemfile`:
39
+ You can install the form builder gem by running the `gem install govuk_design_system_formbuilder` or by adding the following line to your `Gemfile`:
46
40
 
47
41
  ```sh
48
42
  gem 'govuk_design_system_formbuilder'
49
43
  ```
50
44
 
51
- To make full use of this tool, you will need a Rails application with the latest [GOV.UK
52
- Frontend](https://github.com/alphagov/govuk-frontend) assets installed and
53
- configured.
45
+ To make full use of this tool, you will need a Rails application with the latest [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend) assets installed and configured.
54
46
 
55
- To get up and running quickly and easily try kickstarting your project with a
56
- pre-configured template:
47
+ To get up and running quickly and easily try kickstarting your project with a pre-configured template:
57
48
 
58
49
  * [DfE Rails Template](https://github.com/DFE-Digital/rails-template)
59
50
  * [DEFRA Ruby Template](https://github.com/DEFRA/defra-ruby-template)
60
51
 
61
52
  ## Setup
62
53
 
63
- To use the form builder in an ad hoc basis you can specify it as an argument to
64
- `form_for` or `form_with`. These examples are written in [Slim](https://github.com/slim-template/slim) but
65
- other templating languages like ERB and [Haml](https://haml.info/) work just as well.
54
+ To use the form builder in an ad hoc basis you can specify it as an argument to `form_for` or `form_with`. These examples are written in [Slim](https://github.com/slim-template/slim) but other templating languages like ERB and [Haml](https://haml.info/) work just as well.
66
55
 
67
56
  ```slim
68
57
  = form_for @some_object, builder: GOVUKDesignSystemFormBuilder::FormBuilder do |f|
@@ -92,16 +81,14 @@ Now we can get started!
92
81
  :name,
93
82
  :description,
94
83
  label: { text: "Which department do you work for?" },
95
- hint: { text: "If you don't know ask your manager" }
84
+ hint: { text: "If you dont know ask your manager" }
96
85
 
97
86
  = f.govuk_submit 'Away we go!'
98
87
  ```
99
88
 
100
89
  ## Developing and running the tests
101
90
 
102
- The form builder is tested with RSpec. To run all the tests first ensure that
103
- the development and testing prerequisite gems are installed. At the root of a
104
- freshly-cloned repo run:
91
+ The form builder is tested with RSpec. To run all the tests first ensure that the development and testing prerequisite gems are installed. At the root of a freshly-cloned repo run:
105
92
 
106
93
  ```sh
107
94
  bundle
@@ -115,12 +102,9 @@ bundle exec rspec
115
102
 
116
103
  ## Contributing
117
104
 
118
- Bug reports and feature requests are most welcome, please raise an issue or
119
- submit a pull request.
105
+ Bug reports and feature requests are most welcome, please raise an issue or submit a pull request.
120
106
 
121
- Currently we're using [GOVUK Lint](https://github.com/alphagov/govuk-lint) to
122
- ensure code meets the GOV.UK guidelines. Please ensure that any PRs also adhere
123
- to this standard.
107
+ Currently were using [GOVUK Lint](https://github.com/alphagov/govuk-lint) to ensure code meets the GOV.UK guidelines. Please ensure that any PRs also adhere to this standard.
124
108
 
125
109
  To help keep the logs clean and tidy, please configure git to use your full name:
126
110
 
@@ -130,18 +114,18 @@ git config --global user.name "Julius Hibbert"
130
114
 
131
115
  ## Services using this library
132
116
 
133
- Approximately [100 services use this library](https://github.com/DFE-Digital/govuk-formbuilder/network/dependents),
117
+ Approximately [100 services use this library](https://github.com/x-govuk/govuk-form-builder/network/dependents),
134
118
  here are a few from the <abbr title="Department for Education">DfE</abbr>, <abbr title="Ministry of Justice">MoJ</abbr>, and
135
119
  <abbr title="Department for Business, Energy & Industrial Strategy">BEIS</abbr>.
136
120
 
137
- * [Apply for teacher training](https://www.github.com/DFE-Digital/apply-for-teacher-training)
138
- * [Teaching Vacancies](https://www.github.com/DFE-Digital/teaching-vacancies)
139
- * [Get a teacher training adviser](https://www.github.com/DFE-Digital/get-teacher-training-adviser-service/)
140
- * [Claim for crown court defence](https://www.github.com/ministryofjustice/Claim-for-Crown-Court-Defence)
141
- * [Appeal to the tax tribunal](https://www.github.com/ministryofjustice/tax-tribunals-datacapture)
142
- * [Apply to court about child arrangements](https://www.github.com/ministryofjustice/c100-application)
143
- * [Trade Tariff duty calculator](https://www.github.com/trade-tariff/trade-tariff-duty-calculator)
144
- * [Report your official development assistance](https://www.github.com/UKGovernmentBEIS/beis-report-official-development-assistance)
121
+ * [Apply for teacher training](https://www.github.com/x-govuk/apply-for-teacher-training)
122
+ * [Teaching Vacancies](https://www.github.com/x-govuk/teaching-vacancies)
123
+ * [Get a teacher training adviser](https://www.github.com/x-govuk/get-teacher-training-adviser-service/)
124
+ * [Claim for crown court defence](https://www.github.com/ministryofjustice/Claim-for-Crown-Court-Defence)
125
+ * [Appeal to the tax tribunal](https://www.github.com/ministryofjustice/tax-tribunals-datacapture)
126
+ * [Apply to court about child arrangements](https://www.github.com/ministryofjustice/c100-application)
127
+ * [Trade Tariff duty calculator](https://www.github.com/trade-tariff/trade-tariff-duty-calculator)
128
+ * [Report your official development assistance](https://www.github.com/UKGovernmentBEIS/beis-report-official-development-assistance)
145
129
 
146
130
  ## Form building services using this library
147
131
 
@@ -150,5 +134,4 @@ here are a few from the <abbr title="Department for Education">DfE</abbr>, <abbr
150
134
 
151
135
  ## Thanks
152
136
 
153
- This project was inspired by [Ministry of Justice's GovukElementsFormBuilder](https://github.com/ministryofjustice/govuk_elements_form_builder),
154
- but is leaner, more modular and written in a more idiomatic style.
137
+ This project was inspired by [Ministry of Justices GovukElementsFormBuilder](https://github.com/ministryofjustice/govuk_elements_form_builder), but is leaner, more modular and written in a more idiomatic style.
@@ -12,6 +12,8 @@ module GOVUKDesignSystemFormBuilder
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
15
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
16
+ # sequences of letters and numbers. Defaults to +false+.
15
17
  # @param label [Hash,Proc] configures or sets the associated label content
16
18
  # @option label text [String] the label text
17
19
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -50,8 +52,8 @@ module GOVUKDesignSystemFormBuilder
50
52
  # = f.govuk_text_field :callsign,
51
53
  # label: -> { tag.h3('Call-sign') }
52
54
  #
53
- def govuk_text_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
54
- Elements::Inputs::Text.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
55
+ def govuk_text_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, extra_letter_spacing: false, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
56
+ Elements::Inputs::Text.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
55
57
  end
56
58
 
57
59
  # Generates a input of type +tel+
@@ -63,6 +65,8 @@ module GOVUKDesignSystemFormBuilder
63
65
  # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
64
66
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
65
67
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
68
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
69
+ # sequences of letters and numbers. Defaults to +false+.
66
70
  # @param label [Hash,Proc] configures or sets the associated label content
67
71
  # @option label text [String] the label text
68
72
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -102,8 +106,8 @@ module GOVUKDesignSystemFormBuilder
102
106
  # = f.govuk_phone_field :work_number,
103
107
  # label: -> { tag.h3('Work number') }
104
108
  #
105
- def govuk_phone_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
106
- Elements::Inputs::Phone.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
109
+ def govuk_phone_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, extra_letter_spacing: false, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
110
+ Elements::Inputs::Phone.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
107
111
  end
108
112
 
109
113
  # Generates a input of type +email+
@@ -115,6 +119,8 @@ module GOVUKDesignSystemFormBuilder
115
119
  # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
116
120
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
117
121
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
122
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
123
+ # sequences of letters and numbers. Defaults to +false+.
118
124
  # @param label [Hash,Proc] configures or sets the associated label content
119
125
  # @option label text [String] the label text
120
126
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -152,8 +158,8 @@ module GOVUKDesignSystemFormBuilder
152
158
  # = f.govuk_email_field :personal_email,
153
159
  # label: -> { tag.h3('Personal email address') }
154
160
  #
155
- def govuk_email_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
156
- Elements::Inputs::Email.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
161
+ def govuk_email_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, extra_letter_spacing: false, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
162
+ Elements::Inputs::Email.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
157
163
  end
158
164
 
159
165
  # Generates a input of type +password+
@@ -165,6 +171,8 @@ module GOVUKDesignSystemFormBuilder
165
171
  # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
166
172
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
167
173
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
174
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
175
+ # sequences of letters and numbers. Defaults to +false+.
168
176
  # @param label [Hash,Proc] configures or sets the associated label content
169
177
  # @option label text [String] the label text
170
178
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -201,8 +209,8 @@ module GOVUKDesignSystemFormBuilder
201
209
  # = f.govuk_password_field :passcode,
202
210
  # label: -> { tag.h3('What is your secret pass code?') }
203
211
  #
204
- def govuk_password_field(attribute_name, hint: {}, label: {}, width: nil, form_group: {}, caption: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
205
- Elements::Inputs::Password.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
212
+ def govuk_password_field(attribute_name, hint: {}, label: {}, width: nil, extra_letter_spacing: false, form_group: {}, caption: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
213
+ Elements::Inputs::Password.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
206
214
  end
207
215
 
208
216
  # Generates a input of type +url+
@@ -214,6 +222,8 @@ module GOVUKDesignSystemFormBuilder
214
222
  # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
215
223
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
216
224
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
225
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
226
+ # sequences of letters and numbers. Defaults to +false+.
217
227
  # @param label [Hash,Proc] configures or sets the associated label content
218
228
  # @option label text [String] the label text
219
229
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -251,8 +261,8 @@ module GOVUKDesignSystemFormBuilder
251
261
  # = f.govuk_url_field :work_website,
252
262
  # label: -> { tag.h3("Enter your company's website") }
253
263
  #
254
- def govuk_url_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
255
- Elements::Inputs::URL.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
264
+ def govuk_url_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, extra_letter_spacing: false, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
265
+ Elements::Inputs::URL.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
256
266
  end
257
267
 
258
268
  # Generates a input of type +number+
@@ -264,6 +274,8 @@ module GOVUKDesignSystemFormBuilder
264
274
  # @option hint kwargs [Hash] additional arguments are applied as attributes to the hint
265
275
  # @param width [Integer,String] sets the width of the input, can be +2+, +3+ +4+, +5+, +10+ or +20+ characters
266
276
  # or +one-quarter+, +one-third+, +one-half+, +two-thirds+ or +full+ width of the container
277
+ # @param extra_letter_spacing [Boolean] when true adds space between characters to increase the readability of
278
+ # sequences of letters and numbers. Defaults to +false+.
267
279
  # @param label [Hash,Proc] configures or sets the associated label content
268
280
  # @option label text [String] the label text
269
281
  # @option label size [String] the size of the label font, can be +xl+, +l+, +m+, +s+ or nil
@@ -304,8 +316,8 @@ module GOVUKDesignSystemFormBuilder
304
316
  # = f.govuk_url_field :personal_best_over_100m,
305
317
  # label: -> { tag.h3("How many seconds does it take you to run 100m?") }
306
318
  #
307
- def govuk_number_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
308
- Elements::Inputs::Number.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
319
+ def govuk_number_field(attribute_name, hint: {}, label: {}, caption: {}, width: nil, extra_letter_spacing: false, form_group: {}, prefix_text: nil, suffix_text: nil, **kwargs, &block)
320
+ Elements::Inputs::Number.new(self, object_name, attribute_name, hint: hint, label: label, caption: caption, width: width, extra_letter_spacing: extra_letter_spacing, form_group: form_group, prefix_text: prefix_text, suffix_text: suffix_text, **kwargs, &block).html
309
321
  end
310
322
 
311
323
  # Generates a +textarea+ element with a label, optional hint. Also offers
@@ -845,6 +857,7 @@ module GOVUKDesignSystemFormBuilder
845
857
  # @param text [String,Proc] the button text. When a +Proc+ is provided its contents will be rendered within the button element
846
858
  # @param warning [Boolean] makes the button red ({https://design-system.service.gov.uk/components/button/#warning-buttons warning}) when true
847
859
  # @param secondary [Boolean] makes the button grey ({https://design-system.service.gov.uk/components/button/#secondary-buttons secondary}) when true
860
+ # @param inverse [Boolean] inverts the colours of the button. Note this isn't yet part of the design system.
848
861
  # @param prevent_double_click [Boolean] adds JavaScript to safeguard the
849
862
  # form from being submitted more than once
850
863
  # @param validate [Boolean] adds the formnovalidate to the submit button when true, this disables all
@@ -869,8 +882,8 @@ module GOVUKDesignSystemFormBuilder
869
882
  # = f.govuk_submit "Proceed", prevent_double_click: true do
870
883
  # = link_to 'Cancel', some_other_path, class: 'govuk-button__secondary'
871
884
  #
872
- def govuk_submit(text = config.default_submit_button_text, warning: false, secondary: false, prevent_double_click: true, validate: config.default_submit_validate, disabled: false, **kwargs, &block)
873
- Elements::Submit.new(self, text, warning: warning, secondary: secondary, prevent_double_click: prevent_double_click, validate: validate, disabled: disabled, **kwargs, &block).html
885
+ def govuk_submit(text = config.default_submit_button_text, warning: false, secondary: false, inverse: false, prevent_double_click: true, validate: config.default_submit_validate, disabled: false, **kwargs, &block)
886
+ Elements::Submit.new(self, text, warning: warning, secondary: secondary, inverse: inverse, prevent_double_click: prevent_double_click, validate: validate, disabled: disabled, **kwargs, &block).html
874
887
  end
875
888
 
876
889
  # Generates three inputs for the +day+, +month+ and +year+ components of a date
@@ -5,7 +5,7 @@ module GOVUKDesignSystemFormBuilder
5
5
  include Traits::HTMLClasses
6
6
  include Traits::HTMLAttributes
7
7
 
8
- def initialize(builder, text, warning:, secondary:, prevent_double_click:, validate:, disabled:, **kwargs, &block)
8
+ def initialize(builder, text, warning:, secondary:, inverse:, prevent_double_click:, validate:, disabled:, **kwargs, &block)
9
9
  super(builder, nil, nil)
10
10
 
11
11
  fail ArgumentError, 'buttons can be warning or secondary' if warning && secondary
@@ -14,6 +14,7 @@ module GOVUKDesignSystemFormBuilder
14
14
  @prevent_double_click = prevent_double_click
15
15
  @warning = warning
16
16
  @secondary = secondary
17
+ @inverse = inverse
17
18
  @validate = validate
18
19
  @disabled = disabled
19
20
  @html_attributes = kwargs
@@ -68,6 +69,7 @@ module GOVUKDesignSystemFormBuilder
68
69
  "button--warning" => @warning,
69
70
  "button--secondary" => @secondary,
70
71
  "button--disabled" => @disabled,
72
+ "button--inverse" => @inverse,
71
73
  ).prefix(brand)
72
74
  end
73
75
  end
@@ -1,17 +1,18 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Traits
3
3
  module Input
4
- def initialize(builder, object_name, attribute_name, hint:, label:, caption:, prefix_text:, suffix_text:, width:, form_group:, **kwargs, &block)
4
+ def initialize(builder, object_name, attribute_name, hint:, label:, caption:, prefix_text:, suffix_text:, width:, extra_letter_spacing:, form_group:, **kwargs, &block)
5
5
  super(builder, object_name, attribute_name, &block)
6
6
 
7
- @width = width
8
- @label = label
9
- @caption = caption
10
- @hint = hint
11
- @prefix_text = prefix_text
12
- @suffix_text = suffix_text
13
- @html_attributes = kwargs
14
- @form_group = form_group
7
+ @width = width
8
+ @label = label
9
+ @caption = caption
10
+ @hint = hint
11
+ @prefix_text = prefix_text
12
+ @suffix_text = suffix_text
13
+ @html_attributes = kwargs
14
+ @form_group = form_group
15
+ @extra_letter_spacing = extra_letter_spacing
15
16
  end
16
17
 
17
18
  def html
@@ -53,13 +54,17 @@ module GOVUKDesignSystemFormBuilder
53
54
  end
54
55
 
55
56
  def classes
56
- [%(#{brand}-input)].push(width_classes, error_classes).compact
57
+ [%(#{brand}-input)].push(width_classes, error_classes, extra_letter_spacing_classes).compact
57
58
  end
58
59
 
59
60
  def error_classes
60
61
  %(#{brand}-input--error) if has_errors?
61
62
  end
62
63
 
64
+ def extra_letter_spacing_classes
65
+ %(#{brand}-input--extra-letter-spacing) if @extra_letter_spacing
66
+ end
67
+
63
68
  def width_classes
64
69
  return if @width.blank?
65
70
 
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '4.0.0rc1'.freeze
2
+ VERSION = '4.1.0'.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: 4.0.0rc1
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-13 00:00:00.000000000 Z
11
+ date: 2023-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html-attributes-utils
@@ -134,14 +134,14 @@ dependencies:
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: 4.10.0
137
+ version: 4.11.0
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: 4.10.0
144
+ version: 4.11.0
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: simplecov
147
147
  requirement: !ruby/object:Gem::Requirement
@@ -260,14 +260,14 @@ dependencies:
260
260
  requirements:
261
261
  - - "~>"
262
262
  - !ruby/object:Gem::Version
263
- version: 0.22.0
263
+ version: 0.24.0
264
264
  type: :development
265
265
  prerelease: false
266
266
  version_requirements: !ruby/object:Gem::Requirement
267
267
  requirements:
268
268
  - - "~>"
269
269
  - !ruby/object:Gem::Version
270
- version: 0.22.0
270
+ version: 0.24.0
271
271
  - !ruby/object:Gem::Dependency
272
272
  name: webrick
273
273
  requirement: !ruby/object:Gem::Requirement
@@ -282,8 +282,8 @@ dependencies:
282
282
  - - "~>"
283
283
  - !ruby/object:Gem::Version
284
284
  version: 1.8.1
285
- description: A Rails form builder that generates form inputs adhering to the GOV.UK
286
- Design System
285
+ description: This library provides view components for the GOV.UK Design System. It
286
+ makes creating services more familiar for Ruby on Rails developers.
287
287
  email:
288
288
  - peter.yates@graphia.co.uk
289
289
  executables: []
@@ -350,12 +350,12 @@ homepage: https://govuk-form-builder.netlify.app
350
350
  licenses:
351
351
  - MIT
352
352
  metadata:
353
- bug_tracker_uri: https://github.com/DFE-Digital/govuk-formbuilder/issues
354
- changelog_uri: https://github.com/DFE-Digital/govuk-formbuilder/releases
353
+ bug_tracker_uri: https://github.com/x-govuk/govuk-form-builder/issues
354
+ changelog_uri: https://github.com/x-govuk/govuk-form-builder/releases
355
355
  documentation_uri: https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder
356
356
  homepage_uri: https://govuk-form-builder.netlify.app
357
- source_code_uri: https://github.com/DFE-Digital/govuk-formbuilder
358
- github_repo: https://github.com/DFE-Digital/govuk-formbuilder
357
+ source_code_uri: https://github.com/x-govuk/govuk-form-builder
358
+ github_repo: https://github.com/x-govuk/govuk-form-builder
359
359
  post_install_message:
360
360
  rdoc_options: []
361
361
  require_paths:
@@ -367,12 +367,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
367
367
  version: '0'
368
368
  required_rubygems_version: !ruby/object:Gem::Requirement
369
369
  requirements:
370
- - - ">"
370
+ - - ">="
371
371
  - !ruby/object:Gem::Version
372
- version: 1.3.1
372
+ version: '0'
373
373
  requirements: []
374
374
  rubygems_version: 3.2.33
375
375
  signing_key:
376
376
  specification_version: 4
377
- summary: GOV.UK-compliant Rails form builder
377
+ summary: GOV.UK Form Builder for Ryby on Rails
378
378
  test_files: []