maquina-components 0.1.1 → 0.2.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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +410 -13
  3. data/app/assets/images/maquina.svg +1 -0
  4. data/app/assets/stylesheets/alert.css +143 -0
  5. data/app/assets/stylesheets/badge.css +145 -0
  6. data/app/assets/stylesheets/breadcrumbs.css +163 -0
  7. data/app/assets/stylesheets/card.css +128 -0
  8. data/app/assets/stylesheets/dropdown_menu.css +248 -0
  9. data/app/assets/stylesheets/empty.css +133 -0
  10. data/app/assets/stylesheets/form.css +617 -0
  11. data/app/assets/stylesheets/header.css +61 -0
  12. data/app/assets/stylesheets/maquina_components.css +178 -0
  13. data/app/assets/stylesheets/pagination.css +154 -0
  14. data/app/assets/stylesheets/sidebar.css +477 -0
  15. data/app/assets/stylesheets/table.css +205 -0
  16. data/app/assets/stylesheets/toggle_group.css +151 -0
  17. data/app/assets/tailwind/maquina_components_engine/engine.css +16 -0
  18. data/app/helpers/maquina_components/breadcrumbs_helper.rb +118 -0
  19. data/app/helpers/maquina_components/dropdown_menu_helper.rb +249 -0
  20. data/app/helpers/maquina_components/empty_helper.rb +102 -0
  21. data/app/helpers/maquina_components/icons_helper.rb +161 -0
  22. data/app/helpers/maquina_components/pagination_helper.rb +153 -0
  23. data/app/helpers/maquina_components/sidebar_helper.rb +63 -0
  24. data/app/helpers/maquina_components/table_helper.rb +144 -0
  25. data/app/helpers/maquina_components/toggle_group_helper.rb +172 -0
  26. data/app/javascript/controllers/breadcrumb_controller.js +71 -0
  27. data/app/javascript/controllers/dropdown_menu_controller.js +203 -0
  28. data/app/javascript/controllers/menu_button_controller.js +59 -0
  29. data/app/javascript/controllers/sidebar_controller.js +316 -0
  30. data/app/javascript/controllers/sidebar_trigger_controller.js +32 -0
  31. data/app/javascript/controllers/toggle_group_controller.js +178 -0
  32. data/app/views/components/_alert.html.erb +12 -0
  33. data/app/views/components/_badge.html.erb +10 -0
  34. data/app/views/components/_breadcrumbs.html.erb +16 -0
  35. data/app/views/components/_card.html.erb +6 -0
  36. data/app/views/components/_dropdown.html.erb +25 -0
  37. data/app/views/components/_dropdown_menu.html.erb +9 -0
  38. data/app/views/components/_empty.html.erb +10 -0
  39. data/app/views/components/_header.html.erb +8 -0
  40. data/app/views/components/_menu_button.html.erb +44 -0
  41. data/app/views/components/_pagination.html.erb +13 -0
  42. data/app/views/components/_separator.html.erb +11 -0
  43. data/app/views/components/_sidebar.html.erb +40 -0
  44. data/app/views/components/_simple_table.html.erb +49 -0
  45. data/app/views/components/_table.html.erb +21 -0
  46. data/app/views/components/_toggle_group.html.erb +24 -0
  47. data/app/views/components/alert/_description.html.erb +6 -0
  48. data/app/views/components/alert/_title.html.erb +6 -0
  49. data/app/views/components/breadcrumbs/_ellipsis.html.erb +9 -0
  50. data/app/views/components/breadcrumbs/_item.html.erb +8 -0
  51. data/app/views/components/breadcrumbs/_link.html.erb +8 -0
  52. data/app/views/components/breadcrumbs/_list.html.erb +8 -0
  53. data/app/views/components/breadcrumbs/_page.html.erb +8 -0
  54. data/app/views/components/breadcrumbs/_separator.html.erb +17 -0
  55. data/app/views/components/card/_action.html.erb +6 -0
  56. data/app/views/components/card/_content.html.erb +9 -0
  57. data/app/views/components/card/_description.html.erb +6 -0
  58. data/app/views/components/card/_footer.html.erb +17 -0
  59. data/app/views/components/card/_header.html.erb +9 -0
  60. data/app/views/components/card/_title.html.erb +9 -0
  61. data/app/views/components/dropdown_menu/_content.html.erb +20 -0
  62. data/app/views/components/dropdown_menu/_group.html.erb +12 -0
  63. data/app/views/components/dropdown_menu/_item.html.erb +29 -0
  64. data/app/views/components/dropdown_menu/_label.html.erb +13 -0
  65. data/app/views/components/dropdown_menu/_separator.html.erb +11 -0
  66. data/app/views/components/dropdown_menu/_shortcut.html.erb +12 -0
  67. data/app/views/components/dropdown_menu/_trigger.html.erb +24 -0
  68. data/app/views/components/empty/_content.html.erb +8 -0
  69. data/app/views/components/empty/_description.html.erb +12 -0
  70. data/app/views/components/empty/_header.html.erb +8 -0
  71. data/app/views/components/empty/_media.html.erb +13 -0
  72. data/app/views/components/empty/_title.html.erb +12 -0
  73. data/app/views/components/pagination/_content.html.erb +8 -0
  74. data/app/views/components/pagination/_ellipsis.html.erb +28 -0
  75. data/app/views/components/pagination/_item.html.erb +8 -0
  76. data/app/views/components/pagination/_link.html.erb +23 -0
  77. data/app/views/components/pagination/_next.html.erb +57 -0
  78. data/app/views/components/pagination/_previous.html.erb +57 -0
  79. data/app/views/components/sidebar/_content.html.erb +8 -0
  80. data/app/views/components/sidebar/_footer.html.erb +8 -0
  81. data/app/views/components/sidebar/_group.html.erb +12 -0
  82. data/app/views/components/sidebar/_header.html.erb +8 -0
  83. data/app/views/components/sidebar/_inset.html.erb +8 -0
  84. data/app/views/components/sidebar/_menu.html.erb +8 -0
  85. data/app/views/components/sidebar/_menu_button.html.erb +14 -0
  86. data/app/views/components/sidebar/_menu_item.html.erb +7 -0
  87. data/app/views/components/sidebar/_menu_link.html.erb +32 -0
  88. data/app/views/components/sidebar/_provider.html.erb +16 -0
  89. data/app/views/components/sidebar/_trigger.html.erb +12 -0
  90. data/app/views/components/stats/_stats_card.html.erb +100 -0
  91. data/app/views/components/stats/_stats_grid.html.erb +38 -0
  92. data/app/views/components/table/_body.html.erb +5 -0
  93. data/app/views/components/table/_caption.html.erb +5 -0
  94. data/app/views/components/table/_cell.html.erb +5 -0
  95. data/app/views/components/table/_footer.html.erb +5 -0
  96. data/app/views/components/table/_head.html.erb +8 -0
  97. data/app/views/components/table/_header.html.erb +8 -0
  98. data/app/views/components/table/_row.html.erb +8 -0
  99. data/app/views/components/toggle_group/_item.html.erb +19 -0
  100. data/config/importmap.rb +1 -0
  101. data/lib/generators/maquina_components/install/USAGE +39 -0
  102. data/lib/generators/maquina_components/install/install_generator.rb +123 -0
  103. data/lib/generators/maquina_components/install/templates/maquina_components_helper.rb.tt +68 -0
  104. data/lib/generators/maquina_components/install/templates/theme.css.tt +179 -0
  105. data/lib/maquina_components/engine.rb +10 -0
  106. data/lib/maquina_components/version.rb +1 -1
  107. metadata +121 -5
