m9sh 0.1.0

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 (104) hide show
  1. checksums.yaml +7 -0
  2. data/.do/app.yaml +25 -0
  3. data/.dockerignore +51 -0
  4. data/.idea/.gitignore +8 -0
  5. data/.idea/aws.xml +17 -0
  6. data/.idea/hotcdn.iml +189 -0
  7. data/.idea/jsLibraryMappings.xml +6 -0
  8. data/.idea/misc.xml +4 -0
  9. data/.idea/modules.xml +8 -0
  10. data/.idea/vcs.xml +6 -0
  11. data/.mise.toml +3 -0
  12. data/.node-version +1 -0
  13. data/Dockerfile +84 -0
  14. data/README.md +230 -0
  15. data/Rakefile +6 -0
  16. data/app/components/m9sh/accordion_component.rb +122 -0
  17. data/app/components/m9sh/alert_component.rb +72 -0
  18. data/app/components/m9sh/alert_dialog_component.rb +100 -0
  19. data/app/components/m9sh/avatar_component.rb +65 -0
  20. data/app/components/m9sh/badge_component.rb +37 -0
  21. data/app/components/m9sh/base_component.rb +21 -0
  22. data/app/components/m9sh/breadcrumb_component.rb +100 -0
  23. data/app/components/m9sh/button_component.rb +54 -0
  24. data/app/components/m9sh/card_component.rb +90 -0
  25. data/app/components/m9sh/checkbox_component.rb +36 -0
  26. data/app/components/m9sh/collapsible_component.rb +47 -0
  27. data/app/components/m9sh/dialog_component.rb +123 -0
  28. data/app/components/m9sh/dropdown_menu_component.rb +27 -0
  29. data/app/components/m9sh/dropdown_menu_content_component.rb +24 -0
  30. data/app/components/m9sh/dropdown_menu_item_component.rb +36 -0
  31. data/app/components/m9sh/dropdown_menu_separator_component.rb +9 -0
  32. data/app/components/m9sh/dropdown_menu_trigger_component.rb +19 -0
  33. data/app/components/m9sh/hover_card_component.rb +48 -0
  34. data/app/components/m9sh/input_component.rb +33 -0
  35. data/app/components/m9sh/label_component.rb +27 -0
  36. data/app/components/m9sh/main_component.rb +16 -0
  37. data/app/components/m9sh/navigation_menu_component.rb +95 -0
  38. data/app/components/m9sh/popover_component.rb +47 -0
  39. data/app/components/m9sh/progress_component.rb +46 -0
  40. data/app/components/m9sh/radio_group_component.rb +88 -0
  41. data/app/components/m9sh/select_component.rb +51 -0
  42. data/app/components/m9sh/separator_component.rb +40 -0
  43. data/app/components/m9sh/sheet_component.rb +123 -0
  44. data/app/components/m9sh/sidebar_component.rb +126 -0
  45. data/app/components/m9sh/sidebar_group_component.rb +51 -0
  46. data/app/components/m9sh/sidebar_inset_component.rb +16 -0
  47. data/app/components/m9sh/sidebar_menu_button_component.rb +56 -0
  48. data/app/components/m9sh/sidebar_menu_component.rb +16 -0
  49. data/app/components/m9sh/sidebar_menu_item_component.rb +16 -0
  50. data/app/components/m9sh/sidebar_provider_component.rb +29 -0
  51. data/app/components/m9sh/sidebar_trigger_component.rb +44 -0
  52. data/app/components/m9sh/skeleton_component.rb +32 -0
  53. data/app/components/m9sh/slider_component.rb +83 -0
  54. data/app/components/m9sh/spinner_component.rb +46 -0
  55. data/app/components/m9sh/switch_component.rb +47 -0
  56. data/app/components/m9sh/table_component.rb +111 -0
  57. data/app/components/m9sh/tabs_component.rb +92 -0
  58. data/app/components/m9sh/textarea_component.rb +44 -0
  59. data/app/components/m9sh/theme_toggle_component.rb +88 -0
  60. data/app/components/m9sh/toast_component.rb +86 -0
  61. data/app/components/m9sh/toaster_component.rb +20 -0
  62. data/app/components/m9sh/toggle_component.rb +64 -0
  63. data/app/components/m9sh/tooltip_component.rb +48 -0
  64. data/app/components/m9sh/typography_component.rb +56 -0
  65. data/app/components/m9sh/utilities.rb +26 -0
  66. data/app/javascript/controllers/m9sh/accordion_controller.js +110 -0
  67. data/app/javascript/controllers/m9sh/alert_dialog_controller.js +47 -0
  68. data/app/javascript/controllers/m9sh/collapsible_controller.js +57 -0
  69. data/app/javascript/controllers/m9sh/dialog_controller.js +119 -0
  70. data/app/javascript/controllers/m9sh/dropdown_menu_controller.js +103 -0
  71. data/app/javascript/controllers/m9sh/hover_card_controller.js +66 -0
  72. data/app/javascript/controllers/m9sh/navigation_menu_controller.js +219 -0
  73. data/app/javascript/controllers/m9sh/popover_controller.js +113 -0
  74. data/app/javascript/controllers/m9sh/radio_controller.js +59 -0
  75. data/app/javascript/controllers/m9sh/sheet_controller.js +46 -0
  76. data/app/javascript/controllers/m9sh/sidebar_controller.js +114 -0
  77. data/app/javascript/controllers/m9sh/sidebar_provider_controller.js +12 -0
  78. data/app/javascript/controllers/m9sh/slider_controller.js +90 -0
  79. data/app/javascript/controllers/m9sh/switch_controller.js +33 -0
  80. data/app/javascript/controllers/m9sh/tabs_controller.js +51 -0
  81. data/app/javascript/controllers/m9sh/theme_controller.js +50 -0
  82. data/app/javascript/controllers/m9sh/toast_controller.js +46 -0
  83. data/app/javascript/controllers/m9sh/toaster_controller.js +70 -0
  84. data/app/javascript/controllers/m9sh/toggle_controller.js +27 -0
  85. data/app/javascript/controllers/m9sh/tooltip_controller.js +86 -0
  86. data/components.json +21 -0
  87. data/config.ru +6 -0
  88. data/exe/m9sh +12 -0
  89. data/fix_namespaces.py +32 -0
  90. data/fly.toml +30 -0
  91. data/koyeb.yaml +26 -0
  92. data/lib/m9sh/cli.rb +234 -0
  93. data/lib/m9sh/config.rb +114 -0
  94. data/lib/m9sh/generator.rb +183 -0
  95. data/lib/m9sh/registry.rb +107 -0
  96. data/lib/m9sh/registry.yml +384 -0
  97. data/lib/m9sh/version.rb +5 -0
  98. data/lib/m9sh.rb +11 -0
  99. data/package-lock.json +99 -0
  100. data/package.json +28 -0
  101. data/pnpm-lock.yaml +75 -0
  102. data/tailwind.config.js +93 -0
  103. data/update_namespace.py +73 -0
  104. metadata +208 -0
