govuk_design_system_formbuilder 2.7.3 → 2.8.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: 8dde478d08a40d1cc871b7f0b2db7180db591ec384d4d7cc160ce9523605d8f2
4
- data.tar.gz: f406bfbc2ac3b5eb5a5ce5c6cade4138459323a6a9fe9e8cbe23dcf33edcd9cb
3
+ metadata.gz: 84999693662af580363425f17c82d516d675c30d000ccd7e46a3d4607b63b32e
4
+ data.tar.gz: fe9b2a8f8cd05ec1eb56d915223a387ba4d86390dbee1e771f9c32263afd054a
5
5
  SHA512:
6
- metadata.gz: 112918eb62e62548f16a27cb8e3a33e353d4be9543819f366f88671e628faff90a4ec28fb49a4a76d0d8ed0136569db090a36091c1cf6e1e3e0f360e770939c4
7
- data.tar.gz: ae6d8df17006b0a5d77eb6bd21d8402f53eca1087c34071c39534ca8e9753e33a6ca555f242eadf2a83e6eeaa4cbc92689e19458351851ba408cf4b419b656e3
6
+ metadata.gz: f48bdf7f824047df1dccc6b53412cb454f3f30af9805ba5b6fafa91d89454e03ef929d534919b0695ca0db0804d84de18a01779074382d96e7c457c2e4a727cf
7
+ data.tar.gz: c5d24743fa044cf0b71b3b3609239c0787ed0551a6993f74f238385217782f4167439470070c4dd0f4d24b1bdcb1446cb6c996d3aef51f001c016dde55945800
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/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/master/LICENSE)
9
- [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-3.13.0-brightgreen)](https://design-system.service.gov.uk)
10
- [![Rails](https://img.shields.io/badge/Ruby-2.6.8%20%E2%95%B1%202.7.4%20%E2%95%B1%203.0.2-E16D6D)](https://www.ruby-lang.org/en/downloads/)
11
- [![Ruby](https://img.shields.io/badge/Rails-6.0.4%20%E2%95%B1%206.1.3.2-E16D6D)](https://weblog.rubyonrails.org/releases/)
9
+ [![GOV.UK Design System Version](https://img.shields.io/badge/GOV.UK%20Design%20System-3.14.0-brightgreen)](https://design-system.service.gov.uk)
10
+ [![Rails](https://img.shields.io/badge/Rails-6.0.4.1%20%E2%95%B1%206.1.4.1-E16D6D)](https://weblog.rubyonrails.org/releases/)
11
+ [![Ruby](https://img.shields.io/badge/Ruby-2.6.8%20%E2%95%B1%202.7.4%20%E2%95%B1%203.0.2-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
 
@@ -56,7 +56,7 @@ To get up and running quickly and easily try kickstarting your project with a
56
56
  pre-configured template:
57
57
 
58
58
  * [DfE Boilerplate](https://github.com/DFE-Digital/govuk-rails-boilerplate)
59
- * [MoJ Rails Template](https://github.com/ministryofjustice/moj_rails_template)
59
+ * [DEFRA Ruby Template](https://github.com/DEFRA/defra-ruby-template)
60
60
 
61
61
  ## Setup 🔧
62
62
 
@@ -471,9 +471,9 @@ module GOVUKDesignSystemFormBuilder
471
471
  # @note Unlike the Rails +#collection_radio_buttons+ helper, this version can also insert
472
472
  # hints per item in the collection by supplying a +:hint_method+
473
473
  #
474
- # @note +:bold_labels+, while false by default, is set to true when a
475
- # +:hint_method+ is provided. This is done to make the label stand out more
476
- # from the hint.
474
+ # @note +:bold_labels+, is +nil+ (falsy) by default. When a +:hint_method+
475
+ # is provided it will become +true+ to make the label stand out more
476
+ # from the hint. The choice can be overridden with +true+ or +false+.
477
477
  #
478
478
  # @param attribute_name [Symbol] The name of the attribute
479
479
  # @param collection [Enumerable<Object>] Options to be added to the +select+ element
@@ -538,7 +538,7 @@ module GOVUKDesignSystemFormBuilder
538
538
  # :name,
539
539
  # legend: -> { tag.h3('Which category do you belong to?') }
540
540
  #
541
- def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method = nil, hint_method = nil, hint: {}, legend: {}, caption: {}, inline: false, small: false, bold_labels: false, classes: nil, include_hidden: config.default_collection_radio_buttons_include_hidden, form_group: {}, &block)
541
+ def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method = nil, hint_method = nil, hint: {}, legend: {}, caption: {}, inline: false, small: false, bold_labels: nil, classes: nil, include_hidden: config.default_collection_radio_buttons_include_hidden, form_group: {}, &block)
542
542
  Elements::Radios::Collection.new(
543
543
  self,
544
544
  object_name,
@@ -912,6 +912,7 @@ module GOVUKDesignSystemFormBuilder
912
912
  # @option caption size [String] the size of the caption, can be +xl+, +l+ or +m+. Defaults to +m+
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
+ # @param maxlength_enabled [Boolean] adds maxlength attribute to day, month and year inputs (2, 2, and 4, respectively)
915
916
  # @param wildcards [Boolean] add an 'X' to the day and month patterns so users can add approximate dates
916
917
  # @param form_group [Hash] configures the form group
917
918
  # @option form_group classes [Array,String] sets the form group's classes
@@ -936,8 +937,8 @@ module GOVUKDesignSystemFormBuilder
936
937
  # @example A date input with legend supplied as a proc
937
938
  # = f.govuk_date_field :finishes_on,
938
939
  # legend: -> { tag.h3('Which category do you belong to?') }
939
- def govuk_date_field(attribute_name, hint: {}, legend: {}, caption: {}, date_of_birth: false, omit_day: false, form_group: {}, wildcards: false, **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, form_group: form_group, wildcards: wildcards, **kwargs, &block).html
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
941
942
  end
942
943
 
943
944
  # Generates a summary of errors in the form, each linking to the corresponding
@@ -6,21 +6,23 @@ module GOVUKDesignSystemFormBuilder
6
6
  include Traits::Error
7
7
  include Traits::Hint
8
8
  include Traits::Supplemental
9
+ include Traits::HTMLClasses
9
10
 
10
11
  SEGMENTS = { day: '3i', month: '2i', year: '1i' }.freeze
11
12
  MULTIPARAMETER_KEY = { day: 3, month: 2, year: 1 }.freeze
12
13
 
13
- def initialize(builder, object_name, attribute_name, legend:, caption:, hint:, omit_day:, 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:, wildcards:, date_of_birth: false, **kwargs, &block)
14
15
  super(builder, object_name, attribute_name, &block)
15
16
 
16
- @legend = legend
17
- @caption = caption
18
- @hint = hint
19
- @date_of_birth = date_of_birth
20
- @omit_day = omit_day
21
- @form_group = form_group
22
- @wildcards = wildcards
23
- @html_attributes = kwargs
17
+ @legend = legend
18
+ @caption = caption
19
+ @hint = hint
20
+ @date_of_birth = date_of_birth
21
+ @omit_day = omit_day
22
+ @maxlength_enabled = maxlength_enabled
23
+ @form_group = form_group
24
+ @wildcards = wildcards
25
+ @html_attributes = kwargs
24
26
  end
25
27
 
26
28
  def html
@@ -47,6 +49,10 @@ module GOVUKDesignSystemFormBuilder
47
49
  @omit_day
48
50
  end
49
51
 
52
+ def maxlength_enabled?
53
+ @maxlength_enabled
54
+ end
55
+
50
56
  def day
51
57
  return if omit_day?
52
58
 
@@ -104,7 +110,8 @@ module GOVUKDesignSystemFormBuilder
104
110
  pattern: pattern(segment),
105
111
  inputmode: 'numeric',
106
112
  value: value,
107
- autocomplete: date_of_birth_autocomplete_value(segment)
113
+ autocomplete: date_of_birth_autocomplete_value(segment),
114
+ maxlength: (width if maxlength_enabled?),
108
115
  )
109
116
  end
110
117
 
@@ -115,10 +122,12 @@ module GOVUKDesignSystemFormBuilder
115
122
  end
116
123
 
117
124
  def classes(width)
118
- %w(input date-input__input).prefix(brand).tap do |classes|
119
- classes.push(%(#{brand}-input--width-#{width}))
120
- classes.push(%(#{brand}-input--error)) if has_errors?
121
- end
125
+ build_classes(
126
+ %(input),
127
+ %(date-input__input),
128
+ %(input--width-#{width}),
129
+ %(input--error) => has_errors?,
130
+ ).prefix(brand)
122
131
  end
123
132
 
124
133
  # if the field has errors we want the govuk_error_summary to
@@ -148,7 +157,7 @@ module GOVUKDesignSystemFormBuilder
148
157
  end
149
158
 
150
159
  def label_classes
151
- %w(label date-input__label).prefix(brand)
160
+ build_classes(%(label), %(date-input__label)).prefix(brand)
152
161
  end
153
162
  end
154
163
  end
@@ -20,7 +20,7 @@ module GOVUKDesignSystemFormBuilder
20
20
  end
21
21
 
22
22
  def message
23
- @builder.object.errors.messages[@attribute_name]&.first
23
+ set_message_safety(@builder.object.errors.messages[@attribute_name]&.first)
24
24
  end
25
25
  end
26
26
  end
@@ -80,8 +80,10 @@ module GOVUKDesignSystemFormBuilder
80
80
  config.default_error_summary_error_order_method
81
81
  end
82
82
 
83
- def list_item(attribute, message)
84
- tag.li(link_to(message, same_page_link(field_id(attribute)), data: { turbolinks: false }))
83
+ def list_item(attribute, message, url = nil)
84
+ target = url || same_page_link(field_id(attribute))
85
+
86
+ tag.li(link_to(set_message_safety(message), target, **link_options))
85
87
  end
86
88
 
87
89
  def same_page_link(target)
@@ -125,10 +127,16 @@ module GOVUKDesignSystemFormBuilder
125
127
  module: %(#{brand}-error-summary)
126
128
  },
127
129
  aria: {
128
- labelledby: summary_title_id
130
+ labelledby: [summary_title_id.presence]
129
131
  }
130
132
  }
131
133
  end
134
+
135
+ def link_options(turbo_prefix: config.default_error_summary_turbo_prefix)
136
+ return {} unless turbo_prefix
137
+
138
+ { data: { turbo_prefix => false } }
139
+ end
132
140
  end
133
141
  end
134
142
  end
@@ -8,6 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  include Traits::Label
9
9
  include Traits::Supplemental
10
10
  include Traits::HTMLAttributes
11
+ include Traits::HTMLClasses
11
12
 
12
13
  def initialize(builder, object_name, attribute_name, hint:, label:, caption:, form_group:, **kwargs, &block)
13
14
  super(builder, object_name, attribute_name, &block)
@@ -40,9 +41,7 @@ module GOVUKDesignSystemFormBuilder
40
41
  end
41
42
 
42
43
  def classes
43
- %w(file-upload).prefix(brand).tap do |c|
44
- c.push(%(#{brand}-file-upload--error)) if has_errors?
45
- end
44
+ build_classes(%(file-upload), %(file-upload--error) => has_errors?).prefix(brand)
46
45
  end
47
46
  end
48
47
  end
@@ -21,7 +21,11 @@ module GOVUKDesignSystemFormBuilder
21
21
  @classes = classes
22
22
  @form_group = form_group
23
23
  @include_hidden = include_hidden
24
- @bold_labels = hint_method.present? || bold_labels
24
+ @bold_labels = if bold_labels.nil?
25
+ hint_method.present?
26
+ else
27
+ bold_labels
28
+ end
25
29
  end
26
30
 
27
31
  def html
@@ -8,6 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  include Traits::Label
9
9
  include Traits::Supplemental
10
10
  include Traits::HTMLAttributes
11
+ include Traits::HTMLClasses
11
12
 
12
13
  def initialize(builder, object_name, attribute_name, hint:, label:, caption:, rows:, max_words:, max_chars:, threshold:, form_group:, **kwargs, &block)
13
14
  super(builder, object_name, attribute_name, &block)
@@ -42,10 +43,7 @@ module GOVUKDesignSystemFormBuilder
42
43
  end
43
44
 
44
45
  def classes
45
- %w(textarea).prefix(brand).tap do |classes|
46
- classes.push(%(#{brand}-textarea--error)) if has_errors?
47
- classes.push(%(#{brand}-js-character-count)) if limit?
48
- end
46
+ build_classes(%(textarea), %(textarea--error) => has_errors?, %(js-character-count) => limit?).prefix(brand)
49
47
  end
50
48
 
51
49
  def options
@@ -86,7 +84,7 @@ module GOVUKDesignSystemFormBuilder
86
84
  end
87
85
 
88
86
  def limit_description_classes
89
- %w(hint character-count__message).prefix(brand)
87
+ build_classes(%(hint), %(character-count__message)).prefix(brand)
90
88
  end
91
89
 
92
90
  def limit_description_id
@@ -19,9 +19,13 @@ module Presenters
19
19
  # passed into {GOVUKDesignSystemFormBuilder::Elements::ErrorSummary#list_item}.
20
20
  #
21
21
  # @return [Array<Array(Symbol, String)>] array of attribute and message arrays
22
+ # @return [Array<Array(Symbol, String, String)>] array of attribute, message and URL arrays.
22
23
  #
23
24
  # @example Output format given the input above:
24
25
  # [[:attribute_one, "first error"], [:attribute_two, "third error"]]
26
+ #
27
+ # @example Output with hard-coded URLs
28
+ # [[:attribute_one, "first error", "https://example.com/attribute-one"], [:attribute_two, "third error", "https://example.com/attribute-two"]]
25
29
  def formatted_error_messages
26
30
  @error_messages.map { |attribute, messages| [attribute, messages.first] }
27
31
  end
@@ -12,6 +12,10 @@ module GOVUKDesignSystemFormBuilder
12
12
  def error_element
13
13
  @error_element ||= Elements::ErrorMessage.new(*bound)
14
14
  end
15
+
16
+ def set_message_safety(message)
17
+ config.trust_error_messages ? message.html_safe : message
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -24,7 +24,7 @@ module GOVUKDesignSystemFormBuilder
24
24
  id: field_id(link_errors: @link_errors),
25
25
  class: classes,
26
26
  multiple: @multiple,
27
- aria: { describedby: [hint_id] },
27
+ aria: { describedby: [hint_id.presence] },
28
28
  data: { 'aria-controls' => @conditional_id }
29
29
  }
30
30
  end
@@ -6,11 +6,17 @@ module GOVUKDesignSystemFormBuilder
6
6
  # present
7
7
  # * joins the arrays into strings to maintain Rails 6.0.* compatibility
8
8
  class Attributes
9
- # Rather than attempt to combine these attributes, just overwrite the
10
- # form internally-generated values with those that are passed in. This
11
- # prevents the merge/unique value logic from affecting the content
12
- # (i.e. by remvoving duplicated words).
13
- UNMERGEABLE = [%i(id), %i(value), %i(title), %i(alt), %i(href), %i(aria label)].freeze
9
+ # Only try to combine and merge these attributes that contain a list of
10
+ # values separated by a space. All other values should be merged in a
11
+ # regular fashion (where the custom value overrides the default)
12
+ MERGEABLE = [
13
+ %i(class),
14
+ %i(aria controls),
15
+ %i(aria describedby),
16
+ %i(aria flowto),
17
+ %i(aria labelledby),
18
+ %i(aria owns),
19
+ ].freeze
14
20
 
15
21
  def initialize(defaults, custom)
16
22
  @merged = defaults.deeper_merge(deep_split_values(custom))
@@ -36,7 +42,7 @@ module GOVUKDesignSystemFormBuilder
36
42
  end
37
43
 
38
44
  def split_mergeable(key, value, parent = nil)
39
- return value if [parent, key].compact.in?(UNMERGEABLE)
45
+ return value.presence unless [parent, key].compact.in?(MERGEABLE)
40
46
 
41
47
  value.split
42
48
  end
@@ -0,0 +1,36 @@
1
+ module GOVUKDesignSystemFormBuilder
2
+ module Traits
3
+ module HTMLClasses
4
+ # combine all the classes in *args with any keys from **kwargs
5
+ # where the value is true. Roughly based on the behaviour from
6
+ # Rails' class_names, but recreated here as that returns a string
7
+ # where we want an array.
8
+ def build_classes(*args, **kwargs)
9
+ # FIXME: we need to handle the arguments differently for Ruby 2.6.x because
10
+ # Ruby 2.7.0 brought the separation of positional and keyword
11
+ # arguments.
12
+ #
13
+ # This can be removed once support for 2.6.x is dropped.
14
+ #
15
+ # https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
16
+ return ruby_2_6_build_classes_fallback(*args) if RUBY_VERSION < "2.7.0"
17
+
18
+ (args + kwargs.map { |k, v| k if v }).compact
19
+ end
20
+
21
+ private
22
+
23
+ def ruby_2_6_build_classes_fallback(*args)
24
+ [].tap do |classes|
25
+ args.each do |arg|
26
+ if arg.is_a?(Hash)
27
+ arg.each { |k, v| classes.append(k) if v }
28
+ else
29
+ classes.append(arg)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '2.7.3'.freeze
2
+ VERSION = '2.8.0'.freeze
3
3
  end
@@ -54,6 +54,12 @@ module GOVUKDesignSystemFormBuilder
54
54
  # will check for on the bound object to see whether or not to try ordering the
55
55
  # error messages
56
56
  #
57
+ # * +:default_error_summary_turbo_prefix+ is used to disable turbo/turbolinks from
58
+ # handling clicks on links in the error summary. When it's a string (eg,
59
+ # turbo), that will result in links with the attribute 'data-turbo=false'.
60
+ # When nil, no data attribute will be added. Defaults to 'turbolinks' for
61
+ # compatibilitiy's sake; this will change to 'turbo' when Rails 7 is released
62
+ #
57
63
  # * +:localisation_schema_fallback+ sets the prefix elements for the array
58
64
  # used to build the localisation string. The final two elements are always
59
65
  # are the object name and attribute name. The _special_ value +__context__+,
@@ -65,6 +71,10 @@ module GOVUKDesignSystemFormBuilder
65
71
  #
66
72
  # * +:enable_logger+ controls whether or not the library will emit log
67
73
  # messages via Rails.logger.warn, defaults to +true+
74
+ #
75
+ # * +:trust_error_messages+ call html_safe on error messages before they're
76
+ # rendered. This allows formatting markup to be used to change the display
77
+ # of the error message. Defaults to +false+
68
78
  # ===
69
79
  DEFAULTS = {
70
80
  brand: 'govuk',
@@ -78,6 +88,7 @@ module GOVUKDesignSystemFormBuilder
78
88
  default_error_summary_title: 'There is a problem',
79
89
  default_error_summary_presenter: Presenters::ErrorSummaryPresenter,
80
90
  default_error_summary_error_order_method: nil,
91
+ default_error_summary_turbo_prefix: 'turbolinks',
81
92
  default_collection_check_boxes_include_hidden: true,
82
93
  default_collection_radio_buttons_include_hidden: true,
83
94
  default_submit_validate: false,
@@ -88,7 +99,8 @@ module GOVUKDesignSystemFormBuilder
88
99
  localisation_schema_legend: nil,
89
100
  localisation_schema_caption: nil,
90
101
 
91
- enable_logger: true
102
+ enable_logger: true,
103
+ trust_error_messages: false,
92
104
  }.freeze
93
105
 
94
106
  DEFAULTS.each_key { |k| config_accessor(k) { DEFAULTS[k] } }
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.7.3
4
+ version: 2.8.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: 2021-09-01 00:00:00.000000000 Z
11
+ date: 2021-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deep_merge
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 4.0.0
75
+ version: 4.1.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 4.0.0
82
+ version: 4.1.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -340,6 +340,7 @@ files:
340
340
  - lib/govuk_design_system_formbuilder/traits/fieldset_item.rb
341
341
  - lib/govuk_design_system_formbuilder/traits/hint.rb
342
342
  - lib/govuk_design_system_formbuilder/traits/html_attributes.rb
343
+ - lib/govuk_design_system_formbuilder/traits/html_classes.rb
343
344
  - lib/govuk_design_system_formbuilder/traits/input.rb
344
345
  - lib/govuk_design_system_formbuilder/traits/label.rb
345
346
  - lib/govuk_design_system_formbuilder/traits/localisation.rb
@@ -350,11 +351,12 @@ homepage: https://govuk-form-builder.netlify.app
350
351
  licenses:
351
352
  - MIT
352
353
  metadata:
353
- bug_tracker_uri: https://github.com/DFE-Digital/govuk_design_system_formbuilder/issues
354
- changelog_uri: https://github.com/DFE-Digital/govuk_design_system_formbuilder/releases
354
+ bug_tracker_uri: https://github.com/DFE-Digital/govuk-formbuilder/issues
355
+ changelog_uri: https://github.com/DFE-Digital/govuk-formbuilder/releases
355
356
  documentation_uri: https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder
356
357
  homepage_uri: https://govuk-form-builder.netlify.app
357
- source_code_uri: https://github.com/DFE-Digital/govuk_design_system_formbuilder
358
+ source_code_uri: https://github.com/DFE-Digital/govuk-formbuilder
359
+ github_repo: https://github.com/DFE-Digital/govuk-formbuilder
358
360
  post_install_message:
359
361
  rdoc_options: []
360
362
  require_paths: