shadcn-ui 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.prettierrc.json +6 -0
  3. data/README.md +260 -0
  4. data/app/assets/stylesheets/application.tailwind.css +101 -0
  5. data/app/controllers/components_controller.rb +1 -1
  6. data/app/controllers/documentation_controller.rb +9 -0
  7. data/app/helpers/application_helper.rb +19 -0
  8. data/app/helpers/components/card_helper.rb +1 -1
  9. data/app/helpers/components/filter_helper.rb +12 -0
  10. data/app/helpers/components/input_helper.rb +21 -0
  11. data/app/helpers/components/label_helper.rb +5 -0
  12. data/app/helpers/components/list_helper.rb +15 -0
  13. data/app/helpers/components/progress_helper.rb +5 -0
  14. data/app/helpers/components/sheet_helper.rb +20 -0
  15. data/app/helpers/components/skeleton_helper.rb +5 -0
  16. data/app/helpers/components/slider_helper.rb +5 -0
  17. data/app/helpers/documentation_helper.rb +2 -0
  18. data/app/javascript/controllers/theme_controller.js +25 -0
  19. data/app/javascript/controllers/ui/dialog_controller.js +3 -1
  20. data/app/javascript/controllers/ui/dropdown_controller.js +2 -22
  21. data/app/javascript/controllers/ui/filter_controller.js +20 -0
  22. data/app/javascript/controllers/ui/popover_controller.js +29 -1
  23. data/app/javascript/controllers/ui/sheet_controller.js +33 -0
  24. data/app/javascript/controllers/ui/slider_controller.js +14 -0
  25. data/app/javascript/controllers/ui/tooltip_controller.js +1 -1
  26. data/app/views/application/index.html.erb +122 -0
  27. data/app/views/components/ui/_alert_dialog.html.erb +1 -1
  28. data/app/views/components/ui/_card.html.erb +2 -2
  29. data/app/views/components/ui/_checkbox.html.erb +1 -6
  30. data/app/views/components/ui/_command.html.erb +0 -0
  31. data/app/views/components/ui/_dialog.html.erb +1 -1
  32. data/app/views/components/ui/_filter.html.erb +14 -0
  33. data/app/views/components/ui/_input.html.erb +8 -0
  34. data/app/views/components/ui/_label.html.erb +3 -0
  35. data/app/views/components/ui/_list.html.erb +5 -0
  36. data/app/views/components/ui/_progress.html.erb +15 -0
  37. data/app/views/components/ui/_sheet.html.erb +44 -0
  38. data/app/views/components/ui/_skeleton.html.erb +1 -0
  39. data/app/views/components/ui/_slider.html.erb +2 -0
  40. data/app/views/components/ui/_textarea.html.erb +1 -1
  41. data/app/views/components/ui/shared/{_dialog_background.html.erb → _backdrop.html.erb} +1 -0
  42. data/app/views/components/ui/svg/_check.html.erb +11 -0
  43. data/app/views/documentation/about.html.md +20 -0
  44. data/app/views/documentation/index.html.erb.bak +70 -0
  45. data/app/views/documentation/index.html.md +15 -0
  46. data/app/views/documentation/installation.html.md +249 -0
  47. data/app/views/examples/components/filter.html.erb +25 -0
  48. data/app/views/examples/components/input.html.erb +18 -0
  49. data/app/views/examples/components/label.html.erb +13 -0
  50. data/app/views/examples/components/progress.html.erb +12 -0
  51. data/app/views/examples/components/sheet.html.erb +19 -0
  52. data/app/views/examples/components/skeleton.html.erb +12 -0
  53. data/app/views/examples/components/slider.html.erb +12 -0
  54. data/app/views/layouts/application.html.erb +2 -3
  55. data/app/views/layouts/component.html.erb +2 -2
  56. data/app/views/layouts/documentation.html.erb +39 -0
  57. data/app/views/layouts/shared/_components.html.erb +61 -0
  58. data/app/views/layouts/shared/_header.html.erb +25 -33
  59. data/app/views/layouts/shared/_sidebar.html.erb +10 -0
  60. data/config/application.rb +2 -1
  61. data/config/importmap.rb +6 -6
  62. data/config/initializers/markdown.rb +24 -0
  63. data/config/routes.rb +7 -1
  64. data/lib/components.json +301 -0
  65. data/lib/generators/shadcn_ui_generator.rb +64 -15
  66. data/lib/shadcn-ui/version.rb +1 -1
  67. data/public/accordion.png +0 -0
  68. metadata +44 -4
  69. data/app/views/layouts/_sidebar.html.erb +0 -270
