view_component 3.23.2 → 4.0.2

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/view_component/preview_actions.rb +11 -14
  3. data/app/controllers/view_components_system_test_controller.rb +15 -20
  4. data/app/views/test_mailer/test_asset_email.html.erb +1 -0
  5. data/app/views/test_mailer/test_url_email.html.erb +1 -0
  6. data/app/views/view_components/preview.html.erb +1 -9
  7. data/docs/CHANGELOG.md +422 -0
  8. data/lib/{rails/generators → generators/view_component}/abstract_generator.rb +2 -2
  9. data/lib/{rails/generators → generators/view_component}/component/component_generator.rb +16 -3
  10. data/lib/{rails/generators → generators/view_component}/component/templates/component.rb.tt +6 -1
  11. data/lib/{rails/generators/erb/component_generator.rb → generators/view_component/erb/erb_generator.rb} +4 -3
  12. data/lib/{rails/generators/haml/component_generator.rb → generators/view_component/haml/haml_generator.rb} +3 -3
  13. data/lib/{rails/generators/locale/component_generator.rb → generators/view_component/locale/locale_generator.rb} +3 -3
  14. data/lib/{rails/generators/preview/component_generator.rb → generators/view_component/preview/preview_generator.rb} +3 -3
  15. data/lib/{rails/generators/rspec/component_generator.rb → generators/view_component/rspec/rspec_generator.rb} +3 -3
  16. data/lib/{rails/generators/slim/component_generator.rb → generators/view_component/slim/slim_generator.rb} +3 -3
  17. data/lib/{rails/generators/stimulus/component_generator.rb → generators/view_component/stimulus/stimulus_generator.rb} +3 -3
  18. data/lib/generators/view_component/tailwindcss/tailwindcss_generator.rb +11 -0
  19. data/lib/{rails/generators/test_unit/component_generator.rb → generators/view_component/test_unit/test_unit_generator.rb} +2 -2
  20. data/lib/view_component/base.rb +178 -158
  21. data/lib/view_component/collection.rb +19 -25
  22. data/lib/view_component/compiler.rb +52 -79
  23. data/lib/view_component/config.rb +51 -85
  24. data/lib/view_component/configurable.rb +1 -1
  25. data/lib/view_component/deprecation.rb +1 -1
  26. data/lib/view_component/engine.rb +37 -107
  27. data/lib/view_component/errors.rb +16 -34
  28. data/lib/view_component/inline_template.rb +3 -4
  29. data/lib/view_component/instrumentation.rb +4 -10
  30. data/lib/view_component/preview.rb +4 -11
  31. data/lib/view_component/request_details.rb +30 -0
  32. data/lib/view_component/slot.rb +6 -13
  33. data/lib/view_component/slotable.rb +82 -77
  34. data/lib/view_component/system_spec_helpers.rb +11 -0
  35. data/lib/view_component/system_test_helpers.rb +1 -2
  36. data/lib/view_component/template.rb +106 -83
  37. data/lib/view_component/test_helpers.rb +46 -43
  38. data/lib/view_component/translatable.rb +33 -32
  39. data/lib/view_component/version.rb +2 -2
  40. data/lib/view_component.rb +8 -6
  41. metadata +31 -559
  42. data/app/assets/vendor/prism.css +0 -4
  43. data/app/assets/vendor/prism.min.js +0 -12
  44. data/app/helpers/preview_helper.rb +0 -85
  45. data/app/views/view_components/_preview_source.html.erb +0 -17
  46. data/lib/rails/generators/tailwindcss/component_generator.rb +0 -11
  47. data/lib/view_component/capture_compatibility.rb +0 -44
  48. data/lib/view_component/component_error.rb +0 -6
  49. data/lib/view_component/rails/tasks/view_component.rake +0 -20
  50. data/lib/view_component/render_component_helper.rb +0 -10
  51. data/lib/view_component/render_component_to_string_helper.rb +0 -9
  52. data/lib/view_component/render_monkey_patch.rb +0 -13
  53. data/lib/view_component/render_to_string_monkey_patch.rb +0 -13
  54. data/lib/view_component/rendering_component_helper.rb +0 -9
  55. data/lib/view_component/rendering_monkey_patch.rb +0 -13
  56. data/lib/view_component/slotable_default.rb +0 -20
  57. data/lib/view_component/use_helpers.rb +0 -42
  58. /data/lib/{rails/generators → generators/view_component}/erb/templates/component.html.erb.tt +0 -0
  59. /data/lib/{rails/generators → generators/view_component}/haml/templates/component.html.haml.tt +0 -0
  60. /data/lib/{rails/generators → generators/view_component}/preview/templates/component_preview.rb.tt +0 -0
  61. /data/lib/{rails/generators → generators/view_component}/rspec/templates/component_spec.rb.tt +0 -0
  62. /data/lib/{rails/generators → generators/view_component}/slim/templates/component.html.slim.tt +0 -0
  63. /data/lib/{rails/generators → generators/view_component}/stimulus/templates/component_controller.js.tt +0 -0
  64. /data/lib/{rails/generators → generators/view_component}/stimulus/templates/component_controller.ts.tt +0 -0
  65. /data/lib/{rails/generators → generators/view_component}/tailwindcss/templates/component.html.erb.tt +0 -0
  66. /data/lib/{rails/generators → generators/view_component}/test_unit/templates/component_test.rb.tt +0 -0
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators/erb/component_generator"
3
+ require "generators/view_component/erb/erb_generator"
4
4
 
