better_ui 0.4.0 → 0.5.1

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.

Potentially problematic release.


This version of better_ui might be problematic. Click here for more details.

Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +141 -189
  3. data/app/assets/stylesheets/better_ui/_base.scss +9 -0
  4. data/app/assets/stylesheets/better_ui/_components.scss +2 -0
  5. data/app/assets/stylesheets/better_ui/_utilities.scss +14 -0
  6. data/app/assets/stylesheets/better_ui/application.css +3 -1
  7. data/app/assets/stylesheets/better_ui/components/_avatar.scss +200 -0
  8. data/app/assets/stylesheets/better_ui/components/_badge.scss +154 -0
  9. data/app/assets/stylesheets/better_ui/components/_breadcrumb.scss +106 -0
  10. data/app/assets/stylesheets/better_ui/components/_button.scss +105 -0
  11. data/app/assets/stylesheets/better_ui/components/_card.scss +60 -0
  12. data/app/assets/stylesheets/better_ui/components/_heading.scss +81 -0
  13. data/app/assets/stylesheets/better_ui/components/_icon.scss +134 -0
  14. data/app/assets/stylesheets/better_ui/components/_index.scss +17 -0
  15. data/app/assets/stylesheets/better_ui/components/_link.scss +100 -0
  16. data/app/assets/stylesheets/better_ui/components/_panel.scss +104 -0
  17. data/app/assets/stylesheets/better_ui/components/_spinner.scss +129 -0
  18. data/app/assets/stylesheets/better_ui/components/_table.scss +156 -0
  19. data/app/assets/stylesheets/better_ui/components/_variables.scss +1 -0
  20. data/app/assets/stylesheets/better_ui.scss +4 -0
  21. data/app/components/better_ui/application/alert_component.html.erb +1 -1
  22. data/app/components/better_ui/application/alert_component.rb +95 -89
  23. data/app/components/better_ui/application/card_component.html.erb +24 -0
  24. data/app/components/better_ui/application/card_component.rb +53 -0
  25. data/app/components/better_ui/application/card_container_component.html.erb +8 -0
  26. data/app/components/better_ui/application/card_container_component.rb +14 -0
  27. data/app/components/better_ui/application/toast_component.rb +92 -57
  28. data/app/components/better_ui/general/avatar_component.html.erb +19 -0
  29. data/app/components/better_ui/general/avatar_component.rb +171 -0
  30. data/app/components/better_ui/general/badge_component.html.erb +19 -0
  31. data/app/components/better_ui/general/badge_component.rb +135 -0
  32. data/app/components/better_ui/general/breadcrumb_component.html.erb +7 -31
  33. data/app/components/better_ui/general/breadcrumb_component.rb +64 -66
  34. data/app/components/better_ui/general/button_component.html.erb +6 -6
  35. data/app/components/better_ui/general/button_component.rb +62 -95
  36. data/app/components/better_ui/general/heading_component.html.erb +1 -25
  37. data/app/components/better_ui/general/heading_component.rb +20 -113
  38. data/app/components/better_ui/general/icon_component.rb +37 -61
  39. data/app/components/better_ui/general/link_component.html.erb +17 -0
  40. data/app/components/better_ui/general/link_component.rb +132 -0
  41. data/app/components/better_ui/general/panel_component.rb +51 -56
  42. data/app/components/better_ui/general/spinner_component.html.erb +15 -0
  43. data/app/components/better_ui/general/spinner_component.rb +79 -0
  44. data/app/components/better_ui/general/table_component.html.erb +56 -20
  45. data/app/components/better_ui/general/table_component.rb +89 -87
  46. data/app/helpers/better_ui/general/components/avatar_helper.rb +17 -0
  47. data/app/helpers/better_ui/general/components/badge_helper.rb +17 -0
  48. data/app/helpers/better_ui/general/components/breadcrumb_helper.rb +17 -0
  49. data/app/helpers/better_ui/general/components/button_helper.rb +17 -0
  50. data/app/helpers/better_ui/general/components/heading_helper.rb +17 -0
  51. data/app/helpers/better_ui/general/components/icon_helper.rb +17 -0
  52. data/app/helpers/better_ui/general/components/link_helper.rb +17 -0
  53. data/app/helpers/better_ui/general/components/panel_helper.rb +16 -0
  54. data/app/helpers/better_ui/general/components/spinner_helper.rb +17 -0
  55. data/app/helpers/better_ui/general/components/table_helper.rb +17 -0
  56. data/app/helpers/better_ui/general_helper.rb +15 -0
  57. data/app/helpers/better_ui_helper.rb +12 -0
  58. data/app/views/components/better_ui/general/table/_custom_body_row.html.erb +17 -0
  59. data/app/views/components/better_ui/general/table/_custom_footer_rows.html.erb +17 -0
  60. data/app/views/components/better_ui/general/table/_custom_header_rows.html.erb +12 -0
  61. data/config/routes.rb +2 -13
  62. data/lib/better_ui/engine.rb +66 -16
  63. data/lib/better_ui/version.rb +1 -1
  64. data/lib/better_ui.rb +12 -0
  65. data/lib/generators/better_ui/install_generator.rb +103 -0
  66. data/lib/generators/better_ui/stylesheet_generator.rb +159 -0
  67. data/lib/generators/better_ui/templates/README +125 -0
  68. data/lib/generators/better_ui/templates/components/_avatar.scss +200 -0
  69. data/lib/generators/better_ui/templates/components/_badge.scss +154 -0
  70. data/lib/generators/better_ui/templates/components/_breadcrumb.scss +106 -0
  71. data/lib/generators/better_ui/templates/components/_button.scss +109 -0
  72. data/lib/generators/better_ui/templates/components/_card.scss +60 -0
  73. data/lib/generators/better_ui/templates/components/_heading.scss +81 -0
  74. data/lib/generators/better_ui/templates/components/_icon.scss +134 -0
  75. data/lib/generators/better_ui/templates/components/_index.scss +17 -0
  76. data/lib/generators/better_ui/templates/components/_link.scss +100 -0
  77. data/lib/generators/better_ui/templates/components/_panel.scss +104 -0
  78. data/lib/generators/better_ui/templates/components/_spinner.scss +129 -0
  79. data/lib/generators/better_ui/templates/components/_table.scss +156 -0
  80. data/lib/generators/better_ui/templates/components/_variables.scss +0 -0
  81. data/lib/generators/better_ui/templates/components_stylesheet.scss +35 -0
  82. data/lib/generators/better_ui/templates/index.scss +18 -0
  83. data/lib/generators/better_ui/templates/initializer.rb +41 -0
  84. metadata +120 -49
  85. data/app/assets/javascripts/better_ui/controllers/navbar_controller.js +0 -138
  86. data/app/assets/javascripts/better_ui/controllers/sidebar_controller.js +0 -211
  87. data/app/assets/javascripts/better_ui/controllers/toast_controller.js +0 -161
  88. data/app/assets/javascripts/better_ui/index.js +0 -159
  89. data/app/assets/javascripts/better_ui/toast_manager.js +0 -77
  90. data/app/components/better_ui/theme_helper.rb +0 -169
  91. data/app/controllers/better_ui/docs_controller.rb +0 -34
  92. data/app/helpers/better_ui_application_helper.rb +0 -99
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module AvatarHelper
5
+ def bui_avatar(image = nil, **options)
6
+ render BetterUi::General::AvatarComponent.new(
7
+ image: image,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_avatar, :bui_avatar
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module BadgeHelper
5
+ def bui_badge(label = nil, **options)
6
+ render BetterUi::General::BadgeComponent.new(
7
+ label: label,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_badge, :bui_badge
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module BreadcrumbHelper
5
+ def bui_breadcrumb(items = nil, **options)
6
+ render BetterUi::General::BreadcrumbComponent.new(
7
+ items: items,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_breadcrumb, :bui_breadcrumb
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module ButtonHelper
5
+ def bui_button(label = nil, **options)
6
+ render BetterUi::General::ButtonComponent.new(
7
+ label: label,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_button, :bui_button
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module HeadingHelper
5
+ def bui_heading(title = nil, **options)
6
+ render BetterUi::General::HeadingComponent.new(
7
+ title: title,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_heading, :bui_heading
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module IconHelper
5
+ def bui_icon(name = nil, **options)
6
+ render BetterUi::General::IconComponent.new(
7
+ name: name,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_icon, :bui_icon
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module LinkHelper
5
+ def bui_link(label = nil, **options)
6
+ render BetterUi::General::LinkComponent.new(
7
+ label: label,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_link, :bui_link
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module PanelHelper
5
+ def bui_panel(**options, &block)
6
+ render BetterUi::General::PanelComponent.new(
7
+ **options
8
+ ), &block
9
+ end
10
+
11
+ # Supporto per la sintassi originale per compatibilità
12
+ alias_method :better_ui_general_panel, :bui_panel
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module SpinnerHelper
5
+ def bui_spinner(label = nil, **options)
6
+ render BetterUi::General::SpinnerComponent.new(
7
+ label: label,
8
+ **options
9
+ )
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_spinner, :bui_spinner
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module BetterUi
2
+ module General
3
+ module Components
4
+ module TableHelper
5
+ def bui_table(data = nil, **options, &block)
6
+ render BetterUi::General::TableComponent.new(
7
+ data: data,
8
+ **options
9
+ ), &block
10
+ end
11
+
12
+ # Supporto per la sintassi originale per compatibilità
13
+ alias_method :better_ui_general_table, :bui_table
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module BetterUi
2
+ module GeneralHelper
3
+ # Inclusione di tutti i componenti general
4
+ include BetterUi::General::Components::ButtonHelper
5
+ include BetterUi::General::Components::IconHelper
6
+ include BetterUi::General::Components::LinkHelper
7
+ include BetterUi::General::Components::BadgeHelper
8
+ include BetterUi::General::Components::AvatarHelper
9
+ include BetterUi::General::Components::TableHelper
10
+ include BetterUi::General::Components::SpinnerHelper
11
+ include BetterUi::General::Components::HeadingHelper
12
+ include BetterUi::General::Components::PanelHelper
13
+ include BetterUi::General::Components::BreadcrumbHelper
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module BetterUi
2
+ # Includi esplicitamente il GeneralHelper
3
+ require_relative 'better_ui/general_helper'
4
+
5
+ module Helper
6
+ # Estendi il modulo con ActiveSupport::Concern per funzionalità helper
7
+ extend ActiveSupport::Concern
8
+
9
+ # Includi gli helper disponibili
10
+ include BetterUi::GeneralHelper
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ <tr class="<%= component.tr_classes(index) %>">
2
+ <% headers.each_with_index do |header, cell_index| %>
3
+ <td class="<%= component.td_classes %>">
4
+ <% cell_value = component.get_cell_value(row, header) %>
5
+ <% if cell_index == 0 %>
6
+ <div class="flex items-center">
7
+ <div class="w-8 h-8 rounded-full bg-blue-100 mr-2 flex items-center justify-center text-blue-700">
8
+ <%= cell_value.to_s.first&.upcase || 'N/A' %>
9
+ </div>
10
+ <%= cell_value %>
11
+ </div>
12
+ <% else %>
13
+ <%= cell_value %>
14
+ <% end %>
15
+ </td>
16
+ <% end %>
17
+ </tr>
@@ -0,0 +1,17 @@
1
+ <tr>
2
+ <% footer.each_with_index do |value, index| %>
3
+ <td class="<%= component.tf_classes %>">
4
+ <% if index == 0 %>
5
+ <div class="flex items-center">
6
+ <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
7
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2
8
+ 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path>
9
+ </svg>
10
+ <strong><%= value %></strong>
11
+ </div>
12
+ <% else %>
13
+ <%= value %>
14
+ <% end %>
15
+ </td>
16
+ <% end %>
17
+ </tr>
@@ -0,0 +1,12 @@
1
+ <tr>
2
+ <% headers.each do |header| %>
3
+ <th class="<%= component.th_classes %>">
4
+ <div class="flex items-center justify-between">
5
+ <%= header.to_s.humanize %>
6
+ <svg class="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
7
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
8
+ </svg>
9
+ </div>
10
+ </th>
11
+ <% end %>
12
+ </tr>
data/config/routes.rb CHANGED
@@ -1,15 +1,4 @@
1
1
  BetterUi::Engine.routes.draw do
2
- # Route principale per la documentazione
3
- root to: 'docs#index'
4
-
5
- # Route per le pagine di documentazione generiche
6
- get 'docs/:page', to: 'docs#show', as: :docs_page
7
-
8
- # Route specifica per i componenti
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
2
+ # Montaggio di Lookbook come root
3
+ mount Lookbook::Engine, at: "/"
15
4
  end
@@ -3,49 +3,99 @@ require 'redcarpet'
3
3
  require 'tailwindcss-rails'
4
4
  require 'coderay'
5
5
  require 'font-awesome-sass'
6
+ begin
7
+ require 'lookbook'
8
+ rescue LoadError
9
+ # Lookbook non è richiesto, è una dipendenza opzionale
10
+ end
11
+ begin
12
+ require 'listen'
13
+ rescue LoadError
14
+ # Listen non è richiesto, è una dipendenza opzionale
15
+ end
16
+ begin
17
+ require 'action_cable'
18
+ rescue LoadError
19
+ # ActionCable non è richiesto, è una dipendenza opzionale
20
+ end
6
21
 
7
22
  module BetterUi
23
+ # Engine Rails per Better UI
24
+ # Gestisce l'isolamento del namespace, le dipendenze, gli asset e le configurazioni
8
25
  class Engine < ::Rails::Engine
9
26
  isolate_namespace BetterUi
10
27
 
11
28
  # Configurazione per rendere disponibili gli assets all'applicazione host
12
29
  initializer 'better_ui.assets' do |app|
30
+ # Aggiungi i percorsi asset
13
31
  app.config.assets.paths << root.join('app', 'assets', 'stylesheets')
14
32
  app.config.assets.paths << root.join('app', 'assets', 'images')
33
+ app.config.assets.paths << root.join('app', 'assets', 'fonts')
34
+
35
+ # Aggiungi i file SCSS e CSS alla precompilazione
36
+ if app.config.respond_to?(:assets)
37
+ app.config.assets.precompile += %w(
38
+ better_ui/application.css
39
+ better_ui/components/*.css
40
+ better_ui/components/**/*.css
41
+ better_ui/components/index.css
42
+ )
43
+ end
44
+
45
+ # Configurazione per Propshaft se disponibile
46
+ if defined?(Propshaft) && app.config.respond_to?(:asset_host)
47
+ app.config.asset_host = app.config.asset_host
48
+ end
15
49
  end
16
50
 
17
51
  # Assicuriamo che gli helper siano correttamente caricati
18
52
  config.autoload_paths << root.join('app', 'helpers')
53
+ config.eager_load_paths << root.join('app', 'helpers')
19
54
 
20
- # Configurazione per rendere disponibili i componenti all'applicazione host
21
- initializer 'better_ui.view_helpers' do
22
- require_relative '../../app/helpers/better_ui_application_helper'
55
+ # Caricamento dei componenti helper
56
+ initializer 'better_ui.load_helpers', before: :load_config_initializers do
57
+ # Carica prima i componenti singoli
58
+ Dir.glob(root.join('app/helpers/better_ui/general/components/*.rb')).sort.each do |component|
59
+ require component
60
+ end
23
61
 
62
+ # Poi carica il general_helper che li unisce tutti
63
+ require_relative '../../app/helpers/better_ui/general_helper' if File.exist?(root.join('app/helpers/better_ui/general_helper.rb'))
64
+
65
+ # Infine carica il modulo principale
66
+ require_relative '../../app/helpers/better_ui_helper' if File.exist?(root.join('app/helpers/better_ui_helper.rb'))
67
+ end
68
+
69
+ # Configurazione per rendere disponibili i componenti all'applicazione host
70
+ initializer 'better_ui.view_helpers' do
24
71
  ActiveSupport.on_load :action_controller do
25
- helper BetterUi::ApplicationHelper
72
+ helper BetterUi::Helper if defined?(BetterUi::Helper)
26
73
  end
27
74
 
28
75
  ActiveSupport.on_load :action_view do
29
- include BetterUi::ApplicationHelper
76
+ include BetterUi::Helper if defined?(BetterUi::Helper)
30
77
  end
31
78
  end
32
79
 
33
80
  # Configurazione per ViewComponent
81
+ config.view_component.preview_paths ||= []
34
82
  config.view_component.preview_paths << root.join('test', 'components', 'previews')
35
83
 
36
84
  # 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}"
85
+ if defined?(Lookbook)
86
+ initializer 'better_ui.lookbook' do
87
+ if Rails.env.development? || Rails.env.test?
88
+ config.lookbook = Lookbook
89
+ end
90
+ end
91
+ end
92
+
93
+ # Configurazione per l'uso personalizzato dei componenti
94
+ initializer 'better_ui.custom_configuration', before: :load_config_initializers do |app|
95
+ app.config.to_prepare do
96
+ BetterUi.configure do |config|
97
+ # Configurazione di default, può essere sovrascritta dall'applicazione host
46
98
  end
47
-
48
- config.lookbook = Lookbook
49
99
  end
50
100
  end
51
101
  end
@@ -1,3 +1,3 @@
1
1
  module BetterUi
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.1"
3
3
  end
data/lib/better_ui.rb CHANGED
@@ -21,5 +21,17 @@ module BetterUi
21
21
  def configure
22
22
  yield(configuration) if block_given?
23
23
  end
24
+
25
+ # Metodo utile per accedere al percorso degli stilesheets
26
+ def stylesheets_path
27
+ File.join(File.dirname(__FILE__), '..', 'app', 'assets', 'stylesheets')
28
+ end
24
29
  end
25
30
  end
31
+
32
+ # Caricamento dei generator
33
+ require 'rails/generators'
34
+ if defined?(Rails::Generators)
35
+ require 'generators/better_ui/stylesheet_generator'
36
+ require 'generators/better_ui/install_generator'
37
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BetterUi
4
+ module Generators
5
+ # Generatore per l'installazione di Better UI in un'applicazione Rails
6
+ #
7
+ # Questo generatore:
8
+ # 1. Aggiunge le dipendenze necessarie
9
+ # 2. Monta l'engine nelle routes
10
+ # 3. Aggiunge gli asset all'applicazione
11
+ # 4. Crea un file di configurazione initializer
12
+ # 5. Genera i file di stile personalizzabili (opzionalmente)
13
+ class InstallGenerator < Rails::Generators::Base
14
+ source_root File.expand_path('templates', __dir__)
15
+
16
+ desc "Installa Better UI nell'applicazione Rails"
17
+
18
+ class_option :skip_routes, type: :boolean, default: false,
19
+ desc: "Salta l'aggiunta del mount engine nelle routes"
20
+ class_option :skip_stylesheets, type: :boolean, default: false,
21
+ desc: "Salta la generazione dei file di stile personalizzabili"
22
+ class_option :skip_config, type: :boolean, default: false,
23
+ desc: "Salta la creazione del file di configurazione"
24
+
25
+ def mount_engine
26
+ return if options[:skip_routes]
27
+
28
+ route_file = "config/routes.rb"
29
+
30
+ if File.exist?(route_file)
31
+ mount_code = " mount BetterUi::Engine => '/better_ui'"
32
+
33
+ append_to_file route_file, injectible_routes(mount_code)
34
+
35
+ say "Engine di Better UI montato in #{route_file}", :green
36
+ else
37
+ say "File routes.rb non trovato. Salta il montaggio dell'engine.", :yellow
38
+ end
39
+ end
40
+
41
+ def copy_initializer
42
+ return if options[:skip_config]
43
+
44
+ template "initializer.rb", "config/initializers/better_ui.rb"
45
+ say "File di configurazione creato in config/initializers/better_ui.rb", :green
46
+ end
47
+
48
+ def add_assets
49
+ application_css = "app/assets/stylesheets/application.css"
50
+ application_scss = "app/assets/stylesheets/application.scss"
51
+
52
+ file_to_update = if File.exist?(application_scss)
53
+ application_scss
54
+ elsif File.exist?(application_css)
55
+ application_css
56
+ else
57
+ nil
58
+ end
59
+
60
+ if file_to_update
61
+ if file_to_update.end_with?('.css')
62
+ inject_into_file file_to_update, " *= require better_ui/application\n", before: " */\n"
63
+ else
64
+ append_to_file file_to_update, "\n@import 'better_ui/application';\n"
65
+ end
66
+
67
+ say "Better UI assets aggiunti a #{file_to_update}", :green
68
+ else
69
+ say "File CSS dell'applicazione non trovato. Salta l'aggiunta degli assets.", :yellow
70
+ end
71
+ end
72
+
73
+ def create_stylesheets
74
+ return if options[:skip_stylesheets]
75
+
76
+ generate "better_ui:stylesheet"
77
+ say "Fogli di stile personalizzabili generati", :green
78
+ end
79
+
80
+ def show_instructions
81
+ say "\n========================================================", :green
82
+ say "Better UI installato con successo!", :green
83
+ say "========================================================", :green
84
+ say "\nPer utilizzare i componenti nella tua applicazione:", :blue
85
+ say "- Accedi a http://localhost:3000/better_ui per vedere la documentazione", :blue
86
+ say "- Utilizza i componenti nel tuo codice, ad esempio:", :blue
87
+ say " <%= render BetterUi::General::ButtonComponent.new(label: 'Clicca qui') %>", :blue
88
+ say "\nPer personalizzare i componenti, modifica i file in:", :blue
89
+ say " app/assets/stylesheets/components/", :blue
90
+ say "- I file *_overrides.scss contengono le classi vuote per le personalizzazioni", :blue
91
+ say "\nPer configurare i valori predefiniti, modifica:", :blue
92
+ say " config/initializers/better_ui.rb", :blue
93
+ say "\n========================================================\n", :green
94
+ end
95
+
96
+ private
97
+
98
+ def injectible_routes(mount_code)
99
+ "\n#{mount_code}\n"
100
+ end
101
+ end
102
+ end
103
+ end