@@ -0,0 +1,24 @@
1
+ require "redcarpet"
2
+ require "rouge"
3
+ require "rouge/plugins/redcarpet"
4
+
5
+ class HTML < Redcarpet::Render::HTML
6
+ include Rouge::Plugins::Redcarpet # yep, that's it.
7
+ end
8
+
9
+ # config/initializers/markdown.rb
10
+
11
+ # We define a module that can parse markdown to HTML with its `call` method
12
+ module MarkdownHandler
13
+ def self.erb
14
+ @erb ||= ActionView::Template.registered_template_handler(:erb)
15
+ end
16
+
17
+ def self.call(template, source)
18
+ compiled_source = erb.call(template, source)
19
+ "Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(with_toc_data: true), extensions = {fenced_code_blocks: true}).render(begin;#{compiled_source};end).html_safe"
20
+ end
21
+ end
22
+
23
+ # Now we tell Rails to process any files with the `.md` extension using our new MarkdownHandler
24
+ ActionView::Template.register_template_handler :md, MarkdownHandler
data/config/routes.rb CHANGED
@@ -1,7 +1,13 @@
1
1
  Rails.application.routes.draw do
2
2
  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
3
+
3
4
  get "/examples/:example", to: "application#examples", as: :example
4
- get "/docs//components/:component", to: "components#show", as: :component
5
+ get "/docs/components/:component", to: "components#show", as: :component
6
+ get "/docs/components", to: redirect("/docs/components/accordion")
7
+ get "/components", to: redirect("/docs/components/accordion"), as: :components
8
+ get "/docs/:id" => "documentation#show", :as => :documentation, :format => false
9
+ get "/docs", to: "documentation#index", as: :documentation_index
10
+
5
11
  # Defines the root path route ("/")
6
12
  root "application#index"
7
13
  end
