plutonium 0.15.0 → 0.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/app/views/resource/_interactive_action_form.html.erb +1 -0
  3. data/app/views/resource/{interactive_resource_collection_action.html.erb → interactive_bulk_action.html.erb} +1 -1
  4. data/app/views/resource/interactive_record_action.html.erb +1 -0
  5. data/app/views/resource/{interactive_resource_record_action.html.erb → interactive_resource_action.html.erb} +1 -1
  6. data/lib/plutonium/action/base.rb +6 -3
  7. data/lib/plutonium/action/interactive.rb +16 -9
  8. data/lib/plutonium/definition/base.rb +8 -1
  9. data/lib/plutonium/definition/sorting.rb +15 -0
  10. data/lib/plutonium/interaction/README.md +34 -1
  11. data/lib/plutonium/interaction/base.rb +38 -7
  12. data/lib/plutonium/interaction/concerns/presentable.rb +24 -12
  13. data/lib/plutonium/interaction/outcome.rb +77 -55
  14. data/lib/plutonium/interaction/response/base.rb +3 -1
  15. data/lib/plutonium/interaction/response/failure.rb +18 -0
  16. data/lib/plutonium/interaction/response/file.rb +20 -0
  17. data/lib/plutonium/interaction/response/redirect.rb +1 -11
  18. data/lib/plutonium/interaction/response/render.rb +1 -9
  19. data/lib/plutonium/resource/controllers/authorizable.rb +29 -5
  20. data/lib/plutonium/resource/controllers/interactive_actions.rb +171 -130
  21. data/lib/plutonium/resource/controllers/queryable.rb +2 -2
  22. data/lib/plutonium/resource/interaction.rb +1 -3
  23. data/lib/plutonium/resource/query_object.rb +2 -2
  24. data/lib/plutonium/routing/mapper_extensions.rb +9 -9
  25. data/lib/plutonium/ui/action_button.rb +4 -3
  26. data/lib/plutonium/ui/component/methods.rb +1 -0
  27. data/lib/plutonium/ui/display/theme.rb +4 -3
  28. data/lib/plutonium/ui/form/interaction.rb +35 -0
  29. data/lib/plutonium/ui/form/resource.rb +1 -1
  30. data/lib/plutonium/ui/page/interactive_action.rb +23 -0
  31. data/lib/plutonium/ui/table/components/search_bar.rb +1 -1
  32. data/lib/plutonium/ui/table/display_theme.rb +2 -2
  33. data/lib/plutonium/ui/table/resource.rb +11 -5
  34. data/lib/plutonium/version.rb +1 -1
  35. metadata +11 -21
  36. data/app/views/resource/_interactive_resource_action_form.html.erb +0 -45
  37. data/app/views/resource/interactive_resource_recordless_action.html.erb +0 -5
  38. data/gemfiles/rails_7.gemfile.lock +0 -339
@@ -19,7 +19,7 @@ module Plutonium
19
19
  ) do
20
20
  search_query = current_query_object.search_query
21
21
  query_params = resource_query_params