@@ -0,0 +1,384 @@
1
+ # M9sh Component Registry
2
+ # Defines all available components, their dependencies, and file locations
3
+
4
+ components:
5
+ base:
6
+ name: "Base Component"
7
+ description: "Base component class for all M9sh components"
8
+ files:
9
+ - app/components/m9sh/base_component.rb
10
+ dependencies: []
11
+
12
+ utilities:
13
+ name: "Utilities"
14
+ description: "Helper module for class name merging"
15
+ files:
16
+ - app/components/m9sh/utilities.rb
17
+ dependencies: []
18
+
19
+ button:
20
+ name: "Button"
21
+ description: "Button component with multiple variants"
22
+ files:
23
+ - app/components/m9sh/button_component.rb
24
+ dependencies:
25
+ - base
26
+ - utilities
27
+
28
+ badge:
29
+ name: "Badge"
30
+ description: "Badge component for status indicators"
31
+ files:
32
+ - app/components/m9sh/badge_component.rb
33
+ dependencies:
34
+ - base
35
+ - utilities
36
+
37
+ input:
38
+ name: "Input"
39
+ description: "Input component for text fields"
40
+ files:
41
+ - app/components/m9sh/input_component.rb
42
+ dependencies:
43
+ - base
44
+ - utilities
45
+
46
+ label:
47
+ name: "Label"
48
+ description: "Label component for form fields"
49
+ files:
50
+ - app/components/m9sh/label_component.rb
51
+ dependencies:
52
+ - base
53
+ - utilities
54
+
55
+ checkbox:
56
+ name: "Checkbox"
57
+ description: "Checkbox component"
58
+ files:
59
+ - app/components/m9sh/checkbox_component.rb
60
+ dependencies:
61
+ - base
62
+ - utilities
63
+
64
+ textarea:
65
+ name: "Textarea"
66
+ description: "Textarea component for multi-line text"
67
+ files:
68
+ - app/components/m9sh/textarea_component.rb
69
+ dependencies:
70
+ - base
71
+ - utilities
72
+
73
+ select:
74
+ name: "Select"
75
+ description: "Select dropdown component"
76
+ files:
77
+ - app/components/m9sh/select_component.rb
78
+ dependencies:
79
+ - base
80
+ - utilities
81
+
82
+ switch:
83
+ name: "Switch"
84
+ description: "Toggle switch component with Stimulus"
85
+ files:
86
+ - app/components/m9sh/switch_component.rb
87
+ - app/javascript/controllers/m9sh/switch_controller.js
88
+ dependencies:
89
+ - base
90
+ - utilities
91
+
92
+ slider:
93
+ name: "Slider"
94
+ description: "Slider input component with Stimulus"
95
+ files:
96
+ - app/components/m9sh/slider_component.rb
97
+ - app/javascript/controllers/m9sh/slider_controller.js
98
+ dependencies:
99
+ - base
100
+ - utilities
101
+
102
+ card:
103
+ name: "Card"
104
+ description: "Card container with header, body, and footer slots"
105
+ files:
106
+ - app/components/m9sh/card_component.rb
107
+ dependencies:
108
+ - base
109
+ - utilities
110
+
111
+ table:
112
+ name: "Table"
113
+ description: "Table component with styled cells and rows"
114
+ files:
115
+ - app/components/m9sh/table_component.rb
116
+ dependencies:
117
+ - base
118
+ - utilities
119
+
120
+ alert:
121
+ name: "Alert"
122
+ description: "Alert component for notifications"
123
+ files:
124
+ - app/components/m9sh/alert_component.rb
125
+ dependencies:
126
+ - base
127
+ - utilities
128
+
129
+ avatar:
130
+ name: "Avatar"
131
+ description: "Avatar component for user images"
132
+ files:
133
+ - app/components/m9sh/avatar_component.rb
134
+ dependencies:
135
+ - base
136
+ - utilities
137
+
138
+ separator:
139
+ name: "Separator"
140
+ description: "Separator line component"
141
+ files:
142
+ - app/components/m9sh/separator_component.rb
143
+ dependencies:
144
+ - base
145
+ - utilities
146
+
147
+ skeleton:
148
+ name: "Skeleton"
149
+ description: "Skeleton loading placeholder"
150
+ files:
151
+ - app/components/m9sh/skeleton_component.rb
152
+ dependencies:
153
+ - base
154
+ - utilities
155
+
156
+ spinner:
157
+ name: "Spinner"
158
+ description: "Loading spinner component"
159
+ files:
160
+ - app/components/m9sh/spinner_component.rb
161
+ dependencies:
162
+ - base
163
+ - utilities
164
+
165
+ progress:
166
+ name: "Progress"
167
+ description: "Progress bar component"
168
+ files:
169
+ - app/components/m9sh/progress_component.rb
170
+ dependencies:
171
+ - base
172
+ - utilities
173
+
174
+ breadcrumb:
175
+ name: "Breadcrumb"
176
+ description: "Breadcrumb navigation component"
177
+ files:
178
+ - app/components/m9sh/breadcrumb_component.rb
179
+ dependencies:
180
+ - base
181
+ - utilities
182
+
183
+ typography:
184
+ name: "Typography"
185
+ description: "Typography component for text styles"
186
+ files:
187
+ - app/components/m9sh/typography_component.rb
188
+ dependencies:
189
+ - base
190
+ - utilities
191
+
192
+ toggle:
193
+ name: "Toggle"
194
+ description: "Toggle button component with Stimulus"
195
+ files:
196
+ - app/components/m9sh/toggle_component.rb
197
+ - app/javascript/controllers/m9sh/toggle_controller.js
198
+ dependencies:
199
+ - base
200
+ - utilities
201
+
202
+ accordion:
203
+ name: "Accordion"
204
+ description: "Collapsible accordion component with Stimulus"
205
+ files:
206
+ - app/components/m9sh/accordion_component.rb
207
+ - app/javascript/controllers/m9sh/accordion_controller.js
208
+ dependencies:
209
+ - base
210
+ - utilities
211
+
212
+ tabs:
213
+ name: "Tabs"
214
+ description: "Tab navigation component with Stimulus"
215
+ files:
216
+ - app/components/m9sh/tabs_component.rb
217
+ - app/javascript/controllers/m9sh/tabs_controller.js
218
+ dependencies:
219
+ - base
220
+ - utilities
221
+
222
+ dialog:
223
+ name: "Dialog"
224
+ description: "Modal dialog component with Stimulus"
225
+ files:
226
+ - app/components/m9sh/dialog_component.rb
227
+ - app/javascript/controllers/m9sh/dialog_controller.js
228
+ dependencies:
229
+ - base
230
+ - utilities
231
+
232
+ alert_dialog:
233
+ name: "Alert Dialog"
234
+ description: "Alert dialog for confirmations with Stimulus"
235
+ files:
236
+ - app/components/m9sh/alert_dialog_component.rb
237
+ - app/javascript/controllers/m9sh/alert_dialog_controller.js
238
+ dependencies:
239
+ - base
240
+ - utilities
241
+ - dialog
242
+
243
+ sheet:
244
+ name: "Sheet"
245
+ description: "Side sheet component with Stimulus"
246
+ files:
247
+ - app/components/m9sh/sheet_component.rb
248
+ - app/javascript/controllers/m9sh/sheet_controller.js
249
+ dependencies:
250
+ - base
251
+ - utilities
252
+
253
+ tooltip:
254
+ name: "Tooltip"
255
+ description: "Tooltip component with Stimulus"
256
+ files:
257
+ - app/components/m9sh/tooltip_component.rb
258
+ - app/javascript/controllers/m9sh/tooltip_controller.js
259
+ dependencies:
260
+ - base
261
+ - utilities
262
+
263
+ popover:
264
+ name: "Popover"
265
+ description: "Popover component with Stimulus"
266
+ files:
267
+ - app/components/m9sh/popover_component.rb
268
+ - app/javascript/controllers/m9sh/popover_controller.js
269
+ dependencies:
270
+ - base
271
+ - utilities
272
+
273
+ hover_card:
274
+ name: "Hover Card"
275
+ description: "Hover card component with Stimulus"
276
+ files:
277
+ - app/components/m9sh/hover_card_component.rb
278
+ - app/javascript/controllers/m9sh/hover_card_controller.js
279
+ dependencies:
280
+ - base
281
+ - utilities
282
+
283
+ collapsible:
284
+ name: "Collapsible"
285
+ description: "Collapsible section component with Stimulus"
286
+ files:
287
+ - app/components/m9sh/collapsible_component.rb
288
+ - app/javascript/controllers/m9sh/collapsible_controller.js
289
+ dependencies:
290
+ - base
291
+ - utilities
292
+
293
+ dropdown_menu:
294
+ name: "Dropdown Menu"
295
+ description: "Dropdown menu component with Stimulus"
296
+ files:
297
+ - app/components/m9sh/dropdown_menu_component.rb
298
+ - app/components/m9sh/dropdown_menu_trigger_component.rb
299
+ - app/components/m9sh/dropdown_menu_content_component.rb
300
+ - app/components/m9sh/dropdown_menu_item_component.rb
301
+ - app/components/m9sh/dropdown_menu_separator_component.rb
302
+ - app/javascript/controllers/m9sh/dropdown_menu_controller.js
303
+ dependencies:
304
+ - base
305
+ - utilities
306
+
307
+ navigation_menu:
308
+ name: "Navigation Menu"
309
+ description: "Navigation menu component with Stimulus"
310
+ files:
311
+ - app/components/m9sh/navigation_menu_component.rb
312
+ - app/javascript/controllers/m9sh/navigation_menu_controller.js
313
+ dependencies:
314
+ - base
315
+ - utilities
316
+
317
+ radio_group:
318
+ name: "Radio Group"
319
+ description: "Radio button group with Stimulus"
320
+ files:
321
+ - app/components/m9sh/radio_group_component.rb
322
+ - app/javascript/controllers/m9sh/radio_controller.js
323
+ dependencies:
324
+ - base
325
+ - utilities
326
+
327
+ toast:
328
+ name: "Toast"
329
+ description: "Toast notification component with Stimulus"
330
+ files:
331
+ - app/components/m9sh/toast_component.rb
332
+ - app/javascript/controllers/m9sh/toast_controller.js
333
+ dependencies:
334
+ - base
335
+ - utilities
336
+
337
+ toaster:
338
+ name: "Toaster"
339
+ description: "Toast container component with Stimulus"
340
+ files:
341
+ - app/components/m9sh/toaster_component.rb
342
+ - app/javascript/controllers/m9sh/toaster_controller.js
343
+ dependencies:
344
+ - base
345
+ - utilities
346
+ - toast
347
+
348
+ sidebar:
349
+ name: "Sidebar"
350
+ description: "Sidebar navigation component with Stimulus"
351
+ files:
352
+ - app/components/m9sh/sidebar_component.rb
353
+ - app/components/m9sh/sidebar_provider_component.rb
354
+ - app/components/m9sh/sidebar_group_component.rb
355
+ - app/components/m9sh/sidebar_menu_component.rb
356
+ - app/components/m9sh/sidebar_menu_item_component.rb
357
+ - app/components/m9sh/sidebar_menu_button_component.rb
358
+ - app/components/m9sh/sidebar_trigger_component.rb
359
+ - app/components/m9sh/sidebar_inset_component.rb
360
+ - app/javascript/controllers/m9sh/sidebar_controller.js
361
+ - app/javascript/controllers/m9sh/sidebar_provider_controller.js
362
+ dependencies:
363
+ - base
364
+ - utilities
365
+
366
+ theme_toggle:
367
+ name: "Theme Toggle"
368
+ description: "Dark/light theme toggle with Stimulus"
369
+ files:
370
+ - app/components/m9sh/theme_toggle_component.rb
371
+ - app/javascript/controllers/m9sh/theme_controller.js
372
+ dependencies:
373
+ - base
374
+ - utilities
375
+ - button
376
+
377
+ main:
378
+ name: "Main"
379
+ description: "Main content wrapper component"
380
+ files:
381
+ - app/components/m9sh/main_component.rb
382
+ dependencies:
383
+ - base
384
+ - utilities
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module M9sh
4
+ VERSION = "0.1.0"
5
+ end
data/lib/m9sh.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "m9sh/version"
4
+ require_relative "m9sh/config"
5
+ require_relative "m9sh/registry"
6
+ require_relative "m9sh/generator"
7
+ require_relative "m9sh/cli"
8
+
9
+ module M9sh
10
+ class Error < StandardError; end
11
+ end
data/package-lock.json ADDED
@@ -0,0 +1,99 @@
1
+ {
2
+ "name": "hotcdn",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "hotcdn",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "class-variance-authority": "^0.7.1",
13
+ "clsx": "^2.1.1",
14
+ "lucide-react": "^0.545.0",
15
+ "tailwind-merge": "^3.3.1",
16
+ "tailwindcss": "^4.1.14",
17
+ "tw-animate-css": "^1.4.0"
18
+ },
19
+ "devDependencies": {
20
+ "tailwindcss-animate": "^1.0.7"
21
+ }
22
+ },
23
+ "node_modules/class-variance-authority": {
24
+ "version": "0.7.1",
25
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
26
+ "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
27
+ "license": "Apache-2.0",
28
+ "dependencies": {
29
+ "clsx": "^2.1.1"
30
+ },
31
+ "funding": {
32
+ "url": "https://polar.sh/cva"
33
+ }
34
+ },
35
+ "node_modules/clsx": {
36
+ "version": "2.1.1",
37
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
38
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
39
+ "license": "MIT",
40
+ "engines": {
41
+ "node": ">=6"
42
+ }
43
+ },
44
+ "node_modules/lucide-react": {
45
+ "version": "0.545.0",
46
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.545.0.tgz",
47
+ "integrity": "sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==",
48
+ "license": "ISC",
49
+ "peerDependencies": {
50
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
51
+ }
52
+ },
53
+ "node_modules/react": {
54
+ "version": "19.2.0",
55
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
56
+ "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
57
+ "license": "MIT",
58
+ "peer": true,
59
+ "engines": {
60
+ "node": ">=0.10.0"
61
+ }
62
+ },
63
+ "node_modules/tailwind-merge": {
64
+ "version": "3.3.1",
65
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
66
+ "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
67
+ "license": "MIT",
68
+ "funding": {
69
+ "type": "github",
70
+ "url": "https://github.com/sponsors/dcastil"
71
+ }
72
+ },
73
+ "node_modules/tailwindcss": {
74
+ "version": "4.1.14",
75
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz",
76
+ "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==",
77
+ "license": "MIT"
78
+ },
79
+ "node_modules/tailwindcss-animate": {
80
+ "version": "1.0.7",
81
+ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
82
+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
83
+ "dev": true,
84
+ "license": "MIT",
85
+ "peerDependencies": {
86
+ "tailwindcss": ">=3.0.0 || insiders"
87
+ }
88
+ },
89
+ "node_modules/tw-animate-css": {
90
+ "version": "1.4.0",
91
+ "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz",
92
+ "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==",
93
+ "license": "MIT",
94
+ "funding": {
95
+ "url": "https://github.com/sponsors/Wombosvideo"
96
+ }
97
+ }
98
+ }
99
+ }
data/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "hotcdn",
3
+ "version": "1.0.0",
4
+ "description": "Beautiful, accessible UI components for Rails applications using Hotwire, inspired by [shadcn/ui](https://ui.shadcn.com).",
5
+ "main": "index.js",
6
+ "directories": {
7
+ "lib": "lib"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "build:css": "npx @tailwindcss/cli -i app/assets/stylesheets/tailwind.css -o app/assets/stylesheets/application.css --minify",
12
+ "watch:css": "npx @tailwindcss/cli -i app/assets/stylesheets/tailwind.css -o app/assets/stylesheets/application.css --watch"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "dependencies": {
18
+ "class-variance-authority": "^0.7.1",
19
+ "clsx": "^2.1.1",
20
+ "lucide-react": "^0.545.0",
21
+ "tailwind-merge": "^3.3.1",
22
+ "tailwindcss": "^4.1.14",
23
+ "tw-animate-css": "^1.4.0"
24
+ },
25
+ "devDependencies": {
26
+ "tailwindcss-animate": "^1.0.7"
27
+ }
28
+ }
data/pnpm-lock.yaml ADDED
@@ -0,0 +1,75 @@
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ dependencies:
11
+ class-variance-authority:
12
+ specifier: ^0.7.1
13
+ version: 0.7.1
14
+ clsx:
15
+ specifier: ^2.1.1
16
+ version: 2.1.1
17
+ lucide-react:
18
+ specifier: ^0.545.0
19
+ version: 0.545.0(react@19.2.0)
20
+ tailwind-merge:
21
+ specifier: ^3.3.1
22
+ version: 3.3.1
23
+ tailwindcss:
24
+ specifier: ^4.1.14
25
+ version: 4.1.14
26
+ tw-animate-css:
27
+ specifier: ^1.4.0
28
+ version: 1.4.0
29
+
30
+ packages:
31
+
32
+ class-variance-authority@0.7.1:
33
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
34
+
35
+ clsx@2.1.1:
36
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
37
+ engines: {node: '>=6'}
38
+
39
+ lucide-react@0.545.0:
40
+ resolution: {integrity: sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==}
41
+ peerDependencies:
42
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
43
+
44
+ react@19.2.0:
45
+ resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
46
+ engines: {node: '>=0.10.0'}
47
+
48
+ tailwind-merge@3.3.1:
49
+ resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
50
+
51
+ tailwindcss@4.1.14:
52
+ resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==}
53
+
54
+ tw-animate-css@1.4.0:
55
+ resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==}
56
+
57
+ snapshots:
58
+
59
+ class-variance-authority@0.7.1:
60
+ dependencies:
61
+ clsx: 2.1.1
62
+
63
+ clsx@2.1.1: {}
64
+
65
+ lucide-react@0.545.0(react@19.2.0):
66
+ dependencies:
67
+ react: 19.2.0
68
+
69
+ react@19.2.0: {}
70
+
71
+ tailwind-merge@3.3.1: {}
72
+
73
+ tailwindcss@4.1.14: {}
74
+
75
+ tw-animate-css@1.4.0: {}
@@ -0,0 +1,93 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ darkMode: 'class',
4
+ content: [
5
+ './app/views/**/*.html.erb',
6
+ './app/helpers/**/*.rb',
7
+ './app/assets/stylesheets/**/*.css',
8
+ './app/javascript/**/*.js',
9
+ './app/components/**/*.{erb,rb}'
10
+ ],
11
+ theme: {
12
+ extend: {
13
+ borderColor: {
14
+ DEFAULT: 'var(--color-border)',
15
+ },
16
+ colors: {
17
+ border: 'var(--color-border)',
18
+ input: 'var(--color-input)',
19
+ ring: 'var(--color-ring)',
20
+ background: 'var(--color-background)',
21
+ foreground: 'var(--color-foreground)',
22
+ primary: {
23
+ DEFAULT: 'var(--color-primary)',
24
+ foreground: 'var(--color-primary-foreground)',
25
+ },
26
+ secondary: {
27
+ DEFAULT: 'var(--color-secondary)',
28
+ foreground: 'var(--color-secondary-foreground)',
29
+ },
30
+ destructive: {
31
+ DEFAULT: 'var(--color-destructive)',
32
+ foreground: 'var(--color-destructive-foreground)',
33
+ },
34
+ muted: {
35
+ DEFAULT: 'var(--color-muted)',
36
+ foreground: 'var(--color-muted-foreground)',
37
+ },
38
+ accent: {
39
+ DEFAULT: 'var(--color-accent)',
40
+ foreground: 'var(--color-accent-foreground)',
41
+ },
42
+ popover: {
43
+ DEFAULT: 'var(--color-popover)',
44
+ foreground: 'var(--color-popover-foreground)',
45
+ },
46
+ card: {
47
+ DEFAULT: 'var(--color-card)',
48
+ foreground: 'var(--color-card-foreground)',
49
+ },
50
+ sidebar: {
51
+ DEFAULT: 'var(--color-sidebar-background)',
52
+ foreground: 'var(--color-sidebar-foreground)',
53
+ primary: 'var(--color-sidebar-primary)',
54
+ 'primary-foreground': 'var(--color-sidebar-primary-foreground)',
55
+ accent: 'var(--color-sidebar-accent)',
56
+ 'accent-foreground': 'var(--color-sidebar-accent-foreground)',
57
+ border: 'var(--color-sidebar-border)',
58
+ ring: 'var(--color-sidebar-ring)',
59
+ },
60
+ },
61
+ borderRadius: {
62
+ sm: 'var(--radius-sm)',
63
+ md: 'var(--radius-md)',
64
+ lg: 'var(--radius-lg)',
65
+ xl: 'var(--radius-xl)',
66
+ '2xl': 'var(--radius-2xl)',
67
+ },
68
+ fontFamily: {
69
+ sans: 'var(--font-sans)',
70
+ },
71
+ keyframes: {
72
+ 'accordion-down': {
73
+ from: { height: '0' },
74
+ to: { height: 'var(--content-height)' }
75
+ },
76
+ 'accordion-up': {
77
+ from: { height: 'var(--content-height)' },
78
+ to: { height: '0' }
79
+ },
80
+ shimmer: {
81
+ '0%': { transform: 'translateX(-100%)' },
82
+ '100%': { transform: 'translateX(100%)' }
83
+ },
84
+ },
85
+ animation: {
86
+ 'accordion-down': 'accordion-down 0.2s ease-out',
87
+ 'accordion-up': 'accordion-up 0.2s ease-out',
88
+ shimmer: 'shimmer 1.5s infinite',
89
+ },
90
+ },
91
+ },
92
+ plugins: [require('tailwindcss-animate')],
93
+ }