atomic_view 0.1.9 → 0.1.11

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/atomic_view/controllers/chip_controller.js +8 -0
  3. data/app/assets/javascripts/atomic_view/controllers/command_palette_controller.js +96 -0
  4. data/app/assets/javascripts/atomic_view/controllers/dropdown_controller.js +42 -0
  5. data/app/assets/javascripts/atomic_view/controllers/modal_controller.js +23 -0
  6. data/app/assets/javascripts/atomic_view/controllers/theme_toggle_controller.js +45 -0
  7. data/app/assets/javascripts/atomic_view/controllers/toast_controller.js +20 -0
  8. data/app/assets/stylesheets/atomic_view/application.tailwind.css +0 -2
  9. data/app/assets/tailwind/atomic_view/engine.css +91 -28
  10. data/config/importmap.rb +45 -1
  11. data/lib/atomic_view/component.rb +1 -0
  12. data/lib/atomic_view/components/alert_component.erb +15 -0
  13. data/lib/atomic_view/components/alert_component.rb +63 -0
  14. data/lib/atomic_view/components/avatar_component.rb +63 -0
  15. data/lib/atomic_view/components/badge_component.rb +38 -0
  16. data/lib/atomic_view/components/button_component.rb +2 -23
  17. data/lib/atomic_view/components/card_component.rb +29 -0
  18. data/lib/atomic_view/components/chip_component.rb +56 -0
  19. data/lib/atomic_view/components/collection_check_boxes_component.erb +3 -0
  20. data/lib/atomic_view/components/collection_check_boxes_component.rb +25 -0
  21. data/lib/atomic_view/components/collection_radio_buttons_component.erb +3 -0
  22. data/lib/atomic_view/components/collection_radio_buttons_component.rb +25 -0
  23. data/lib/atomic_view/components/collection_select_component.erb +25 -0
  24. data/lib/atomic_view/components/collection_select_component.rb +21 -4
  25. data/lib/atomic_view/components/color_field_component.rb +3 -0
  26. data/lib/atomic_view/components/command_palette_component.erb +41 -0
  27. data/lib/atomic_view/components/command_palette_component.rb +88 -0
  28. data/lib/atomic_view/components/concerns/button_variants.rb +34 -0
  29. data/lib/atomic_view/components/concerns/field_chrome.rb +21 -0
  30. data/lib/atomic_view/components/concerns/section_support.rb +67 -0
  31. data/lib/atomic_view/components/date_field_component.rb +3 -9
  32. data/lib/atomic_view/components/date_select_component.rb +9 -0
  33. data/lib/atomic_view/components/datetime_local_field_component.rb +9 -0
  34. data/lib/atomic_view/components/datetime_select_component.rb +9 -0
  35. data/lib/atomic_view/components/dropdown_component.erb +11 -0
  36. data/lib/atomic_view/components/dropdown_component.rb +57 -0
  37. data/lib/atomic_view/components/empty_state_component.erb +10 -0
  38. data/lib/atomic_view/components/empty_state_component.rb +28 -0
  39. data/lib/atomic_view/components/field_component.erb +3 -3
  40. data/lib/atomic_view/components/field_component.rb +6 -46
  41. data/lib/atomic_view/components/grouped_collection_select_component.rb +5 -0
  42. data/lib/atomic_view/components/kbd_component.rb +31 -0
  43. data/lib/atomic_view/components/label_component.rb +16 -1
  44. data/lib/atomic_view/components/modal_component.erb +24 -0
  45. data/lib/atomic_view/components/modal_component.rb +57 -0
  46. data/lib/atomic_view/components/month_field_component.rb +9 -0
  47. data/lib/atomic_view/components/navigation_tree_component/item_component.erb +23 -0
  48. data/lib/atomic_view/components/navigation_tree_component/item_component.rb +54 -0
  49. data/lib/atomic_view/components/navigation_tree_component.erb +8 -0
  50. data/lib/atomic_view/components/navigation_tree_component.rb +40 -0
  51. data/lib/atomic_view/components/pagination_component.erb +19 -0
  52. data/lib/atomic_view/components/pagination_component.rb +81 -0
  53. data/lib/atomic_view/components/radio_button_component.rb +3 -0
  54. data/lib/atomic_view/components/range_field_component.rb +3 -0
  55. data/lib/atomic_view/components/segmented_control_component.erb +14 -0
  56. data/lib/atomic_view/components/segmented_control_component.rb +102 -0
  57. data/lib/atomic_view/components/select_component.erb +25 -0
  58. data/lib/atomic_view/components/select_component.rb +21 -7
  59. data/lib/atomic_view/components/submit_component.rb +2 -23
  60. data/lib/atomic_view/components/table_component.rb +52 -0
  61. data/lib/atomic_view/components/tabs_component.erb +5 -0
  62. data/lib/atomic_view/components/tabs_component.rb +74 -0
  63. data/lib/atomic_view/components/text_area_component.rb +5 -0
  64. data/lib/atomic_view/components/theme_toggle_component.rb +74 -0
  65. data/lib/atomic_view/components/time_select_component.rb +9 -0
  66. data/lib/atomic_view/components/time_zone_select_component.rb +5 -0
  67. data/lib/atomic_view/components/timeline_component/item_component.erb +10 -0
  68. data/lib/atomic_view/components/timeline_component/item_component.rb +50 -0
  69. data/lib/atomic_view/components/timeline_component.erb +10 -0
  70. data/lib/atomic_view/components/timeline_component.rb +61 -0
  71. data/lib/atomic_view/components/toast_component.erb +14 -0
  72. data/lib/atomic_view/components/toast_component.rb +68 -0
  73. data/lib/atomic_view/components/week_field_component.rb +9 -0
  74. data/lib/atomic_view/components/weekday_select_component.rb +5 -0
  75. data/lib/atomic_view/form_builder.rb +25 -0
  76. data/lib/atomic_view/version.rb +1 -1
  77. data/lib/atomic_view.rb +1 -0
  78. data/lib/generators/atomic_view/install_generator.rb +13 -12
  79. metadata +62 -2
