protos-protoform 0.0.2 → 0.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: fc22975fd2a29b54b0e5f1f5a92ef569fc78a3ab35f3a5672b8705703357c8e1
4
- data.tar.gz: d249529bf058a94369abb9aebd56b4d5b0a68faab4c00831c57a6aa9373fc9c5
3
+ metadata.gz: d87996776d7c98ac20d0f3f043bda6364cfe22be19ed00820e5c48df504837a5
4
+ data.tar.gz: 506204d5092faccefb7eaab6506e437f43faa8b741322e84533589e8f5cd7334
5
5
  SHA512:
6
- metadata.gz: d45f5a2705117c6b87a225ec72c8f72605b8573907f9cd71e232a968ec5b2f0f4014d0250ae19ab1b78a83a82cddbdd9608e6d258028159d8e40eaed955eb17e
7
- data.tar.gz: 2dffae4a6e8875b96075542e0d5a5218f0639933f8cc2d10f4b9a502c5a7ec6066d0153e39bbef9ddc08b54e13c9e356a7c84aafa58752422b35bc31488b6806
6
+ metadata.gz: d6d4dad661cafa7395860cd52f131f8a536311f2a8c150f4c673d0136c6fa9dd69b66b144d06dec171c72d868ac5b00e8b890eb693073bf4c530d938e1d470c1
7
+ data.tar.gz: f25ccd64a68b57a41be47590cc5d3ed4d4cc39f3f8f055fb69bf6ed60008aff768fef68158030313ffb2aa0df4b1d6250b1e26c8779120b0308d12b7cb2ebd55
data/.rubocop.yml CHANGED
@@ -6,4 +6,4 @@ inherit_gem:
6
6
  - config/default.yml
7
7
 
8
8
  AllCops:
9
- TargetRubyVersion: 3.1
9
+ TargetRubyVersion: 3.2
data/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.2.0] - 2024-08-14
3
+ ## [0.1.0] - 2024-09-04
4
+
5
+ - Adds tests for all Rails components
6
+ - Adds `Time`, `Datetime`, `Date`, and `RadioButton` components
7
+ - Fixes a bug in `Button` component calling the wrong method on `attrs`
8
+ - Bumps supported Ruby version to 3.2
9
+ - Adds value suffix to labels allowing them to match radio button ids
10
+ - Bumps `protos` dependency to `v0.6.0`
11
+
12
+ ## [0.0.2] - 2024-08-14
4
13
 
5
14
  - Adds handling client supplied values like files and images
6
15
  - Fixes overriding methods on forms when supplying a Rails model
@@ -8,6 +17,6 @@
8
17
  - Transfers ownership of repo from `nolantait` to `inhouse-work` organization to
9
18
  match other `protos-` gems
10
19
 
11
- ## [0.1.0] - 2023-06-23
20
+ ## [0.0.1] - 2023-06-23
12
21
 
13
22
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,17 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- protos-protoform (0.0.1)
4
+ protos-protoform (0.1.0)
5
+ activerecord (~> 7.0)
6
+ activesupport (~> 7.0)
5
7
  phlex-rails (~> 1.0)
6
- protos (~> 0.4)
8
+ protos (~> 0.6)
7
9
  zeitwerk (~> 2.6)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
11
13
  specs:
12
- actionpack (7.2.0)
13
- actionview (= 7.2.0)
14
- activesupport (= 7.2.0)
14
+ actionpack (7.2.1)
15
+ actionview (= 7.2.1)
16
+ activesupport (= 7.2.1)
15
17
  nokogiri (>= 1.8.5)
16
18
  racc
17
19
  rack (>= 2.2.4, < 3.2)
@@ -20,15 +22,19 @@ GEM
20
22
  rails-dom-testing (~> 2.2)
21
23
  rails-html-sanitizer (~> 1.6)
22
24
  useragent (~> 0.16)