@@ -0,0 +1,179 @@
1
+ /* ==========================================================================
2
+ maquina_components Theme Variables
3
+
4
+ These CSS variables follow the shadcn/ui theming convention.
5
+ Customize these values to match your design system.
6
+
7
+ Documentation: https://github.com/maquina-app/maquina_components
8
+ ========================================================================== */
9
+
10
+ @custom-variant dark (&:is(.dark *));
11
+
12
+ :root {
13
+ /* Layout */
14
+ --header-height: calc(var(--spacing) * 12 + 1px);
15
+ --sidebar-width: calc(var(--spacing) * 72);
16
+ --sidebar-width-icon: 3rem;
17
+
18
+ /* Core Colors */
19
+ --background: oklch(1 0 0);
20
+ --foreground: oklch(0.145 0 0);
21
+
22
+ /* Card */
23
+ --card: oklch(1 0 0);
24
+ --card-foreground: oklch(0.145 0 0);
25
+
26
+ /* Popover */
27
+ --popover: oklch(1 0 0);
28
+ --popover-foreground: oklch(0.145 0 0);
29
+
30
+ /* Primary - Main brand color */
31
+ --primary: oklch(0.645 0.246 16);
32
+ --primary-foreground: oklch(0.969 0.015 12);
33
+
34
+ /* Secondary */
35
+ --secondary: oklch(0.97 0 0);
36
+ --secondary-foreground: oklch(0.205 0 0);
37
+
38
+ /* Muted - Subtle backgrounds */
39
+ --muted: oklch(0.97 0 0);
40
+ --muted-foreground: oklch(0.556 0 0);
41
+
42
+ /* Accent - Hover states */
43
+ --accent: oklch(0.97 0 0);
44
+ --accent-foreground: oklch(0.205 0 0);
45
+
46
+ /* Success - Success states */
47
+ --success: oklch(0.92 0.04 168);
48
+ --success-foreground: oklch(0.35 0.08 168);
49
+
50
+ /* Warning - Warning states */
51
+ --warning: oklch(0.93 0.04 55);
52
+ --warning-foreground: oklch(0.4 0.08 50);
53
+
54
+ /* Destructive - Error/danger states */
55
+ --destructive: oklch(0.92 0.05 8);
56
+ --destructive-foreground: oklch(0.4 0.12 8);
57
+
58
+ /* Borders & Inputs */
59
+ --border: oklch(0.922 0 0);
60
+ --input: oklch(0.922 0 0);
61
+ --ring: oklch(0.645 0.246 16);
62
+
63
+ /* Charts (optional) */
64
+ --chart-1: oklch(0.645 0.246 16);
65
+ --chart-2: oklch(0.65 0.09 168);
66
+ --chart-3: oklch(0.72 0.09 55);
67
+ --chart-4: oklch(0.58 0.18 17);
68
+ --chart-5: oklch(0.5 0.13 8);
69
+
70
+ /* Sidebar */
71
+ --sidebar: oklch(0.96 0 0);
72
+ --sidebar-foreground: oklch(0.2 0 0);
73
+ --sidebar-primary: oklch(0.645 0.246 16);
74
+ --sidebar-primary-foreground: oklch(0.969 0.015 12);
75
+ --sidebar-accent: oklch(0.9 0 0);
76
+ --sidebar-accent-foreground: oklch(0.145 0 0);
77
+ --sidebar-border: oklch(0.88 0 0);
78
+ --sidebar-ring: oklch(0.645 0.246 16);
79
+
80
+ /* Dark Mode */
81
+ .dark {
82
+ --background: oklch(0.145 0 0);
83
+ --foreground: oklch(0.985 0 0);
84
+
85
+ --card: oklch(0.205 0 0);
86
+ --card-foreground: oklch(0.985 0 0);
87
+
88
+ --popover: oklch(0.269 0 0);
89
+ --popover-foreground: oklch(0.985 0 0);
90
+
91
+ --primary: oklch(0.712 0.194 13);
92
+ --primary-foreground: oklch(0.15 0.052 13);
93
+
94
+ --secondary: oklch(0.269 0 0);
95
+ --secondary-foreground: oklch(0.985 0 0);
96
+
97
+ --muted: oklch(0.269 0 0);
98
+ --muted-foreground: oklch(0.708 0 0);
99
+
100
+ --accent: oklch(0.371 0 0);
101
+ --accent-foreground: oklch(0.985 0 0);
102
+
103
+ --success: oklch(0.32 0.06 168);
104
+ --success-foreground: oklch(0.82 0.06 168);
105
+
106
+ --warning: oklch(0.36 0.06 55);
107
+ --warning-foreground: oklch(0.86 0.06 55);
108
+
109
+ --destructive: oklch(0.34 0.07 8);
110
+ --destructive-foreground: oklch(0.88 0.06 8);
111
+
112
+ --border: oklch(1 0 0 / 10%);
113
+ --input: oklch(1 0 0 / 15%);
114
+ --ring: oklch(0.455 0.188 13);
115
+
116
+ --chart-1: oklch(0.712 0.194 13);
117
+ --chart-2: oklch(0.72 0.09 168);
118
+ --chart-3: oklch(0.78 0.09 55);
119
+ --chart-4: oklch(0.645 0.246 16);
120
+ --chart-5: oklch(0.58 0.13 8);
121
+
122
+ --sidebar: oklch(0.14 0 0);
123
+ --sidebar-foreground: oklch(0.9 0 0);
124
+ --sidebar-primary: oklch(0.712 0.194 13);
125
+ --sidebar-primary-foreground: oklch(0.15 0.052 13);
126
+ --sidebar-accent: oklch(0.22 0 0);
127
+ --sidebar-accent-foreground: oklch(0.95 0 0);
128
+ --sidebar-border: oklch(1 0 0 / 12%);
129
+ --sidebar-ring: oklch(0.455 0.188 13);
130
+ }
131
+ }
132
+
133
+ /* Tailwind Theme Bindings
134
+ These make the CSS variables available as Tailwind utilities:
135
+ bg-primary, text-muted-foreground, border-sidebar, etc. */
136
+ @theme {
137
+ --color-background: var(--background);
138
+ --color-foreground: var(--foreground);
139
+
140
+ --color-primary: var(--primary);
141
+ --color-primary-foreground: var(--primary-foreground);
142
+
143
+ --color-muted: var(--muted);
144
+ --color-muted-foreground: var(--muted-foreground);
145
+
146
+ --color-secondary: var(--secondary);
147
+ --color-secondary-foreground: var(--secondary-foreground);
148
+
149
+ --color-accent: var(--accent);
150
+ --color-accent-foreground: var(--accent-foreground);
151
+
152
+ --color-destructive: var(--destructive);
153
+ --color-destructive-foreground: var(--destructive-foreground);
154
+
155
+ --color-input: var(--input);
156
+ --color-border: var(--border);
157
+ --color-ring: var(--ring);
158
+ --color-ring-destructive: var(--destructive);
159
+
160
+ --color-card: var(--card);
161
+ --color-card-foreground: var(--card-foreground);
162
+
163
+ --color-popover: var(--popover);
164
+ --color-popover-foreground: var(--popover-foreground);
165
+
166
+ --color-sidebar: var(--sidebar);
167
+ --color-sidebar-foreground: var(--sidebar-foreground);
168
+ --color-sidebar-primary: var(--sidebar-primary);
169
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
170
+ --color-sidebar-accent: var(--sidebar-accent);
171
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
172
+ --color-sidebar-border: var(--sidebar-border);
173
+ --color-sidebar-ring: var(--sidebar-ring);
174
+ }
175
+
176
+ /* Global border color */
177
+ * {
178
+ border-color: var(--color-border);
179
+ }
@@ -1,4 +1,14 @@
1
1
  module MaquinaComponents
