irelia 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/app/assets/config/irelia_manifest.js +2 -0
  4. data/app/frontend/components/application_view_component.rb +5 -0
  5. data/app/frontend/components/application_view_component_preview.rb +5 -0
  6. data/app/frontend/components/navbar/button/component.html.erb +8 -0
  7. data/app/frontend/components/navbar/button/component.rb +13 -0
  8. data/app/frontend/components/navbar/button/preview.rb +12 -0
  9. data/app/frontend/components/navbar/container/component.html.erb +5 -0
  10. data/app/frontend/components/navbar/container/component.rb +8 -0
  11. data/app/frontend/components/navbar/container/preview.rb +12 -0
  12. data/app/frontend/components/navbar/dark_mode_switcher/component.html.erb +4 -0
  13. data/app/frontend/components/navbar/dark_mode_switcher/component.rb +8 -0
  14. data/app/frontend/components/navbar/dark_mode_switcher/preview.rb +12 -0
  15. data/app/frontend/components/navbar/menu_items/component.html.erb +3 -0
  16. data/app/frontend/components/navbar/menu_items/component.rb +8 -0
  17. data/app/frontend/components/navbar/menu_items/preview.rb +12 -0
  18. data/app/frontend/components/navbar/navlink/component.html.erb +8 -0
  19. data/app/frontend/components/navbar/navlink/component.rb +13 -0
  20. data/app/frontend/components/navbar/navlink/preview.rb +12 -0
  21. data/app/frontend/components/navbar/right_section/component.html.erb +3 -0
  22. data/app/frontend/components/navbar/right_section/component.rb +8 -0
  23. data/app/frontend/components/navbar/right_section/preview.rb +12 -0
  24. data/app/frontend/components/navbar/select_account/component.html.erb +36 -0
  25. data/app/frontend/components/navbar/select_account/component.rb +6 -0
  26. data/app/frontend/components/navbar/select_account/preview.rb +9 -0
  27. data/app/frontend/components/navbar/separator/component.html.erb +1 -0
  28. data/app/frontend/components/navbar/separator/component.rb +7 -0
  29. data/app/frontend/components/navbar/separator/preview.rb +12 -0
  30. data/app/frontend/components/page/breadcrumbs/component.html.erb +16 -0
  31. data/app/frontend/components/page/breadcrumbs/component.rb +6 -0
  32. data/app/frontend/components/page/breadcrumbs/preview.rb +9 -0
  33. data/app/frontend/components/page/container/component.html.erb +3 -0
  34. data/app/frontend/components/page/container/component.rb +4 -0
  35. data/app/frontend/components/page/container/preview.rb +9 -0
  36. data/app/frontend/components/page/header/component.html.erb +12 -0
  37. data/app/frontend/components/page/header/component.rb +6 -0
  38. data/app/frontend/components/page/header/preview.rb +9 -0
  39. data/app/helpers/navbar_helper.rb +35 -0
  40. data/app/helpers/page_helper.rb +15 -0
  41. data/app/javascript/controllers/dark_mode_switcher_controller.js +20 -0
  42. data/app/javascript/controllers/dropdown_controller.js +3 -0
  43. data/app/views/devise/registrations/new.html.erb +21 -0
  44. data/app/views/devise/sessions/new.html.erb +18 -0
  45. data/app/views/layouts/application.html.erb +11 -0
  46. data/app/views/layouts/devise.html.erb +23 -0
  47. data/app/views/layouts/mailer.html.erb +13 -0
  48. data/app/views/layouts/mailer.text.erb +1 -0
  49. data/app/views/layouts/teamable.html.erb +31 -0
  50. data/app/views/shared/_head.html.erb +26 -0
  51. data/app/views/shared/_navbar.html.erb +30 -0
  52. data/app/views/shared/_navbar_logo.html.erb +3 -0
  53. data/app/views/teamable/accounts/new.html.erb +10 -0
  54. data/app/views/teamable/setup/new.html.erb +8 -0
  55. data/app/views/teamable/shared/_form.html.erb +4 -0
  56. data/config/importmap.rb +7 -0
  57. data/config/initializers/devise.rb +313 -0
  58. data/config/initializers/simple_form.rb +148 -0
  59. data/config/initializers/view_component.rb +18 -0
  60. data/lib/generators/irelia/install_generator.rb +19 -0
  61. data/lib/generators/templates/irelia.rb +14 -0
  62. data/lib/generators/view_component/USAGE +15 -0
  63. data/lib/generators/view_component/templates/component.html.erb.tt +1 -0
  64. data/lib/generators/view_component/templates/component.rb.tt +8 -0
  65. data/lib/generators/view_component/templates/component_system_test.rb.tt +13 -0
  66. data/lib/generators/view_component/templates/component_test.rb.tt +19 -0
  67. data/lib/generators/view_component/templates/preview.rb.tt +9 -0
  68. data/lib/generators/view_component/view_component_generator.rb +53 -0
  69. data/lib/irelia/engine.rb +16 -0
  70. data/lib/irelia/version.rb +1 -1
  71. data/lib/irelia.rb +26 -3
  72. metadata +202 -13
  73. data/config/routes.rb +0 -2
  74. data/lib/tasks/irelia_tasks.rake +0 -4
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Based on https://github.com/github/view_component/blob/master/lib/rails/generators/component/component_generator.rb
4
+ class ViewComponentGenerator < Rails::Generators::NamedBase
5
+ source_root File.expand_path("templates", __dir__)
6
+
7
+ class_option :skip_test, type: :boolean, default: false
8
+ class_option :skip_system_test, type: :boolean, default: false
9
+ class_option :skip_preview, type: :boolean, default: false
10
+
11
+ argument :attributes, type: :array, default: [], banner: "attribute"
12
+
13
+ def create_component_file
14
+ template "component.rb", File.join("app/frontend/components", class_path, file_name, "component.rb")
15
+ end
16
+
17
+ def create_template_file
18
+ template "component.html.erb", File.join("app/frontend/components", class_path, file_name, "component.html.erb")
19
+ end
20
+
21
+ def create_test_file
22
+ return if options[:skip_test]
23
+
24
+ template "component_test.rb", File.join("test/frontend/components", class_path, "#{file_name}_test.rb")
25
+ end
26
+
27
+ def create_system_test_file
28
+ return if options[:skip_system_test]
29
+
30
+ template "component_system_test.rb", File.join("test/system/frontend/components", class_path, "#{file_name}_test.rb")
31
+ end
32
+
33
+ def create_preview_file
34
+ return if options[:skip_preview]
35
+
36
+ template "preview.rb", File.join("app/frontend/components", class_path, file_name, "preview.rb")
37
+ end
38
+
39
+ private
40
+ def parent_class
41
+ "ApplicationViewComponent"
42
+ end
43
+
44
+ def preview_parent_class
45
+ "ApplicationViewComponentPreview"
46
+ end
47
+
48
+ def initialize_signature
49
+ return if attributes.blank?
50
+
51
+ attributes.map { |attr| "option :#{attr.name}" }.join("\n ")
52
+ end
53
+ end
data/lib/irelia/engine.rb CHANGED
@@ -1,4 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Irelia
2
4
  class Engine < ::Rails::Engine
