view_component 2.83.0 → 3.21.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 +4 -4
- data/app/controllers/concerns/view_component/preview_actions.rb +5 -1
- data/app/controllers/view_components_system_test_controller.rb +24 -1
- data/app/helpers/preview_helper.rb +22 -4
- data/app/views/view_components/_preview_source.html.erb +2 -2
- data/docs/CHANGELOG.md +807 -1
- data/lib/rails/generators/abstract_generator.rb +9 -1
- data/lib/rails/generators/component/component_generator.rb +2 -1
- data/lib/rails/generators/component/templates/component.rb.tt +3 -2
- data/lib/rails/generators/erb/component_generator.rb +1 -1
- data/lib/rails/generators/locale/component_generator.rb +3 -3
- data/lib/rails/generators/preview/templates/component_preview.rb.tt +2 -0
- data/lib/rails/generators/rspec/component_generator.rb +15 -3
- data/lib/rails/generators/rspec/templates/component_spec.rb.tt +1 -1
- data/lib/rails/generators/stimulus/component_generator.rb +8 -3
- data/lib/rails/generators/stimulus/templates/component_controller.ts.tt +9 -0
- data/lib/rails/generators/test_unit/templates/component_test.rb.tt +1 -1
- data/lib/view_component/base.rb +169 -164
- data/lib/view_component/capture_compatibility.rb +44 -0
- data/lib/view_component/collection.rb +20 -8
- data/lib/view_component/compiler.rb +166 -207
- data/lib/view_component/config.rb +63 -14
- data/lib/view_component/deprecation.rb +1 -1
- data/lib/view_component/docs_builder_component.html.erb +5 -1
- data/lib/view_component/docs_builder_component.rb +28 -9
- data/lib/view_component/engine.rb +58 -28
- data/lib/view_component/errors.rb +240 -0
- data/lib/view_component/inline_template.rb +55 -0
- data/lib/view_component/instrumentation.rb +10 -2
- data/lib/view_component/preview.rb +7 -8
- data/lib/view_component/rails/tasks/view_component.rake +11 -2
- data/lib/view_component/slot.rb +119 -1
- data/lib/view_component/slotable.rb +394 -94
- data/lib/view_component/slotable_default.rb +20 -0
- data/lib/view_component/system_test_helpers.rb +5 -5
- data/lib/view_component/template.rb +134 -0
- data/lib/view_component/test_helpers.rb +138 -59
- data/lib/view_component/translatable.rb +45 -26
- data/lib/view_component/use_helpers.rb +42 -0
- data/lib/view_component/version.rb +4 -3
- data/lib/view_component/with_content_helper.rb +3 -8
- data/lib/view_component.rb +3 -12
- metadata +277 -38
- data/lib/view_component/content_areas.rb +0 -56
- data/lib/view_component/polymorphic_slots.rb +0 -103
- data/lib/view_component/preview_template_error.rb +0 -6
- data/lib/view_component/slot_v2.rb +0 -98
- data/lib/view_component/slotable_v2.rb +0 -391
- data/lib/view_component/template_error.rb +0 -9
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: view_component
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ViewComponent Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 5.2.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '8.
|
22
|
+
version: '8.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 5.2.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '8.
|
32
|
+
version: '8.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: method_source
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,6 +58,20 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '1.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: allocation_stats
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.1.5
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.1.5
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
76
|
name: appraisal
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,28 +92,28 @@ dependencies:
|
|
78
92
|
requirements:
|
79
93
|
- - "~>"
|
80
94
|
- !ruby/object:Gem::Version
|
81
|
-
version: 2.
|
95
|
+
version: 2.13.0
|
82
96
|
type: :development
|
83
97
|
prerelease: false
|
84
98
|
version_requirements: !ruby/object:Gem::Requirement
|
85
99
|
requirements:
|
86
100
|
- - "~>"
|
87
101
|
- !ruby/object:Gem::Version
|
88
|
-
version: 2.
|
102
|
+
version: 2.13.0
|
89
103
|
- !ruby/object:Gem::Dependency
|
90
104
|
name: better_html
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
92
106
|
requirements:
|
93
|
-
- - "
|
107
|
+
- - ">="
|
94
108
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
109
|
+
version: '0'
|
96
110
|
type: :development
|
97
111
|
prerelease: false
|
98
112
|
version_requirements: !ruby/object:Gem::Requirement
|
99
113
|
requirements:
|
100
|
-
- - "
|
114
|
+
- - ">="
|
101
115
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
116
|
+
version: '0'
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
name: bundler
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,33 +129,75 @@ dependencies:
|
|
115
129
|
- !ruby/object:Gem::Version
|
116
130
|
version: '2'
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
132
|
+
name: capybara
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
135
|
- - "~>"
|
122
136
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
137
|
+
version: '3'
|
124
138
|
type: :development
|
125
139
|
prerelease: false
|
126
140
|
version_requirements: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
142
|
- - "~>"
|
129
143
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
144
|
+
version: '3'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: cuprite
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0.15'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0.15'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: debug
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: erb_lint
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
131
187
|
- !ruby/object:Gem::Dependency
|
132
188
|
name: haml
|
133
189
|
requirement: !ruby/object:Gem::Requirement
|
134
190
|
requirements:
|
135
191
|
- - "~>"
|
136
192
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
193
|
+
version: '6'
|
138
194
|
type: :development
|
139
195
|
prerelease: false
|
140
196
|
version_requirements: !ruby/object:Gem::Requirement
|
141
197
|
requirements:
|
142
198
|
- - "~>"
|
143
199
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
200
|
+
version: '6'
|
145
201
|
- !ruby/object:Gem::Dependency
|
146
202
|
name: jbuilder
|
147
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,16 +230,16 @@ dependencies:
|
|
174
230
|
name: minitest
|
175
231
|
requirement: !ruby/object:Gem::Requirement
|
176
232
|
requirements:
|
177
|
-
- -
|
233
|
+
- - "~>"
|
178
234
|
- !ruby/object:Gem::Version
|
179
|
-
version: 5.
|
235
|
+
version: '5.18'
|
180
236
|
type: :development
|
181
237
|
prerelease: false
|
182
238
|
version_requirements: !ruby/object:Gem::Requirement
|
183
239
|
requirements:
|
184
|
-
- -
|
240
|
+
- - "~>"
|
185
241
|
- !ruby/object:Gem::Version
|
186
|
-
version: 5.
|
242
|
+
version: '5.18'
|
187
243
|
- !ruby/object:Gem::Dependency
|
188
244
|
name: pry
|
189
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,6 +254,20 @@ dependencies:
|
|
198
254
|
- - "~>"
|
199
255
|
- !ruby/object:Gem::Version
|
200
256
|
version: '0.13'
|
257
|
+
- !ruby/object:Gem::Dependency
|
258
|
+
name: puma
|
259
|
+
requirement: !ruby/object:Gem::Requirement
|
260
|
+
requirements:
|
261
|
+
- - "~>"
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '6'
|
264
|
+
type: :development
|
265
|
+
prerelease: false
|
266
|
+
version_requirements: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
268
|
+
- - "~>"
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '6'
|
201
271
|
- !ruby/object:Gem::Dependency
|
202
272
|
name: rake
|
203
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,6 +282,62 @@ dependencies:
|
|
212
282
|
- - "~>"
|
213
283
|
- !ruby/object:Gem::Version
|
214
284
|
version: '13.0'
|
285
|
+
- !ruby/object:Gem::Dependency
|
286
|
+
name: rspec-rails
|
287
|
+
requirement: !ruby/object:Gem::Requirement
|
288
|
+
requirements:
|
289
|
+
- - "~>"
|
290
|
+
- !ruby/object:Gem::Version
|
291
|
+
version: '5'
|
292
|
+
type: :development
|
293
|
+
prerelease: false
|
294
|
+
version_requirements: !ruby/object:Gem::Requirement
|
295
|
+
requirements:
|
296
|
+
- - "~>"
|
297
|
+
- !ruby/object:Gem::Version
|
298
|
+
version: '5'
|
299
|
+
- !ruby/object:Gem::Dependency
|
300
|
+
name: rubocop-md
|
301
|
+
requirement: !ruby/object:Gem::Requirement
|
302
|
+
requirements:
|
303
|
+
- - "~>"
|
304
|
+
- !ruby/object:Gem::Version
|
305
|
+
version: '1'
|
306
|
+
type: :development
|
307
|
+
prerelease: false
|
308
|
+
version_requirements: !ruby/object:Gem::Requirement
|
309
|
+
requirements:
|
310
|
+
- - "~>"
|
311
|
+
- !ruby/object:Gem::Version
|
312
|
+
version: '1'
|
313
|
+
- !ruby/object:Gem::Dependency
|
314
|
+
name: selenium-webdriver
|
315
|
+
requirement: !ruby/object:Gem::Requirement
|
316
|
+
requirements:
|
317
|
+
- - '='
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
version: 4.9.0
|
320
|
+
type: :development
|
321
|
+
prerelease: false
|
322
|
+
version_requirements: !ruby/object:Gem::Requirement
|
323
|
+
requirements:
|
324
|
+
- - '='
|
325
|
+
- !ruby/object:Gem::Version
|
326
|
+
version: 4.9.0
|
327
|
+
- !ruby/object:Gem::Dependency
|
328
|
+
name: sprockets-rails
|
329
|
+
requirement: !ruby/object:Gem::Requirement
|
330
|
+
requirements:
|
331
|
+
- - "~>"
|
332
|
+
- !ruby/object:Gem::Version
|
333
|
+
version: 3.4.2
|
334
|
+
type: :development
|
335
|
+
prerelease: false
|
336
|
+
version_requirements: !ruby/object:Gem::Requirement
|
337
|
+
requirements:
|
338
|
+
- - "~>"
|
339
|
+
- !ruby/object:Gem::Version
|
340
|
+
version: 3.4.2
|
215
341
|
- !ruby/object:Gem::Dependency
|
216
342
|
name: standard
|
217
343
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,70 +358,84 @@ dependencies:
|
|
232
358
|
requirements:
|
233
359
|
- - "~>"
|
234
360
|
- !ruby/object:Gem::Version
|
235
|
-
version: 0.
|
361
|
+
version: 0.22.0
|
236
362
|
type: :development
|
237
363
|
prerelease: false
|
238
364
|
version_requirements: !ruby/object:Gem::Requirement
|
239
365
|
requirements:
|
240
366
|
- - "~>"
|
241
367
|
- !ruby/object:Gem::Version
|
242
|
-
version: 0.
|
368
|
+
version: 0.22.0
|
243
369
|
- !ruby/object:Gem::Dependency
|
244
370
|
name: simplecov-console
|
245
371
|
requirement: !ruby/object:Gem::Requirement
|
246
372
|
requirements:
|
247
373
|
- - "~>"
|
248
374
|
- !ruby/object:Gem::Version
|
249
|
-
version: 0.
|
375
|
+
version: 0.9.1
|
250
376
|
type: :development
|
251
377
|
prerelease: false
|
252
378
|
version_requirements: !ruby/object:Gem::Requirement
|
253
379
|
requirements:
|
254
380
|
- - "~>"
|
255
381
|
- !ruby/object:Gem::Version
|
256
|
-
version: 0.
|
382
|
+
version: 0.9.1
|
257
383
|
- !ruby/object:Gem::Dependency
|
258
384
|
name: slim
|
259
385
|
requirement: !ruby/object:Gem::Requirement
|
260
386
|
requirements:
|
261
387
|
- - "~>"
|
262
388
|
- !ruby/object:Gem::Version
|
263
|
-
version: '
|
389
|
+
version: '5.1'
|
264
390
|
type: :development
|
265
391
|
prerelease: false
|
266
392
|
version_requirements: !ruby/object:Gem::Requirement
|
267
393
|
requirements:
|
268
394
|
- - "~>"
|
269
395
|
- !ruby/object:Gem::Version
|
270
|
-
version: '
|
396
|
+
version: '5.1'
|
271
397
|
- !ruby/object:Gem::Dependency
|
272
|
-
name:
|
398
|
+
name: turbo-rails
|
273
399
|
requirement: !ruby/object:Gem::Requirement
|
274
400
|
requirements:
|
275
401
|
- - "~>"
|
276
402
|
- !ruby/object:Gem::Version
|
277
|
-
version:
|
403
|
+
version: '1'
|
278
404
|
type: :development
|
279
405
|
prerelease: false
|
280
406
|
version_requirements: !ruby/object:Gem::Requirement
|
281
407
|
requirements:
|
282
408
|
- - "~>"
|
283
409
|
- !ruby/object:Gem::Version
|
284
|
-
version:
|
410
|
+
version: '1'
|
411
|
+
- !ruby/object:Gem::Dependency
|
412
|
+
name: warning
|
413
|
+
requirement: !ruby/object:Gem::Requirement
|
414
|
+
requirements:
|
415
|
+
- - ">="
|
416
|
+
- !ruby/object:Gem::Version
|
417
|
+
version: '0'
|
418
|
+
type: :development
|
419
|
+
prerelease: false
|
420
|
+
version_requirements: !ruby/object:Gem::Requirement
|
421
|
+
requirements:
|
422
|
+
- - ">="
|
423
|
+
- !ruby/object:Gem::Version
|
424
|
+
version: '0'
|
285
425
|
- !ruby/object:Gem::Dependency
|
286
426
|
name: yard
|
287
427
|
requirement: !ruby/object:Gem::Requirement
|
288
428
|
requirements:
|
289
429
|
- - "~>"
|
290
430
|
- !ruby/object:Gem::Version
|
291
|
-
version: 0.9.
|
431
|
+
version: 0.9.34
|
292
432
|
type: :development
|
293
433
|
prerelease: false
|
294
434
|
version_requirements: !ruby/object:Gem::Requirement
|
295
435
|
requirements:
|
296
436
|
- - "~>"
|
297
437
|
- !ruby/object:Gem::Version
|
298
|
-
version: 0.9.
|
438
|
+
version: 0.9.34
|
299
439
|
- !ruby/object:Gem::Dependency
|
300
440
|
name: yard-activesupport-concern
|
301
441
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,6 +450,104 @@ dependencies:
|
|
310
450
|
- - "~>"
|
311
451
|
- !ruby/object:Gem::Version
|
312
452
|
version: 0.0.1
|
453
|
+
- !ruby/object:Gem::Dependency
|
454
|
+
name: net-imap
|
455
|
+
requirement: !ruby/object:Gem::Requirement
|
456
|
+
requirements:
|
457
|
+
- - ">="
|
458
|
+
- !ruby/object:Gem::Version
|
459
|
+
version: '0'
|
460
|
+
type: :development
|
461
|
+
prerelease: false
|
462
|
+
version_requirements: !ruby/object:Gem::Requirement
|
463
|
+
requirements:
|
464
|
+
- - ">="
|
465
|
+
- !ruby/object:Gem::Version
|
466
|
+
version: '0'
|
467
|
+
- !ruby/object:Gem::Dependency
|
468
|
+
name: net-pop
|
469
|
+
requirement: !ruby/object:Gem::Requirement
|
470
|
+
requirements:
|
471
|
+
- - ">="
|
472
|
+
- !ruby/object:Gem::Version
|
473
|
+
version: '0'
|
474
|
+
type: :development
|
475
|
+
prerelease: false
|
476
|
+
version_requirements: !ruby/object:Gem::Requirement
|
477
|
+
requirements:
|
478
|
+
- - ">="
|
479
|
+
- !ruby/object:Gem::Version
|
480
|
+
version: '0'
|
481
|
+
- !ruby/object:Gem::Dependency
|
482
|
+
name: net-smtp
|
483
|
+
requirement: !ruby/object:Gem::Requirement
|
484
|
+
requirements:
|
485
|
+
- - ">="
|
486
|
+
- !ruby/object:Gem::Version
|
487
|
+
version: '0'
|
488
|
+
type: :development
|
489
|
+
prerelease: false
|
490
|
+
version_requirements: !ruby/object:Gem::Requirement
|
491
|
+
requirements:
|
492
|
+
- - ">="
|
493
|
+
- !ruby/object:Gem::Version
|
494
|
+
version: '0'
|
495
|
+
- !ruby/object:Gem::Dependency
|
496
|
+
name: base64
|
497
|
+
requirement: !ruby/object:Gem::Requirement
|
498
|
+
requirements:
|
499
|
+
- - ">="
|
500
|
+
- !ruby/object:Gem::Version
|
501
|
+
version: '0'
|
502
|
+
type: :development
|
503
|
+
prerelease: false
|
504
|
+
version_requirements: !ruby/object:Gem::Requirement
|
505
|
+
requirements:
|
506
|
+
- - ">="
|
507
|
+
- !ruby/object:Gem::Version
|
508
|
+
version: '0'
|
509
|
+
- !ruby/object:Gem::Dependency
|
510
|
+
name: bigdecimal
|
511
|
+
requirement: !ruby/object:Gem::Requirement
|
512
|
+
requirements:
|
513
|
+
- - ">="
|
514
|
+
- !ruby/object:Gem::Version
|
515
|
+
version: '0'
|
516
|
+
type: :development
|
517
|
+
prerelease: false
|
518
|
+
version_requirements: !ruby/object:Gem::Requirement
|
519
|
+
requirements:
|
520
|
+
- - ">="
|
521
|
+
- !ruby/object:Gem::Version
|
522
|
+
version: '0'
|
523
|
+
- !ruby/object:Gem::Dependency
|
524
|
+
name: drb
|
525
|
+
requirement: !ruby/object:Gem::Requirement
|
526
|
+
requirements:
|
527
|
+
- - ">="
|
528
|
+
- !ruby/object:Gem::Version
|
529
|
+
version: '0'
|
530
|
+
type: :development
|
531
|
+
prerelease: false
|
532
|
+
version_requirements: !ruby/object:Gem::Requirement
|
533
|
+
requirements:
|
534
|
+
- - ">="
|
535
|
+
- !ruby/object:Gem::Version
|
536
|
+
version: '0'
|
537
|
+
- !ruby/object:Gem::Dependency
|
538
|
+
name: mutex_m
|
539
|
+
requirement: !ruby/object:Gem::Requirement
|
540
|
+
requirements:
|
541
|
+
- - ">="
|
542
|
+
- !ruby/object:Gem::Version
|
543
|
+
version: '0'
|
544
|
+
type: :development
|
545
|
+
prerelease: false
|
546
|
+
version_requirements: !ruby/object:Gem::Requirement
|
547
|
+
requirements:
|
548
|
+
- - ">="
|
549
|
+
- !ruby/object:Gem::Version
|
550
|
+
version: '0'
|
313
551
|
description:
|
314
552
|
email:
|
315
553
|
executables: []
|
@@ -347,26 +585,27 @@ files:
|
|
347
585
|
- lib/rails/generators/slim/templates/component.html.slim.tt
|
348
586
|
- lib/rails/generators/stimulus/component_generator.rb
|
349
587
|
- lib/rails/generators/stimulus/templates/component_controller.js.tt
|
588
|
+
- lib/rails/generators/stimulus/templates/component_controller.ts.tt
|
350
589
|
- lib/rails/generators/tailwindcss/component_generator.rb
|
351
590
|
- lib/rails/generators/tailwindcss/templates/component.html.erb.tt
|
352
591
|
- lib/rails/generators/test_unit/component_generator.rb
|
353
592
|
- lib/rails/generators/test_unit/templates/component_test.rb.tt
|
354
593
|
- lib/view_component.rb
|
355
594
|
- lib/view_component/base.rb
|
595
|
+
- lib/view_component/capture_compatibility.rb
|
356
596
|
- lib/view_component/collection.rb
|
357
597
|
- lib/view_component/compile_cache.rb
|
358
598
|
- lib/view_component/compiler.rb
|
359
599
|
- lib/view_component/component_error.rb
|
360
600
|
- lib/view_component/config.rb
|
361
|
-
- lib/view_component/content_areas.rb
|
362
601
|
- lib/view_component/deprecation.rb
|
363
602
|
- lib/view_component/docs_builder_component.html.erb
|
364
603
|
- lib/view_component/docs_builder_component.rb
|
365
604
|
- lib/view_component/engine.rb
|
605
|
+
- lib/view_component/errors.rb
|
606
|
+
- lib/view_component/inline_template.rb
|
366
607
|
- lib/view_component/instrumentation.rb
|
367
|
-
- lib/view_component/polymorphic_slots.rb
|
368
608
|
- lib/view_component/preview.rb
|
369
|
-
- lib/view_component/preview_template_error.rb
|
370
609
|
- lib/view_component/rails/tasks/view_component.rake
|
371
610
|
- lib/view_component/render_component_helper.rb
|
372
611
|
- lib/view_component/render_component_to_string_helper.rb
|
@@ -375,15 +614,15 @@ files:
|
|
375
614
|
- lib/view_component/rendering_component_helper.rb
|
376
615
|
- lib/view_component/rendering_monkey_patch.rb
|
377
616
|
- lib/view_component/slot.rb
|
378
|
-
- lib/view_component/slot_v2.rb
|
379
617
|
- lib/view_component/slotable.rb
|
380
|
-
- lib/view_component/
|
618
|
+
- lib/view_component/slotable_default.rb
|
381
619
|
- lib/view_component/system_test_case.rb
|
382
620
|
- lib/view_component/system_test_helpers.rb
|
383
|
-
- lib/view_component/
|
621
|
+
- lib/view_component/template.rb
|
384
622
|
- lib/view_component/test_case.rb
|
385
623
|
- lib/view_component/test_helpers.rb
|
386
624
|
- lib/view_component/translatable.rb
|
625
|
+
- lib/view_component/use_helpers.rb
|
387
626
|
- lib/view_component/version.rb
|
388
627
|
- lib/view_component/with_content_helper.rb
|
389
628
|
- lib/yard/mattr_accessor_handler.rb
|
@@ -402,14 +641,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
641
|
requirements:
|
403
642
|
- - ">="
|
404
643
|
- !ruby/object:Gem::Version
|
405
|
-
version: 2.
|
644
|
+
version: 2.7.0
|
406
645
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
407
646
|
requirements:
|
408
647
|
- - ">="
|
409
648
|
- !ruby/object:Gem::Version
|
410
649
|
version: '0'
|
411
650
|
requirements: []
|
412
|
-
rubygems_version: 3.
|
651
|
+
rubygems_version: 3.5.3
|
413
652
|
signing_key:
|
414
653
|
specification_version: 4
|
415
654
|
summary: A framework for building reusable, testable & encapsulated view components
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "active_support/concern"
|
4
|
-
|
5
|
-
require "view_component/slot"
|
6
|
-
|
7
|
-
# DEPRECATED - ContentAreas is deprecated and will be removed in v3.0.0
|
8
|
-
module ViewComponent
|
9
|
-
module ContentAreas
|
10
|
-
extend ActiveSupport::Concern
|
11
|
-
|
12
|
-
# Assign the provided content to the content area accessor
|
13
|
-
#
|
14
|
-
# @private
|
15
|
-
def with(area, content = nil, &block)
|
16
|
-
unless content_areas.include?(area)
|
17
|
-
raise ArgumentError.new(
|
18
|
-
"Unknown content_area '#{area}' for #{self} - expected one of '#{content_areas}'.\n\n" \
|
19
|
-
"To fix this issue, add `with_content_area :#{area}` to #{self} or reference " \
|
20
|
-
"a valid content area."
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
if block
|
25
|
-
content = view_context.capture(&block)
|
26
|
-
end
|
27
|
-
|
28
|
-
instance_variable_set("@#{area}".to_sym, content)
|
29
|
-
nil
|
30
|
-
end
|
31
|
-
|
32
|
-
class_methods do
|
33
|
-
def with_content_areas(*areas)
|
34
|
-
ViewComponent::Deprecation.deprecation_warning(
|
35
|
-
"`with_content_areas`", "use slots (https://viewcomponent.org/guide/slots.html) instead"
|
36
|
-
)
|
37
|
-
|
38
|
-
if areas.include?(:content)
|
39
|
-
raise ArgumentError.new(
|
40
|
-
"#{self} defines a content area called :content, which is a reserved name. \n\n" \
|
41
|
-
"To fix this issue, use another name, such as `:body`."
|
42
|
-
)
|
43
|
-
end
|
44
|
-
|
45
|
-
areas.each do |area|
|
46
|
-
define_method area.to_sym do
|
47
|
-
content unless content_evaluated? # ensure content is loaded so content_areas will be defined
|
48
|
-
instance_variable_get(:"@#{area}") if instance_variable_defined?(:"@#{area}")
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
self.content_areas = areas
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ViewComponent
|
4
|
-
module PolymorphicSlots
|
5
|
-
# In older rails versions, using a concern isn't a good idea here because they appear to not work with
|
6
|
-
# Module#prepend and class methods.
|
7
|
-
def self.included(base)
|
8
|
-
if base != ViewComponent::Base
|
9
|
-
# :nocov:
|
10
|
-
location = Kernel.caller_locations(1, 1)[0]
|
11
|
-
|
12
|
-
warn(
|
13
|
-
"warning: ViewComponent::PolymorphicSlots is now included in ViewComponent::Base by default " \
|
14
|
-
"and can be removed from #{location.path}:#{location.lineno}"
|
15
|
-
)
|
16
|
-
# :nocov:
|
17
|
-
end
|
18
|
-
|
19
|
-
base.singleton_class.prepend(ClassMethods)
|
20
|
-
base.include(InstanceMethods)
|
21
|
-
end
|
22
|
-
|
23
|
-
module ClassMethods
|
24
|
-
def renders_one(slot_name, callable = nil)
|
25
|
-
return super unless callable.is_a?(Hash) && callable.key?(:types)
|
26
|
-
|
27
|
-
validate_singular_slot_name(slot_name)
|
28
|
-
register_polymorphic_slot(slot_name, callable[:types], collection: false)
|
29
|
-
end
|
30
|
-
|
31
|
-
def renders_many(slot_name, callable = nil)
|
32
|
-
return super unless callable.is_a?(Hash) && callable.key?(:types)
|
33
|
-
|
34
|
-
validate_plural_slot_name(slot_name)
|
35
|
-
register_polymorphic_slot(slot_name, callable[:types], collection: true)
|
36
|
-
end
|
37
|
-
|
38
|
-
def register_polymorphic_slot(slot_name, types, collection:)
|
39
|
-
unless types.empty?
|
40
|
-
getter_name = slot_name
|
41
|
-
|
42
|
-
define_method(getter_name) do
|
43
|
-
get_slot(slot_name)
|
44
|
-
end
|
45
|
-
|
46
|
-
define_method("#{getter_name}?") do
|
47
|
-
get_slot(slot_name).present?
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
renderable_hash = types.each_with_object({}) do |(poly_type, poly_callable), memo|
|
52
|
-
memo[poly_type] = define_slot(
|
53
|
-
"#{slot_name}_#{poly_type}", collection: collection, callable: poly_callable
|
54
|
-
)
|
55
|
-
|
56
|
-
setter_name =
|
57
|
-
if collection
|
58
|
-
"#{ActiveSupport::Inflector.singularize(slot_name)}_#{poly_type}"
|
59
|
-
else
|
60
|
-
"#{slot_name}_#{poly_type}"
|
61
|
-
end
|
62
|
-
|
63
|
-
define_method(setter_name) do |*args, &block|
|
64
|
-
if _warn_on_deprecated_slot_setter
|
65
|
-
ViewComponent::Deprecation.deprecation_warning(
|
66
|
-
"Using polymorphic slot setters like `#{setter_name}`",
|
67
|
-
:"`with_#{setter_name}`"
|
68
|
-
)
|
69
|
-
end
|
70
|
-
|
71
|
-
set_polymorphic_slot(slot_name, poly_type, *args, &block)
|
72
|
-
end
|
73
|
-
ruby2_keywords(setter_name.to_sym) if respond_to?(:ruby2_keywords, true)
|
74
|
-
|
75
|
-
define_method("with_#{setter_name}") do |*args, &block|
|
76
|
-
set_polymorphic_slot(slot_name, poly_type, *args, &block)
|
77
|
-
end
|
78
|
-
ruby2_keywords(:"with_#{setter_name}") if respond_to?(:ruby2_keywords, true)
|
79
|
-
end
|
80
|
-
|
81
|
-
registered_slots[slot_name] = {
|
82
|
-
collection: collection,
|
83
|
-
renderable_hash: renderable_hash
|
84
|
-
}
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
module InstanceMethods
|
89
|
-
def set_polymorphic_slot(slot_name, poly_type = nil, *args, &block)
|
90
|
-
slot_definition = self.class.registered_slots[slot_name]
|
91
|
-
|
92
|
-
if !slot_definition[:collection] && (defined?(@__vc_set_slots) && @__vc_set_slots[slot_name])
|
93
|
-
raise ArgumentError, "content for slot '#{slot_name}' has already been provided"
|
94
|
-
end
|
95
|
-
|
96
|
-
poly_def = slot_definition[:renderable_hash][poly_type]
|
97
|
-
|
98
|
-
set_slot(slot_name, poly_def, *args, &block)
|
99
|
-
end
|
100
|
-
ruby2_keywords(:set_polymorphic_slot) if respond_to?(:ruby2_keywords, true)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|