5
- module Haml
5
+ module ViewComponent
6
6
  module Generators
7
- class ComponentGenerator < Erb::Generators::ComponentGenerator
7
+ class HamlGenerator < ViewComponent::Generators::ErbGenerator
8
8
  include ViewComponent::AbstractGenerator
9
9
 
10
10
  source_root File.expand_path("templates", __dir__)
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators/abstract_generator"
3
+ require "generators/view_component/abstract_generator"
4
4
 
5
- module Locale
5
+ module ViewComponent
6
6
  module Generators
7
- class ComponentGenerator < ::Rails::Generators::NamedBase
7
+ class LocaleGenerator < ::Rails::Generators::NamedBase
8
8
  include ViewComponent::AbstractGenerator
9
9
 
10
10
  source_root File.expand_path("templates", __dir__)
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Preview
3
+ module ViewComponent
4
4
  module Generators
5
- class ComponentGenerator < ::Rails::Generators::NamedBase
5
+ class PreviewGenerator < ::Rails::Generators::NamedBase
6
6
  source_root File.expand_path("templates", __dir__)
7
7
  class_option :preview_path, type: :string, desc: "Path for previews, required when multiple preview paths are configured", default: ViewComponent::Base.config.generate.preview_path
8
8
 
@@ -10,7 +10,7 @@ module Preview
10
10
  check_class_collision suffix: "ComponentPreview"
11
11
 
12
12
  def create_preview_file
13
- preview_paths = ViewComponent::Base.config.preview_paths
13
+ preview_paths = ViewComponent::Base.config.previews.paths
14
14
  optional_path = options[:preview_path]
15
15
  return if preview_paths.count > 1 && optional_path.blank?
16
16
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators/abstract_generator"
3
+ require "generators/view_component/abstract_generator"
4
4
 
5
- module Rspec
5
+ module ViewComponent
6
6
  module Generators
7
- class ComponentGenerator < ::Rails::Generators::NamedBase
7
+ class RspecGenerator < ::Rails::Generators::NamedBase
8
8
  include ViewComponent::AbstractGenerator
9
9
 
10
10
  source_root File.expand_path("templates", __dir__)
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators/erb/component_generator"
3
+ require "generators/view_component/erb/erb_generator"
4
4
 
5
- module Slim
5
+ module ViewComponent
6
6
  module Generators
7
- class ComponentGenerator < Erb::Generators::ComponentGenerator
7
+ class SlimGenerator < ViewComponent::Generators::ErbGenerator
8
8
  include ViewComponent::AbstractGenerator
9
9
 
10
10
  source_root File.expand_path("templates", __dir__)
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators/abstract_generator"
3
+ require "generators/view_component/abstract_generator"
4
4
 
5
- module Stimulus
5
+ module ViewComponent
6
6
  module Generators
7
- class ComponentGenerator < ::Rails::Generators::NamedBase
7
+ class StimulusGenerator < ::Rails::Generators::NamedBase
8
8
  include ViewComponent::AbstractGenerator
9
9
 
10
10
  source_root File.expand_path("templates", __dir__)
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "generators/view_component/erb/erb_generator"
4
+
5
+ module ViewComponent
6
+ module Generators
7
+ class TailwindcssGenerator < ViewComponent::Generators::ErbGenerator
8
+ source_root File.expand_path("templates", __dir__)
9
+ end
10
+ end
11
+ end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module TestUnit
3
+ module ViewComponent
4
4
  module Generators
5
- class ComponentGenerator < ::Rails::Generators::NamedBase
5
+ class TestUnitGenerator < ::Rails::Generators::NamedBase
6
6
  source_root File.expand_path("templates", __dir__)
7
7
  check_class_collision suffix: "ComponentTest"
8
8