5
+ config.autoload_paths << Irelia::Engine.root.join("lib")
6
+ config.autoload_paths << Irelia::Engine.root.join("app", "frontend", "components")
7
+ config.view_component.preview_paths << Irelia::Engine.root.join("app", "frontend", "components")
8
+
9
+ # Add the app/javascript directory to the asset pipeline
10
+ initializer "irelia.assets.precompile" do |app|
11
+ app.config.assets.paths << Irelia::Engine.root.join("app", "javascript")
12
+ app.config.assets.precompile += %w[irelia_manifest]
13
+ end
14
+
15
+ # Add the importmap paths
16
+ initializer "irelia.importmap", before: "importmap" do |app|
17
+ app.config.importmap.paths << Irelia::Engine.root.join("config/importmap.rb")
18
+ end
3
19
  end
4
20
  end
@@ -1,3 +1,3 @@
1
1
  module Irelia
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/irelia.rb CHANGED
@@ -1,6 +1,29 @@
1
- require "irelia/version"
2
- require "irelia/engine"
1
+ # frozen_string_literal: true
2
+
3
+ require "devise"
4
+ require "dry-configurable"
5
+ require "dry-initializer"
6
+ require "importmap-rails"
7
+ require "loaf"
8
+ require "meta-tags"
9
+ require "simple_form"
10
+ require "teamable"
11
+ require "view_component-contrib"
3
12
 