@@ -2,16 +2,17 @@
2
2
 
3
3
  module AtomicView
4
4
  class InstallGenerator < Rails::Generators::Base
5
- source_root File.expand_path('templates', __dir__)
5
+ source_root File.expand_path("templates", __dir__)
6
6
 
7
- IMPORT = '@import "../builds/tailwind/atomic_view.css";'.freeze
7
+ IMPORT = '@import "../builds/tailwind/atomic_view.css";'
8
+ FLOATING_UI_PIN = 'pin "@floating-ui/dom", to: "https://cdn.jsdelivr.net/npm/@floating-ui/dom@1.8.0/+esm"'
8
9
 
9
10
  def add_atomic_view_tailwind
10
11
  return if options[:update_tailwind_only]
11
12
 
12
- tailwind_path = Rails.root.join('app/assets/tailwind/application.css')
13
+ tailwind_path = Rails.root.join("app/assets/tailwind/application.css")
13
14
  unless tailwind_path.exist?
14
- raise '`app/assets/tailwind/application.css` does not exist'
15
+ raise "`app/assets/tailwind/application.css` does not exist"
15
16
  end
16
17
 
17
18
  if tailwind_path.read.include?(IMPORT)
@@ -23,20 +24,20 @@ module AtomicView
23
24
  end
24
25
  end
25
26
 
26
- def add_atomic_view_js_controllers
27
+ def add_atomic_view_floating_ui
27
28
  return if options[:update_tailwind_only]
28
29
 