2
2
  class Engine < ::Rails::Engine
3
+ initializer "maquina-components.importmap", before: "importmap" do |app|
4
+ app.config.importmap.paths << root.join("config/importmap.rb")
5
+ app.config.importmap.cache_sweepers << root.join("app/javascript")
6
+ end
7
+
8
+ initializer "maquin-components.assets" do |app|
9
+ if app.config.respond_to?(:assets)
10
+ app.config.assets.paths << Engine.root.join("app/javascript")
11
+ end
12
+ end
3
13
  end
4
14
  end
@@ -1,3 +1,3 @@
1
1
  module MaquinaComponents
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maquina-components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Alberto Chávez
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -15,14 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 8.0.0
18
+ version: 7.2.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 8.0.0
25
+ version: 7.2.0
26
+ - !ruby/object:Gem::Dependency
27
+ name: tailwindcss-rails
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.2'
26
40
  description: ERB, TailwindCSS, and StimulusJS UI components based on Shadcn/UI.
27
41
  email:
28
42
  - mario.chavez@gmail.com
@@ -33,6 +47,108 @@ files:
33
47
  - MIT-LICENSE
34
48
  - README.md
35
49
  - Rakefile
50
+ - app/assets/images/maquina.svg
51
+ - app/assets/stylesheets/alert.css
52
+ - app/assets/stylesheets/badge.css
53
+ - app/assets/stylesheets/breadcrumbs.css
54
+ - app/assets/stylesheets/card.css
55
+ - app/assets/stylesheets/dropdown_menu.css
56
+ - app/assets/stylesheets/empty.css
57
+ - app/assets/stylesheets/form.css
58
+ - app/assets/stylesheets/header.css
59
+ - app/assets/stylesheets/maquina_components.css
60
+ - app/assets/stylesheets/pagination.css
61
+ - app/assets/stylesheets/sidebar.css
62
+ - app/assets/stylesheets/table.css
63
+ - app/assets/stylesheets/toggle_group.css
64
+ - app/assets/tailwind/maquina_components_engine/engine.css
65
+ - app/helpers/maquina_components/breadcrumbs_helper.rb
66
+ - app/helpers/maquina_components/dropdown_menu_helper.rb
67
+ - app/helpers/maquina_components/empty_helper.rb
68
+ - app/helpers/maquina_components/icons_helper.rb
69
+ - app/helpers/maquina_components/pagination_helper.rb
70
+ - app/helpers/maquina_components/sidebar_helper.rb
71
+ - app/helpers/maquina_components/table_helper.rb
72
+ - app/helpers/maquina_components/toggle_group_helper.rb
73
+ - app/javascript/controllers/breadcrumb_controller.js
74
+ - app/javascript/controllers/dropdown_menu_controller.js
75
+ - app/javascript/controllers/menu_button_controller.js
76
+ - app/javascript/controllers/sidebar_controller.js
77
+ - app/javascript/controllers/sidebar_trigger_controller.js
78
+ - app/javascript/controllers/toggle_group_controller.js
79
+ - app/views/components/_alert.html.erb
80
+ - app/views/components/_badge.html.erb
81
+ - app/views/components/_breadcrumbs.html.erb
82
+ - app/views/components/_card.html.erb
83
+ - app/views/components/_dropdown.html.erb
84
+ - app/views/components/_dropdown_menu.html.erb
85
+ - app/views/components/_empty.html.erb
86
+ - app/views/components/_header.html.erb
87
+ - app/views/components/_menu_button.html.erb
88
+ - app/views/components/_pagination.html.erb
89
+ - app/views/components/_separator.html.erb
90
+ - app/views/components/_sidebar.html.erb
91
+ - app/views/components/_simple_table.html.erb
92
+ - app/views/components/_table.html.erb
93
+ - app/views/components/_toggle_group.html.erb
94
+ - app/views/components/alert/_description.html.erb
95
+ - app/views/components/alert/_title.html.erb
96
+ - app/views/components/breadcrumbs/_ellipsis.html.erb
97
+ - app/views/components/breadcrumbs/_item.html.erb
98
+ - app/views/components/breadcrumbs/_link.html.erb
99
+ - app/views/components/breadcrumbs/_list.html.erb
100
+ - app/views/components/breadcrumbs/_page.html.erb
101
+ - app/views/components/breadcrumbs/_separator.html.erb
102
+ - app/views/components/card/_action.html.erb
103
+ - app/views/components/card/_content.html.erb
104
+ - app/views/components/card/_description.html.erb
105
+ - app/views/components/card/_footer.html.erb
106
+ - app/views/components/card/_header.html.erb
107
+ - app/views/components/card/_title.html.erb
108
+ - app/views/components/dropdown_menu/_content.html.erb
109
+ - app/views/components/dropdown_menu/_group.html.erb
110
+ - app/views/components/dropdown_menu/_item.html.erb
111
+ - app/views/components/dropdown_menu/_label.html.erb
112
+ - app/views/components/dropdown_menu/_separator.html.erb
113
+ - app/views/components/dropdown_menu/_shortcut.html.erb
114
+ - app/views/components/dropdown_menu/_trigger.html.erb
115
+ - app/views/components/empty/_content.html.erb
116
+ - app/views/components/empty/_description.html.erb
117
+ - app/views/components/empty/_header.html.erb
118
+ - app/views/components/empty/_media.html.erb
119
+ - app/views/components/empty/_title.html.erb
120
+ - app/views/components/pagination/_content.html.erb
121
+ - app/views/components/pagination/_ellipsis.html.erb
122
+ - app/views/components/pagination/_item.html.erb
123
+ - app/views/components/pagination/_link.html.erb
124
+ - app/views/components/pagination/_next.html.erb
125
+ - app/views/components/pagination/_previous.html.erb
126
+ - app/views/components/sidebar/_content.html.erb
127
+ - app/views/components/sidebar/_footer.html.erb
128
+ - app/views/components/sidebar/_group.html.erb
129
+ - app/views/components/sidebar/_header.html.erb
130
+ - app/views/components/sidebar/_inset.html.erb
131
+ - app/views/components/sidebar/_menu.html.erb
132
+ - app/views/components/sidebar/_menu_button.html.erb
133
+ - app/views/components/sidebar/_menu_item.html.erb
134
+ - app/views/components/sidebar/_menu_link.html.erb
135
+ - app/views/components/sidebar/_provider.html.erb
136
+ - app/views/components/sidebar/_trigger.html.erb
137
+ - app/views/components/stats/_stats_card.html.erb
138
+ - app/views/components/stats/_stats_grid.html.erb
139
+ - app/views/components/table/_body.html.erb
140
+ - app/views/components/table/_caption.html.erb
141
+ - app/views/components/table/_cell.html.erb
142
+ - app/views/components/table/_footer.html.erb
143
+ - app/views/components/table/_head.html.erb
144
+ - app/views/components/table/_header.html.erb
145
+ - app/views/components/table/_row.html.erb
146
+ - app/views/components/toggle_group/_item.html.erb
147
+ - config/importmap.rb
148
+ - lib/generators/maquina_components/install/USAGE
149
+ - lib/generators/maquina_components/install/install_generator.rb
150
+ - lib/generators/maquina_components/install/templates/maquina_components_helper.rb.tt
151
+ - lib/generators/maquina_components/install/templates/theme.css.tt
36
152
  - lib/maquina-components.rb
37
153
  - lib/maquina_components/engine.rb
38
154
  - lib/maquina_components/version.rb
@@ -58,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
174
  - !ruby/object:Gem::Version
59
175
  version: '0'
60
176
  requirements: []
61
- rubygems_version: 3.6.2
177
+ rubygems_version: 4.0.1
62
178
  specification_version: 4
63
179
  summary: ERB, TailwindCSS, and StimulusJS UI components based on Shadcn/UI.
64
180
  test_files: []