23
- actionview (7.2.0)
24
- activesupport (= 7.2.0)
25
+ actionview (7.2.1)
26
+ activesupport (= 7.2.1)
25
27
  builder (~> 3.1)
26
28
  erubi (~> 1.11)
27
29
  rails-dom-testing (~> 2.2)
28
30
  rails-html-sanitizer (~> 1.6)
29
- activemodel (7.2.0)
30
- activesupport (= 7.2.0)
31
- activesupport (7.2.0)
31
+ activemodel (7.2.1)
32
+ activesupport (= 7.2.1)
33
+ activerecord (7.2.1)
34
+ activemodel (= 7.2.1)
35
+ activesupport (= 7.2.1)
36
+ timeout (>= 0.4.0)
37
+ activesupport (7.2.1)
32
38
  base64
33
39
  bigdecimal
34
40
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -87,14 +93,14 @@ GEM
87
93
  reline (>= 0.4.2)
88
94
  json (2.7.2)
89
95
  language_server-protocol (3.17.0.3)
90
- logger (1.6.0)
96
+ logger (1.6.1)
91
97
  loofah (2.22.0)
92
98
  crass (~> 1.0.2)
93
99
  nokogiri (>= 1.12.0)
94
100
  lru_redux (1.1.0)
95
101
  matrix (0.4.2)
96
102
  mini_mime (1.1.5)
97
- minitest (5.25.0)
103
+ minitest (5.25.1)
98
104
  nokogiri (1.16.7-aarch64-linux)
99
105
  racc (~> 1.4)
100
106
  nokogiri (1.16.7-arm-linux)
@@ -107,8 +113,8 @@ GEM
107
113
  racc (~> 1.4)
108
114
  nokogiri (1.16.7-x86_64-linux)
109
115
  racc (~> 1.4)
110
- parallel (1.26.2)
111
- parser (3.3.4.2)
116
+ parallel (1.26.3)
117
+ parser (3.3.5.0)
112
118
  ast (~> 2.4.1)
113
119
  racc
114
120
  phlex (1.11.0)
@@ -119,7 +125,7 @@ GEM
119
125
  phlex-testing-capybara (0.1.0)
120
126
  capybara (~> 3.38)
121
127
  phlex (>= 0.5)
122
- protos (0.4.3)
128
+ protos (0.6.0)
123
129
  dry-core (~> 1.0)
124
130
  dry-initializer (~> 3.1)
125
131
  dry-types (~> 1.7)
@@ -144,9 +150,9 @@ GEM
144
150
  rails-html-sanitizer (1.6.0)
145
151
  loofah (~> 2.21)
146
152
  nokogiri (~> 1.14)
147
- railties (7.2.0)
148
- actionpack (= 7.2.0)
149
- activesupport (= 7.2.0)
153
+ railties (7.2.1)
154
+ actionpack (= 7.2.1)
155
+ activesupport (= 7.2.1)
150
156
  irb (~> 1.13)
151
157
  rackup (>= 1.0.0)
152
158
  rake (>= 12.2)
@@ -159,39 +165,36 @@ GEM
159
165
  regexp_parser (2.9.2)
160
166
  reline (0.5.9)
161
167
  io-console (~> 0.5)
162
- rexml (3.3.5)
163
- strscan
164
168
  rspec (3.13.0)
165
169
  rspec-core (~> 3.13.0)
166
170
  rspec-expectations (~> 3.13.0)
167
171
  rspec-mocks (~> 3.13.0)
168
- rspec-core (3.13.0)
172
+ rspec-core (3.13.1)
169
173
  rspec-support (~> 3.13.0)
170
- rspec-expectations (3.13.1)
174
+ rspec-expectations (3.13.2)
171
175
  diff-lcs (>= 1.2.0, < 2.0)
172
176
  rspec-support (~> 3.13.0)
173
177
  rspec-mocks (3.13.1)
174
178
  diff-lcs (>= 1.2.0, < 2.0)