@@ -0,0 +1,301 @@
1
+ {
2
+ "accordion": {
3
+ "name": "accordion",
4
+ "type": "components:ui",
5
+ "files": [
6
+ "app/helpers/components/accordion_helper.rb",
7
+ "app/views/components/ui/_accordion.html.erb",
8
+ "app/javascript/controllers/ui/accordion_controller.js"
9
+ ]
10
+ },
11
+ "alert": {
12
+ "name": "alert",
13
+ "type": "components:ui",
14
+ "files": [
15
+ "app/helpers/components/alert_helper.rb",
16
+ "app/views/components/ui/_alert.html.erb",
17
+ "app/javascript/controllers/ui/alert_controller.js"
18
+ ]
19
+ },
20
+ "alert-dialog": {
21
+ "name": "alert-dialog",
22
+ "type": "components:ui",
23
+ "files": [
24
+ "app/helpers/components/alert-dialog_helper.rb",
25
+ "app/views/components/ui/_alert-dialog.html.erb",
26
+ "app/javascript/controllers/ui/alert-dialog_controller.js"
27
+ ]
28
+ },
29
+ "badge": {
30
+ "name": "badge",
31
+ "type": "components:ui",
32
+ "files": [
33
+ "app/helpers/components/badge_helper.rb",
34
+ "app/views/components/ui/_badge.html.erb",
35
+ "app/javascript/controllers/ui/badge_controller.js"
36
+ ]
37
+ },
38
+ "button": {
39
+ "name": "button",
40
+ "type": "components:ui",
41
+ "files": [
42
+ "app/helpers/components/button_helper.rb",
43
+ "app/views/components/ui/_button.html.erb",
44
+ "app/javascript/controllers/ui/button_controller.js"
45
+ ]
46
+ },
47
+ "card": {
48
+ "name": "card",
49
+ "type": "components:ui",
50
+ "files": [
51
+ "app/helpers/components/card_helper.rb",
52
+ "app/views/components/ui/_card.html.erb",
53
+ "app/javascript/controllers/ui/card_controller.js"
54
+ ]
55
+ },
56
+ "checkbox": {
57
+ "name": "checkbox",
58
+ "type": "components:ui",
59
+ "files": [
60
+ "app/helpers/components/checkbox_helper.rb",
61
+ "app/views/components/ui/_checkbox.html.erb",
62
+ "app/javascript/controllers/ui/checkbox_controller.js"
63
+ ]
64
+ },
65
+ "collapsible": {
66
+ "name": "collapsible",
67
+ "type": "components:ui",
68
+ "files": [
69
+ "app/helpers/components/collapsible_helper.rb",
70
+ "app/views/components/ui/_collapsible.html.erb",
71
+ "app/javascript/controllers/ui/collapsible_controller.js"
72
+ ]
73
+ },
74
+ "command": {
75
+ "name": "command",
76
+ "type": "components:ui",
77
+ "files": [
78
+ "app/helpers/components/command_helper.rb",
79
+ "app/views/components/ui/_command.html.erb",
80
+ "app/javascript/controllers/ui/command_controller.js"
81
+ ]
82
+ },
83
+ "context-menu": {
84
+ "name": "context-menu",
85
+ "type": "components:ui",
86
+ "files": [
87
+ "app/helpers/components/context-menu_helper.rb",
88
+ "app/views/components/ui/_context-menu.html.erb",
89
+ "app/javascript/controllers/ui/context-menu_controller.js"
90
+ ]
91
+ },
92
+ "dialog": {
93
+ "name": "dialog",
94
+ "type": "components:ui",
95
+ "files": [
96
+ "app/helpers/components/dialog_helper.rb",
97
+ "app/views/components/ui/_dialog.html.erb",
98
+ "app/javascript/controllers/ui/dialog_controller.js"
99
+ ]
100
+ },
101
+ "dropdown-menu": {
102
+ "name": "dropdown-menu",
103
+ "type": "components:ui",
104
+ "files": [
105
+ "app/helpers/components/dropdown-menu_helper.rb",
106
+ "app/views/components/ui/_dropdown-menu.html.erb",
107
+ "app/javascript/controllers/ui/dropdown-menu_controller.js"
108
+ ]
109
+ },
110
+ "hover-card": {
111
+ "name": "hover-card",
112
+ "type": "components:ui",
113
+ "files": [
114
+ "app/helpers/components/hover-card_helper.rb",
115
+ "app/views/components/ui/_hover-card.html.erb",
116
+ "app/javascript/controllers/ui/hover-card_controller.js"
117
+ ]
118
+ },
119
+ "input": {
120
+ "name": "input",
121
+ "type": "components:ui",
122
+ "files": [
123
+ "app/helpers/components/input_helper.rb",
124
+ "app/views/components/ui/_input.html.erb",
125
+ "app/javascript/controllers/ui/input_controller.js"
126
+ ]
127
+ },
128
+ "label": {
129
+ "name": "label",
130
+ "type": "components:ui",
131
+ "files": [
132
+ "app/helpers/components/label_helper.rb",
133
+ "app/views/components/ui/_label.html.erb",
134
+ "app/javascript/controllers/ui/label_controller.js"
135
+ ]
136
+ },
137
+ "menubar": {
138
+ "name": "menubar",
139
+ "type": "components:ui",
140
+ "files": [
141
+ "app/helpers/components/menubar_helper.rb",
142
+ "app/views/components/ui/_menubar.html.erb",
143
+ "app/javascript/controllers/ui/menubar_controller.js"
144
+ ]
145
+ },
146
+ "navigation-menu": {
147
+ "name": "navigation-menu",
148
+ "type": "components:ui",
149
+ "files": [
150
+ "app/helpers/components/navigation-menu_helper.rb",
151
+ "app/views/components/ui/_navigation-menu.html.erb",
152
+ "app/javascript/controllers/ui/navigation-menu_controller.js"
153
+ ]
154
+ },
155
+ "popover": {
156
+ "name": "popover",
157
+ "type": "components:ui",
158
+ "files": [
159
+ "app/helpers/components/popover_helper.rb",
160
+ "app/views/components/ui/_popover.html.erb",
161
+ "app/javascript/controllers/ui/popover_controller.js"
162
+ ]
163
+ },
164
+ "progress": {
165
+ "name": "progress",
166
+ "type": "components:ui",
167
+ "files": [
168
+ "app/helpers/components/progress_helper.rb",
169
+ "app/views/components/ui/_progress.html.erb",
170
+ "app/javascript/controllers/ui/progress_controller.js"
171
+ ]
172
+ },
173
+ "radio-group": {
174
+ "name": "radio-group",
175
+ "type": "components:ui",
176
+ "files": [
177
+ "app/helpers/components/radio-group_helper.rb",
178
+ "app/views/components/ui/_radio-group.html.erb",
179
+ "app/javascript/controllers/ui/radio-group_controller.js"
180
+ ]
181
+ },
182
+ "scroll-area": {
183
+ "name": "scroll-area",
184
+ "type": "components:ui",
185
+ "files": [
186
+ "app/helpers/components/scroll-area_helper.rb",
187
+ "app/views/components/ui/_scroll-area.html.erb",
188
+ "app/javascript/controllers/ui/scroll-area_controller.js"
189
+ ]
190
+ },
191
+ "select": {
192
+ "name": "select",
193
+ "type": "components:ui",
194
+ "files": [
195
+ "app/helpers/components/select_helper.rb",
196
+ "app/views/components/ui/_select.html.erb",
197
+ "app/javascript/controllers/ui/select_controller.js"
198
+ ]
199
+ },
200
+ "separator": {
201
+ "name": "separator",
202
+ "type": "components:ui",
203
+ "files": [
204
+ "app/helpers/components/separator_helper.rb",
205
+ "app/views/components/ui/_separator.html.erb",
206
+ "app/javascript/controllers/ui/separator_controller.js"
207
+ ]
208
+ },
209
+ "sheet": {
210
+ "name": "sheet",
211
+ "type": "components:ui",
212
+ "files": [
213
+ "app/helpers/components/sheet_helper.rb",
214
+ "app/views/components/ui/_sheet.html.erb",
215
+ "app/javascript/controllers/ui/sheet_controller.js"
216
+ ]
217
+ },
218
+ "skeleton": {
219
+ "name": "skeleton",
220
+ "type": "components:ui",
221
+ "files": [
222
+ "app/helpers/components/skeleton_helper.rb",
223
+ "app/views/components/ui/_skeleton.html.erb",
224
+ "app/javascript/controllers/ui/skeleton_controller.js"
225
+ ]
226
+ },
227
+ "slider": {
228
+ "name": "slider",
229
+ "type": "components:ui",
230
+ "files": [
231
+ "app/helpers/components/slider_helper.rb",
232
+ "app/views/components/ui/_slider.html.erb",
233
+ "app/javascript/controllers/ui/slider_controller.js"
234
+ ]
235
+ },
236
+ "switch": {
237
+ "name": "switch",
238
+ "type": "components:ui",
239
+ "files": [
240
+ "app/helpers/components/switch_helper.rb",
241
+ "app/views/components/ui/_switch.html.erb",
242
+ "app/javascript/controllers/ui/switch_controller.js"
243
+ ]
244
+ },
245
+ "table": {
246
+ "name": "table",
247
+ "type": "components:ui",
248
+ "files": [
249
+ "app/helpers/components/table_helper.rb",
250
+ "app/views/components/ui/_table.html.erb",
251
+ "app/javascript/controllers/ui/table_controller.js"
252
+ ]
253
+ },
254
+ "tabs": {
255
+ "name": "tabs",
256
+ "type": "components:ui",
257
+ "files": [
258
+ "app/helpers/components/tabs_helper.rb",
259
+ "app/views/components/ui/_tabs.html.erb",
260
+ "app/javascript/controllers/ui/tabs_controller.js"
261
+ ]
262
+ },
263
+ "textarea": {
264
+ "name": "textarea",
265
+ "type": "components:ui",
266
+ "files": [
267
+ "app/helpers/components/textarea_helper.rb",
268
+ "app/views/components/ui/_textarea.html.erb",
269
+ "app/javascript/controllers/ui/textarea_controller.js"
270
+ ]
271
+ },
272
+ "toast": {
273
+ "name": "toast",
274
+ "type": "components:ui",
275
+ "files": [
276
+ "app/helpers/components/toast_helper.rb",
277
+ "app/views/components/ui/_toast.html.erb",
278
+ "app/javascript/controllers/ui/toast_controller.js",
279
+ "app/javascript/controllers/ui/use-toast.js",
280
+ "app/javascript/controllers/ui/toaster.js"
281
+ ]
282
+ },
283
+ "toggle": {
284
+ "name": "toggle",
285
+ "type": "components:ui",
286
+ "files": [
287
+ "app/helpers/components/toggle_helper.rb",
288
+ "app/views/components/ui/_toggle.html.erb",
289
+ "app/javascript/controllers/ui/toggle_controller.js"
290
+ ]
291
+ },
292
+ "tooltip": {
293
+ "name": "tooltip",
294
+ "type": "components:ui",
295
+ "files": [
296
+ "app/helpers/components/tooltip_helper.rb",
297
+ "app/views/components/ui/_tooltip.html.erb",
298
+ "app/javascript/controllers/ui/tooltip_controller.js"
299
+ ]
300
+ }
301
+ }
@@ -1,32 +1,81 @@
1
- # lib/generators/shadcn_ui_generator.rb
2
-
1
+ require "json"
3
2
  require "rails/generators/base"
4
3
 
5
4
  class ShadcnUiGenerator < Rails::Generators::Base
6
- source_root File.expand_path("path/to/source/files")
5
+ attr_reader :component_name, :target_rails_root, :options
7
6
 
8
- argument :component, required: true, desc: "Name of the component"
9
- class_option :remove, type: :boolean, default: false, desc: "Remove the component"
7
+ argument :component, required: false, desc: "The name of the component to install"
8
+ argument :rails_root, required: false, desc: "Path to the Rails root directory"
10
9
 
11
- def copy_or_remove_files
12
- if options[:remove]
13
- remove_files
14
- else
10
+ def self.banner
11
+ "rails generate shadcn_ui <component_name>[:install] [--remove] [rails_root_path]"
12
+ end
13
+
14
+ def initialize(args, *options)
15
+ super
16
+
17
+ @component_name = component
18
+ @target_rails_root = rails_root || Rails.root
19
+ @options = options.first
20
+ start
21
+ end
22
+
23
+ private
24
+
25
+ def start
26
+ if component_valid?
15
27
  copy_files
28
+ else
29
+ display_available_components
16
30
  end
17
31
  end
18
32
 
19
- private
33
+ def available_components
34
+ if !@available_components
35
+ gem_lib_path = File.expand_path("../../lib", __dir__)
36
+ components_file = File.read(File.join(gem_lib_path, "components.json"))
37
+ @available_components = JSON.parse(components_file)
38
+ else
39
+ @available_components
40
+ end
41
+ end
20
42
 