22
- render Phlexi::Form(:q, attributes: {data: {controller: "form", turbo_frame: nil}}) {
22
+ render Phlexi::Form(:q, attributes: {class!: nil, data: {controller: "form", turbo_frame: nil}}) {
23
23
  div(class: "relative") do
24
24
  div(class: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none") do
25
25
  svg(
@@ -6,13 +6,13 @@ module Plutonium
6
6
  class DisplayTheme < Phlexi::Table::DisplayTheme
7
7
  def self.theme
8
8
  super.merge({
9
- string: "max-h-[150px] overflow-y-auto",
9
+ value_wrapper: "max-h-[150px] overflow-y-auto",
10
10
  prefixed_icon: "w-4 h-4 mr-1",
11
11
  link: "text-primary-600 dark:text-primary-500",
12
12
  color: "flex items-center",
13
13
  color_indicator: "w-10 h-10 rounded-full mr-2",
14
14
  email: "flex items-center text-primary-600 dark:text-primary-500 whitespace-nowrap",
15
- json: "max-h-[150px] overflow-y-auto whitespace-pre font-mono shadow-inner p-4"
15
+ json: " whitespace-pre font-mono shadow-inner p-4"
16
16
  })
17
17
  end
18
18
  end
@@ -72,16 +72,22 @@ module Plutonium
72
72
  record = wrapped_object.unwrapped
73
73
  policy = policy_for(record:)
74
74
 
75
- div(class: "flex space-x-2") {
75
+ div(class: "flex space-x-2") do
76
76
  resource_definition.defined_actions
77
77
  .select { |k, a| a.collection_record_action? && policy.allowed_to?(:"#{k}?") }
78
78
  .values
79
- .each { |action|
80
- url = resource_url_for(record, *action.route_options.url_args, **action.route_options.url_options)
79
+ .each do |action|
80
+ # TODO: extract this
81
+ url = case action.route_options.url_resolver
82
+ when :resource_url_for
83
+ resource_url_for(record, *action.route_options.url_args, **action.route_options.url_options)
84
+ else
85
+ raise NotImplementedError, "url_resolver: #{action.route_options.url_resolver}"
86
+ end
81
87
 
82
88
  ActionButton(action, url:, variant: :table)
83
- }
84
- }
89
+ end
90
+ end
85
91
  end
86
92
  end
87
93
  end
@@ -1,5 +1,5 @@
1
1
  module Plutonium
2
- VERSION = "0.15.0"
2
+ VERSION = "0.15.1"
3
3
  NEXT_MAJOR_VERSION = VERSION.split(".").tap { |v|
4
4
  v[1] = v[1].to_i + 1
5
5
  v[2] = 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plutonium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Froelich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-22 00:00:00.000000000 Z
11
+ date: 2024-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '3.8'
61
- - !ruby/object:Gem::Dependency
62
- name: active_interaction
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '5.3'
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '5.3'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: pagy
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -985,7 +971,7 @@ files:
985
971
  - app/views/plutonium/_resource_header.html copy.erb
986
972
  - app/views/plutonium/_resource_header.html.erb
987
973
  - app/views/plutonium/_resource_sidebar.html.erb
988
- - app/views/resource/_interactive_resource_action_form.html.erb
974
+ - app/views/resource/_interactive_action_form.html.erb
989
975
  - app/views/resource/_metric_card.html.erb
990
976
  - app/views/resource/_resource_details.html.erb
991
977
  - app/views/resource/_resource_details.rabl
@@ -995,9 +981,9 @@ files:
995
981
  - app/views/resource/errors.rabl
996
982
  - app/views/resource/index.html.erb
997
983
  - app/views/resource/index.rabl
998
- - app/views/resource/interactive_resource_collection_action.html.erb
999
- - app/views/resource/interactive_resource_record_action.html.erb
1000
- - app/views/resource/interactive_resource_recordless_action.html.erb
984
+ - app/views/resource/interactive_bulk_action.html.erb
985
+ - app/views/resource/interactive_record_action.html.erb
986
+ - app/views/resource/interactive_resource_action.html.erb
1001
987
  - app/views/resource/new.html.erb
1002
988
  - app/views/resource/readme.md
1003
989
  - app/views/resource/show.html.erb
@@ -1049,7 +1035,6 @@ files:
1049
1035
  - esbuild.config.js
1050
1036
  - exe/pug
1051
1037
  - gemfiles/rails_7.gemfile
1052
- - gemfiles/rails_7.gemfile.lock
1053
1038
  - lib/active_model/validations/array_validator.rb
1054
1039
  - lib/active_model/validations/attached_validator.rb
1055
1040
  - lib/active_model/validations/url_validator.rb
@@ -1272,6 +1257,7 @@ files:
1272
1257
  - lib/plutonium/definition/config_attr.rb
1273
1258
  - lib/plutonium/definition/defineable_props.rb
1274
1259
  - lib/plutonium/definition/search.rb
1260
+ - lib/plutonium/definition/sorting.rb
1275
1261
  - lib/plutonium/engine.rb
1276
1262
  - lib/plutonium/engine/validator.rb
1277
1263
  - lib/plutonium/helpers.rb
@@ -1293,6 +1279,8 @@ files:
1293
1279
  - lib/plutonium/interaction/concerns/workflow_dsl.rb
1294
1280
  - lib/plutonium/interaction/outcome.rb
1295
1281
  - lib/plutonium/interaction/response/base.rb
1282
+ - lib/plutonium/interaction/response/failure.rb
1283
+ - lib/plutonium/interaction/response/file.rb
1296
1284
  - lib/plutonium/interaction/response/null.rb
1297
1285
  - lib/plutonium/interaction/response/redirect.rb
1298
1286
  - lib/plutonium/interaction/response/render.rb
@@ -1345,11 +1333,13 @@ files:
1345
1333
  - lib/plutonium/ui/dyna_frame/content.rb
1346
1334
  - lib/plutonium/ui/empty_card.rb
1347
1335
  - lib/plutonium/ui/form/base.rb
1336
+ - lib/plutonium/ui/form/interaction.rb
1348
1337
  - lib/plutonium/ui/form/resource.rb
1349
1338
  - lib/plutonium/ui/form/theme.rb
1350
1339
  - lib/plutonium/ui/page/base.rb
1351
1340
  - lib/plutonium/ui/page/edit.rb
1352
1341
  - lib/plutonium/ui/page/index.rb
1342
+ - lib/plutonium/ui/page/interactive_action.rb
1353
1343
  - lib/plutonium/ui/page/new.rb
1354
1344
  - lib/plutonium/ui/page/show.rb
1355
1345
  - lib/plutonium/ui/page_header.rb
@@ -1,45 +0,0 @@
1
- <%# locals: (interactive_action:) -%>
2
-
3
- <% if current_turbo_frame == 'modal' %>
4
- <%= turbo_frame_tag "modal" do %>
5
- <div class="modal" tabindex="-1" data-controller="modal">
6
- <div class="modal-dialog modal-dialog-scrollable modal-lg">
7
- <%= resource_form_for @interaction, url: "",
8
- as: :interaction,
9
- method: :post,
10
- turbo_frame: :modal do |f| %>
11
- <div class="modal-content">
12
- <div class="modal-header">
13
- <h1 class="modal-title fs-5"><%= interactive_action.name.to_s.titleize %></h1>
14
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
15
- </div>
16
- <div class="modal-body">
17
- <div class="container">
18
- <div class="form-errors">
19
- <%= f.error_notification %>
20
- <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
21
- <% f.object.errors.full_messages.each do |message| %>
22
- <%= f.error_notification message: message %>
23
- <% end %>
24
- </div>
25
- </div>
26
- <div class="form-inputs">
27
- <% interactive_action.inputs.values.each do |input| %>
28
- <%= render input.with(form: f, record: @interaction) %>
29
- <% end %>
30
- </div>
31
- </div>
32
- <div class="modal-footer">
33
- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
34
- <%= f.button :submit, interactive_action.label, class: "btn btn-outline-primary" %>
35
- </div>
36
- </div>
37
- <% end %>
38
- </div>
39
- </div>
40
- <% end %>
41
- <% else%>
42
- <%= render_component :panel do %>
43
- <%= render_component :interactive_action_form, interactive_action:, interaction: @interaction %>
44
- <% end %>
45
- <% end %>
@@ -1,5 +0,0 @@
1
- <%= render_component :breadcrumbs, resource_class:, parent: current_parent, resource: resource_record %>
2
-
3
- <%= render_component :dyna_frame_content do %>
4
- <%= render "interactive_resource_action_form", interactive_action: current_interactive_action %>
5
- <% end %>
@@ -1,339 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- plutonium (0.15.0)
5
- action_policy (~> 0.7.0)
6
- active_interaction (~> 5.3)
7
- dry-initializer (~> 3.1)
8
- listen (~> 3.8)
9
- pagy (~> 7.0)
10
- pundit (~> 2.3)
11
- rabl (~> 0.16.1)
12
- rails (>= 7.1, < 8.0)
13
- semantic_range (~> 3.0)
14
- simple_form (~> 5.3)
15
- tty-prompt (~> 0.23.1)
16
- view_component (~> 3)
17
- view_component-form (~> 0.2.6)
18
- zeitwerk
19
-
20
- GEM
21
- remote: https://rubygems.org/
22
- specs:
23
- action_policy (0.7.0)
24
- ruby-next-core (>= 1.0)
25
- actioncable (7.1.3.4)
26
- actionpack (= 7.1.3.4)
27
- activesupport (= 7.1.3.4)
28
- nio4r (~> 2.0)
29
- websocket-driver (>= 0.6.1)
30
- zeitwerk (~> 2.6)
31
- actionmailbox (7.1.3.4)
32
- actionpack (= 7.1.3.4)
33
- activejob (= 7.1.3.4)
34
- activerecord (= 7.1.3.4)
35
- activestorage (= 7.1.3.4)
36
- activesupport (= 7.1.3.4)
37
- mail (>= 2.7.1)
38
- net-imap
39
- net-pop
40
- net-smtp
41
- actionmailer (7.1.3.4)
42
- actionpack (= 7.1.3.4)
43
- actionview (= 7.1.3.4)
44
- activejob (= 7.1.3.4)
45
- activesupport (= 7.1.3.4)
46
- mail (~> 2.5, >= 2.5.4)
47
- net-imap
48
- net-pop
49
- net-smtp
50
- rails-dom-testing (~> 2.2)
51
- actionpack (7.1.3.4)
52
- actionview (= 7.1.3.4)
53
- activesupport (= 7.1.3.4)
54
- nokogiri (>= 1.8.5)
55
- racc
56
- rack (>= 2.2.4)
57
- rack-session (>= 1.0.1)
58
- rack-test (>= 0.6.3)
59
- rails-dom-testing (~> 2.2)
60
- rails-html-sanitizer (~> 1.6)
61
- actiontext (7.1.3.4)
62
- actionpack (= 7.1.3.4)
63
- activerecord (= 7.1.3.4)
64
- activestorage (= 7.1.3.4)
65
- activesupport (= 7.1.3.4)
66
- globalid (>= 0.6.0)
67
- nokogiri (>= 1.8.5)
68
- actionview (7.1.3.4)
69
- activesupport (= 7.1.3.4)
70
- builder (~> 3.1)
71
- erubi (~> 1.11)
72
- rails-dom-testing (~> 2.2)
73
- rails-html-sanitizer (~> 1.6)
74
- active_interaction (5.3.0)
75
- activemodel (>= 5.2, < 8)
76
- activesupport (>= 5.2, < 8)
77
- activejob (7.1.3.4)
78
- activesupport (= 7.1.3.4)
79
- globalid (>= 0.3.6)
80
- activemodel (7.1.3.4)
81
- activesupport (= 7.1.3.4)
82
- activerecord (7.1.3.4)
83
- activemodel (= 7.1.3.4)
84
- activesupport (= 7.1.3.4)
85
- timeout (>= 0.4.0)
86
- activestorage (7.1.3.4)
87
- actionpack (= 7.1.3.4)
88
- activejob (= 7.1.3.4)
89
- activerecord (= 7.1.3.4)
90
- activesupport (= 7.1.3.4)
91
- marcel (~> 1.0)
92
- activesupport (7.1.3.4)
93
- base64
94
- bigdecimal
95
- concurrent-ruby (~> 1.0, >= 1.0.2)
96
- connection_pool (>= 2.2.5)
97
- drb
98
- i18n (>= 1.6, < 2)
99
- minitest (>= 5.1)
100
- mutex_m
101
- tzinfo (~> 2.0)
102
- ansi (1.5.0)
103
- appraisal (2.5.0)
104
- bundler
105
- rake
106
- thor (>= 0.14.0)
107
- ast (2.4.2)
108
- base64 (0.2.0)
109
- bigdecimal (3.1.8)
110
- brakeman (6.1.2)
111
- racc
112
- builder (3.3.0)
113
- bundle-audit (0.1.0)
114
- bundler-audit
115
- bundler-audit (0.9.1)
116
- bundler (>= 1.2.0, < 3)
117
- thor (~> 1.0)
118
- combustion (1.4.0)
119
- activesupport (>= 3.0.0)
120
- railties (>= 3.0.0)
121
- thor (>= 0.14.6)
122
- concurrent-ruby (1.3.3)
123
- connection_pool (2.4.1)
124
- crass (1.0.6)
125
- date (3.3.4)
126
- drb (2.2.1)
127
- dry-initializer (3.1.1)
128
- erubi (1.12.0)
129
- ffi (1.17.0-x86_64-darwin)
130
- globalid (1.2.1)
131
- activesupport (>= 6.1)
132
- i18n (1.14.5)
133
- concurrent-ruby (~> 1.0)
134
- importmap-rails (2.0.1)
135
- actionpack (>= 6.0.0)
136
- activesupport (>= 6.0.0)
137
- railties (>= 6.0.0)
138
- io-console (0.7.2)
139
- irb (1.13.1)
140
- rdoc (>= 4.0.0)
141
- reline (>= 0.4.2)
142
- json (2.7.2)
143
- language_server-protocol (3.17.0.3)
144
- lint_roller (1.1.0)
145
- listen (3.9.0)
146
- rb-fsevent (~> 0.10, >= 0.10.3)
147
- rb-inotify (~> 0.9, >= 0.9.10)
148
- loofah (2.22.0)
149
- crass (~> 1.0.2)
150
- nokogiri (>= 1.12.0)
151
- mail (2.8.1)
152
- mini_mime (>= 0.1.1)
153
- net-imap
154
- net-pop
155
- net-smtp
156
- marcel (1.0.4)
157
- method_source (1.1.0)
158
- mini_mime (1.1.5)
159
- minitest (5.23.1)
160
- minitest-reporters (1.6.1)
161
- ansi
162
- builder
163
- minitest (>= 5.0)
164
- ruby-progressbar
165
- mutex_m (0.2.0)
166
- net-imap (0.4.12)
167
- date
168
- net-protocol
169
- net-pop (0.1.2)
170
- net-protocol
171
- net-protocol (0.2.2)
172
- timeout
173
- net-smtp (0.5.0)
174
- net-protocol
175
- nio4r (2.7.3)
176
- nokogiri (1.16.5-x86_64-darwin)
177
- racc (~> 1.4)
178
- pagy (7.0.11)
179
- parallel (1.25.1)
180
- parser (3.3.2.0)
181
- ast (~> 2.4.1)
182
- racc
183
- pastel (0.8.0)
184
- tty-color (~> 0.5)
185
- psych (5.1.2)
186
- stringio
187
- puma (6.4.2)
188
- nio4r (~> 2.0)
189
- pundit (2.3.2)
190
- activesupport (>= 3.0.0)
191
- rabl (0.16.1)
192
- activesupport (>= 2.3.14)
193
- racc (1.8.0)
194
- rack (3.1.3)
195
- rack-session (2.0.0)
196
- rack (>= 3.0.0)
197
- rack-test (2.1.0)
198
- rack (>= 1.3)
199
- rackup (2.1.0)
200
- rack (>= 3)
201
- webrick (~> 1.8)
202
- rails (7.1.3.4)
203
- actioncable (= 7.1.3.4)
204
- actionmailbox (= 7.1.3.4)
205
- actionmailer (= 7.1.3.4)
206
- actionpack (= 7.1.3.4)
207
- actiontext (= 7.1.3.4)
208
- actionview (= 7.1.3.4)
209
- activejob (= 7.1.3.4)
210
- activemodel (= 7.1.3.4)
211
- activerecord (= 7.1.3.4)
212
- activestorage (= 7.1.3.4)
213
- activesupport (= 7.1.3.4)
214
- bundler (>= 1.15.0)
215
- railties (= 7.1.3.4)
216
- rails-dom-testing (2.2.0)
217
- activesupport (>= 5.0.0)
218
- minitest
219
- nokogiri (>= 1.6)
220
- rails-html-sanitizer (1.6.0)
221
- loofah (~> 2.21)
222
- nokogiri (~> 1.14)
223
- railties (7.1.3.4)
224
- actionpack (= 7.1.3.4)
225
- activesupport (= 7.1.3.4)
226
- irb
227
- rackup (>= 1.0.0)
228
- rake (>= 12.2)
229
- thor (~> 1.0, >= 1.2.2)
230
- zeitwerk (~> 2.6)
231
- rainbow (3.1.1)
232
- rake (13.2.1)
233
- rb-fsevent (0.11.2)
234
- rb-inotify (0.11.1)
235
- ffi (~> 1.0)
236
- rdoc (6.7.0)
237
- psych (>= 4.0.0)
238
- regexp_parser (2.9.2)
239
- reline (0.5.9)
240
- io-console (~> 0.5)
241
- rexml (3.3.0)
242
- strscan
243
- rubocop (1.63.5)
244
- json (~> 2.3)
245
- language_server-protocol (>= 3.17.0)
246
- parallel (~> 1.10)
247
- parser (>= 3.3.0.2)
248
- rainbow (>= 2.2.2, < 4.0)
249
- regexp_parser (>= 1.8, < 3.0)
250
- rexml (>= 3.2.5, < 4.0)
251
- rubocop-ast (>= 1.31.1, < 2.0)
252
- ruby-progressbar (~> 1.7)
253
- unicode-display_width (>= 2.4.0, < 3.0)
254
- rubocop-ast (1.31.3)
255
- parser (>= 3.3.1.0)
256
- rubocop-performance (1.21.0)
257
- rubocop (>= 1.48.1, < 2.0)
258
- rubocop-ast (>= 1.31.1, < 2.0)
259
- ruby-next-core (1.0.3)
260
- ruby-progressbar (1.13.0)
261
- semantic_range (3.0.0)
262
- simple_form (5.3.1)
263
- actionpack (>= 5.2)
264
- activemodel (>= 5.2)
265
- sqlite3 (1.7.3-x86_64-darwin)
266
- standard (1.36.0)
267
- language_server-protocol (~> 3.17.0.2)
268
- lint_roller (~> 1.0)
269
- rubocop (~> 1.63.0)
270
- standard-custom (~> 1.0.0)
271
- standard-performance (~> 1.4)
272
- standard-custom (1.0.2)
273
- lint_roller (~> 1.0)
274
- rubocop (~> 1.50)
275
- standard-performance (1.4.0)
276
- lint_roller (~> 1.1)
277
- rubocop-performance (~> 1.21.0)
278
- stimulus-rails (1.3.3)
279
- railties (>= 6.0.0)
280
- stringio (3.1.0)
281
- strscan (3.1.0)
282
- thor (1.3.1)
283
- timeout (0.4.1)
284
- tty-color (0.6.0)
285
- tty-cursor (0.7.1)
286
- tty-prompt (0.23.1)
287
- pastel (~> 0.8)
288
- tty-reader (~> 0.8)
289
- tty-reader (0.9.0)
290
- tty-cursor (~> 0.7)
291
- tty-screen (~> 0.8)
292
- wisper (~> 2.0)
293
- tty-screen (0.8.2)
294
- turbo-rails (2.0.5)
295
- actionpack (>= 6.0.0)
296
- activejob (>= 6.0.0)
297
- railties (>= 6.0.0)
298
- tzinfo (2.0.6)
299
- concurrent-ruby (~> 1.0)
300
- unicode-display_width (2.5.0)
301
- view_component (3.12.1)
302
- activesupport (>= 5.2.0, < 8.0)
303
- concurrent-ruby (~> 1.0)
304
- method_source (~> 1.0)
305
- view_component-form (0.2.6)
306
- actionview (>= 6.0.0, < 7.2)
307
- activesupport (>= 6.0.0, < 7.2)
308
- view_component (>= 2.34.0, < 4.0)
309
- zeitwerk (~> 2.5)
310
- webrick (1.8.1)
311
- websocket-driver (0.7.6)
312
- websocket-extensions (>= 0.1.0)
313
- websocket-extensions (0.1.5)
314
- wisper (2.0.1)
315
- zeitwerk (2.6.15)
316
-
317
- PLATFORMS
318
- x86_64-darwin
319
-
320
- DEPENDENCIES
321
- appraisal
322
- brakeman
323
- bundle-audit
324
- combustion
325
- importmap-rails
326
- minitest
327
- minitest-reporters
328
- plutonium!
329
- puma (>= 5.0)
330
- rails (~> 7.1.3, >= 7.1.3.4)
331
- rake
332
- sqlite3 (~> 1.4)
333
- standard
334
- stimulus-rails
335
- turbo-rails
336
- tzinfo-data
337
-
338
- BUNDLED WITH
339
- 2.5.6