175
179
  rspec-support (~> 3.13.0)
176
180
  rspec-support (3.13.1)
177
- rubocop (1.65.1)
181
+ rubocop (1.66.1)
178
182
  json (~> 2.3)
179
183
  language_server-protocol (>= 3.17.0)
180
184
  parallel (~> 1.10)
181
185
  parser (>= 3.3.0.2)
182
186
  rainbow (>= 2.2.2, < 4.0)
183
187
  regexp_parser (>= 2.4, < 3.0)
184
- rexml (>= 3.2.5, < 4.0)
185
- rubocop-ast (>= 1.31.1, < 2.0)
188
+ rubocop-ast (>= 1.32.2, < 2.0)
186
189
  ruby-progressbar (~> 1.7)
187
190
  unicode-display_width (>= 2.4.0, < 3.0)
188
- rubocop-ast (1.32.0)
191
+ rubocop-ast (1.32.2)
189
192
  parser (>= 3.3.1.0)
190
193
  rubocop-capybara (2.21.0)
191
194
  rubocop (~> 1.41)
192
195
  rubocop-factory_bot (2.26.1)
193
196
  rubocop (~> 1.61)
194
- rubocop-inhouse (0.1.9)
197
+ rubocop-inhouse (0.2.0)
195
198
  rubocop (>= 1.5)
196
199
  rubocop-capybara (>= 2.1)
197
200
  rubocop-factory_bot (>= 2.2)
@@ -203,10 +206,10 @@ GEM
203
206
  rubocop-performance (1.21.1)
204
207
  rubocop (>= 1.48.1, < 2.0)
205
208
  rubocop-ast (>= 1.31.1, < 2.0)
206
- rubocop-rails (2.25.1)
209
+ rubocop-rails (2.26.0)
207
210
  activesupport (>= 4.2.0)
208
211
  rack (>= 1.1)
209
- rubocop (>= 1.33.0, < 2.0)
212
+ rubocop (>= 1.52.0, < 2.0)
210
213
  rubocop-ast (>= 1.31.1, < 2.0)
211
214
  rubocop-rake (0.6.0)
212
215
  rubocop (~> 1.0)
@@ -218,10 +221,10 @@ GEM
218
221
  ruby-progressbar (1.13.0)
219
222
  securerandom (0.3.1)
220
223
  stringio (3.1.1)
221
- strscan (3.1.0)
222
- tailwind_merge (0.12.0)
224
+ tailwind_merge (0.13.0)
223
225
  lru_redux (~> 1.1)
224
- thor (1.3.1)
226
+ thor (1.3.2)
227
+ timeout (0.4.1)
225
228
  tzinfo (2.0.6)
226
229
  concurrent-ruby (~> 1.0)
227
230
  unicode-display_width (2.5.0)
@@ -229,7 +232,7 @@ GEM
229
232
  webrick (1.8.1)
230
233
  xpath (3.2.0)
231
234
  nokogiri (~> 1.8)
232
- zeitwerk (2.6.17)
235
+ zeitwerk (2.6.18)
233
236
 
234
237
  PLATFORMS
235
238
  aarch64-linux
@@ -28,8 +28,8 @@ module Protoform
28
28
 
29
29
  private
30
30
 
31
- def build_field(**kwargs)
32
- @field.class.new(current_index, parent: @field, **kwargs)
31
+ def build_field(**)
32
+ @field.class.new(current_index, parent: @field, **)
33
33
  end
34
34
 
35
35
  def current_index
@@ -120,8 +120,8 @@ module Protoform
120
120
  end
121
121
 
122
122
  # Creates a root Namespace, which is essentially a form.
123
- def self.root(*args, **kwargs, &block)
124
- new(*args, parent: nil, **kwargs, &block)
123
+ def self.root(*, **, &block)
124
+ new(*, parent: nil, **, &block)
125
125
  end
126
126
 
127
127
  protected