21
- def copy_files
22
- template "component_template.html.erb", destination_file_path
43
+ def display_available_components
44
+ puts self.class.banner
45
+ puts "\nAvailable components:"
46
+
47
+ available_components.each do |component, _|
48
+ description = "# A #{component} component"
49
+ banner_line = "rails g shadcn_ui #{component}:install #{" " * (20 - component.length)} #{description}"
50
+ puts banner_line
51
+ end
23
52
  end
24
53
 
25
- def remove_files
26
- remove_file destination_file_path
54
+ def copy_files
55
+ if component_valid?
56
+ component_data["files"].each do |file|
57
+ source_path = File.expand_path(File.join("../../", file), __dir__)
58
+ destination_path = File.expand_path(File.join(target_rails_root, file))
59
+
60
+ FileUtils.mkdir_p(File.dirname(destination_path))
61
+ FileUtils.cp(source_path, destination_path)
62
+ end
63
+ end
27
64
  end
28
65
 
29
66
  def destination_file_path
30
- "app/views/components/#{component}.html.erb" # Modify the destination path according to your requirements
67
+ File.join(@rails_root, "app/views/components/ui/_#{component}.html.erb")
68
+ end
69
+
70
+ def controller_file_path
71
+ File.join(@rails_root, "app/javascript/controllers/ui/#{component}_controller.js")
72
+ end
73
+
74
+ def component_data
75
+ @component_data ||= available_components[component]
76
+ end
77
+
78
+ def component_valid?
79
+ component.present? && available_components.key?(component) && component_data
31
80
  end