29
- controllers_path = Rails.root.join('app/javascript/controllers/index.js')
30
- if controllers_path.exist? && controllers_path.read.include?('eagerLoadControllersFrom("controllers", application)')
31
- if controllers_path.read.include?('eagerLoadControllersFrom("atomic_view", application)')
32
- puts '`app/javascript/controllers/index.js` already contains `eagerLoadControllersFrom("atomic_view", application)`'
30
+ importmap_path = Rails.root.join("config/importmap.rb")
31
+ if importmap_path.exist? && importmap_path.read.match?(/^pin\s+["']application["']/)
32
+ if importmap_path.read.include?(FLOATING_UI_PIN)
33
+ puts "`config/importmap.rb` already contains the `@floating-ui/dom` pin"
33
34
  else
34
- insert_into_file controllers_path, after: 'eagerLoadControllersFrom("controllers", application)' do
35
- "\neagerLoadControllersFrom(\"atomic_view\", application)\n"
35
+ insert_into_file importmap_path, after: /^pin\s+["']application["'].*\n/ do
36
+ "#{FLOATING_UI_PIN}\n"
36
37
  end
37
38
  end
38
39
  else
39
- puts '`app/javascript/controllers/index.js` does not exist or does not contain `eagerLoadControllersFrom("controllers", application)`'
40
+ puts '`config/importmap.rb` does not exist or does not contain `pin "application"`'
40
41
  end
41
42
  end
42
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Warrington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-20 00:00:00.000000000 Z
11
+ date: 2026-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: local_time
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.0'
111
125
  description:
112
126
  email:
113
127
  - joelw@hey.com
@@ -120,6 +134,12 @@ files:
120
134
  - README.md
121
135
  - Rakefile
122
136
  - app/assets/config/atomic_view_manifest.js
137
+ - app/assets/javascripts/atomic_view/controllers/chip_controller.js
138
+ - app/assets/javascripts/atomic_view/controllers/command_palette_controller.js
139
+ - app/assets/javascripts/atomic_view/controllers/dropdown_controller.js
140
+ - app/assets/javascripts/atomic_view/controllers/modal_controller.js
141
+ - app/assets/javascripts/atomic_view/controllers/theme_toggle_controller.js
142
+ - app/assets/javascripts/atomic_view/controllers/toast_controller.js
123
143
  - app/assets/stylesheets/atomic_view/application.css
124
144
  - app/assets/stylesheets/atomic_view/application.tailwind.css
125
145
  - app/assets/tailwind/atomic_view/engine.css
@@ -138,34 +158,74 @@ files:
138
158
  - config/routes.rb
139
159
  - lib/atomic_view.rb
140
160
  - lib/atomic_view/component.rb
161
+ - lib/atomic_view/components/alert_component.erb
162
+ - lib/atomic_view/components/alert_component.rb
163
+ - lib/atomic_view/components/avatar_component.rb
164
+ - lib/atomic_view/components/badge_component.rb
141
165
  - lib/atomic_view/components/button_component.rb
166
+ - lib/atomic_view/components/card_component.rb
142
167
  - lib/atomic_view/components/check_box_component.rb
168
+ - lib/atomic_view/components/chip_component.rb
169
+ - lib/atomic_view/components/collection_check_boxes_component.erb
143
170
  - lib/atomic_view/components/collection_check_boxes_component.rb
171
+ - lib/atomic_view/components/collection_radio_buttons_component.erb
144
172
  - lib/atomic_view/components/collection_radio_buttons_component.rb
173
+ - lib/atomic_view/components/collection_select_component.erb
145
174
  - lib/atomic_view/components/collection_select_component.rb
146
175
  - lib/atomic_view/components/color_field_component.rb
176
+ - lib/atomic_view/components/command_palette_component.erb
177
+ - lib/atomic_view/components/command_palette_component.rb
178
+ - lib/atomic_view/components/concerns/button_variants.rb
179
+ - lib/atomic_view/components/concerns/field_chrome.rb
180
+ - lib/atomic_view/components/concerns/section_support.rb
147
181
  - lib/atomic_view/components/date_field_component.rb
148
182
  - lib/atomic_view/components/date_select_component.rb
149
183
  - lib/atomic_view/components/datetime_local_field_component.rb
150
184
  - lib/atomic_view/components/datetime_select_component.rb
185
+ - lib/atomic_view/components/dropdown_component.erb
186
+ - lib/atomic_view/components/dropdown_component.rb
151
187
  - lib/atomic_view/components/email_field_component.rb
188
+ - lib/atomic_view/components/empty_state_component.erb
189
+ - lib/atomic_view/components/empty_state_component.rb
152
190
  - lib/atomic_view/components/field_component.erb
153
191
  - lib/atomic_view/components/field_component.rb
154
192
  - lib/atomic_view/components/grouped_collection_select_component.rb
193
+ - lib/atomic_view/components/kbd_component.rb
155
194
  - lib/atomic_view/components/label_component.rb
195
+ - lib/atomic_view/components/modal_component.erb
196
+ - lib/atomic_view/components/modal_component.rb
156
197
  - lib/atomic_view/components/month_field_component.rb
198
+ - lib/atomic_view/components/navigation_tree_component.erb
199
+ - lib/atomic_view/components/navigation_tree_component.rb
200
+ - lib/atomic_view/components/navigation_tree_component/item_component.erb
201
+ - lib/atomic_view/components/navigation_tree_component/item_component.rb
157
202
  - lib/atomic_view/components/number_field_component.rb
203
+ - lib/atomic_view/components/pagination_component.erb
204
+ - lib/atomic_view/components/pagination_component.rb
158
205
  - lib/atomic_view/components/password_field_component.rb
159
206
  - lib/atomic_view/components/radio_button_component.rb
160
207
  - lib/atomic_view/components/range_field_component.rb
161
208
  - lib/atomic_view/components/search_field_component.rb
209
+ - lib/atomic_view/components/segmented_control_component.erb
210
+ - lib/atomic_view/components/segmented_control_component.rb
211
+ - lib/atomic_view/components/select_component.erb
162
212
  - lib/atomic_view/components/select_component.rb
163
213
  - lib/atomic_view/components/submit_component.rb
214
+ - lib/atomic_view/components/table_component.rb
215
+ - lib/atomic_view/components/tabs_component.erb
216
+ - lib/atomic_view/components/tabs_component.rb
164
217
  - lib/atomic_view/components/telephone_field_component.rb
165
218
  - lib/atomic_view/components/text_area_component.rb
166
219
  - lib/atomic_view/components/text_field_component.rb
220
+ - lib/atomic_view/components/theme_toggle_component.rb
167
221
  - lib/atomic_view/components/time_select_component.rb
168
222
  - lib/atomic_view/components/time_zone_select_component.rb
223
+ - lib/atomic_view/components/timeline_component.erb
224
+ - lib/atomic_view/components/timeline_component.rb
225
+ - lib/atomic_view/components/timeline_component/item_component.erb
226
+ - lib/atomic_view/components/timeline_component/item_component.rb
227
+ - lib/atomic_view/components/toast_component.erb
228
+ - lib/atomic_view/components/toast_component.rb
169
229
  - lib/atomic_view/components/url_field_component.rb
170
230
  - lib/atomic_view/components/week_field_component.rb
171
231
  - lib/atomic_view/components/weekday_select_component.rb