@@ -141,7 +141,7 @@ module Protoform
141
141
 
142
142
  # Checks if the child exists. If it does then it returns that. If it
143
143
  # doesn't, it will build the child.
144
- def create_child(key:, child_class:, **kwargs, &block)
144
+ def create_child(key:, child_class:, **, &block)
145
145
  if (child = @children.fetch(key, nil))
146
146
  # ensure that found children are also yielded
147
147
  child.tap { yield child if block }
@@ -150,7 +150,7 @@ module Protoform
150
150
  @children[key] = child_class.new(
151
151
  key,
152
152
  parent: self,
153
- **kwargs,
153
+ **,
154
154
  &block
155
155
  )
156
156
  end
@@ -37,12 +37,12 @@ module Protoform
37
37
  end
38
38
  end
39
39
 
40
- def build_namespace(index, **kwargs)
40
+ def build_namespace(index, **)
41
41
  parent.class.new(
42
42
  index,
43
43
  parent: self,
44
44
  field_class: @field_class,
45
- **kwargs,
45
+ **,
46
46
  &@template
47
47
  )
48
48
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/core_ext/string/inflections"
4
+
3
5
  module Protoform
4
6
  module Rails
5
7
  Component = ::ApplicationComponent
@@ -12,7 +12,8 @@ module Protoform
12
12
  private
13
13
 
14
14
  def button_text
15
- attrs.fetch(:value, dom.value).titleize
15
+ text = attrs[:value] || dom.value
16
+ text.titleize
16
17
  end
17
18
 
18
19
  def default_attrs
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/core_ext/string/inflections"
4
+
3
5
  module Protoform
4
6
  module Rails
5
7
  module Components
@@ -9,6 +11,10 @@ module Protoform
9
11
  def dom
10
12
  field.dom
11
13
  end
14
+
15
+ def title
16
+ field.key.to_s.titleize
17
+ end
12
18
  end
13
19
  end
14
20
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Protoform
4
+ module Rails
5
+ module Components
6
+ class Date < Input
7
+ option :value, default: -> { field.value }
8
+ option :min, default: -> { }
9
+ option :max, default: -> { }
10
+
11
+ private
12
+
13
+ def default_attrs
14
+ super.merge(
15
+ {
16
+ type: "date",
17
+ value: date_value(value)
18
+ }
19
+ ).tap do |attrs|
20
+ attrs[:min] = date_value(min) if min
21
+ attrs[:max] = date_value(max) if max
22
+ end
23
+ end
24
+
25
+ def date_value(value)
26
+ return unless value
27
+
28
+ if value.is_a?(String)
29
+ value = begin
30
+ Datetime.parse(value)
31
+ rescue Date::Error
32
+ nil
33
+ end
34
+ end
35
+
36
+ value.strftime("%Y-%m-%d")
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Protoform
4
+ module Rails
5
+ module Components
6
+ class Datetime < Input
7
+ option :value, default: -> { field.value }
8
+ option :include_seconds, default: -> { true }, reader: false
9
+ option :min, default: -> { }
10
+ option :max, default: -> { }
11
+
12
+ private
13
+
14
+ def default_attrs
15
+ super.merge(
16
+ {
17
+ type: "datetime-local",
18
+ value: datetime_value(value)
19
+ }
20
+ ).tap do |attrs|
21
+ attrs[:min] = datetime_value(min) if min
22
+ attrs[:max] = datetime_value(max) if max
23
+ end
24
+ end
25
+
26
+ def datetime_value(value)
27
+ return unless value
28
+
29
+ if value.is_a?(String)
30
+ value = begin
31
+ Datetime.parse(value)
32
+ rescue Date::Error
33
+ nil
34
+ end
35
+ end
36
+
37
+ if @include_seconds
38
+ value.strftime("%Y-%m-%dT%T")
39
+ else
40
+ value.strftime("%Y-%m-%dT%H:%M")
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -38,9 +38,9 @@ module Protoform
38
38
  "url"
