better_ui 0.6.0 → 0.7.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.
- checksums.yaml +4 -4
- data/README.md +257 -212
- data/Rakefile +11 -2
- data/app/components/better_ui/action_messages_component/action_messages_component.html.erb +48 -0
- data/app/components/better_ui/action_messages_component.rb +544 -0
- data/app/components/better_ui/application_component.rb +66 -0
- data/app/components/better_ui/button_component/button_component.html.erb +31 -0
- data/app/components/better_ui/button_component.rb +307 -0
- data/app/components/better_ui/card_component/card_component.html.erb +17 -0
- data/app/components/better_ui/card_component.rb +460 -0
- data/app/components/better_ui/drawer/header_component/header_component.html.erb +24 -0
- data/app/components/better_ui/drawer/header_component.rb +238 -0
- data/app/components/better_ui/drawer/layout_component/layout_component.html.erb +44 -0
- data/app/components/better_ui/drawer/layout_component.rb +270 -0
- data/app/components/better_ui/drawer/nav_group_component/nav_group_component.html.erb +10 -0
- data/app/components/better_ui/drawer/nav_group_component.rb +155 -0
- data/app/components/better_ui/drawer/nav_item_component/nav_item_component.html.erb +13 -0
- data/app/components/better_ui/drawer/nav_item_component.rb +225 -0
- data/app/components/better_ui/drawer/sidebar_component/sidebar_component.html.erb +17 -0
- data/app/components/better_ui/drawer/sidebar_component.rb +263 -0
- data/app/components/better_ui/forms/base_component.rb +450 -0
- data/app/components/better_ui/forms/checkbox_component/checkbox_component.html.erb +28 -0
- data/app/components/better_ui/forms/checkbox_component.rb +419 -0
- data/app/components/better_ui/forms/checkbox_group_component/checkbox_group_component.html.erb +40 -0
- data/app/components/better_ui/forms/checkbox_group_component.rb +363 -0
- data/app/components/better_ui/forms/number_input_component/number_input_component.html.erb +40 -0
- data/app/components/better_ui/forms/number_input_component.rb +320 -0
- data/app/components/better_ui/forms/password_input_component/password_input_component.html.erb +71 -0
- data/app/components/better_ui/forms/password_input_component.rb +206 -0
- data/app/components/better_ui/forms/text_input_component/text_input_component.html.erb +40 -0
- data/app/components/better_ui/forms/text_input_component.rb +258 -0
- data/app/components/better_ui/forms/textarea_component/textarea_component.html.erb +40 -0
- data/app/components/better_ui/forms/textarea_component.rb +329 -0
- data/app/form_builders/better_ui/ui_form_builder.rb +467 -0
- data/app/helpers/better_ui/application_helper.rb +325 -58
- data/app/views/layouts/better_ui/application.html.erb +1 -1
- data/config/routes.rb +1 -0
- data/lib/better_ui/engine.rb +34 -5
- data/lib/better_ui/version.rb +1 -1
- data/lib/better_ui.rb +32 -5
- data/lib/generators/better_ui/install/USAGE +44 -0
- data/lib/generators/better_ui/install/install_generator.rb +87 -0
- data/lib/generators/better_ui/install/templates/better_ui_theme.css.tt +280 -0
- data/lib/tasks/better_ui_tasks.rake +39 -4
- metadata +55 -203
- data/app/components/better_ui/application/card/component.html.erb +0 -20
- data/app/components/better_ui/application/card/component.rb +0 -214
- data/app/components/better_ui/application/main/component.html.erb +0 -9
- data/app/components/better_ui/application/main/component.rb +0 -123
- data/app/components/better_ui/application/navbar/component.html.erb +0 -92
- data/app/components/better_ui/application/navbar/component.rb +0 -136
- data/app/components/better_ui/application/sidebar/component.html.erb +0 -249
- data/app/components/better_ui/application/sidebar/component.rb +0 -187
- data/app/components/better_ui/general/accordion/component.html.erb +0 -5
- data/app/components/better_ui/general/accordion/component.rb +0 -92
- data/app/components/better_ui/general/accordion/item_component.html.erb +0 -12
- data/app/components/better_ui/general/accordion/item_component.rb +0 -176
- data/app/components/better_ui/general/alert/component.html.erb +0 -32
- data/app/components/better_ui/general/alert/component.rb +0 -242
- data/app/components/better_ui/general/avatar/component.html.erb +0 -20
- data/app/components/better_ui/general/avatar/component.rb +0 -301
- data/app/components/better_ui/general/badge/component.html.erb +0 -23
- data/app/components/better_ui/general/badge/component.rb +0 -248
- data/app/components/better_ui/general/breadcrumb/component.html.erb +0 -15
- data/app/components/better_ui/general/breadcrumb/component.rb +0 -187
- data/app/components/better_ui/general/button/component.html.erb +0 -34
- data/app/components/better_ui/general/button/component.rb +0 -214
- data/app/components/better_ui/general/divider/component.html.erb +0 -10
- data/app/components/better_ui/general/divider/component.rb +0 -226
- data/app/components/better_ui/general/dropdown/component.html.erb +0 -28
- data/app/components/better_ui/general/dropdown/component.rb +0 -192
- data/app/components/better_ui/general/dropdown/divider_component.html.erb +0 -1
- data/app/components/better_ui/general/dropdown/divider_component.rb +0 -41
- data/app/components/better_ui/general/dropdown/item_component.html.erb +0 -6
- data/app/components/better_ui/general/dropdown/item_component.rb +0 -119
- data/app/components/better_ui/general/field/component.html.erb +0 -27
- data/app/components/better_ui/general/field/component.rb +0 -37
- data/app/components/better_ui/general/grid/cell_component.html.erb +0 -3
- data/app/components/better_ui/general/grid/cell_component.rb +0 -390
- data/app/components/better_ui/general/grid/component.html.erb +0 -3
- data/app/components/better_ui/general/grid/component.rb +0 -301
- data/app/components/better_ui/general/heading/component.html.erb +0 -22
- data/app/components/better_ui/general/heading/component.rb +0 -257
- data/app/components/better_ui/general/icon/component.html.erb +0 -7
- data/app/components/better_ui/general/icon/component.rb +0 -240
- data/app/components/better_ui/general/input/checkbox/component.html.erb +0 -5
- data/app/components/better_ui/general/input/checkbox/component.rb +0 -238
- data/app/components/better_ui/general/input/datetime/component.html.erb +0 -5
- data/app/components/better_ui/general/input/datetime/component.rb +0 -223
- data/app/components/better_ui/general/input/pin/component.html.erb +0 -1
- data/app/components/better_ui/general/input/pin/component.rb +0 -201
- data/app/components/better_ui/general/input/radio/component.html.erb +0 -5
- data/app/components/better_ui/general/input/radio/component.rb +0 -230
- data/app/components/better_ui/general/input/rating/component.html.erb +0 -4
- data/app/components/better_ui/general/input/rating/component.rb +0 -272
- data/app/components/better_ui/general/input/select/component.html.erb +0 -78
- data/app/components/better_ui/general/input/select/component.rb +0 -249
- data/app/components/better_ui/general/input/select/select_component.html.erb +0 -5
- data/app/components/better_ui/general/input/select/select_component.rb +0 -37
- data/app/components/better_ui/general/input/text/component.html.erb +0 -5
- data/app/components/better_ui/general/input/text/component.rb +0 -171
- data/app/components/better_ui/general/input/textarea/component.html.erb +0 -5
- data/app/components/better_ui/general/input/textarea/component.rb +0 -166
- data/app/components/better_ui/general/input/toggle/component.html.erb +0 -5
- data/app/components/better_ui/general/input/toggle/component.rb +0 -242
- data/app/components/better_ui/general/link/component.html.erb +0 -18
- data/app/components/better_ui/general/link/component.rb +0 -258
- data/app/components/better_ui/general/modal/component.html.erb +0 -5
- data/app/components/better_ui/general/modal/component.rb +0 -47
- data/app/components/better_ui/general/modal/modal_component.html.erb +0 -52
- data/app/components/better_ui/general/modal/modal_component.rb +0 -160
- data/app/components/better_ui/general/pagination/component.html.erb +0 -85
- data/app/components/better_ui/general/pagination/component.rb +0 -216
- data/app/components/better_ui/general/panel/component.html.erb +0 -28
- data/app/components/better_ui/general/panel/component.rb +0 -249
- data/app/components/better_ui/general/progress/component.html.erb +0 -11
- data/app/components/better_ui/general/progress/component.rb +0 -160
- data/app/components/better_ui/general/spinner/component.html.erb +0 -35
- data/app/components/better_ui/general/spinner/component.rb +0 -93
- data/app/components/better_ui/general/table/component.html.erb +0 -5
- data/app/components/better_ui/general/table/component.rb +0 -217
- data/app/components/better_ui/general/table/tbody_component.html.erb +0 -3
- data/app/components/better_ui/general/table/tbody_component.rb +0 -30
- data/app/components/better_ui/general/table/td_component.html.erb +0 -3
- data/app/components/better_ui/general/table/td_component.rb +0 -44
- data/app/components/better_ui/general/table/tfoot_component.html.erb +0 -3
- data/app/components/better_ui/general/table/tfoot_component.rb +0 -28
- data/app/components/better_ui/general/table/th_component.html.erb +0 -6
- data/app/components/better_ui/general/table/th_component.rb +0 -51
- data/app/components/better_ui/general/table/thead_component.html.erb +0 -3
- data/app/components/better_ui/general/table/thead_component.rb +0 -28
- data/app/components/better_ui/general/table/tr_component.html.erb +0 -3
- data/app/components/better_ui/general/table/tr_component.rb +0 -30
- data/app/components/better_ui/general/tabs/component.html.erb +0 -11
- data/app/components/better_ui/general/tabs/component.rb +0 -120
- data/app/components/better_ui/general/tabs/panel_component.html.erb +0 -3
- data/app/components/better_ui/general/tabs/panel_component.rb +0 -37
- data/app/components/better_ui/general/tabs/tab_component.html.erb +0 -13
- data/app/components/better_ui/general/tabs/tab_component.rb +0 -111
- data/app/components/better_ui/general/tag/component.html.erb +0 -3
- data/app/components/better_ui/general/tag/component.rb +0 -104
- data/app/components/better_ui/general/text/component.html.erb +0 -1
- data/app/components/better_ui/general/text/component.rb +0 -194
- data/app/components/better_ui/general/tooltip/component.html.erb +0 -7
- data/app/components/better_ui/general/tooltip/component.rb +0 -239
- data/app/helpers/better_ui/application/components/card/card_helper.rb +0 -96
- data/app/helpers/better_ui/application/components/card.rb +0 -11
- data/app/helpers/better_ui/application/components/main/main_helper.rb +0 -64
- data/app/helpers/better_ui/application/components/navbar/navbar_helper.rb +0 -77
- data/app/helpers/better_ui/application/components/sidebar/sidebar_helper.rb +0 -51
- data/app/helpers/better_ui/general/components/accordion/accordion_helper.rb +0 -73
- data/app/helpers/better_ui/general/components/alert/alert_helper.rb +0 -57
- data/app/helpers/better_ui/general/components/avatar/avatar_helper.rb +0 -29
- data/app/helpers/better_ui/general/components/badge/badge_helper.rb +0 -53
- data/app/helpers/better_ui/general/components/breadcrumb/breadcrumb_helper.rb +0 -37
- data/app/helpers/better_ui/general/components/button/button_helper.rb +0 -65
- data/app/helpers/better_ui/general/components/container/container_helper.rb +0 -60
- data/app/helpers/better_ui/general/components/divider/divider_helper.rb +0 -63
- data/app/helpers/better_ui/general/components/dropdown/divider_helper.rb +0 -32
- data/app/helpers/better_ui/general/components/dropdown/dropdown_helper.rb +0 -88
- data/app/helpers/better_ui/general/components/dropdown/item_helper.rb +0 -68
- data/app/helpers/better_ui/general/components/field/field_helper.rb +0 -26
- data/app/helpers/better_ui/general/components/grid/grid_helper.rb +0 -145
- data/app/helpers/better_ui/general/components/heading/heading_helper.rb +0 -72
- data/app/helpers/better_ui/general/components/icon/icon_helper.rb +0 -16
- data/app/helpers/better_ui/general/components/input/checkbox/checkbox_helper.rb +0 -81
- data/app/helpers/better_ui/general/components/input/datetime/datetime_helper.rb +0 -91
- data/app/helpers/better_ui/general/components/input/pin/pin_helper.rb +0 -76
- data/app/helpers/better_ui/general/components/input/radio/radio_helper.rb +0 -79
- data/app/helpers/better_ui/general/components/input/radio_group/radio_group_helper.rb +0 -124
- data/app/helpers/better_ui/general/components/input/rating/rating_helper.rb +0 -70
- data/app/helpers/better_ui/general/components/input/select/select_helper.rb +0 -86
- data/app/helpers/better_ui/general/components/input/text/text_helper.rb +0 -138
- data/app/helpers/better_ui/general/components/input/textarea/textarea_helper.rb +0 -73
- data/app/helpers/better_ui/general/components/input/toggle/toggle_helper.rb +0 -77
- data/app/helpers/better_ui/general/components/link/link_helper.rb +0 -89
- data/app/helpers/better_ui/general/components/modal/modal_helper.rb +0 -85
- data/app/helpers/better_ui/general/components/pagination/pagination_helper.rb +0 -82
- data/app/helpers/better_ui/general/components/panel/panel_helper.rb +0 -83
- data/app/helpers/better_ui/general/components/progress/progress_helper.rb +0 -53
- data/app/helpers/better_ui/general/components/spinner/spinner_helper.rb +0 -19
- data/app/helpers/better_ui/general/components/table/table_helper.rb +0 -53
- data/app/helpers/better_ui/general/components/table/tbody_helper.rb +0 -13
- data/app/helpers/better_ui/general/components/table/td_helper.rb +0 -19
- data/app/helpers/better_ui/general/components/table/tfoot_helper.rb +0 -13
- data/app/helpers/better_ui/general/components/table/th_helper.rb +0 -19
- data/app/helpers/better_ui/general/components/table/thead_helper.rb +0 -13
- data/app/helpers/better_ui/general/components/table/tr_helper.rb +0 -13
- data/app/helpers/better_ui/general/components/tabs/panel_helper.rb +0 -62
- data/app/helpers/better_ui/general/components/tabs/tab_helper.rb +0 -55
- data/app/helpers/better_ui/general/components/tabs/tabs_helper.rb +0 -95
- data/app/helpers/better_ui/general/components/tag/tag_helper.rb +0 -26
- data/app/helpers/better_ui/general/components/text/text_helper.rb +0 -83
- data/app/helpers/better_ui/general/components/tooltip/tooltip_helper.rb +0 -60
- data/app/jobs/better_ui/application_job.rb +0 -4
- data/app/mailers/better_ui/application_mailer.rb +0 -6
- data/config/initializers/lookbook.rb +0 -23
- data/lib/better_ui/railtie.rb +0 -20
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Datetime
|
|
8
|
-
module DatetimeHelper
|
|
9
|
-
# Crea un campo input datetime unificato
|
|
10
|
-
#
|
|
11
|
-
# @param name [String] Nome del campo input (obbligatorio)
|
|
12
|
-
# @param type [Symbol] Tipo del campo datetime (default: :date)
|
|
13
|
-
# Valori disponibili: :date, :month, :week, :time
|
|
14
|
-
# @param value [String] Valore del campo nel formato appropriato per il tipo
|
|
15
|
-
# @param required [Boolean] Se il campo è obbligatorio (default: false)
|
|
16
|
-
# @param disabled [Boolean] Se il campo è disabilitato (default: false)
|
|
17
|
-
# @param min [String] Valore minimo selezionabile nel formato appropriato
|
|
18
|
-
# @param max [String] Valore massimo selezionabile nel formato appropriato
|
|
19
|
-
# @param theme [Symbol] Tema del componente (default: :default)
|
|
20
|
-
# Valori disponibili: :default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet
|
|
21
|
-
# @param size [Symbol] Dimensione del componente (default: :medium)
|
|
22
|
-
# Valori disponibili: :small, :medium, :large
|
|
23
|
-
# @param rounded [Symbol] Border radius (default: :medium)
|
|
24
|
-
# Valori disponibili: :none, :small, :medium, :large, :full
|
|
25
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
26
|
-
# @param form [ActionView::Helpers::FormBuilder] Form builder Rails opzionale per integrazione con form
|
|
27
|
-
# @param options [Hash] Attributi HTML aggiuntivi da passare all'elemento input
|
|
28
|
-
# @return [String] HTML del componente datetime input renderizzato
|
|
29
|
-
#
|
|
30
|
-
# @example Uso base per date
|
|
31
|
-
# <%= bui_input_datetime(name: 'birthdate', type: :date) %>
|
|
32
|
-
#
|
|
33
|
-
# @example Input per mese con validazione
|
|
34
|
-
# <%= bui_input_datetime(name: 'report_month', type: :month, required: true, min: '2024-01', max: '2024-12') %>
|
|
35
|
-
#
|
|
36
|
-
# @example Input per settimana con tema
|
|
37
|
-
# <%= bui_input_datetime(name: 'work_week', type: :week, theme: :blue, size: :large) %>
|
|
38
|
-
#
|
|
39
|
-
# @example Input per time con stili personalizzati
|
|
40
|
-
# <%= bui_input_datetime(name: 'meeting_time', type: :time, theme: :green, rounded: :full) %>
|
|
41
|
-
#
|
|
42
|
-
# @example Con Rails form builder
|
|
43
|
-
# <%= form_with model: @event do |form| %>
|
|
44
|
-
# <%= bui_input_datetime(name: :start_date, type: :date, form: form, theme: :blue, required: true) %>
|
|
45
|
-
# <%= bui_input_datetime(name: :start_time, type: :time, form: form, theme: :green) %>
|
|
46
|
-
# <% end %>
|
|
47
|
-
def bui_input_datetime(name:, type: :date, value: nil, required: false, disabled: false,
|
|
48
|
-
min: nil, max: nil, theme: :default, size: :medium, rounded: :medium,
|
|
49
|
-
classes: '', form: nil, **options)
|
|
50
|
-
render BetterUi::General::Input::Datetime::Component.new(
|
|
51
|
-
name: name,
|
|
52
|
-
type: type,
|
|
53
|
-
value: value,
|
|
54
|
-
required: required,
|
|
55
|
-
disabled: disabled,
|
|
56
|
-
min: min,
|
|
57
|
-
max: max,
|
|
58
|
-
theme: theme,
|
|
59
|
-
size: size,
|
|
60
|
-
rounded: rounded,
|
|
61
|
-
classes: classes,
|
|
62
|
-
form: form,
|
|
63
|
-
**options
|
|
64
|
-
)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Helper convenienza per input date
|
|
68
|
-
def bui_input_date(name:, **options)
|
|
69
|
-
bui_input_datetime(name: name, type: :date, **options)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# Helper convenienza per input month
|
|
73
|
-
def bui_input_month(name:, **options)
|
|
74
|
-
bui_input_datetime(name: name, type: :month, **options)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# Helper convenienza per input week
|
|
78
|
-
def bui_input_week(name:, **options)
|
|
79
|
-
bui_input_datetime(name: name, type: :week, **options)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# Helper convenienza per input time
|
|
83
|
-
def bui_input_time(name:, **options)
|
|
84
|
-
bui_input_datetime(name: name, type: :time, **options)
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Pin
|
|
8
|
-
module PinHelper
|
|
9
|
-
# Renderizza un componente Pin/OTP Input per inserimento codici di verifica numerici.
|
|
10
|
-
#
|
|
11
|
-
# @param name [String] Nome del campo pin (obbligatorio)
|
|
12
|
-
# @param value [String] Valore del pin preimpostato
|
|
13
|
-
# @param length [Integer] Numero di campi pin (4-8, default: 6)
|
|
14
|
-
# @param placeholder [String] Placeholder per campi vuoti (default: '•')
|
|
15
|
-
# @param required [Boolean] Se il campo è obbligatorio
|
|
16
|
-
# @param disabled [Boolean] Se il campo è disabilitato
|
|
17
|
-
# @param theme [Symbol] Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)
|
|
18
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
19
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
20
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
21
|
-
# @param options [Hash] Opzioni aggiuntive per attributi HTML
|
|
22
|
-
#
|
|
23
|
-
# @return [String] HTML del componente Pin renderizzato
|
|
24
|
-
#
|
|
25
|
-
# @example Uso base per codice OTP
|
|
26
|
-
# <%= bui_input_pin(name: 'verification_code') %>
|
|
27
|
-
#
|
|
28
|
-
# @example Con lunghezza personalizzata e tema
|
|
29
|
-
# <%= bui_input_pin(name: 'pin_code', length: 4, theme: :blue, size: :large) %>
|
|
30
|
-
#
|
|
31
|
-
# @example Con Rails form builder
|
|
32
|
-
# <%= form_with model: @user do |form| %>
|
|
33
|
-
# <%= bui_input_pin(name: :otp_code, form: form, value: @user.otp_code) %>
|
|
34
|
-
# <% end %>
|
|
35
|
-
#
|
|
36
|
-
# @example Con validazione e attributi personalizzati
|
|
37
|
-
# <%= bui_input_pin(
|
|
38
|
-
# name: 'sms_code',
|
|
39
|
-
# length: 6,
|
|
40
|
-
# required: true,
|
|
41
|
-
# placeholder: '_',
|
|
42
|
-
# theme: :green,
|
|
43
|
-
# classes: 'my-custom-class',
|
|
44
|
-
# id: 'sms-verification'
|
|
45
|
-
# ) %>
|
|
46
|
-
#
|
|
47
|
-
# @example Per codice bancario a 8 cifre
|
|
48
|
-
# <%= bui_input_pin(
|
|
49
|
-
# name: 'bank_code',
|
|
50
|
-
# length: 8,
|
|
51
|
-
# theme: :violet,
|
|
52
|
-
# size: :small,
|
|
53
|
-
# placeholder: '0'
|
|
54
|
-
# ) %>
|
|
55
|
-
def bui_input_pin(name:, value: '', length: 6, placeholder: '•', required: false, disabled: false,
|
|
56
|
-
theme: :default, size: :medium, form: nil, classes: '', **options)
|
|
57
|
-
render BetterUi::General::Input::Pin::Component.new(
|
|
58
|
-
name: name,
|
|
59
|
-
value: value,
|
|
60
|
-
length: length,
|
|
61
|
-
placeholder: placeholder,
|
|
62
|
-
required: required,
|
|
63
|
-
disabled: disabled,
|
|
64
|
-
theme: theme,
|
|
65
|
-
size: size,
|
|
66
|
-
form: form,
|
|
67
|
-
classes: classes,
|
|
68
|
-
**options
|
|
69
|
-
)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Radio
|
|
8
|
-
# Helper specifico per radio button Better UI
|
|
9
|
-
module RadioHelper
|
|
10
|
-
# Genera un radio button con stili Better UI
|
|
11
|
-
#
|
|
12
|
-
# @param name [String] Nome del campo radio (obbligatorio)
|
|
13
|
-
# @param value [String] Valore del radio button (obbligatorio)
|
|
14
|
-
# @param checked [Boolean] Se il radio è selezionato
|
|
15
|
-
# @param required [Boolean] Se il campo è obbligatorio
|
|
16
|
-
# @param disabled [Boolean] Se il campo è disabilitato
|
|
17
|
-
# @param label [String, nil] Testo della label associata al radio
|
|
18
|
-
# @param label_position [Symbol] Posizione della label (:left, :right)
|
|
19
|
-
# @param theme [Symbol] Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)
|
|
20
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
21
|
-
# @param rounded [Symbol] Border radius (:none, :small, :medium, :large, :full)
|
|
22
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
23
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
24
|
-
# @param options [Hash] Opzioni aggiuntive per l'input
|
|
25
|
-
# @return [String] HTML del radio button renderizzato
|
|
26
|
-
#
|
|
27
|
-
# @example Gruppo radio base - Selezione genere (STESSO name, value DIVERSI)
|
|
28
|
-
# bui_input_radio(name: "gender", value: "male", label: "Maschio")
|
|
29
|
-
# bui_input_radio(name: "gender", value: "female", label: "Femmina")
|
|
30
|
-
# bui_input_radio(name: "gender", value: "other", label: "Altro")
|
|
31
|
-
#
|
|
32
|
-
# @example Gruppo radio con temi diversi - Priorità task
|
|
33
|
-
# bui_input_radio(name: "priority", value: "low", label: "Bassa", theme: :green)
|
|
34
|
-
# bui_input_radio(name: "priority", value: "medium", label: "Media", theme: :yellow)
|
|
35
|
-
# bui_input_radio(name: "priority", value: "high", label: "Alta", theme: :red, size: :large)
|
|
36
|
-
#
|
|
37
|
-
# @example Gruppo radio con Rails form builder
|
|
38
|
-
# <%= form_with model: @user do |form| %>
|
|
39
|
-
# <%= bui_input_radio(name: :role, value: "admin", label: "Amministratore", form: form) %>
|
|
40
|
-
# <%= bui_input_radio(name: :role, value: "user", label: "Utente", form: form) %>
|
|
41
|
-
# <%= bui_input_radio(name: :role, value: "guest", label: "Ospite", form: form) %>
|
|
42
|
-
# <% end %>
|
|
43
|
-
#
|
|
44
|
-
# @example Gruppo radio con selezione dinamica e validazione
|
|
45
|
-
# current_method = @user&.payment_method
|
|
46
|
-
# bui_input_radio(name: "payment", value: "card", label: "Carta", checked: current_method == "card", required: true)
|
|
47
|
-
# bui_input_radio(name: "payment", value: "bank", label: "Bonifico", checked: current_method == "bank", required: true)
|
|
48
|
-
# bui_input_radio(name: "payment", value: "cash", label: "Contrassegno", checked: current_method == "cash", required: true)
|
|
49
|
-
#
|
|
50
|
-
# @example Gruppo radio con attributi HTML personalizzati
|
|
51
|
-
# bui_input_radio(name: "notification", value: "email", label: "Email", theme: :blue, data: { action: "change->form#updateNotification" })
|
|
52
|
-
# bui_input_radio(name: "notification", value: "sms", label: "SMS", theme: :blue, data: { action: "change->form#updateNotification" })
|
|
53
|
-
# bui_input_radio(name: "notification", value: "push", label: "Push", theme: :blue, data: { action: "change->form#updateNotification" })
|
|
54
|
-
#
|
|
55
|
-
def bui_input_radio(name:, value:, checked: false, required: false, disabled: false,
|
|
56
|
-
label: nil, label_position: :right, theme: :default,
|
|
57
|
-
size: :medium, rounded: :full, classes: '', form: nil, **options)
|
|
58
|
-
render BetterUi::General::Input::Radio::Component.new(
|
|
59
|
-
name: name,
|
|
60
|
-
value: value,
|
|
61
|
-
checked: checked,
|
|
62
|
-
required: required,
|
|
63
|
-
disabled: disabled,
|
|
64
|
-
label: label,
|
|
65
|
-
label_position: label_position,
|
|
66
|
-
theme: theme,
|
|
67
|
-
size: size,
|
|
68
|
-
rounded: rounded,
|
|
69
|
-
classes: classes,
|
|
70
|
-
form: form,
|
|
71
|
-
**options
|
|
72
|
-
)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module RadioGroup
|
|
8
|
-
# Helper per creare gruppi di radio button Better UI
|
|
9
|
-
module RadioGroupHelper
|
|
10
|
-
# Genera un gruppo completo di radio button con stili Better UI
|
|
11
|
-
#
|
|
12
|
-
# @param name [String] Nome del campo radio (comune a tutto il gruppo)
|
|
13
|
-
# @param options [Array<Hash>] Array di opzioni per ogni radio button
|
|
14
|
-
# @param selected [String, nil] Valore dell'opzione selezionata
|
|
15
|
-
# @param theme [Symbol] Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)
|
|
16
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
17
|
-
# @param rounded [Symbol] Border radius (:none, :small, :medium, :large, :full)
|
|
18
|
-
# @param direction [Symbol] Direzione del gruppo (:vertical, :horizontal)
|
|
19
|
-
# @param required [Boolean] Se il gruppo è obbligatorio
|
|
20
|
-
# @param disabled [Boolean] Se il gruppo è disabilitato
|
|
21
|
-
# @param classes [String] Classi CSS aggiuntive per il contenitore
|
|
22
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
23
|
-
# @param html_options [Hash] Opzioni HTML aggiuntive per ogni radio
|
|
24
|
-
# @return [String] HTML del gruppo radio renderizzato
|
|
25
|
-
#
|
|
26
|
-
# @example Gruppo radio base - Selezione genere
|
|
27
|
-
# bui_input_radio_group(
|
|
28
|
-
# name: "gender",
|
|
29
|
-
# options: [
|
|
30
|
-
# { value: "male", label: "Maschio" },
|
|
31
|
-
# { value: "female", label: "Femmina" },
|
|
32
|
-
# { value: "other", label: "Altro" }
|
|
33
|
-
# ]
|
|
34
|
-
# )
|
|
35
|
-
#
|
|
36
|
-
# @example Gruppo radio con tema e selezione
|
|
37
|
-
# bui_input_radio_group(
|
|
38
|
-
# name: "priority",
|
|
39
|
-
# options: [
|
|
40
|
-
# { value: "low", label: "Bassa", theme: :green },
|
|
41
|
-
# { value: "medium", label: "Media", theme: :yellow },
|
|
42
|
-
# { value: "high", label: "Alta", theme: :red }
|
|
43
|
-
# ],
|
|
44
|
-
# selected: "medium",
|
|
45
|
-
# size: :large
|
|
46
|
-
# )
|
|
47
|
-
#
|
|
48
|
-
# @example Gruppo radio orizzontale con Rails form
|
|
49
|
-
# <%= form_with model: @user do |form| %>
|
|
50
|
-
# <%= bui_input_radio_group(
|
|
51
|
-
# name: :role,
|
|
52
|
-
# options: [
|
|
53
|
-
# { value: "admin", label: "Amministratore" },
|
|
54
|
-
# { value: "user", label: "Utente" },
|
|
55
|
-
# { value: "guest", label: "Ospite" }
|
|
56
|
-
# ],
|
|
57
|
-
# selected: @user.role,
|
|
58
|
-
# direction: :horizontal,
|
|
59
|
-
# form: form
|
|
60
|
-
# ) %>
|
|
61
|
-
# <% end %>
|
|
62
|
-
#
|
|
63
|
-
# @example Gruppo radio con validazione e attributi HTML
|
|
64
|
-
# bui_input_radio_group(
|
|
65
|
-
# name: "notification_type",
|
|
66
|
-
# options: [
|
|
67
|
-
# { value: "email", label: "Email" },
|
|
68
|
-
# { value: "sms", label: "SMS" },
|
|
69
|
-
# { value: "push", label: "Push Notification" }
|
|
70
|
-
# ],
|
|
71
|
-
# required: true,
|
|
72
|
-
# theme: :blue,
|
|
73
|
-
# html_options: { data: { action: "change->form#validateNotification" } }
|
|
74
|
-
# )
|
|
75
|
-
#
|
|
76
|
-
# @example Gruppo radio con temi personalizzati per opzione
|
|
77
|
-
# bui_input_radio_group(
|
|
78
|
-
# name: "status",
|
|
79
|
-
# options: [
|
|
80
|
-
# { value: "active", label: "Attivo", theme: :green },
|
|
81
|
-
# { value: "pending", label: "In Sospeso", theme: :yellow },
|
|
82
|
-
# { value: "inactive", label: "Inattivo", theme: :red }
|
|
83
|
-
# ],
|
|
84
|
-
# selected: "active",
|
|
85
|
-
# direction: :horizontal
|
|
86
|
-
# )
|
|
87
|
-
#
|
|
88
|
-
def bui_input_radio_group(name:, options:, selected: nil, theme: :default, size: :medium,
|
|
89
|
-
rounded: :full, direction: :vertical, required: false, disabled: false,
|
|
90
|
-
classes: '', form: nil, **html_options)
|
|
91
|
-
container_classes = [
|
|
92
|
-
'space-y-2',
|
|
93
|
-
direction == :horizontal ? 'flex flex-wrap gap-6' : 'space-y-2',
|
|
94
|
-
classes
|
|
95
|
-
].compact.join(' ')
|
|
96
|
-
|
|
97
|
-
content_tag(:div, class: container_classes) do
|
|
98
|
-
options.map do |option|
|
|
99
|
-
option_theme = option[:theme] || theme
|
|
100
|
-
option_classes = option[:classes] || ''
|
|
101
|
-
|
|
102
|
-
render BetterUi::General::Input::Radio::Component.new(
|
|
103
|
-
name: name,
|
|
104
|
-
value: option[:value],
|
|
105
|
-
label: option[:label],
|
|
106
|
-
checked: selected.to_s == option[:value].to_s,
|
|
107
|
-
theme: option_theme,
|
|
108
|
-
size: size,
|
|
109
|
-
rounded: rounded,
|
|
110
|
-
required: required,
|
|
111
|
-
disabled: disabled || option[:disabled],
|
|
112
|
-
classes: option_classes,
|
|
113
|
-
form: form,
|
|
114
|
-
**html_options
|
|
115
|
-
)
|
|
116
|
-
end.join.html_safe
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Rating
|
|
8
|
-
module RatingHelper
|
|
9
|
-
# Renderizza un componente Rating (Input) interattivo con stelle per valutazioni e feedback.
|
|
10
|
-
#
|
|
11
|
-
# @param name [String] Nome del campo rating (obbligatorio se non readonly)
|
|
12
|
-
# @param value [Float, Integer] Valore del rating attuale (0.0 - max_stars)
|
|
13
|
-
# @param max_stars [Integer] Numero massimo di stelle (default: 5)
|
|
14
|
-
# @param readonly [Boolean] Se il rating è in sola lettura
|
|
15
|
-
# @param half_stars [Boolean] Se supportare mezze stelle
|
|
16
|
-
# @param theme [Symbol] Tema del componente (:default, :yellow, :orange, :red, :pink, :purple, :blue, :green, :gray)
|
|
17
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
18
|
-
# @param show_value [Boolean] Se mostrare il valore numerico accanto alle stelle
|
|
19
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
20
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
21
|
-
# @param options [Hash] Opzioni aggiuntive per attributi HTML
|
|
22
|
-
#
|
|
23
|
-
# @return [String] HTML del componente Rating renderizzato
|
|
24
|
-
#
|
|
25
|
-
# @example Uso base per inserimento rating
|
|
26
|
-
# <%= bui_input_rating(name: 'review_rating') %>
|
|
27
|
-
#
|
|
28
|
-
# @example Rating read-only per visualizzazione
|
|
29
|
-
# <%= bui_input_rating(value: 4.5, readonly: true, show_value: true) %>
|
|
30
|
-
#
|
|
31
|
-
# @example Con tema e dimensioni personalizzate
|
|
32
|
-
# <%= bui_input_rating(name: 'quality', theme: :orange, size: :large, max_stars: 10) %>
|
|
33
|
-
#
|
|
34
|
-
# @example Con Rails form builder
|
|
35
|
-
# <%= form_with model: @review do |form| %>
|
|
36
|
-
# <%= bui_input_rating(name: :rating, form: form, value: @review.rating, show_value: true) %>
|
|
37
|
-
# <% end %>
|
|
38
|
-
#
|
|
39
|
-
# @example Rating con mezze stelle e valore preimpostato
|
|
40
|
-
# <%= bui_input_rating(
|
|
41
|
-
# name: 'service_rating',
|
|
42
|
-
# value: 3.5,
|
|
43
|
-
# half_stars: true,
|
|
44
|
-
# theme: :green,
|
|
45
|
-
# size: :medium,
|
|
46
|
-
# show_value: true
|
|
47
|
-
# ) %>
|
|
48
|
-
def bui_input_rating(name: nil, value: 0, max_stars: 5, readonly: false, half_stars: true,
|
|
49
|
-
theme: :default, size: :medium, show_value: false, form: nil,
|
|
50
|
-
classes: '', **options)
|
|
51
|
-
render BetterUi::General::Input::Rating::Component.new(
|
|
52
|
-
name: name,
|
|
53
|
-
value: value,
|
|
54
|
-
max_stars: max_stars,
|
|
55
|
-
readonly: readonly,
|
|
56
|
-
half_stars: half_stars,
|
|
57
|
-
theme: theme,
|
|
58
|
-
size: size,
|
|
59
|
-
show_value: show_value,
|
|
60
|
-
form: form,
|
|
61
|
-
classes: classes,
|
|
62
|
-
**options
|
|
63
|
-
)
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Select
|
|
8
|
-
module SelectHelper
|
|
9
|
-
# Renderizza un componente Select personalizzato con ricerca, animazioni e multi-selezione.
|
|
10
|
-
#
|
|
11
|
-
# @param name [String] Nome del campo select (obbligatorio)
|
|
12
|
-
# @param options [Array<Hash>] Array di opzioni nel formato [{value: 'value', label: 'label'}, ...]
|
|
13
|
-
# @param selected [String, Array, nil] Valore/i selezionato/i
|
|
14
|
-
# @param required [Boolean] Se il campo è obbligatorio
|
|
15
|
-
# @param disabled [Boolean] Se il campo è disabilitato
|
|
16
|
-
# @param multiple [Boolean] Se multiple opzioni possono essere selezionate
|
|
17
|
-
# @param searchable [Boolean] Se abilitare la ricerca
|
|
18
|
-
# @param theme [Symbol] Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)
|
|
19
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
20
|
-
# @param rounded [Symbol] Border radius (:none, :small, :medium, :large, :full)
|
|
21
|
-
# @param placeholder [String] Testo placeholder per il trigger
|
|
22
|
-
# @param search_placeholder [String] Testo placeholder per il campo search
|
|
23
|
-
# @param max_height [String] Altezza massima del dropdown (default: "300px")
|
|
24
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
25
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
26
|
-
# @param options [Hash] Opzioni aggiuntive per attributi HTML
|
|
27
|
-
#
|
|
28
|
-
# @return [String] HTML del componente Select renderizzato
|
|
29
|
-
#
|
|
30
|
-
# @example Uso base
|
|
31
|
-
# <%= bui_input_select(name: 'country', options: [{value: 'it', label: 'Italia'}, {value: 'us', label: 'USA'}]) %>
|
|
32
|
-
#
|
|
33
|
-
# @example Con selezione multipla
|
|
34
|
-
# <%= bui_input_select(name: 'skills', multiple: true, options: skills_options) %>
|
|
35
|
-
#
|
|
36
|
-
# @example Con ricerca e temi
|
|
37
|
-
# <%= bui_input_select(name: 'category', searchable: true, theme: :blue, options: categories) %>
|
|
38
|
-
#
|
|
39
|
-
# @example Con dimensioni personalizzate
|
|
40
|
-
# <%= bui_input_select(name: 'priority', size: :large, options: priorities, selected: 'high') %>
|
|
41
|
-
#
|
|
42
|
-
# @example Con Rails form builder
|
|
43
|
-
# <%= form_with model: @user do |form| %>
|
|
44
|
-
# <%= bui_input_select(name: :role, form: form, options: role_options, theme: :green) %>
|
|
45
|
-
# <% end %>
|
|
46
|
-
#
|
|
47
|
-
# @example Con opzioni avanzate
|
|
48
|
-
# <%= bui_input_select(
|
|
49
|
-
# name: 'tags',
|
|
50
|
-
# multiple: true,
|
|
51
|
-
# searchable: true,
|
|
52
|
-
# placeholder: 'Seleziona tag...',
|
|
53
|
-
# search_placeholder: 'Cerca tag...',
|
|
54
|
-
# max_height: '200px',
|
|
55
|
-
# options: tag_options,
|
|
56
|
-
# selected: ['ruby', 'rails']
|
|
57
|
-
# ) %>
|
|
58
|
-
def bui_input_select(name:, options:, selected: nil, required: false, disabled: false,
|
|
59
|
-
multiple: false, searchable: true, theme: :default, size: :medium,
|
|
60
|
-
rounded: :medium, placeholder: nil, search_placeholder: nil,
|
|
61
|
-
max_height: "300px", form: nil, classes: '', **html_options)
|
|
62
|
-
render BetterUi::General::Input::Select::Component.new(
|
|
63
|
-
name: name,
|
|
64
|
-
options: options,
|
|
65
|
-
selected: selected,
|
|
66
|
-
required: required,
|
|
67
|
-
disabled: disabled,
|
|
68
|
-
multiple: multiple,
|
|
69
|
-
searchable: searchable,
|
|
70
|
-
theme: theme,
|
|
71
|
-
size: size,
|
|
72
|
-
rounded: rounded,
|
|
73
|
-
placeholder: placeholder,
|
|
74
|
-
search_placeholder: search_placeholder,
|
|
75
|
-
max_height: max_height,
|
|
76
|
-
form: form,
|
|
77
|
-
classes: classes,
|
|
78
|
-
**html_options
|
|
79
|
-
)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module BetterUi
|
|
4
|
-
module General
|
|
5
|
-
module Components
|
|
6
|
-
module Input
|
|
7
|
-
module Text
|
|
8
|
-
module TextHelper
|
|
9
|
-
# Renderizza un componente Text Input con tutti i parametri disponibili.
|
|
10
|
-
#
|
|
11
|
-
# @param name [String] Nome del campo input (obbligatorio)
|
|
12
|
-
# @param value [String, nil] Valore del campo
|
|
13
|
-
# @param placeholder [String, nil] Placeholder del campo
|
|
14
|
-
# @param required [Boolean] Se il campo è obbligatorio
|
|
15
|
-
# @param disabled [Boolean] Se il campo è disabilitato
|
|
16
|
-
# @param type [Symbol] Tipo del campo input (:text, :password, :email, :tel, :url, :number, :search, :color)
|
|
17
|
-
# @param theme [Symbol] Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)
|
|
18
|
-
# @param size [Symbol] Dimensione del componente (:small, :medium, :large)
|
|
19
|
-
# @param rounded [Symbol] Border radius (:none, :small, :medium, :large, :full)
|
|
20
|
-
# @param classes [String] Classi CSS aggiuntive
|
|
21
|
-
# @param form [ActionView::Helpers::FormBuilder, nil] Form builder Rails opzionale
|
|
22
|
-
# @param options [Hash] Opzioni aggiuntive per l'input (es. data attributes, aria attributes)
|
|
23
|
-
#
|
|
24
|
-
# @return [String] HTML del componente Text Input renderizzato
|
|
25
|
-
#
|
|
26
|
-
# @example Uso base
|
|
27
|
-
# <%= bui_input_text(name: 'email') %>
|
|
28
|
-
#
|
|
29
|
-
# @example Con placeholder e validazione
|
|
30
|
-
# <%= bui_input_text(name: 'email', placeholder: 'Inserisci la tua email', required: true) %>
|
|
31
|
-
#
|
|
32
|
-
# @example Con tema e dimensione personalizzati
|
|
33
|
-
# <%= bui_input_text(name: 'search', theme: :blue, size: :large, placeholder: 'Cerca...') %>
|
|
34
|
-
#
|
|
35
|
-
# @example Con border radius personalizzato
|
|
36
|
-
# <%= bui_input_text(name: 'username', rounded: :full, placeholder: 'Username') %>
|
|
37
|
-
#
|
|
38
|
-
# @example Con classi aggiuntive
|
|
39
|
-
# <%= bui_input_text(name: 'custom', classes: 'mb-4', placeholder: 'Campo personalizzato') %>
|
|
40
|
-
#
|
|
41
|
-
# @example Con attributi HTML aggiuntivi
|
|
42
|
-
# <%= bui_input_text(name: 'data-field', 'data-validation': 'email', 'aria-label': 'Campo email') %>
|
|
43
|
-
#
|
|
44
|
-
# @example Con Rails form builder
|
|
45
|
-
# <%= form_with model: @user do |form| %>
|
|
46
|
-
# <%= bui_input_text(name: :email, form: form, theme: :blue, placeholder: 'Email utente') %>
|
|
47
|
-
# <% end %>
|
|
48
|
-
def bui_input_text(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
49
|
-
type: :text, theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
50
|
-
render BetterUi::General::Input::Text::Component.new(
|
|
51
|
-
name: name,
|
|
52
|
-
value: value,
|
|
53
|
-
placeholder: placeholder,
|
|
54
|
-
required: required,
|
|
55
|
-
disabled: disabled,
|
|
56
|
-
type: type,
|
|
57
|
-
theme: theme,
|
|
58
|
-
size: size,
|
|
59
|
-
rounded: rounded,
|
|
60
|
-
classes: classes,
|
|
61
|
-
form: form,
|
|
62
|
-
**options
|
|
63
|
-
)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# Helper specifici per ogni tipo di input
|
|
67
|
-
|
|
68
|
-
# Input di tipo password
|
|
69
|
-
def bui_input_password(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
70
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
71
|
-
bui_input_text(
|
|
72
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
73
|
-
type: :password, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
74
|
-
)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# Input di tipo email
|
|
78
|
-
def bui_input_email(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
79
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
80
|
-
bui_input_text(
|
|
81
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
82
|
-
type: :email, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
83
|
-
)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Input di tipo tel
|
|
87
|
-
def bui_input_tel(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
88
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
89
|
-
bui_input_text(
|
|
90
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
91
|
-
type: :tel, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
92
|
-
)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Input di tipo url
|
|
96
|
-
def bui_input_url(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
97
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
98
|
-
bui_input_text(
|
|
99
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
100
|
-
type: :url, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
101
|
-
)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# Input di tipo number
|
|
105
|
-
def bui_input_number(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
106
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
107
|
-
bui_input_text(
|
|
108
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
109
|
-
type: :number, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
110
|
-
)
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
# Input di tipo search
|
|
114
|
-
def bui_input_search(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
115
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
116
|
-
bui_input_text(
|
|
117
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
118
|
-
type: :search, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
119
|
-
)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
# Input di tipo color
|
|
126
|
-
def bui_input_color(name:, value: nil, placeholder: nil, required: false, disabled: false,
|
|
127
|
-
theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options)
|
|
128
|
-
bui_input_text(
|
|
129
|
-
name: name, value: value, placeholder: placeholder, required: required, disabled: disabled,
|
|
130
|
-
type: :color, theme: theme, size: size, rounded: rounded, classes: classes, form: form, **options
|
|
131
|
-
)
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
end
|