govuk_design_system_formbuilder 5.7.1 → 5.9.0

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: 1096f4d30a1935ff1ca3655c7538845d99d85f23b4914a9ec25b495a38056b9e
4
- data.tar.gz: e5b47a1d12559a5884ab2640472577a0f86c883360b6fa78cd9fe3b4aa51dc7c
3
+ metadata.gz: 220007e1838a0002e83876f9d4b2d45cfe7aed0b3f7c80ef44eb1ff3a7cab100
4
+ data.tar.gz: a5c93a76a65e111e217d8ac2cf8c57054d461bcc5b9776c60f3eb974fefca621
5
5
  SHA512:
6
- metadata.gz: cf31dec5b322f652b020f286161360fda17d7deae06bc5e183de89a0974402bca171f08f780393864ef377b91826eab219c6506720b4354aabcf4a6a279ec0aa
7
- data.tar.gz: 96d84041ef6616da364a4139aadb8d7a8f085063647caeff7a169b0c3ee49de2ff85effa550c30e6a1963f30d8cbfe7df65c7e1756641f93c75274c23d1346f4
6
+ metadata.gz: cc8d47220c227fe61856188a716c47babfe4cd94106ab142ccbb23ea3ddbf0a84709609b7d2cd6f3b9604e068bd325fc7133628619bb9f530960ac5822543199
7
+ data.tar.gz: 0a3934c4286b9b2d89e704c43eafab7bbdde74c083f2b12649c1306b0c33d6a7522be275af03d94d4da03370de50101b34cb4866c09182a9366992fea5e5162a
data/README.md CHANGED
@@ -6,9 +6,9 @@
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/x-govuk/govuk-form-builder/test_coverage)
8
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-5.7.1-brightgreen)](https://design-system.service.gov.uk)
10
- [![Rails](https://img.shields.io/badge/Rails-7.1.5%20%E2%95%B1%207.2.2%20%E2%95%B1%208.0.0-E16D6D)](https://weblog.rubyonrails.org/releases/)
11
- [![Ruby](https://img.shields.io/badge/Ruby-3.2.6%20%20%E2%95%B1%203.3.6-E16D6D)](https://www.ruby-lang.org/en/downloads/)
9
+ [![GOV.UK Design System version](https://img.shields.io/badge/GOV.UK%20Design%20System-5.9.0-brightgreen)](https://design-system.service.gov.uk)
10
+ [![Rails](https://img.shields.io/badge/Rails-7.1.5%20%E2%95%B1%207.2.2%20%E2%95%B1%208.0.1-E16D6D)](https://weblog.rubyonrails.org/releases/)
11
+ [![Ruby](https://img.shields.io/badge/Ruby-3.2.6%20%20%E2%95%B1%203.3.6%20%20%E2%95%B1%203.4.1-E16D6D)](https://www.ruby-lang.org/en/downloads/)
12
12
 
13
13
  This library provides an easy-to-use form builder for the [GOV.UK Design System](https://design-system.service.gov.uk/).
14
14
 
@@ -1046,6 +1046,7 @@ module GOVUKDesignSystemFormBuilder
1046
1046
  # @option kwargs [Hash] kwargs additional arguments are applied as attributes to the +input+ element
1047
1047
  # @param form_group [Hash] configures the form group
1048
1048
  # @option form_group kwargs [Hash] additional attributes added to the form group
1049
+ # @param javascript [Boolean] Configures whether to add HTML for the javascript-enhanced version of the component
1049
1050
  # @param block [Block] arbitrary HTML that will be rendered between the hint and the input
1050
1051
  #
1051
1052
  # @example A photo upload field with file type specifier and injected content
@@ -1064,8 +1065,8 @@ module GOVUKDesignSystemFormBuilder
1064
1065
  # @note Remember to set +multipart: true+ when creating a form with file
1065
1066
  # uploads, {https://guides.rubyonrails.org/form_helpers.html#uploading-files see
1066
1067
  # the Rails documentation} for more information
1067
- def govuk_file_field(attribute_name, label: {}, caption: {}, hint: {}, form_group: {}, **kwargs, &block)
1068
- Elements::File.new(self, object_name, attribute_name, label:, caption:, hint:, form_group:, **kwargs, &block).html
1068
+ def govuk_file_field(attribute_name, label: {}, caption: {}, hint: {}, form_group: {}, javascript: false, **kwargs, &block)
1069
+ Elements::File.new(self, object_name, attribute_name, label:, caption:, hint:, form_group:, javascript:, **kwargs, &block).html
1069
1070
  end
1070
1071
  end
1071
1072
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GOVUKDesignSystemFormBuilder
2
4
  module Elements
3
5
  class ErrorSummary < Base
@@ -89,7 +91,7 @@ module GOVUKDesignSystemFormBuilder
89
91
  end
90
92
 
91
93
  def same_page_link(target)
92
- '#'.concat(target)
94
+ target.prepend('#')
93
95
  end
94
96
 
95
97
  def classes
@@ -10,7 +10,7 @@ module GOVUKDesignSystemFormBuilder
10
10
  include Traits::HTMLAttributes
11
11
  include Traits::HTMLClasses
12
12
 
13
- def initialize(builder, object_name, attribute_name, hint:, label:, caption:, form_group:, **kwargs, &block)
13
+ def initialize(builder, object_name, attribute_name, hint:, label:, caption:, form_group:, javascript:, **kwargs, &block)
14
14
  super(builder, object_name, attribute_name, &block)
15
15
 
16
16
  @label = label
@@ -18,20 +18,29 @@ module GOVUKDesignSystemFormBuilder
18
18
  @hint = hint
19
19
  @html_attributes = kwargs
20
20
  @form_group = form_group
21
+ @javascript = javascript
21
22
  end
22
23
 
23
24
  def html
24
25
  Containers::FormGroup.new(*bound, **@form_group).html do
25
- safe_join([label_element, supplemental_content, hint_element, error_element, file])
26
+ safe_join([label_element, supplemental_content, hint_element, error_element, file_html])
26
27
  end
27
28
  end
28
29
 
29
30
  private
30
31
 
32
+ def file_html
33
+ @javascript ? file_with_javascript_markup : file
34
+ end
35
+
31
36
  def file
32
37
  @builder.file_field(@attribute_name, attributes(@html_attributes))
33
38
  end
34
39
 
40
+ def file_with_javascript_markup
41
+ tag.div(class: "#{brand}-drop-zone", data: { module: "#{brand}-file-upload" }) { file }
42
+ end
43
+
35
44
  def options
36
45
  {
37
46
  id: field_id(link_errors: true),
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '5.7.1'.freeze
2
+ VERSION = '5.9.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: 5.7.1
4
+ version: 5.9.0
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: 2024-11-09 00:00:00.000000000 Z
11
+ date: 2025-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html-attributes-utils
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '6.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ostruct
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +204,14 @@ dependencies:
190
204
  requirements:
191
205
  - - "~>"
192
206
  - !ruby/object:Gem::Version
193
- version: 4.4.0
207
+ version: 4.5.1
194
208
  type: :development
195
209
  prerelease: false
196
210
  version_requirements: !ruby/object:Gem::Requirement
197
211
  requirements:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
- version: 4.4.0
214
+ version: 4.5.1
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: rubypants
203
217
  requirement: !ruby/object:Gem::Requirement
@@ -274,14 +288,14 @@ dependencies:
274
288
  requirements:
275
289
  - - "~>"
276
290
  - !ruby/object:Gem::Version
277
- version: 1.8.1
291
+ version: 1.9.1
278
292
  type: :development
279
293
  prerelease: false
280
294
  version_requirements: !ruby/object:Gem::Requirement
281
295
  requirements:
282
296
  - - "~>"
283
297
  - !ruby/object:Gem::Version
284
- version: 1.8.1
298
+ version: 1.9.1
285
299
  - !ruby/object:Gem::Dependency
286
300
  name: redcarpet
287
301
  requirement: !ruby/object:Gem::Requirement
@@ -369,7 +383,7 @@ metadata:
369
383
  homepage_uri: https://govuk-form-builder.netlify.app
370
384
  source_code_uri: https://github.com/x-govuk/govuk-form-builder
371
385
  github_repo: https://github.com/x-govuk/govuk-form-builder
372
- post_install_message:
386
+ post_install_message:
373
387
  rdoc_options: []
374
388
  require_paths:
375
389
  - lib
@@ -385,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
399
  version: '0'
386
400
  requirements: []
387
401
  rubygems_version: 3.3.27
388
- signing_key:
402
+ signing_key:
389
403
  specification_version: 4
390
404
  summary: GOV.UK Form Builder for Ryby on Rails
391
405
  test_files: []