32
81
  end
@@ -1,3 +1,3 @@
1
1
  module ShadcnUi
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shadcn-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avi Flombaum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-09 00:00:00.000000000 Z
11
+ date: 2023-07-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This gem is a documentation site and gem that will copy components from
14
14
  the shadcn-ui library into a Ruby on Rails application.
@@ -41,6 +41,7 @@ files:
41
41
  - app/controllers/application_controller.rb
42
42
  - app/controllers/components_controller.rb
43
43
  - app/controllers/concerns/.keep
44
+ - app/controllers/documentation_controller.rb
44
45
  - app/helpers/application_helper.rb
45
46
  - app/helpers/components/accordion_helper.rb
46
47
  - app/helpers/components/alert_dialog_helper.rb
@@ -52,14 +53,23 @@ files:
52
53
  - app/helpers/components/collapsible_helper.rb
53
54
  - app/helpers/components/dialog_helper.rb
54
55
  - app/helpers/components/dropdown_menu_helper.rb
56
+ - app/helpers/components/filter_helper.rb
55
57
  - app/helpers/components/hover_card_helper.rb
58
+ - app/helpers/components/input_helper.rb
59
+ - app/helpers/components/label_helper.rb
60
+ - app/helpers/components/list_helper.rb
56
61
  - app/helpers/components/popover_helper.rb
62
+ - app/helpers/components/progress_helper.rb
57
63
  - app/helpers/components/seperator_helper.rb
64
+ - app/helpers/components/sheet_helper.rb
65
+ - app/helpers/components/skeleton_helper.rb
66
+ - app/helpers/components/slider_helper.rb
58
67
  - app/helpers/components/textarea_helper.rb
59
68
  - app/helpers/components/toast_helper.rb
60
69
  - app/helpers/components/toggle_helper.rb
61
70
  - app/helpers/components/tooltip_helper.rb
62
71
  - app/helpers/components_helper.rb
72
+ - app/helpers/documentation_helper.rb
63
73
  - app/helpers/examples_helper.rb
64
74
  - app/javascript/application.js
65
75
  - app/javascript/controllers/application.js
@@ -67,13 +77,17 @@ files:
67
77
  - app/javascript/controllers/highlight_controller.js
68
78
  - app/javascript/controllers/index.js
69
79
  - app/javascript/controllers/tabs_controller.js
80
+ - app/javascript/controllers/theme_controller.js
70
81
  - app/javascript/controllers/ui/accordion_controller.js
71
82
  - app/javascript/controllers/ui/checkbox_controller.js
72
83
  - app/javascript/controllers/ui/collapsible_controller.js
73
84
  - app/javascript/controllers/ui/dialog_controller.js
74
85
  - app/javascript/controllers/ui/dropdown_controller.js
86
+ - app/javascript/controllers/ui/filter_controller.js
75
87
  - app/javascript/controllers/ui/hover-card_controller.js
76
88
  - app/javascript/controllers/ui/popover_controller.js
89
+ - app/javascript/controllers/ui/sheet_controller.js
90
+ - app/javascript/controllers/ui/slider_controller.js
77
91
  - app/javascript/controllers/ui/toast_controller.js
78
92
  - app/javascript/controllers/ui/toggle_controller.js
79
93
  - app/javascript/controllers/ui/tooltip_controller.js
@@ -91,17 +105,31 @@ files:
91
105
  - app/views/components/ui/_card.html.erb
92
106
  - app/views/components/ui/_checkbox.html.erb
93
107
  - app/views/components/ui/_collapsible.html.erb
108
+ - app/views/components/ui/_command.html.erb
94
109
  - app/views/components/ui/_dialog.html.erb
95
110
  - app/views/components/ui/_dropdown_menu.html.erb
111
+ - app/views/components/ui/_filter.html.erb
96
112
  - app/views/components/ui/_hover_card.html.erb
113
+ - app/views/components/ui/_input.html.erb
114
+ - app/views/components/ui/_label.html.erb
115
+ - app/views/components/ui/_list.html.erb
97
116
  - app/views/components/ui/_popover.html.erb
117
+ - app/views/components/ui/_progress.html.erb
98
118
  - app/views/components/ui/_separator.html.erb