39
39
  when Integer
40
40
  "number"
41
- when Date, DateTime
41
+ when ::Date, ::DateTime
42
42
  "date"
43
- when Time
43
+ when ::Time
44
44
  "time"
45
45
  else
46
46
  "text"
@@ -4,16 +4,24 @@ module Protoform
4
4
  module Rails
5
5
  module Components
6
6
  class Label < Component
7
+ option :value, default: -> { }
8
+
7
9
  def view_template(&content)
8
- content ||= proc { field.key.to_s.titleize }
10
+ content ||= proc { title }
9
11
  label(**attrs, &content)
10
12
  end
11
13
 
12
14
  private
13
15
 
16
+ def label_id
17
+ return dom.id unless value
18
+
19
+ [dom.id, value.parameterize.underscore].join("_")
20
+ end
21
+
14
22
  def default_attrs
15
23
  {
16
- for: dom.id
24
+ for: label_id
17
25
  }
18
26
  end
19
27
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Protoform
4
+ module Rails
5
+ module Components
6
+ class RadioButton < Input
7
+ # This makes value manditory in this class instead of being absorbed by
8
+ # the html_options hash from Protos.
9
+ option :value
10
+
11
+ private
12
+
13
+ def radio_id
14
+ return dom.id if dom.value.nil?
15
+
16
+ [dom.id, dom.value.parameterize.underscore].join("_")
17
+ end
18
+
19
+ def checked?
20
+ dom.value == field.value
21
+ end
22
+
23
+ def default_attrs
24
+ {
25
+ id: radio_id,
26
+ name: dom.name,
27
+ value: dom.value,
28
+ type: "radio",
29
+ checked: checked? ? "checked" : false
30
+ }
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -31,10 +31,7 @@ module Protoform
31
31
 
32
32
  def options(*collection)
33
33
  map_options(collection).each do |key, value|
34
- option(
35
- selected: selected_value_for(key) ? "selected" : false,
36
- value: key
37
- ) { value }
34
+ option(selected: selected_value_for(key), value: key) { value }
38
35
  end
39
36
  end
40
37
 
@@ -53,6 +50,10 @@ module Protoform
53
50
  protected
54
51
 
55
52
  def selected_value_for(key)
53
+ selected?(key) ? "selected" : false
54
+ end
55
+
56
+ def selected?(key)
56
57
  case field.value
57
58
  when String, Symbol
58
59
  field.value.to_s == key.to_s
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Protoform
4
+ module Rails
5
+ module Components
6
+ class Time < Input
7
+ option :value, default: -> { field.value }
8
+ option :include_seconds, default: -> { true }, reader: false
9
+ option :min, default: -> { }
10
+ option :max, default: -> { }
11
+
12
+ private
13
+
14
+ def default_attrs
15
+ super.merge(
16
+ {
17
+ type: "time",
18
+ value: time_value(value)
19
+ }
20
+ ).tap do |attrs|
21
+ attrs[:min] = time_value(min) if min
22
+ attrs[:max] = time_value(max) if max
23
+ end
24
+ end
25
+
26
+ def time_value(value)
27
+ return unless value
28
+
29
+ if value.is_a?(String)
30
+ value = begin
31
+ Datetime.parse(value)
32
+ rescue Date::Error
33
+ nil
34
+ end
35
+ end
36
+
37
+ if @include_seconds
38
+ value.strftime("%T.%L")
39
+ else
40
+ value.strftime("%H:%M")
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -36,6 +36,22 @@ module Protoform
36
36
  Components::Checkbox.new(self, ...)
37
37
  end
38
38
 
39
+ def date(...)
40
+ Components::Date.new(self, ...)
41
+ end
42
+
43
+ def time(...)
44
+ Components::Time.new(self, ...)
45
+ end
46
+
47
+ def datetime(...)
48
+ Components::Datetime.new(self, ...)
49
+ end
50
+
51
+ def radio_button(value, **)
52
+ Components::RadioButton.new(self, value:, **)
53
+ end
54
+
39
55
  def label(...)