4
13
  module Irelia
5
- # Your code goes here...
14
+ extend Dry::Configurable
15
+
16
+ # ==> Application name
17
+ # The name of the application. This will be displayed in the meta title
18
+ # and on various places in the application.
19
+ setting :application_name, default: "Irelia"
20
+
21
+ # ==> From email
22
+ # Configure the e-mail address which will be shown in Devise::Mailer,
23
+ # note that it will be overwritten if you use your own mailer class
24
+ # with default "from" parameter.
25
+ setting :default_from_email, default: "please-change-me-at-config-initializers-irelia@example.com"
6
26
  end
27
+
28
+ require "irelia/version"
29
+ require "irelia/engine"
metadata CHANGED
@@ -1,29 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: irelia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - KIQR
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-28 00:00:00.000000000 Z
11
+ date: 2024-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: devise
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 7.1.3.2
19
+ version: '4.9'
20
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: 7.1.3.2
26
+ version: '4.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-configurable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-initializer
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: importmap-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.6
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.6
69
+ - !ruby/object:Gem::Dependency
70
+ name: loaf
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.10.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.10.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: meta-tags
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.20'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.20'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simple_form
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 5.3.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 5.3.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: teamable
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.2.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.2.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: view_component
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.11'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.11'
139
+ - !ruby/object:Gem::Dependency
140
+ name: view_component-contrib
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.2.2
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.2.2
27
153
  description: A starter kit for building SaaS applications in Ruby on Rails.
28
154
  email:
29
155
  - hello@kiqr.dev
@@ -35,18 +161,81 @@ files:
35
161
  - README.md
36
162
  - Rakefile
37
163
  - app/assets/config/irelia_manifest.js