119
+ - app/views/components/ui/_sheet.html.erb
120
+ - app/views/components/ui/_skeleton.html.erb
121
+ - app/views/components/ui/_slider.html.erb
99
122
  - app/views/components/ui/_textarea.html.erb
100
123
  - app/views/components/ui/_toast.html.erb
101
124
  - app/views/components/ui/_toggle.html.erb
102
125
  - app/views/components/ui/_tooltip.html.erb
103
- - app/views/components/ui/shared/_dialog_background.html.erb
126
+ - app/views/components/ui/shared/_backdrop.html.erb
104
127
  - app/views/components/ui/shared/_menu_item.html.erb
128
+ - app/views/components/ui/svg/_check.html.erb
129
+ - app/views/documentation/about.html.md
130
+ - app/views/documentation/index.html.erb.bak
131
+ - app/views/documentation/index.html.md
132
+ - app/views/documentation/installation.html.md
105
133
  - app/views/examples/authentication/index.html.erb
106
134
  - app/views/examples/components/accordion.html.erb
107
135
  - app/views/examples/components/alert-dialog.html.erb
@@ -118,23 +146,32 @@ files:
118
146
  - app/views/examples/components/dialog/code/preview.erb
119
147
  - app/views/examples/components/dialog/code/usage.erb
120
148
  - app/views/examples/components/dropdown-menu.html.erb
149
+ - app/views/examples/components/filter.html.erb
121
150
  - app/views/examples/components/hover-card.html.erb
151
+ - app/views/examples/components/input.html.erb
152
+ - app/views/examples/components/label.html.erb
122
153
  - app/views/examples/components/popover.html.erb
154
+ - app/views/examples/components/progress.html.erb
123
155
  - app/views/examples/components/separator.html.erb
156
+ - app/views/examples/components/sheet.html.erb
157
+ - app/views/examples/components/skeleton.html.erb
158
+ - app/views/examples/components/slider.html.erb
124
159
  - app/views/examples/components/textarea.html.erb
125
160
  - app/views/examples/components/toast.html.erb
126
161
  - app/views/examples/components/toggle.html.erb
127
162
  - app/views/examples/components/tooltip.html.erb
128
- - app/views/layouts/_sidebar.html.erb
129
163
  - app/views/layouts/application.html.erb
130
164
  - app/views/layouts/component.html.erb
165
+ - app/views/layouts/documentation.html.erb
131
166
  - app/views/layouts/documentation/_breadcrumb.html.erb
132
167
  - app/views/layouts/documentation/_component_header.html.erb
133
168
  - app/views/layouts/documentation/_examples.html.erb
134
169
  - app/views/layouts/documentation/_preview.html.erb
135
170
  - app/views/layouts/mailer.html.erb
136
171
  - app/views/layouts/mailer.text.erb
172
+ - app/views/layouts/shared/_components.html.erb
137
173
  - app/views/layouts/shared/_header.html.erb
174
+ - app/views/layouts/shared/_sidebar.html.erb
138
175
  - config.ru
139
176
  - config/application.rb
140
177
  - config/boot.rb
@@ -150,6 +187,7 @@ files:
150
187
  - config/initializers/content_security_policy.rb
151
188
  - config/initializers/filter_parameter_logging.rb
152
189
  - config/initializers/inflections.rb
190
+ - config/initializers/markdown.rb
153
191
  - config/initializers/permissions_policy.rb
154
192
  - config/locales/en.yml
155
193
  - config/puma.rb
@@ -159,6 +197,7 @@ files:
159
197
  - config/tailwind.config.js
160
198
  - db/seeds.rb
161
199
  - lib/assets/.keep
200
+ - lib/components.json
162
201
  - lib/generators/shadcn_ui_generator.rb
163
202
  - lib/shadcn-ui/shadcn-ui.rb
164
203
  - lib/shadcn-ui/version.rb
@@ -169,6 +208,7 @@ files:
169
208
  - public/404.html
170
209
  - public/422.html
171
210
  - public/500.html
211
+ - public/accordion.png
172
212
  - public/android-chrome-192x192.png
173
213
  - public/android-chrome-512x512.png
174
214
  - public/apple-touch-icon-precomposed.png