40
56
  Components::Label.new(self, ...)
41
57
  end
@@ -16,11 +16,11 @@ module Protoform
16
16
  class Form < Component
17
17
  param :model, reader: false
18
18
  option :authenticity_token, reader: false, default: -> { true }
19
- option :helpers, reader: false, default: -> {}
20
- option :action, reader: false, default: -> {}
19
+ option :helpers, reader: false, default: -> { }
20
+ option :action, reader: false, default: -> { }
21
21
  option :method,
22
22
  reader: false,
23
- default: -> {}
23
+ default: -> { }
24
24
  option :namespace, reader: false, default: -> do
25
25
  Namespace.root(key, object: @model, field_class: self.class::Field)
26
26
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_record"
4
+
3
5
  module Protoform
4
6
  module Rails
5
7
  # Accept a collection of objects and map them to options suitable for form
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Protoform
4
- VERSION = "0.0.2"
4
+ VERSION = "0.1.0"
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "Build phlex based forms using Rails conventions"
13
13
  spec.homepage = "https://github.com/inhouse-work/protos-protoform"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 3.1.0"
15
+ spec.required_ruby_version = ">= 3.2.0"
16
16
 
17
17
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
18
 
@@ -42,8 +42,10 @@ Gem::Specification.new do |spec|
42
42
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
43
43
  spec.require_paths = ["lib"]
44
44
 
45
+ spec.add_dependency "activerecord", "~> 7.0"
46
+ spec.add_dependency "activesupport", "~> 7.0"
45
47
  spec.add_dependency "phlex-rails", "~> 1.0"
46
- spec.add_dependency "protos", "~> 0.4"
48
+ spec.add_dependency "protos", "~> 0.6"
47
49
  spec.add_dependency "zeitwerk", "~> 2.6"
48
50
  spec.metadata["rubygems_mfa_required"] = "true"
49
51
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protos-protoform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nolan Tait
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-15 00:00:00.000000000 Z
11
+ date: 2024-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '7.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '7.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '7.0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: phlex-rails
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +58,14 @@ dependencies:
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '0.4'
61
+ version: '0.6'
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '0.4'
68
+ version: '0.6'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: zeitwerk
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -81,11 +109,15 @@ files:
81
109
  - lib/protoform/rails/components/button.rb
82
110
  - lib/protoform/rails/components/checkbox.rb
83
111
  - lib/protoform/rails/components/component.rb
112
+ - lib/protoform/rails/components/date.rb
113
+ - lib/protoform/rails/components/datetime.rb
84
114
  - lib/protoform/rails/components/field_component.rb
85
115
  - lib/protoform/rails/components/input.rb
86
116
  - lib/protoform/rails/components/label.rb
117
+ - lib/protoform/rails/components/radio_button.rb
87
118
  - lib/protoform/rails/components/select.rb
88
119
  - lib/protoform/rails/components/textarea.rb
120
+ - lib/protoform/rails/components/time.rb
89
121
  - lib/protoform/rails/form.rb
90
122
  - lib/protoform/rails/form/field.rb
91
123
  - lib/protoform/rails/option_mapper.rb
@@ -109,14 +141,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
141
  requirements:
110
142
  - - ">="
111
143
  - !ruby/object:Gem::Version
112
- version: 3.1.0
144
+ version: 3.2.0
113
145
  required_rubygems_version: !ruby/object:Gem::Requirement
114
146
  requirements:
115
147
  - - ">="
116
148
  - !ruby/object:Gem::Version
117
149
  version: '0'
118
150
  requirements: []
119
- rubygems_version: 3.5.17
151
+ rubygems_version: 3.5.18
120
152
  signing_key:
121
153
  specification_version: 4
122
154
  summary: Phlex based form builder for Rails