Module: BetterUi::General::Components::Input::Checkbox::CheckboxHelper

Included in:
ApplicationHelper
Defined in:
app/helpers/better_ui/general/components/input/checkbox/checkbox_helper.rb

Instance Method Summary collapse

Instance Method Details

#bui_input_checkbox(name:, value: '1', checked: false, required: false, disabled: false, indeterminate: false, label: nil, label_position: :right, theme: :default, size: :medium, rounded: :medium, classes: '', form: nil, **options) ⇒ String

Renderizza un componente Checkbox con tutti i parametri disponibili.

Examples:

Uso base

<%= bui_input_checkbox(name: 'accept_terms') %>

Con label

<%= bui_input_checkbox(name: 'newsletter', label: 'Iscriviti alla newsletter', checked: true) %>

Con label a sinistra

<%= bui_input_checkbox(name: 'terms', label: 'Accetto i termini e condizioni', label_position: :left, required: true) %>

Con tema e dimensione personalizzati

<%= bui_input_checkbox(name: 'important', label: 'Importante', theme: :green, size: :large) %>

Con border radius personalizzato

<%= bui_input_checkbox(name: 'rounded_option', label: 'Opzione arrotondata', rounded: :full) %>

Con classi aggiuntive

<%= bui_input_checkbox(name: 'custom', label: 'Campo personalizzato', classes: 'mb-4', checked: true) %>

Con attributi HTML aggiuntivi

<%= bui_input_checkbox(name: 'data-field', label: 'Campo obbligatorio', 'data-validation': 'required', 'aria-describedby': 'help-text') %>

Con Rails form builder

<%= form_with model: @user do |form| %>
  <%= bui_input_checkbox(name: :terms_accepted, label: 'Accetto i termini', form: form, theme: :green, required: true) %>
<% end %>

Stato indeterminate

<%= bui_input_checkbox(name: 'partial_selection', label: 'Selezione parziale', indeterminate: true, theme: :blue) %>

Parameters:

  • name (String)

    Nome del campo checkbox (obbligatorio)

  • value (String) (defaults to: '1')

    Valore del checkbox (default: “1”)

  • checked (Boolean) (defaults to: false)

    Se il checkbox è selezionato

  • required (Boolean) (defaults to: false)

    Se il campo è obbligatorio

  • disabled (Boolean) (defaults to: false)

    Se il campo è disabilitato

  • indeterminate (Boolean) (defaults to: false)

    Se il checkbox è in stato indeterminate

  • label (String, nil) (defaults to: nil)

    Testo della label associata al checkbox

  • label_position (Symbol) (defaults to: :right)

    Posizione della label (:left, :right)

  • theme (Symbol) (defaults to: :default)

    Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)

  • size (Symbol) (defaults to: :medium)

    Dimensione del componente (:small, :medium, :large)

  • rounded (Symbol) (defaults to: :medium)

    Border radius (:none, :small, :medium, :large, :full)

  • classes (String) (defaults to: '')

    Classi CSS aggiuntive

  • form (ActionView::Helpers::FormBuilder, nil) (defaults to: nil)

    Form builder Rails opzionale

  • options (Hash)

    Opzioni aggiuntive per l’input (es. data attributes, aria attributes)

Returns:

  • (String)

    HTML del componente Checkbox renderizzato



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/helpers/better_ui/general/components/input/checkbox/checkbox_helper.rb', line 56

def bui_input_checkbox(name:, value: '1', checked: false, required: false, disabled: false,
                       indeterminate: false, label: nil, label_position: :right, theme: :default, 
                       size: :medium, rounded: :medium, classes: '', form: nil, **options)
  render BetterUi::General::Input::Checkbox::Component.new(
    name: name,
    value: value,
    checked: checked,
    required: required,
    disabled: disabled,
    indeterminate: indeterminate,
    label: label,
    label_position: label_position,
    theme: theme,
    size: size,
    rounded: rounded,
    classes: classes,
    form: form,
    **options
  )
end