atomic_view 0.0.1 → 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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -5
  3. data/lib/atomic_view/component.rb +21 -0
  4. data/lib/atomic_view/components/button_component.rb +26 -0
  5. data/lib/atomic_view/components/check_box_component.rb +9 -0
  6. data/lib/atomic_view/components/collection_check_boxes_component.rb +6 -0
  7. data/lib/atomic_view/components/collection_radio_buttons_component.rb +6 -0
  8. data/lib/atomic_view/components/collection_select_component.rb +14 -0
  9. data/lib/atomic_view/components/color_field_component.rb +6 -0
  10. data/lib/atomic_view/components/date_field_component.rb +17 -0
  11. data/lib/atomic_view/components/date_select_component.rb +6 -0
  12. data/lib/atomic_view/components/datetime_local_field_component.rb +6 -0
  13. data/lib/atomic_view/components/datetime_select_component.rb +6 -0
  14. data/lib/atomic_view/components/email_field_component.rb +15 -0
  15. data/lib/atomic_view/components/field_component.erb +25 -0
  16. data/lib/atomic_view/components/field_component.rb +65 -0
  17. data/lib/atomic_view/components/grouped_collection_select_component.rb +6 -0
  18. data/lib/atomic_view/components/label_component.rb +9 -0
  19. data/lib/atomic_view/components/month_field_component.rb +6 -0
  20. data/lib/atomic_view/components/number_field_component.rb +15 -0
  21. data/lib/atomic_view/components/password_field_component.rb +15 -0
  22. data/lib/atomic_view/components/radio_button_component.rb +6 -0
  23. data/lib/atomic_view/components/range_field_component.rb +6 -0
  24. data/lib/atomic_view/components/search_field_component.rb +15 -0
  25. data/lib/atomic_view/components/select_component.rb +17 -0
  26. data/lib/atomic_view/components/submit_component.rb +9 -0
  27. data/lib/atomic_view/components/telephone_field_component.rb +15 -0
  28. data/lib/atomic_view/components/text_area_component.rb +6 -0
  29. data/lib/atomic_view/components/text_field_component.rb +14 -0
  30. data/lib/atomic_view/components/time_select_component.rb +6 -0
  31. data/lib/atomic_view/components/time_zone_select_component.rb +6 -0
  32. data/lib/atomic_view/components/url_field_component.rb +15 -0
  33. data/lib/atomic_view/components/week_field_component.rb +6 -0
  34. data/lib/atomic_view/components/weekday_select_component.rb +6 -0
  35. data/lib/atomic_view/form_builder.rb +7 -0
  36. data/lib/atomic_view/railtie.rb +6 -0
  37. data/lib/atomic_view/version.rb +1 -1
  38. data/lib/atomic_view.rb +23 -2
  39. metadata +114 -23
  40. data/.rspec +0 -3
  41. data/.rubocop.yml +0 -13
  42. data/Gemfile +0 -9
  43. data/Gemfile.lock +0 -67
  44. data/Rakefile +0 -12
  45. data/atomic_view.gemspec +0 -35
  46. data/changelogs/codelog.yml +0 -16
  47. data/changelogs/header.txt +0 -3
  48. data/changelogs/releases/.gitkeep +0 -0
  49. data/changelogs/releases/0.0.1.md +0 -5
  50. data/changelogs/template.yml +0 -20
  51. data/changelogs/unreleased/.gitkeep +0 -0
  52. data/sig/atomic_view.rbs +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8dcef405148fcf0ef2b4c47209f41b37fb305892e1f4a4966c9e945d63840c3d
4
- data.tar.gz: e049e89234232ae388cefaacbd165738c6c127ed5856453976b1fdaebdabbb25
3
+ metadata.gz: d0e83bc2d812d1f662860a4eccc80a1b0c6566d3cd7cdc7d23d03d60a1425c1e
4
+ data.tar.gz: bbe5303fef21b6ab301b813995bed4f340260cfe4880d20cc38df4082564e734
5
5
  SHA512:
6
- metadata.gz: bc36fdcbadf439eeeefc3eb148e5ad07a15364cf28be682241051ad773c87489c12078bb0e51dc9b77477bce0555819f0159396148ba28a9e186bbe17ce91ed8
7
- data.tar.gz: f8a93d1fd48feb8fb310d42ba4c19956c18cbc37d47c812b1213502f5d6e092f27fb8b89c679403449a377a7661c290d916e726f97d6afaca2ed97b19e2a015a
6
+ metadata.gz: 721dc4dd8b9fd0f96e3f6ab4c45e35a51cb5066552423fb532ac25278bf6a363664464f4a93a54c5194c770563b74731aeb17af587fbf0eca57accf5dd2d055f
7
+ data.tar.gz: aaac9f8deaee0ad1088d6073f9851d96408434886275f34e294894f5020f2d971d0440ea6cdd724762d0b1366399f8ca757358c5d508f5a0993474b1c185b725
data/README.md CHANGED
@@ -4,15 +4,42 @@ Component library built for [Ruby on Rails](https://rubyonrails.org/) with first
4
4
 
5
5
  ## Installation
6
6
 
7
- TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
7
+ Install AtomicView from [RubyGems](https://rubygems.org/) by adding it to your `Gemfile`, and then bundling.
8
8
 
9
- Install the gem and add to the application's Gemfile by executing:
9
+ ```ruby
10
+ # Gemfile
11
+ gem "atomic_view"
12
+ ```
10
13
 
11
- $ bundle add UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG
14
+ ```shell
15
+ bundle install
16
+ ```
12
17
 
13
- If bundler is not being used to manage dependencies, install the gem by executing:
18
+ In your `tailwind.config.js`, add:
14
19
 
15
- $ gem install UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG
20
+ ```js
21
+ const execSync = require("child_process").execSync;
22
+ const atomicViewPath =
23
+ execSync("bundle show atomic_view", { encoding: "utf-8" }).trim() +
24
+ "/lib/atomic_view/components/**/*.{erb,rb}";
25
+
26
+ module.exports = {
27
+ content: [
28
+ // other paths...
29
+ atomicViewPath,
30
+ ],
31
+ };
32
+ ```
33
+
34
+ ## Getting Started
35
+
36
+ There isn't anything to get started on yet!
37
+
38
+ ## Leading principles
39
+
40
+ 1. Work with Ruby on Rails out of the box by supporting ActionView and it's helpers
41
+ 2. Build with accessibility and responsiveness at the forefront
42
+ 3. Provide really good defaults, but allow flexibility with theming and styling
16
43
 
17
44
  ## License
18
45
 
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AtomicView
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
+
16
+ def class_names(...)
17
+ classes = super
18
+ TailwindMerge::Merger.new.merge(classes)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AtomicView
4
+ module Components
5
+ # Button
6
+ class ButtonComponent < ViewComponent::Form::ButtonComponent
7
+ attr_reader :label
8
+
9
+ def initialize(form, label_or_options = nil, options = nil)
10
+ super
11
+
12
+ if label_or_options.is_a?(String)
13
+ @label = label_or_options
14
+ end
15
+ end
16
+
17
+ def call
18
+ if content?
19
+ content_tag(:button, @options) { content }
20
+ else
21
+ content_tag(:button, label, @options)
22
+ end
23
+ end
24
+ end
25
+ end
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
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AtomicView
4
+ class Railtie < Rails::Railtie
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AtomicView
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.3"
5
5
  end
data/lib/atomic_view.rb CHANGED
@@ -1,5 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "atomic_view/version"
3
+ require "rails"
4
+ require "view_component"
5
+ require "tailwind_merge"
6
+ require "heroicons"
7
+ require "view_component/form"
4
8
 
5
- module AtomicView; end
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
17
+
18
+ # Component library built for Ruby on Rails with first-class support for ActionView using ViewComponent.
19
+ module AtomicView
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,29 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
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-07-08 00:00:00.000000000 Z
11
+ date: 2025-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: codelog
14
+ name: zeitwerk
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 2.7.2
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 2.7.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 8.0.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 8.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: view_component
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.21'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
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
69
+ - !ruby/object:Gem::Dependency
70
+ name: tailwind_merge
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.12'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
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'
27
97
  description:
28
98
  email:
29
99
  - joelw@hey.com
@@ -31,24 +101,45 @@ executables: []
31
101
  extensions: []
32
102
  extra_rdoc_files: []
33
103
  files:
34
- - ".rspec"
35
- - ".rubocop.yml"
36
104
  - CHANGELOG.md
37
- - Gemfile
38
- - Gemfile.lock
39
105
  - LICENSE.txt
40
106
  - README.md
41
- - Rakefile
42
- - atomic_view.gemspec
43
- - changelogs/codelog.yml
44
- - changelogs/header.txt
45
- - changelogs/releases/.gitkeep
46
- - changelogs/releases/0.0.1.md
47
- - changelogs/template.yml
48
- - changelogs/unreleased/.gitkeep
49
107
  - lib/atomic_view.rb
108
+ - lib/atomic_view/component.rb
109
+ - lib/atomic_view/components/button_component.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
141
+ - lib/atomic_view/railtie.rb
50
142
  - lib/atomic_view/version.rb
51
- - sig/atomic_view.rbs
52
143
  homepage: https://github.com/joelzwarrington/atomic_view
53
144
  licenses:
54
145
  - MIT
@@ -73,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
164
  - !ruby/object:Gem::Version
74
165
  version: '0'
75
166
  requirements: []
76
- rubygems_version: 3.2.32
167
+ rubygems_version: 3.5.3
77
168
  signing_key:
78
169
  specification_version: 4
79
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/.rubocop.yml DELETED
@@ -1,13 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.6
3
-
4
- Style/StringLiterals:
5
- Enabled: true
6
- EnforcedStyle: double_quotes
7
-
8
- Style/StringLiteralsInInterpolation:
9
- Enabled: true
10
- EnforcedStyle: double_quotes
11
-
12
- Layout/LineLength:
13
- Max: 120
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- gem "rake", "~> 13.0"
8
- gem "rspec", "~> 3.0"
9
- gem "rubocop", "~> 1.21"
data/Gemfile.lock DELETED
@@ -1,67 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- atomic_view (0.0.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ast (2.4.2)
10
- codelog (0.8.0)
11
- thor (~> 0.19)
12
- diff-lcs (1.5.1)
13
- json (2.7.2)
14
- language_server-protocol (3.17.0.3)
15
- parallel (1.25.1)
16
- parser (3.3.3.0)
17
- ast (~> 2.4.1)
18
- racc
19
- racc (1.8.0)
20
- rainbow (3.1.1)
21
- rake (13.2.1)
22
- regexp_parser (2.9.2)
23
- rexml (3.3.1)
24
- strscan
25
- rspec (3.13.0)
26
- rspec-core (~> 3.13.0)
27
- rspec-expectations (~> 3.13.0)
28
- rspec-mocks (~> 3.13.0)
29
- rspec-core (3.13.0)
30
- rspec-support (~> 3.13.0)
31
- rspec-expectations (3.13.1)
32
- diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.13.0)
34
- rspec-mocks (3.13.1)
35
- diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.13.0)
37
- rspec-support (3.13.1)
38
- rubocop (1.64.1)
39
- json (~> 2.3)
40
- language_server-protocol (>= 3.17.0)
41
- parallel (~> 1.10)
42
- parser (>= 3.3.0.2)
43
- rainbow (>= 2.2.2, < 4.0)
44
- regexp_parser (>= 1.8, < 3.0)
45
- rexml (>= 3.2.5, < 4.0)
46
- rubocop-ast (>= 1.31.1, < 2.0)
47
- ruby-progressbar (~> 1.7)
48
- unicode-display_width (>= 2.4.0, < 3.0)
49
- rubocop-ast (1.31.3)
50
- parser (>= 3.3.1.0)
51
- ruby-progressbar (1.13.0)
52
- strscan (3.1.0)
53
- thor (0.20.3)
54
- unicode-display_width (2.5.0)
55
-
56
- PLATFORMS
57
- arm64-darwin-21
58
-
59
- DEPENDENCIES
60
- atomic_view!
61
- codelog
62
- rake (~> 13.0)
63
- rspec (~> 3.0)
64
- rubocop (~> 1.21)
65
-
66
- BUNDLED WITH
67
- 2.4.12
data/Rakefile DELETED
@@ -1,12 +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 "rubocop/rake_task"
9
-
10
- RuboCop::RakeTask.new
11
-
12
- task default: %i[spec rubocop]
data/atomic_view.gemspec DELETED
@@ -1,35 +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/ features/ .git .circleci appveyor])
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_development_dependency "codelog"
35
- 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
data/sig/atomic_view.rbs DELETED
@@ -1,4 +0,0 @@
1
- module AtomicView
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end