better_ui 0.1.0 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +65 -1
- data/app/assets/javascripts/better_ui/controllers/navbar_controller.js +138 -0
- data/app/assets/javascripts/better_ui/controllers/sidebar_controller.js +211 -0
- data/app/assets/javascripts/better_ui/controllers/toast_controller.js +161 -0
- data/app/assets/javascripts/better_ui/index.js +159 -0
- data/app/assets/javascripts/better_ui/toast_manager.js +77 -0
- data/app/assets/stylesheets/better_ui/application.css +25 -351
- data/app/components/better_ui/application/alert_component.html.erb +27 -0
- data/app/components/better_ui/application/alert_component.rb +196 -0
- data/app/components/better_ui/application/header_component.html.erb +88 -0
- data/app/components/better_ui/application/header_component.rb +188 -0
- data/app/components/better_ui/application/navbar_component.html.erb +294 -0
- data/app/components/better_ui/application/navbar_component.rb +249 -0
- data/app/components/better_ui/application/sidebar_component.html.erb +207 -0
- data/app/components/better_ui/application/sidebar_component.rb +318 -0
- data/app/components/better_ui/application/toast_component.html.erb +35 -0
- data/app/components/better_ui/application/toast_component.rb +188 -0
- data/app/components/better_ui/general/breadcrumb_component.html.erb +39 -0
- data/app/components/better_ui/general/breadcrumb_component.rb +132 -0
- data/app/components/better_ui/general/button_component.html.erb +34 -0
- data/app/components/better_ui/general/button_component.rb +193 -0
- data/app/components/better_ui/general/heading_component.html.erb +25 -0
- data/app/components/better_ui/general/heading_component.rb +142 -0
- data/app/components/better_ui/general/icon_component.html.erb +2 -0
- data/app/components/better_ui/general/icon_component.rb +101 -0
- data/app/components/better_ui/general/panel_component.html.erb +27 -0
- data/app/components/better_ui/general/panel_component.rb +97 -0
- data/app/components/better_ui/general/table_component.html.erb +37 -0
- data/app/components/better_ui/general/table_component.rb +141 -0
- data/app/components/better_ui/theme_helper.rb +169 -0
- data/app/controllers/better_ui/application_controller.rb +1 -0
- data/app/controllers/better_ui/docs_controller.rb +18 -25
- data/app/helpers/better_ui_application_helper.rb +99 -0
- data/app/views/layouts/component_preview.html.erb +32 -0
- data/config/initializers/lookbook.rb +23 -0
- data/config/routes.rb +6 -1
- data/lib/better_ui/engine.rb +24 -1
- data/lib/better_ui/version.rb +1 -1
- metadata +103 -7
- data/app/helpers/better_ui/application_helper.rb +0 -183
- data/app/views/better_ui/docs/component.html.erb +0 -365
- data/app/views/better_ui/docs/index.html.erb +0 -100
- data/app/views/better_ui/docs/show.html.erb +0 -60
- data/app/views/layouts/better_ui/application.html.erb +0 -135
@@ -0,0 +1,169 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BetterUi
|
4
|
+
module ThemeHelper
|
5
|
+
# Colori principali del tema
|
6
|
+
THEME_COLORS = {
|
7
|
+
# Neutrali
|
8
|
+
white: 'bg-white',
|
9
|
+
black: 'bg-black',
|
10
|
+
|
11
|
+
# Colori del tema
|
12
|
+
primary: {
|
13
|
+
light: 'bg-orange-100',
|
14
|
+
default: 'bg-orange-500',
|
15
|
+
dark: 'bg-orange-600',
|
16
|
+
text: 'text-white'
|
17
|
+
},
|
18
|
+
secondary: {
|
19
|
+
light: 'bg-gray-100',
|
20
|
+
default: 'bg-gray-200',
|
21
|
+
dark: 'bg-gray-300',
|
22
|
+
text: 'text-gray-800'
|
23
|
+
},
|
24
|
+
success: {
|
25
|
+
light: 'bg-green-100',
|
26
|
+
default: 'bg-green-500',
|
27
|
+
dark: 'bg-green-600',
|
28
|
+
text: 'text-white'
|
29
|
+
},
|
30
|
+
warning: {
|
31
|
+
light: 'bg-amber-100',
|
32
|
+
default: 'bg-amber-500',
|
33
|
+
dark: 'bg-amber-600',
|
34
|
+
text: 'text-white'
|
35
|
+
},
|
36
|
+
danger: {
|
37
|
+
light: 'bg-red-100',
|
38
|
+
default: 'bg-red-500',
|
39
|
+
dark: 'bg-red-600',
|
40
|
+
text: 'text-white'
|
41
|
+
},
|
42
|
+
info: {
|
43
|
+
light: 'bg-blue-100',
|
44
|
+
default: 'bg-blue-500',
|
45
|
+
dark: 'bg-blue-600',
|
46
|
+
text: 'text-white'
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
# Bordi del tema
|
51
|
+
THEME_BORDERS = {
|
52
|
+
primary: 'border-orange-200',
|
53
|
+
secondary: 'border-gray-200',
|
54
|
+
success: 'border-green-200',
|
55
|
+
warning: 'border-amber-200',
|
56
|
+
danger: 'border-red-200',
|
57
|
+
info: 'border-blue-200'
|
58
|
+
}
|
59
|
+
|
60
|
+
# Effetti hover
|
61
|
+
THEME_HOVER = {
|
62
|
+
primary: 'hover:bg-orange-600',
|
63
|
+
secondary: 'hover:bg-gray-300',
|
64
|
+
success: 'hover:bg-green-600',
|
65
|
+
warning: 'hover:bg-amber-600',
|
66
|
+
danger: 'hover:bg-red-600',
|
67
|
+
info: 'hover:bg-blue-600'
|
68
|
+
}
|
69
|
+
|
70
|
+
# Stili base comuni
|
71
|
+
COMMON_STYLES = {
|
72
|
+
rounded: 'rounded-md',
|
73
|
+
shadow: 'shadow-sm',
|
74
|
+
transitions: 'transition-all duration-200'
|
75
|
+
}
|
76
|
+
|
77
|
+
# Stili per elementi di layout
|
78
|
+
LAYOUT_STYLES = {
|
79
|
+
panel: {
|
80
|
+
base: 'rounded-lg border shadow-sm',
|
81
|
+
header: 'px-4 py-3 border-b',
|
82
|
+
body: 'p-4',
|
83
|
+
footer: 'px-4 py-3 border-t'
|
84
|
+
},
|
85
|
+
table: {
|
86
|
+
container: 'overflow-hidden rounded-md border shadow-sm',
|
87
|
+
header: 'bg-gray-50 text-left text-xs uppercase tracking-wider text-gray-500 font-medium',
|
88
|
+
row: {
|
89
|
+
base: '',
|
90
|
+
hover: 'hover:bg-gray-50',
|
91
|
+
striped: 'even:bg-white odd:bg-gray-50'
|
92
|
+
},
|
93
|
+
cell: 'px-4 py-3 text-sm text-gray-700'
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
# Genera classi per un componente basato su variante
|
98
|
+
def self.generate_component_classes(component_type, variant, options = {})
|
99
|
+
base_classes = []
|
100
|
+
|
101
|
+
case component_type
|
102
|
+
when :button
|
103
|
+
base_classes << 'inline-flex items-center justify-center'
|
104
|
+
base_classes << 'font-medium'
|
105
|
+
base_classes << COMMON_STYLES[:rounded]
|
106
|
+
base_classes << COMMON_STYLES[:transitions]
|
107
|
+
|
108
|
+
if options[:outline]
|
109
|
+
# Versione outline
|
110
|
+
base_classes << 'border-2'
|
111
|
+
base_classes << "border-#{variant}-500"
|
112
|
+
base_classes << "text-#{variant}-500"
|
113
|
+
base_classes << "hover:bg-#{variant}-50"
|
114
|
+
else
|
115
|
+
# Versione piena
|
116
|
+
base_classes << THEME_COLORS.dig(variant.to_sym, :default)&.sub('bg-', '') || "bg-#{variant}-500"
|
117
|
+
base_classes << THEME_COLORS.dig(variant.to_sym, :text) || 'text-white'
|
118
|
+
base_classes << THEME_HOVER[variant.to_sym] || "hover:bg-#{variant}-600"
|
119
|
+
end
|
120
|
+
|
121
|
+
# Dimensione
|
122
|
+
case options[:size]
|
123
|
+
when :sm
|
124
|
+
base_classes << 'px-2.5 py-1.5 text-xs'
|
125
|
+
when :lg
|
126
|
+
base_classes << 'px-6 py-3 text-base'
|
127
|
+
else # :md (default)
|
128
|
+
base_classes << 'px-4 py-2 text-sm'
|
129
|
+
end
|
130
|
+
|
131
|
+
# Disabilitato
|
132
|
+
if options[:disabled]
|
133
|
+
base_classes << 'opacity-50 cursor-not-allowed'
|
134
|
+
end
|
135
|
+
|
136
|
+
# Larghezza piena
|
137
|
+
if options[:full_width]
|
138
|
+
base_classes << 'w-full'
|
139
|
+
end
|
140
|
+
|
141
|
+
when :panel
|
142
|
+
base_classes << LAYOUT_STYLES[:panel][:base]
|
143
|
+
|
144
|
+
# Colore di sfondo in base alla variante
|
145
|
+
if variant.to_sym == :default
|
146
|
+
base_classes << 'bg-white'
|
147
|
+
base_classes << 'border-gray-200'
|
148
|
+
else
|
149
|
+
base_classes << THEME_COLORS.dig(variant.to_sym, :light)&.sub('bg-', '') || "bg-#{variant}-50"
|
150
|
+
base_classes << THEME_BORDERS[variant.to_sym] || "border-#{variant}-200"
|
151
|
+
end
|
152
|
+
|
153
|
+
when :table
|
154
|
+
base_classes << 'min-w-full bg-white'
|
155
|
+
|
156
|
+
# Bordi
|
157
|
+
if options[:bordered]
|
158
|
+
base_classes << 'border-collapse'
|
159
|
+
base_classes << (THEME_BORDERS[variant.to_sym] || 'border-gray-200')
|
160
|
+
end
|
161
|
+
|
162
|
+
# Classi personalizzate
|
163
|
+
base_classes << options[:classes] if options[:classes].present?
|
164
|
+
end
|
165
|
+
|
166
|
+
base_classes.compact.join(' ')
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
@@ -1,41 +1,34 @@
|
|
1
1
|
module BetterUi
|
2
2
|
class DocsController < ApplicationController
|
3
3
|
def index
|
4
|
-
|
5
|
-
{ name: 'Button', path: better_ui.docs_component_path('button') },
|
6
|
-
{ name: 'Alert', path: better_ui.docs_component_path('alert') },
|
7
|
-
{ name: 'Card', path: better_ui.docs_component_path('card') },
|
8
|
-
{ name: 'Modal', path: better_ui.docs_component_path('modal') },
|
9
|
-
{ name: 'Tabs', path: better_ui.docs_component_path('tabs') },
|
10
|
-
{ name: 'Form Elements', path: better_ui.docs_component_path('form_elements') }
|
11
|
-
]
|
4
|
+
# Pagina principale della documentazione
|
12
5
|
end
|
13
6
|
|
14
7
|
def show
|
15
|
-
|
8
|
+
# Verifica se esiste una vista con il nome richiesto
|
9
|
+
page = params[:page]
|
10
|
+
valid_pages = %w[introduction installation customization components/buttons components/icons components/panel components/table]
|
16
11
|
|
17
|
-
if
|
18
|
-
|
12
|
+
if valid_pages.include?(page)
|
13
|
+
if page.start_with?('components/')
|
14
|
+
# Per i componenti, rendiamo esplicitamente il template nella directory corretta
|
15
|
+
component_name = page.split('/').last
|
16
|
+
render template: "better_ui/docs/components/#{component_name}"
|
17
|
+
else
|
18
|
+
render page
|
19
|
+
end
|
19
20
|
else
|
20
|
-
|
21
|
+
# Pagina non trovata
|
22
|
+
render plain: "Pagina non trovata", status: :not_found
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def component
|
27
|
+
# Gestisce le rotte tipo /better_ui/docs/components/button
|
25
28
|
component_name = params[:component]
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
if File.exist?(doc_file)
|
31
|
-
@content = File.read(doc_file)
|
32
|
-
else
|
33
|
-
@content = "# Componente non trovato\nLa documentazione per il componente '#{component_name}' non è stata trovata."
|
34
|
-
end
|
35
|
-
|
36
|
-
# Decidere quali esempi mostrare in base al componente
|
37
|
-
@component_name = component_name
|
38
|
-
render :component
|
29
|
+
render template: "better_ui/docs/components/#{component_name}"
|
30
|
+
rescue ActionView::MissingTemplate
|
31
|
+
render plain: "Componente non trovato", status: :not_found
|
39
32
|
end
|
40
33
|
end
|
41
34
|
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module BetterUi
|
2
|
+
module ApplicationHelper
|
3
|
+
# Render markdown
|
4
|
+
def better_ui_markdown(text)
|
5
|
+
return '' if text.blank?
|
6
|
+
|
7
|
+
renderer = Redcarpet::Render::HTML.new(
|
8
|
+
filter_html: false,
|
9
|
+
hard_wrap: true,
|
10
|
+
link_attributes: { target: '_blank', rel: 'noopener noreferrer' }
|
11
|
+
)
|
12
|
+
|
13
|
+
markdown = Redcarpet::Markdown.new(
|
14
|
+
renderer,
|
15
|
+
autolink: true,
|
16
|
+
tables: true,
|
17
|
+
fenced_code_blocks: true,
|
18
|
+
strikethrough: true,
|
19
|
+
superscript: true,
|
20
|
+
underline: true,
|
21
|
+
highlight: true,
|
22
|
+
quote: true,
|
23
|
+
footnotes: true
|
24
|
+
)
|
25
|
+
|
26
|
+
rendered_html = markdown.render(text).html_safe
|
27
|
+
|
28
|
+
# Applica classi Tailwind agli elementi HTML generati dal markdown
|
29
|
+
rendered_html
|
30
|
+
.gsub(/<h1>/i, '<h1 class="text-3xl font-bold mb-6 pb-2 border-b border-gray-200">')
|
31
|
+
.gsub(/<h2>/i, '<h2 class="text-2xl font-semibold mt-8 mb-4 pb-2 border-b border-gray-100">')
|
32
|
+
.gsub(/<h3>/i, '<h3 class="text-xl font-medium mt-6 mb-3">')
|
33
|
+
.gsub(/<pre>/i, '<pre class="bg-gray-100 p-4 rounded-md overflow-x-auto my-4">')
|
34
|
+
.gsub(/<code>/i, '<code class="font-mono">')
|
35
|
+
.gsub(/<ul>/i, '<ul class="ml-6 mb-4">')
|
36
|
+
.gsub(/<ol>/i, '<ol class="ml-6 mb-4">')
|
37
|
+
.gsub(/<p>/i, '<p class="mb-4 leading-relaxed">')
|
38
|
+
.gsub(/<a /i, '<a class="text-blue-600 no-underline hover:underline" ')
|
39
|
+
.gsub(/<blockquote>/i, '<blockquote class="border-l-4 border-gray-200 pl-4 ml-0 text-gray-600">')
|
40
|
+
.html_safe
|
41
|
+
end
|
42
|
+
|
43
|
+
# Determina se il path corrente corrisponde a quello dato
|
44
|
+
def current_page?(path)
|
45
|
+
request.path == path
|
46
|
+
end
|
47
|
+
|
48
|
+
# Helper per i componenti General
|
49
|
+
def better_ui_general_button(label = nil, **options)
|
50
|
+
render BetterUi::General::ButtonComponent.new(label: label, **options)
|
51
|
+
end
|
52
|
+
|
53
|
+
def better_ui_general_panel(**options, &block)
|
54
|
+
render BetterUi::General::PanelComponent.new(**options), &block
|
55
|
+
end
|
56
|
+
|
57
|
+
def better_ui_general_table(**options)
|
58
|
+
render BetterUi::General::TableComponent.new(**options)
|
59
|
+
end
|
60
|
+
|
61
|
+
def better_ui_general_icon(name, **options)
|
62
|
+
render BetterUi::General::IconComponent.new(name: name, **options)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Helper per i componenti Application
|
66
|
+
def better_ui_application_button(label = nil, **options)
|
67
|
+
render BetterUi::Application::ButtonComponent.new(label: label, **options)
|
68
|
+
end
|
69
|
+
|
70
|
+
def better_ui_application_panel(**options, &block)
|
71
|
+
render BetterUi::Application::PanelComponent.new(**options), &block
|
72
|
+
end
|
73
|
+
|
74
|
+
def better_ui_application_table(**options)
|
75
|
+
render BetterUi::Application::TableComponent.new(**options)
|
76
|
+
end
|
77
|
+
|
78
|
+
def better_ui_application_icon(name, **options)
|
79
|
+
render BetterUi::Application::IconComponent.new(name: name, **options)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Helper per i componenti Website
|
83
|
+
def better_ui_website_button(label = nil, **options)
|
84
|
+
render BetterUi::Website::ButtonComponent.new(label: label, **options)
|
85
|
+
end
|
86
|
+
|
87
|
+
def better_ui_website_panel(**options, &block)
|
88
|
+
render BetterUi::Website::PanelComponent.new(**options), &block
|
89
|
+
end
|
90
|
+
|
91
|
+
def better_ui_website_table(**options)
|
92
|
+
render BetterUi::Website::TableComponent.new(**options)
|
93
|
+
end
|
94
|
+
|
95
|
+
def better_ui_website_icon(name, **options)
|
96
|
+
render BetterUi::Website::IconComponent.new(name: name, **options)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html style="background-color: <%= params.dig(:lookbook, :display, :bg_color) || "white" %>">
|
3
|
+
<head>
|
4
|
+
<title><%= content_for(:title) || "BetterUI" %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<meta name="apple-mobile-web-app-capable" content="yes">
|
7
|
+
<meta name="mobile-web-app-capable" content="yes">
|
8
|
+
<%= csrf_meta_tags %>
|
9
|
+
<%= csp_meta_tag %>
|
10
|
+
|
11
|
+
<%= yield :head %>
|
12
|
+
|
13
|
+
<link rel="icon" href="/icon.png" type="image/png">
|
14
|
+
<link rel="icon" href="/icon.svg" type="image/svg+xml">
|
15
|
+
<link rel="apple-touch-icon" href="/icon.png">
|
16
|
+
|
17
|
+
<%# Includes all stylesheet files in app/assets/stylesheets %>
|
18
|
+
<%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %>
|
19
|
+
<%= stylesheet_link_tag "better_ui/application" %>
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body class="bg-white text-gray-800">
|
23
|
+
<main class="min-h-screen p-8 bg-yellow-500">
|
24
|
+
<div style="
|
25
|
+
margin-left: auto;
|
26
|
+
margin-right: auto;
|
27
|
+
max-width: <%= params.dig(:lookbook, :display, :max_width) || "100%" %>
|
28
|
+
">
|
29
|
+
<%= yield %> <!-- rendered preview will be injected here -->
|
30
|
+
</main>
|
31
|
+
</body>
|
32
|
+
</html>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
if defined?(Lookbook)
|
2
|
+
Lookbook.configure do |config|
|
3
|
+
# Configura la directory delle preview dei componenti
|
4
|
+
config.preview_paths << BetterUi::Engine.root.join('test/components/previews')
|
5
|
+
|
6
|
+
# Configura il titolo della pagina Lookbook
|
7
|
+
config.page_title = 'BetterUI - Catalogo Componenti'
|
8
|
+
|
9
|
+
# Configura i tag principali
|
10
|
+
config.preview_display_names = {
|
11
|
+
'BetterUi::General' => 'Componenti Generali',
|
12
|
+
'BetterUi::Application' => 'Componenti Applicazione',
|
13
|
+
'BetterUi::Website' => 'Componenti Sito Web'
|
14
|
+
}
|
15
|
+
|
16
|
+
# Per supportare i componenti ViewComponent
|
17
|
+
config.listen_for_changes = {
|
18
|
+
component: 'app/components/**/*.rb',
|
19
|
+
preview: 'test/components/previews/**/*_preview.rb',
|
20
|
+
template: 'app/components/**/*.erb'
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
data/config/routes.rb
CHANGED
@@ -5,6 +5,11 @@ BetterUi::Engine.routes.draw do
|
|
5
5
|
# Route per le pagine di documentazione generiche
|
6
6
|
get 'docs/:page', to: 'docs#show', as: :docs_page
|
7
7
|
|
8
|
-
# Route per
|
8
|
+
# Route specifica per i componenti
|
9
9
|
get 'docs/components/:component', to: 'docs#component', as: :docs_component
|
10
|
+
|
11
|
+
# Montaggio di Lookbook per lo sviluppo e il test
|
12
|
+
if Rails.env.development? || Rails.env.test?
|
13
|
+
mount Lookbook::Engine, at: "/lookbook"
|
14
|
+
end
|
10
15
|
end
|
data/lib/better_ui/engine.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'view_component'
|
2
2
|
require 'redcarpet'
|
3
3
|
require 'tailwindcss-rails'
|
4
|
+
require 'coderay'
|
5
|
+
require 'font-awesome-sass'
|
4
6
|
|
5
7
|
module BetterUi
|
6
8
|
class Engine < ::Rails::Engine
|
@@ -12,8 +14,13 @@ module BetterUi
|
|
12
14
|
app.config.assets.paths << root.join('app', 'assets', 'images')
|
13
15
|
end
|
14
16
|
|
17
|
+
# Assicuriamo che gli helper siano correttamente caricati
|
18
|
+
config.autoload_paths << root.join('app', 'helpers')
|
19
|
+
|
15
20
|
# Configurazione per rendere disponibili i componenti all'applicazione host
|
16
21
|
initializer 'better_ui.view_helpers' do
|
22
|
+
require_relative '../../app/helpers/better_ui_application_helper'
|
23
|
+
|
17
24
|
ActiveSupport.on_load :action_controller do
|
18
25
|
helper BetterUi::ApplicationHelper
|
19
26
|
end
|
@@ -24,6 +31,22 @@ module BetterUi
|
|
24
31
|
end
|
25
32
|
|
26
33
|
# Configurazione per ViewComponent
|
27
|
-
config.view_component.preview_paths << root.join('
|
34
|
+
config.view_component.preview_paths << root.join('test', 'components', 'previews')
|
35
|
+
|
36
|
+
# Configurazione per Lookbook in sviluppo e test
|
37
|
+
initializer 'better_ui.lookbook' do
|
38
|
+
if defined?(Lookbook) && (Rails.env.development? || Rails.env.test?)
|
39
|
+
# Carica esplicitamente le dipendenze per le funzionalità avanzate di Lookbook
|
40
|
+
begin
|
41
|
+
require 'listen'
|
42
|
+
require 'action_cable'
|
43
|
+
rescue LoadError => e
|
44
|
+
# Log che le dipendenze opzionali non sono disponibili
|
45
|
+
puts "NOTA: Alcune funzionalità avanzate di Lookbook potrebbero non essere disponibili: #{e.message}"
|
46
|
+
end
|
47
|
+
|
48
|
+
config.lookbook = Lookbook
|
49
|
+
end
|
50
|
+
end
|
28
51
|
end
|
29
52
|
end
|
data/lib/better_ui/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alessiobussolari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coderay
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.1'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: font-awesome-sass
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 6.5.1
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 6.5.1
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: sqlite3
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +122,48 @@ dependencies:
|
|
94
122
|
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: lookbook
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: listen
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: actioncable
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
97
167
|
description: Una gem Rails che funziona come engine montabile contenente componenti
|
98
168
|
UI riutilizzabili e pagine di documentazione
|
99
169
|
email:
|
@@ -105,17 +175,43 @@ files:
|
|
105
175
|
- MIT-LICENSE
|
106
176
|
- README.md
|
107
177
|
- Rakefile
|
178
|
+
- app/assets/javascripts/better_ui/controllers/navbar_controller.js
|
179
|
+
- app/assets/javascripts/better_ui/controllers/sidebar_controller.js
|
180
|
+
- app/assets/javascripts/better_ui/controllers/toast_controller.js
|
181
|
+
- app/assets/javascripts/better_ui/index.js
|
182
|
+
- app/assets/javascripts/better_ui/toast_manager.js
|
108
183
|
- app/assets/stylesheets/better_ui/application.css
|
184
|
+
- app/components/better_ui/application/alert_component.html.erb
|
185
|
+
- app/components/better_ui/application/alert_component.rb
|
186
|
+
- app/components/better_ui/application/header_component.html.erb
|
187
|
+
- app/components/better_ui/application/header_component.rb
|
188
|
+
- app/components/better_ui/application/navbar_component.html.erb
|
189
|
+
- app/components/better_ui/application/navbar_component.rb
|
190
|
+
- app/components/better_ui/application/sidebar_component.html.erb
|
191
|
+
- app/components/better_ui/application/sidebar_component.rb
|
192
|
+
- app/components/better_ui/application/toast_component.html.erb
|
193
|
+
- app/components/better_ui/application/toast_component.rb
|
194
|
+
- app/components/better_ui/general/breadcrumb_component.html.erb
|
195
|
+
- app/components/better_ui/general/breadcrumb_component.rb
|
196
|
+
- app/components/better_ui/general/button_component.html.erb
|
197
|
+
- app/components/better_ui/general/button_component.rb
|
198
|
+
- app/components/better_ui/general/heading_component.html.erb
|
199
|
+
- app/components/better_ui/general/heading_component.rb
|
200
|
+
- app/components/better_ui/general/icon_component.html.erb
|
201
|
+
- app/components/better_ui/general/icon_component.rb
|
202
|
+
- app/components/better_ui/general/panel_component.html.erb
|
203
|
+
- app/components/better_ui/general/panel_component.rb
|
204
|
+
- app/components/better_ui/general/table_component.html.erb
|
205
|
+
- app/components/better_ui/general/table_component.rb
|
206
|
+
- app/components/better_ui/theme_helper.rb
|
109
207
|
- app/controllers/better_ui/application_controller.rb
|
110
208
|
- app/controllers/better_ui/docs_controller.rb
|
111
|
-
- app/helpers/
|
209
|
+
- app/helpers/better_ui_application_helper.rb
|
112
210
|
- app/jobs/better_ui/application_job.rb
|
113
211
|
- app/mailers/better_ui/application_mailer.rb
|
114
212
|
- app/models/better_ui/application_record.rb
|
115
|
-
- app/views/
|
116
|
-
-
|
117
|
-
- app/views/better_ui/docs/show.html.erb
|
118
|
-
- app/views/layouts/better_ui/application.html.erb
|
213
|
+
- app/views/layouts/component_preview.html.erb
|
214
|
+
- config/initializers/lookbook.rb
|
119
215
|
- config/routes.rb
|
120
216
|
- lib/better_ui.rb
|
121
217
|
- lib/better_ui/engine.rb
|