atomic_view 0.0.2 → 0.0.3

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/atomic_view/component.rb +11 -0
  3. data/lib/atomic_view/components/button_component.rb +4 -33
  4. data/lib/atomic_view/components/check_box_component.rb +9 -0
  5. data/lib/atomic_view/components/collection_check_boxes_component.rb +6 -0
  6. data/lib/atomic_view/components/collection_radio_buttons_component.rb +6 -0
  7. data/lib/atomic_view/components/collection_select_component.rb +14 -0
  8. data/lib/atomic_view/components/color_field_component.rb +6 -0
  9. data/lib/atomic_view/components/date_field_component.rb +17 -0
  10. data/lib/atomic_view/components/date_select_component.rb +6 -0
  11. data/lib/atomic_view/components/datetime_local_field_component.rb +6 -0
  12. data/lib/atomic_view/components/datetime_select_component.rb +6 -0
  13. data/lib/atomic_view/components/email_field_component.rb +15 -0
  14. data/lib/atomic_view/components/field_component.erb +25 -0
  15. data/lib/atomic_view/components/field_component.rb +65 -0
  16. data/lib/atomic_view/components/grouped_collection_select_component.rb +6 -0
  17. data/lib/atomic_view/components/label_component.rb +9 -0
  18. data/lib/atomic_view/components/month_field_component.rb +6 -0
  19. data/lib/atomic_view/components/number_field_component.rb +15 -0
  20. data/lib/atomic_view/components/password_field_component.rb +15 -0
  21. data/lib/atomic_view/components/radio_button_component.rb +6 -0
  22. data/lib/atomic_view/components/range_field_component.rb +6 -0
  23. data/lib/atomic_view/components/search_field_component.rb +15 -0
  24. data/lib/atomic_view/components/select_component.rb +17 -0
  25. data/lib/atomic_view/components/submit_component.rb +9 -0
  26. data/lib/atomic_view/components/telephone_field_component.rb +15 -0
  27. data/lib/atomic_view/components/text_area_component.rb +6 -0
  28. data/lib/atomic_view/components/text_field_component.rb +14 -0
  29. data/lib/atomic_view/components/time_select_component.rb +6 -0
  30. data/lib/atomic_view/components/time_zone_select_component.rb +6 -0
  31. data/lib/atomic_view/components/url_field_component.rb +15 -0
  32. data/lib/atomic_view/components/week_field_component.rb +6 -0
  33. data/lib/atomic_view/components/weekday_select_component.rb +6 -0
  34. data/lib/atomic_view/form_builder.rb +7 -0
  35. data/lib/atomic_view/railtie.rb +0 -5
  36. data/lib/atomic_view/version.rb +1 -1
  37. data/lib/atomic_view.rb +16 -10
  38. metadata +81 -28
  39. data/.rspec +0 -3
  40. data/.ruby-version +0 -1
  41. data/Gemfile +0 -11
  42. data/Gemfile.lock +0 -269
  43. data/Rakefile +0 -10
  44. data/atomic_view.gemspec +0 -37
  45. data/changelogs/codelog.yml +0 -16
  46. data/changelogs/header.txt +0 -3
  47. data/changelogs/releases/.gitkeep +0 -0
  48. data/changelogs/releases/0.0.1.md +0 -5
  49. data/changelogs/template.yml +0 -20
  50. data/changelogs/unreleased/.gitkeep +0 -0
  51. data/changelogs/unreleased/20240708222803491_deps.yml +0 -2
  52. data/changelogs/unreleased/20240708223052056_preview.yml +0 -2
  53. data/changelogs/unreleased/20240709002202127_basic-button.yml +0 -3
  54. data/changelogs/unreleased/20240709005746060_ruby.yml +0 -5
  55. data/lib/atomic_view/components/previews/.gitkeep +0 -0
  56. data/lib/atomic_view/components/previews/button_component_preview.rb +0 -44
  57. data/lib/atomic_view/helpers/form_tag_helper.rb +0 -11
  58. data/lib/atomic_view/preview.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2dffba601d7250090a7560d3cd7407c0593a998c38202d61a09e892671c73bcf
4
- data.tar.gz: 31fa287050869d231c1adc639236f121ddea420aaf5c29c9298ff3e4dc0700f5
3
+ metadata.gz: d0e83bc2d812d1f662860a4eccc80a1b0c6566d3cd7cdc7d23d03d60a1425c1e
4
+ data.tar.gz: bbe5303fef21b6ab301b813995bed4f340260cfe4880d20cc38df4082564e734
5
5
  SHA512:
6
- metadata.gz: bdb30f9edcc0441002c26132713ada3637100abe083f78105ab660c99a31eea32c5fccff7507b9e006f4d61fd416d7d5aa4f242b8099a6e623a7c3744c445a73
7
- data.tar.gz: 17cfe35aad5bad71e75423f83436b32f2a59eeff8fff67044373b72d7a6aec285f1e21e8a1ef001673eaab4375616e0151e9160d5397e13bce8a7619f2609a1e
6
+ metadata.gz: 721dc4dd8b9fd0f96e3f6ab4c45e35a51cb5066552423fb532ac25278bf6a363664464f4a93a54c5194c770563b74731aeb17af587fbf0eca57accf5dd2d055f
7
+ data.tar.gz: aaac9f8deaee0ad1088d6073f9851d96408434886275f34e294894f5020f2d971d0440ea6cdd724762d0b1366399f8ca757358c5d508f5a0993474b1c185b725
@@ -2,6 +2,17 @@
2
2
 
3
3
  module AtomicView
4
4
  class Component < ViewComponent::Base
5
+ include Heroicons::Engine.helpers
6
+
7
+ def icon(name, variant: Heroicons.configuration.variant, options: {}, path_options: {})
8
+ Heroicons::Icon.render(
9
+ name: name,
10
+ variant: variant,
11
+ options: options,
12
+ path_options: path_options
13
+ )
14
+ end
15
+
5
16
  def class_names(...)
6
17
  classes = super
7
18
  TailwindMerge::Merger.new.merge(classes)
@@ -3,24 +3,15 @@
3
3
  module AtomicView
4
4
  module Components
5
5
  # Button
6
- class ButtonComponent < Component
7
- attr_reader :label, :size, :variant
6
+ class ButtonComponent < ViewComponent::Form::ButtonComponent
7
+ attr_reader :label
8
8
 
9
- def initialize(label_or_options = nil, options = nil)
9
+ def initialize(form, label_or_options = nil, options = nil)
10
10
  super
11
11
 
12
- if label_or_options.is_a?(Hash)
13
- options = label_or_options
14
- else
12
+ if label_or_options.is_a?(String)
15
13
  @label = label_or_options
16
- options ||= {}
17
14
  end
18
-
19
- @variant = options.delete(:variant)
20
- @size = options.delete(:size) || :md
21
-
22
- options[:class] = opts_to_class
23
- @options = options
24
15
  end
25
16
 
26
17
  def call
@@ -30,26 +21,6 @@ module AtomicView
30
21
  content_tag(:button, label, @options)
31
22
  end
32
23
  end
33
-
34
- private
35
-
36
- def opts_to_class
37
- class_names(
38
- # size
39
- {
40
- "rounded px-2.5 py-1.5 text-xs": size == :xs,
41
- "rounded px-2.5 py-1.5 text-sm": size == :sm,
42
- "rounded-md px-3 py-2 text-sm": size == :md,
43
- "rounded-md px-3.5 py-2.5 text-md": size == :lg
44
- },
45
- # variant
46
- {
47
- "text-white bg-primary shadow-sm ring-1 ring-inset ring-primary-800 hover:bg-primary-800": variant == :primary,
48
- "text-zinc-900 bg-secondary-50 shadow-sm ring-1 ring-inset ring-secondary-200 hover:bg-secondary-100": variant == :secondary,
49
- "text-zinc-900 hover:bg-secondary-100": variant == :tertiary
50
- }
51
- )
52
- end
53
24
  end
54
25
  end
55
26
  end