38
- - config/routes.rb
164
+ - app/frontend/components/application_view_component.rb
165
+ - app/frontend/components/application_view_component_preview.rb
166
+ - app/frontend/components/navbar/button/component.html.erb
167
+ - app/frontend/components/navbar/button/component.rb
168
+ - app/frontend/components/navbar/button/preview.rb
169
+ - app/frontend/components/navbar/container/component.html.erb
170
+ - app/frontend/components/navbar/container/component.rb
171
+ - app/frontend/components/navbar/container/preview.rb
172
+ - app/frontend/components/navbar/dark_mode_switcher/component.html.erb
173
+ - app/frontend/components/navbar/dark_mode_switcher/component.rb
174
+ - app/frontend/components/navbar/dark_mode_switcher/preview.rb
175
+ - app/frontend/components/navbar/menu_items/component.html.erb
176
+ - app/frontend/components/navbar/menu_items/component.rb
177
+ - app/frontend/components/navbar/menu_items/preview.rb
178
+ - app/frontend/components/navbar/navlink/component.html.erb
179
+ - app/frontend/components/navbar/navlink/component.rb
180
+ - app/frontend/components/navbar/navlink/preview.rb
181
+ - app/frontend/components/navbar/right_section/component.html.erb
182
+ - app/frontend/components/navbar/right_section/component.rb
183
+ - app/frontend/components/navbar/right_section/preview.rb
184
+ - app/frontend/components/navbar/select_account/component.html.erb
185
+ - app/frontend/components/navbar/select_account/component.rb
186
+ - app/frontend/components/navbar/select_account/preview.rb
187
+ - app/frontend/components/navbar/separator/component.html.erb
188
+ - app/frontend/components/navbar/separator/component.rb
189
+ - app/frontend/components/navbar/separator/preview.rb
190
+ - app/frontend/components/page/breadcrumbs/component.html.erb
191
+ - app/frontend/components/page/breadcrumbs/component.rb
192
+ - app/frontend/components/page/breadcrumbs/preview.rb
193
+ - app/frontend/components/page/container/component.html.erb
194
+ - app/frontend/components/page/container/component.rb
195
+ - app/frontend/components/page/container/preview.rb
196
+ - app/frontend/components/page/header/component.html.erb
197
+ - app/frontend/components/page/header/component.rb
198
+ - app/frontend/components/page/header/preview.rb
199
+ - app/helpers/navbar_helper.rb
200
+ - app/helpers/page_helper.rb
201
+ - app/javascript/controllers/dark_mode_switcher_controller.js
202
+ - app/javascript/controllers/dropdown_controller.js
203
+ - app/views/devise/registrations/new.html.erb
204
+ - app/views/devise/sessions/new.html.erb
205
+ - app/views/layouts/application.html.erb
206
+ - app/views/layouts/devise.html.erb
207
+ - app/views/layouts/mailer.html.erb
208
+ - app/views/layouts/mailer.text.erb
209
+ - app/views/layouts/teamable.html.erb
210
+ - app/views/shared/_head.html.erb
211
+ - app/views/shared/_navbar.html.erb
212
+ - app/views/shared/_navbar_logo.html.erb
213
+ - app/views/teamable/accounts/new.html.erb
214
+ - app/views/teamable/setup/new.html.erb
215
+ - app/views/teamable/shared/_form.html.erb
216
+ - config/importmap.rb
217
+ - config/initializers/devise.rb
218
+ - config/initializers/simple_form.rb
219
+ - config/initializers/view_component.rb
220
+ - lib/generators/irelia/install_generator.rb
221
+ - lib/generators/templates/irelia.rb
222
+ - lib/generators/view_component/USAGE
223
+ - lib/generators/view_component/templates/component.html.erb.tt
224
+ - lib/generators/view_component/templates/component.rb.tt
225
+ - lib/generators/view_component/templates/component_system_test.rb.tt
226
+ - lib/generators/view_component/templates/component_test.rb.tt
227
+ - lib/generators/view_component/templates/preview.rb.tt
228
+ - lib/generators/view_component/view_component_generator.rb
39
229
  - lib/irelia.rb
40
230
  - lib/irelia/engine.rb
41
231
  - lib/irelia/version.rb
42
- - lib/tasks/irelia_tasks.rake
43
- homepage: https://github.com/kiqr/irelia
232
+ homepage: https://github.com/kiqr/irelia-core
44
233
  licenses:
45
234
  - MIT
46
235
  metadata:
47
- homepage_uri: https://github.com/kiqr/irelia
48
- source_code_uri: https://github.com/kiqr/irelia
49
- changelog_uri: https://github.com/kiqr/irelia/blob/main/CHANGELOG.md
236
+ homepage_uri: https://github.com/kiqr/irelia-core
237
+ source_code_uri: https://github.com/kiqr/irelia-framework
238
+ changelog_uri: https://github.com/kiqr/irelia-framework/blob/main/irelia-core/CHANGELOG.md
50
239
  post_install_message:
51
240
  rdoc_options: []
52
241
  require_paths:
data/config/routes.rb DELETED
@@ -1,2 +0,0 @@
1
- Rails.application.routes.draw do
2
- end
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :irelia do
3
- # # Task goes here
4
- # end