@@ -0,0 +1,9 @@
1
+ module AtomicView
2
+ module Components
3
+ class CheckBoxComponent < ViewComponent::Form::CheckBoxComponent
4
+ def html_class
5
+ "h-4 w-4 rounded border-neutral-300 text-blue-500 focus:ring-blue-700 hover:border-neutral-700"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class CollectionCheckBoxesComponent < ViewComponent::Form::CollectionCheckBoxesComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class CollectionRadioButtonsComponent < ViewComponent::Form::CollectionRadioButtonsComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ module AtomicView
2
+ module Components
3
+ class CollectionSelectComponent < ViewComponent::Form::CollectionSelectComponent
4
+ def html_class
5
+ class_names(
6
+ *%W[block w-full h-9 min-w-0 flex-1 rounded-md border-0 py-1 text-sm shadow-sm ring-1],
7
+ "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-zinc-500 disabled:ring-zinc-200",
8
+ "bg-transparent dark:bg-white/5 text-zinc-950 ring-zinc-950/10 dark:ring-white/10 placeholder:text-zinc-500 dark:text-white focus:ring-neutral-700 focus:border-zinc-950/20 dark:focus:ring-white/20",
9
+ "text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500" => method_errors?
10
+ )
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class ColorFieldComponent < ViewComponent::Form::ColorFieldComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,17 @@
1
+ module AtomicView
2
+ module Components
3
+ class DateFieldComponent < ViewComponent::Form::DateFieldComponent
4
+ def html_class
5
+ class_names(
6
+ class_names(
7
+ *%W[block w-full h-9 min-w-0 flex-1 rounded-md border-0 py-1 text-sm shadow-sm ring-1],
8
+ "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-zinc-500 disabled:ring-zinc-200",
9
+ "bg-transparent dark:bg-white/5 text-zinc-950 ring-zinc-950/10 dark:ring-white/10 placeholder:text-zinc-500 dark:text-white focus:ring-neutral-700 focus:border-zinc-950/20 dark:focus:ring-white/20",
10
+ "text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500" => method_errors?,
11
+ ),
12
+ options[:class]
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class DateSelectComponent < ViewComponent::Form::DateSelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class DatetimeLocalFieldComponent < ViewComponent::Form::DatetimeLocalFieldComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class DatetimeSelectComponent < ViewComponent::Form::DatetimeSelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class EmailFieldComponent < ViewComponent::Form::EmailFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::EmailField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ <%= content_tag :div, class: container_html_class do %>
2
+ <% if left_section? %>
3
+ <% if left_section_addon? %>
4
+ <span class="inline-flex items-center rounded-l-lg bg-transparent dark:bg-white/5 ring-1 ring-zinc-950/10 dark:ring-white/10 px-3 text-zinc-950 dark:text-white sm:text-sm"><%= left_section %></span>
5
+ <% elsif left_section_interaction? %>
6
+ <%= left_section %>
7
+ <% else %>
8
+ <div class="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3">
9
+ <%= left_section %>
10
+ </div>
11
+ <% end %>
12
+ <% end %>
13
+ <%= tag_klass.new(@object_name, @method_name, @view_context, @options).render %>
14
+ <% if right_section? %>
15
+ <% if right_section_addon? %>
16
+ <span class="inline-flex items-center rounded-r-lg bg-transparent dark:bg-white/5 ring-1 ring-zinc-950/10 dark:ring-white/10 px-3 text-zinc-950 dark:text-white sm:text-sm"><%= right_section %></span>
17
+ <% elsif right_section_interaction? %>
18
+ <%= right_section %>
19
+ <% else %>
20
+ <div class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3">
21
+ <%= right_section %>
22
+ </div>
23
+ <% end %>
24
+ <% end %>
25
+ <% end %>
@@ -0,0 +1,65 @@
1
+ module AtomicView
2
+ module Components
3
+ class FieldComponent < ViewComponent::Form::FieldComponent
4
+ attr_reader :tag_klass
5
+
6
+ def initialize(form, object_name, method_name, options = {}, tag_klass = ActionView::Helpers::Tags::TextField)
7
+ super(form, object_name, method_name, options)
8
+ @tag_klass = tag_klass
9
+ end
10
+
11
+ def html_class
12
+ class_names(
13
+ *%W[block w-full appearance-none h-9 min-w-0 z-10 flex-1 rounded-lg border-0 py-1 text-base shadow-sm ring-1],
14
+ "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-zinc-500 disabled:ring-zinc-200",
15
+ "bg-transparent dark:bg-white/5 text-zinc-950 ring-zinc-950/10 dark:ring-white/10 placeholder:text-zinc-500 dark:text-white focus:ring-neutral-700 focus:border-zinc-950/20 dark:focus:ring-white/20",
16
+ "pl-10" => left_section? && !(left_section_addon? || left_section_interaction?),
17
+ "pr-10" => right_section? && !(right_section_addon? || right_section_interaction?),
18
+ "shadow-none rounded-none rounded-r-lg" => left_section_addon? || left_section_interaction?,
19
+ "shadow-none rounded-none rounded-l-lg" => right_section_addon? || right_section_interaction?,
20
+ "text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500" => method_errors?
21
+ )
22
+ end
23
+
24
+ def container_html_class
25
+ class_names(
26
+ "relative rounded-lg shadow-sm",
27
+ {"flex" => left_section_addon? || left_section_interaction? || right_section_addon? || right_section_interaction?},
28
+ options[:container_class]
29
+ )
30
+ end
31
+
32
+ def left_section
33
+ options[:left_section]
34
+ end
35
+
36
+ def left_section?
37
+ left_section.present?
38
+ end
39
+
40
+ def left_section_addon?
41
+ options[:left_section_as_addon].present?
42
+ end
43
+
44
+ def left_section_interaction?
45
+ options[:left_section_as_interaction].present?
46
+ end
47
+
48
+ def right_section
49
+ options[:right_section] || method_errors? && raw(icon("exclamation-circle", variant: :mini, options: {class: "size-5 text-red-500"}))
50
+ end
51
+
52
+ def right_section?
53
+ right_section.present?
54
+ end
55
+
56
+ def right_section_addon?
57
+ options[:right_section_as_addon].present?
58
+ end
59
+
60
+ def right_section_interaction?
61
+ options[:right_section_as_interaction].present?
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class GroupedCollectionSelectComponent < ViewComponent::Form::GroupedCollectionSelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module AtomicView
2
+ module Components
3
+ class LabelComponent < ViewComponent::Form::LabelComponent
4
+ def html_class
5
+ "block text-sm font-medium leading-6 text-zinc-950 dark:text-white"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class MonthFieldComponent < ViewComponent::Form::MonthFieldComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class NumberFieldComponent < ViewComponent::Form::NumberFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::NumberField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class PasswordFieldComponent < ViewComponent::Form::PasswordFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::PasswordField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class RadioButtonComponent < ViewComponent::Form::RadioButtonComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class RangeFieldComponent < ViewComponent::Form::RangeFieldComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class SearchFieldComponent < ViewComponent::Form::SearchFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::SearchField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module AtomicView
2
+ module Components
3
+ class SelectComponent < ViewComponent::Form::SelectComponent
4
+ def html_class
5
+ class_names(
6
+ class_names(
7
+ *%W[block w-full h-9 min-w-0 flex-1 rounded-md border-0 py-1 text-sm shadow-sm ring-1],
8
+ "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-zinc-500 disabled:ring-zinc-200",
9
+ "bg-transparent dark:bg-white/5 text-zinc-950 ring-zinc-950/10 dark:ring-white/10 placeholder:text-zinc-500 dark:text-white focus:ring-neutral-700 focus:border-zinc-950/20 dark:focus:ring-white/20",
10
+ "text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500" => method_errors?,
11
+ ),
12
+ options[:class]
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ module AtomicView
2
+ module Components
3
+ class SubmitComponent < ViewComponent::Form::SubmitComponent
4
+ def html_class
5
+ "cursor-pointer rounded-md bg-green-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-green-600/90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-700"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class TelephoneFieldComponent < ViewComponent::Form::TelephoneFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::TelField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class TextAreaComponent < ViewComponent::Form::TextAreaComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ module AtomicView
2
+ module Components
3
+ class TextFieldComponent < ViewComponent::Form::TextFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options
10
+ )
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class TimeSelectComponent < ViewComponent::Form::TimeSelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class TimeZoneSelectComponent < ViewComponent::Form::TimeZoneSelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ module AtomicView
2
+ module Components
3
+ class UrlFieldComponent < ViewComponent::Form::UrlFieldComponent
4
+ def call
5
+ render FieldComponent.new(
6
+ form,
7
+ object_name,
8
+ method_name,
9
+ options,
10
+ ActionView::Helpers::Tags::UrlField
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class WeekFieldComponent < ViewComponent::Form::WeekFieldComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module AtomicView
2
+ module Components
3
+ class WeekdaySelectComponent < ViewComponent::Form::WeekdaySelectComponent
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AtomicView
4
+ class FormBuilder < ViewComponent::Form::Builder
5
+ namespace Components
6
+ end
7
+ end
@@ -1,11 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "atomic_view/helpers/form_tag_helper"
4
-
5
3
  module AtomicView
6
4
  class Railtie < Rails::Railtie
7
- initializer "atomic_view.helpers" do
8
- ActiveSupport.on_load(:action_view) { include Helpers::FormTagHelper }
9
- end
10
5
  end
11
6
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AtomicView
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
data/lib/atomic_view.rb CHANGED
@@ -3,18 +3,24 @@
3
3
  require "rails"
4
4
  require "view_component"
5
5
  require "tailwind_merge"
6
- require_relative "atomic_view/version"
7
- require_relative "atomic_view/component"
8
- require_relative "atomic_view/components/button_component"
6
+ require "heroicons"
7
+ require "view_component/form"
9
8
 
10
- require_relative "atomic_view/railtie"
9
+ require "zeitwerk"
10
+ loader = Zeitwerk::Loader.for_gem
11
+
12
+ vcf_gem_dir = Gem::Specification.find_by_name("view_component-form").gem_dir
13
+ loader.push_dir File.join(vcf_gem_dir, "app", "components")
14
+ loader.push_dir File.join(vcf_gem_dir, "app", "components", "concerns")
15
+
16
+ loader.setup
11
17
 
12
18
  # Component library built for Ruby on Rails with first-class support for ActionView using ViewComponent.
13
19
  module AtomicView
14
- class << self
15
- def preview_folder_path
16
- root_directory = File.dirname(__dir__)
17
- File.join(root_directory, "lib", "atomic_view", "components", "previews")
18
- end
19
- end
20
20
  end
21
+
22
+ ViewComponent::Form.configure do |config|
23
+ config.parent_component = "AtomicView::Component"
24
+ end
25
+
26
+ loader.eager_load
metadata CHANGED
@@ -1,43 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Warrington
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-18 00:00:00.000000000 Z
11
+ date: 2025-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zeitwerk
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.7.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.7.2
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rails
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 7.2.0
33
+ version: 8.0.1
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 7.2.0
40
+ version: 8.0.1
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: view_component
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '3.13'
47
+ version: '3.21'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '3.13'
54
+ version: '3.21'
55
+ - !ruby/object:Gem::Dependency
56
+ name: tailwindcss-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 4.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 4.1.0
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: tailwind_merge
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,20 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0.12'
83
+ - !ruby/object:Gem::Dependency
84
+ name: heroicons
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
55
97
  description:
56
98
  email:
57
99
  - joelw@hey.com
@@ -59,32 +101,43 @@ executables: []
59
101
  extensions: []
60
102
  extra_rdoc_files: []
61
103
  files:
62
- - ".rspec"
63
- - ".ruby-version"
64
104
  - CHANGELOG.md
65
- - Gemfile
66
- - Gemfile.lock
67
105
  - LICENSE.txt
68
106
  - README.md
69
- - Rakefile
70
- - atomic_view.gemspec
71
- - changelogs/codelog.yml
72
- - changelogs/header.txt
73
- - changelogs/releases/.gitkeep
74
- - changelogs/releases/0.0.1.md
75
- - changelogs/template.yml
76
- - changelogs/unreleased/.gitkeep
77
- - changelogs/unreleased/20240708222803491_deps.yml
78
- - changelogs/unreleased/20240708223052056_preview.yml
79
- - changelogs/unreleased/20240709002202127_basic-button.yml
80
- - changelogs/unreleased/20240709005746060_ruby.yml
81
107
  - lib/atomic_view.rb
82
108
  - lib/atomic_view/component.rb
83
109
  - lib/atomic_view/components/button_component.rb
84
- - lib/atomic_view/components/previews/.gitkeep
85
- - lib/atomic_view/components/previews/button_component_preview.rb
86
- - lib/atomic_view/helpers/form_tag_helper.rb
87
- - lib/atomic_view/preview.rb
110
+ - lib/atomic_view/components/check_box_component.rb
111
+ - lib/atomic_view/components/collection_check_boxes_component.rb
112
+ - lib/atomic_view/components/collection_radio_buttons_component.rb
113
+ - lib/atomic_view/components/collection_select_component.rb
114
+ - lib/atomic_view/components/color_field_component.rb
115
+ - lib/atomic_view/components/date_field_component.rb
116
+ - lib/atomic_view/components/date_select_component.rb
117
+ - lib/atomic_view/components/datetime_local_field_component.rb
118
+ - lib/atomic_view/components/datetime_select_component.rb
119
+ - lib/atomic_view/components/email_field_component.rb
120
+ - lib/atomic_view/components/field_component.erb
121
+ - lib/atomic_view/components/field_component.rb
122
+ - lib/atomic_view/components/grouped_collection_select_component.rb
123
+ - lib/atomic_view/components/label_component.rb
124
+ - lib/atomic_view/components/month_field_component.rb
125
+ - lib/atomic_view/components/number_field_component.rb
126
+ - lib/atomic_view/components/password_field_component.rb
127
+ - lib/atomic_view/components/radio_button_component.rb
128
+ - lib/atomic_view/components/range_field_component.rb
129
+ - lib/atomic_view/components/search_field_component.rb
130
+ - lib/atomic_view/components/select_component.rb
131
+ - lib/atomic_view/components/submit_component.rb
132
+ - lib/atomic_view/components/telephone_field_component.rb
133
+ - lib/atomic_view/components/text_area_component.rb
134
+ - lib/atomic_view/components/text_field_component.rb
135
+ - lib/atomic_view/components/time_select_component.rb
136
+ - lib/atomic_view/components/time_zone_select_component.rb
137
+ - lib/atomic_view/components/url_field_component.rb
138
+ - lib/atomic_view/components/week_field_component.rb
139
+ - lib/atomic_view/components/weekday_select_component.rb
140
+ - lib/atomic_view/form_builder.rb
88
141
  - lib/atomic_view/railtie.rb
89
142
  - lib/atomic_view/version.rb
90
143
  homepage: https://github.com/joelzwarrington/atomic_view
@@ -111,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
164
  - !ruby/object:Gem::Version
112
165
  version: '0'
113
166
  requirements: []
114
- rubygems_version: 3.5.17
167
+ rubygems_version: 3.5.3
115
168
  signing_key:
116
169
  specification_version: 4
117
170
  summary: Component library built for Ruby on Rails with first-class support for ActionView
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.3.0
data/Gemfile DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
-
6
- gemspec
7
-
8
- gem "codelog", github: "codus/codelog", branch: "master"
9
- gem "rake", "~> 13.0"
10
- gem "rspec", "~> 3.0"
11
- gem "standard", "~> 1.21"
data/Gemfile.lock DELETED
@@ -1,269 +0,0 @@
1
- GIT
2
- remote: https://github.com/codus/codelog.git
3
- revision: 2194f26f01b07b306d5791bcbebd17b6af2d928a
4
- branch: master
5
- specs:
6
- codelog (0.8.0)
7
- thor (~> 1.0)
8
-
9
- PATH
10
- remote: .
11
- specs:
12
- atomic_view (0.0.1)
13
- rails (~> 7.2.0)
14
- tailwind_merge (~> 0.12)
15
- view_component (~> 3.13)
16
-
17
- GEM
18
- remote: https://rubygems.org/
19
- specs:
20
- actioncable (7.2.0)
21
- actionpack (= 7.2.0)
22
- activesupport (= 7.2.0)
23
- nio4r (~> 2.0)
24
- websocket-driver (>= 0.6.1)
25
- zeitwerk (~> 2.6)
26
- actionmailbox (7.2.0)
27
- actionpack (= 7.2.0)
28
- activejob (= 7.2.0)
29
- activerecord (= 7.2.0)
30
- activestorage (= 7.2.0)
31
- activesupport (= 7.2.0)
32
- mail (>= 2.8.0)
33
- actionmailer (7.2.0)
34
- actionpack (= 7.2.0)
35
- actionview (= 7.2.0)
36
- activejob (= 7.2.0)
37
- activesupport (= 7.2.0)
38
- mail (>= 2.8.0)
39
- rails-dom-testing (~> 2.2)
40
- actionpack (7.2.0)
41
- actionview (= 7.2.0)
42
- activesupport (= 7.2.0)
43
- nokogiri (>= 1.8.5)
44
- racc
45
- rack (>= 2.2.4, < 3.2)
46
- rack-session (>= 1.0.1)
47
- rack-test (>= 0.6.3)
48
- rails-dom-testing (~> 2.2)
49
- rails-html-sanitizer (~> 1.6)
50
- useragent (~> 0.16)
51
- actiontext (7.2.0)
52
- actionpack (= 7.2.0)
53
- activerecord (= 7.2.0)
54
- activestorage (= 7.2.0)
55
- activesupport (= 7.2.0)
56
- globalid (>= 0.6.0)
57
- nokogiri (>= 1.8.5)
58
- actionview (7.2.0)
59
- activesupport (= 7.2.0)
60
- builder (~> 3.1)
61
- erubi (~> 1.11)
62
- rails-dom-testing (~> 2.2)
63
- rails-html-sanitizer (~> 1.6)
64
- activejob (7.2.0)
65
- activesupport (= 7.2.0)
66
- globalid (>= 0.3.6)
67
- activemodel (7.2.0)
68
- activesupport (= 7.2.0)
69
- activerecord (7.2.0)
70
- activemodel (= 7.2.0)
71
- activesupport (= 7.2.0)
72
- timeout (>= 0.4.0)
73
- activestorage (7.2.0)
74
- actionpack (= 7.2.0)
75
- activejob (= 7.2.0)
76
- activerecord (= 7.2.0)
77
- activesupport (= 7.2.0)
78
- marcel (~> 1.0)
79
- activesupport (7.2.0)
80
- base64
81
- bigdecimal
82
- concurrent-ruby (~> 1.0, >= 1.3.1)
83
- connection_pool (>= 2.2.5)
84
- drb
85
- i18n (>= 1.6, < 2)
86
- logger (>= 1.4.2)
87
- minitest (>= 5.1)
88
- securerandom (>= 0.3)
89
- tzinfo (~> 2.0, >= 2.0.5)
90
- ast (2.4.2)
91
- base64 (0.2.0)
92
- bigdecimal (3.1.8)
93
- builder (3.3.0)
94
- concurrent-ruby (1.3.3)
95
- connection_pool (2.4.1)
96
- crass (1.0.6)
97
- date (3.3.4)
98
- diff-lcs (1.5.1)
99
- drb (2.2.1)
100
- erubi (1.13.0)
101
- globalid (1.2.1)
102
- activesupport (>= 6.1)
103
- i18n (1.14.5)
104
- concurrent-ruby (~> 1.0)
105
- io-console (0.7.2)
106
- irb (1.14.0)
107
- rdoc (>= 4.0.0)
108
- reline (>= 0.4.2)
109
- json (2.7.2)
110
- language_server-protocol (3.17.0.3)
111
- lint_roller (1.1.0)
112
- logger (1.6.0)
113
- loofah (2.22.0)
114
- crass (~> 1.0.2)
115
- nokogiri (>= 1.12.0)
116
- lru_redux (1.1.0)
117
- mail (2.8.1)
118
- mini_mime (>= 0.1.1)
119
- net-imap
120
- net-pop
121
- net-smtp
122
- marcel (1.0.4)
123
- method_source (1.1.0)
124
- mini_mime (1.1.5)
125
- minitest (5.24.1)
126
- net-imap (0.4.14)
127
- date
128
- net-protocol
129
- net-pop (0.1.2)
130
- net-protocol
131
- net-protocol (0.2.2)
132
- timeout
133
- net-smtp (0.5.0)
134
- net-protocol
135
- nio4r (2.7.3)
136
- nokogiri (1.16.6-arm64-darwin)
137
- racc (~> 1.4)
138
- nokogiri (1.16.6-x86_64-linux)
139
- racc (~> 1.4)
140
- parallel (1.25.1)
141
- parser (3.3.3.0)
142
- ast (~> 2.4.1)
143
- racc
144
- psych (5.1.2)
145
- stringio
146
- racc (1.8.0)
147
- rack (3.1.6)
148
- rack-session (2.0.0)
149
- rack (>= 3.0.0)
150
- rack-test (2.1.0)
151
- rack (>= 1.3)
152
- rackup (2.1.0)
153
- rack (>= 3)
154
- webrick (~> 1.8)
155
- rails (7.2.0)
156
- actioncable (= 7.2.0)
157
- actionmailbox (= 7.2.0)
158
- actionmailer (= 7.2.0)
159
- actionpack (= 7.2.0)
160
- actiontext (= 7.2.0)
161
- actionview (= 7.2.0)
162
- activejob (= 7.2.0)
163
- activemodel (= 7.2.0)
164
- activerecord (= 7.2.0)
165
- activestorage (= 7.2.0)
166
- activesupport (= 7.2.0)
167
- bundler (>= 1.15.0)
168
- railties (= 7.2.0)
169
- rails-dom-testing (2.2.0)
170
- activesupport (>= 5.0.0)
171
- minitest
172
- nokogiri (>= 1.6)
173
- rails-html-sanitizer (1.6.0)
174
- loofah (~> 2.21)
175
- nokogiri (~> 1.14)
176
- railties (7.2.0)
177
- actionpack (= 7.2.0)
178
- activesupport (= 7.2.0)
179
- irb (~> 1.13)
180
- rackup (>= 1.0.0)
181
- rake (>= 12.2)
182
- thor (~> 1.0, >= 1.2.2)
183
- zeitwerk (~> 2.6)
184
- rainbow (3.1.1)
185
- rake (13.2.1)
186
- rdoc (6.7.0)
187
- psych (>= 4.0.0)
188
- regexp_parser (2.9.2)
189
- reline (0.5.9)
190
- io-console (~> 0.5)
191
- rexml (3.3.1)
192
- strscan
193
- rspec (3.13.0)
194
- rspec-core (~> 3.13.0)
195
- rspec-expectations (~> 3.13.0)
196
- rspec-mocks (~> 3.13.0)
197
- rspec-core (3.13.0)
198
- rspec-support (~> 3.13.0)
199
- rspec-expectations (3.13.1)
200
- diff-lcs (>= 1.2.0, < 2.0)
201
- rspec-support (~> 3.13.0)
202
- rspec-mocks (3.13.1)
203
- diff-lcs (>= 1.2.0, < 2.0)
204
- rspec-support (~> 3.13.0)
205
- rspec-support (3.13.1)
206
- rubocop (1.64.1)
207
- json (~> 2.3)
208
- language_server-protocol (>= 3.17.0)
209
- parallel (~> 1.10)
210
- parser (>= 3.3.0.2)
211
- rainbow (>= 2.2.2, < 4.0)
212
- regexp_parser (>= 1.8, < 3.0)
213
- rexml (>= 3.2.5, < 4.0)
214
- rubocop-ast (>= 1.31.1, < 2.0)
215
- ruby-progressbar (~> 1.7)
216
- unicode-display_width (>= 2.4.0, < 3.0)
217
- rubocop-ast (1.31.3)
218
- parser (>= 3.3.1.0)
219
- rubocop-performance (1.21.1)
220
- rubocop (>= 1.48.1, < 2.0)
221
- rubocop-ast (>= 1.31.1, < 2.0)
222
- ruby-progressbar (1.13.0)
223
- securerandom (0.3.1)
224
- standard (1.39.1)
225
- language_server-protocol (~> 3.17.0.2)
226
- lint_roller (~> 1.0)
227
- rubocop (~> 1.64.0)
228
- standard-custom (~> 1.0.0)
229
- standard-performance (~> 1.4)
230
- standard-custom (1.0.2)
231
- lint_roller (~> 1.0)
232
- rubocop (~> 1.50)
233
- standard-performance (1.4.0)
234
- lint_roller (~> 1.1)
235
- rubocop-performance (~> 1.21.0)
236
- stringio (3.1.1)
237
- strscan (3.1.0)
238
- tailwind_merge (0.12.0)
239
- lru_redux (~> 1.1)
240
- thor (1.3.1)
241
- timeout (0.4.1)
242
- tzinfo (2.0.6)
243
- concurrent-ruby (~> 1.0)
244
- unicode-display_width (2.5.0)
245
- useragent (0.16.10)
246
- view_component (3.13.0)
247
- activesupport (>= 5.2.0, < 8.0)
248
- concurrent-ruby (~> 1.0)
249
- method_source (~> 1.0)
250
- webrick (1.8.1)
251
- websocket-driver (0.7.6)
252
- websocket-extensions (>= 0.1.0)
253
- websocket-extensions (0.1.5)
254
- zeitwerk (2.6.16)
255
-
256
- PLATFORMS
257
- arm64-darwin-21
258
- arm64-darwin-23
259
- x86_64-linux
260
-
261
- DEPENDENCIES
262
- atomic_view!
263
- codelog!
264
- rake (~> 13.0)
265
- rspec (~> 3.0)
266
- standard (~> 1.21)
267
-
268
- BUNDLED WITH
269
- 2.4.12
data/Rakefile DELETED
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- require "standard/rake"
9
-
10
- task default: %i[spec standard]
data/atomic_view.gemspec DELETED
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/atomic_view/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "atomic_view"
7
- spec.version = AtomicView::VERSION
8
- spec.authors = ["Joel Warrington"]
9
- spec.email = ["joelw@hey.com"]
10
-
11
- spec.summary = "Component library built for Ruby on Rails with first-class support for ActionView using ViewComponent."
12
- spec.homepage = "https://github.com/joelzwarrington/atomic_view"
13
- spec.license = "MIT"
14
- spec.required_ruby_version = ">= 2.6.0"
15
-
16
- spec.metadata = {
17
- "homepage_uri" => "https://github.com/joelzwarrington/atomic_view",
18
- "changelog_uri" => "https://github.com/joelzwarrington/atomic_view/blob/master/CHANGELOG.md",
19
- "source_code_uri" => "https://github.com/joelzwarrington/atomic_view",
20
- "bug_tracker_uri" => "https://github.com/joelzwarrington/atomic_view/issues",
21
- "rubygems_mfa_required" => "true"
22
- }
23
-
24
- spec.files = Dir.chdir(__dir__) do
25
- `git ls-files -z`.split("\x0").reject do |f|
26
- (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ lookbook/ .git .circleci appveyor Procfile.dev])
27
- end
28
- end
29
-
30
- spec.bindir = "exe"
31
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
- spec.require_paths = ["lib"]
33
-
34
- spec.add_dependency "rails", "~> 7.2.0"
35
- spec.add_dependency "view_component", "~> 3.13"
36
- spec.add_dependency "tailwind_merge", "~> 0.12"
37
- end
@@ -1,16 +0,0 @@
1
- # Changelog Header -------------------------------------------------
2
-
3
- header_textfile: changelogs/header.txt
4
- default_changelog_filename: CHANGELOG.md
5
-
6
- # Tag formatting ---------------------------------------------------
7
-
8
- version_prefix: ""
9
- version_suffix: ""
10
- date_prefix: ""
11
-
12
- # Date formatting --------------------------------------------------
13
-
14
- show_date: true
15
- date_input_format: "%Y-%m-%d"
16
- date_output_format: "%Y-%m-%d"
@@ -1,3 +0,0 @@
1
- All notable changes to this project will be documented in this file.
2
-
3
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
File without changes
@@ -1,5 +0,0 @@
1
- ## 0.0.1 - 2024-07-08
2
- ### Added
3
- - The start of ActionView, a component library built for Ruby on Rails with first-class support for ActionView using ViewComponent.
4
-
5
- ---
@@ -1,20 +0,0 @@
1
- "Added":
2
- - New features implemented
3
-
4
- "Changed":
5
- - Changes to existing feature
6
-
7
- "Deprecated":
8
- - Features that are soon to be removed
9
-
10
- "Removed":
11
- - Features that were removed
12
-
13
- "Fixed":
14
- - Changes to broken code
15
-
16
- "Security":
17
- - Changes that fix vulnerabilities
18
-
19
- "Deploy notes":
20
- - Changes that should impact the deploy process and what should be made before it
File without changes
@@ -1,2 +0,0 @@
1
- "Added":
2
- - Runtime dependencies for ActionView and ViewComponent
@@ -1,2 +0,0 @@
1
- "Added":
2
- - Add method to get preview folder path for Lookbook configuration (`AtomicView.preview_folder_path`)
@@ -1,3 +0,0 @@
1
- "Added":
2
- - Basic `ButtonComponent` with options `size` and `variant`
3
- - Railtie to load custom ActionView helpers
@@ -1,5 +0,0 @@
1
- "Added":
2
- - Added `tailwind_merge` utility gem
3
-
4
- "Changed":
5
- - Updated Ruby version to 3.3.0 from 3.0.3
File without changes
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # ButtonComponent
4
- class ButtonComponentPreview < ViewComponent::Preview
5
- def default
6
- render AtomicView::Components::ButtonComponent.new("Click Me")
7
- end
8
-
9
- # @!group Sizes
10
-
11
- def xs
12
- render AtomicView::Components::ButtonComponent.new("Click Me", size: :xs)
13
- end
14
-
15
- def sm
16
- render AtomicView::Components::ButtonComponent.new("Click Me", size: :sm)
17
- end
18
-
19
- def md
20
- render AtomicView::Components::ButtonComponent.new("Click Me", size: :md)
21
- end
22
-
23
- def lg
24
- render AtomicView::Components::ButtonComponent.new("Click Me", size: :lg)
25
- end
26
-
27
- # @!endgroup
28
-
29
- # @!group Variants
30
-
31
- def primary
32
- render AtomicView::Components::ButtonComponent.new("Click Me", variant: :primary)
33
- end
34
-
35
- def secondary
36
- render AtomicView::Components::ButtonComponent.new("Click Me", variant: :secondary)
37
- end
38
-
39
- def tertiary
40
- render AtomicView::Components::ButtonComponent.new("Click Me", variant: :tertiary)
41
- end
42
-
43
- # @!endgroup
44
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module AtomicView
4
- module Helpers
5
- module FormTagHelper
6
- def button_tag(...)
7
- render Components::ButtonComponent.new(...)
8
- end
9
- end
10
- end
11
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module AtomicView
4
- class Preview < ViewComponent::Preview
5
- end
6
- end