Module: BetterUi::General::Components::Accordion::AccordionHelper

Included in:
ApplicationHelper
Defined in:
app/helpers/better_ui/general/components/accordion/accordion_helper.rb

Instance Method Summary collapse

Instance Method Details

#bui_accordion(multiple: false, theme: :default, variant: :bordered, size: :medium, classes: '', **options, &block) ⇒ String

Rendering di un accordion con item collassabili/espandibili

Examples:

Uso base standalone

<%= bui_accordion do |accordion| %>
  <%= accordion.with_item(title: "Domanda 1") do %>
    <p>Risposta alla prima domanda</p>
  <% end %>
<% end %>

Con tema e configurazioni

<%= bui_accordion(multiple: true, theme: :blue, size: :large) do |accordion| %>
  <%= accordion.with_item(title: "FAQ 1", expanded: true) do %>
    <p>Contenuto della prima FAQ</p>
  <% end %>
  <%= accordion.with_item(title: "FAQ 2") do %>
    <p>Contenuto della seconda FAQ</p>
  <% end %>
<% end %>

Con varianti stilistiche

<%= bui_accordion(variant: :separated, theme: :green) do |accordion| %>
  <%= accordion.with_item(title: "Sezione 1") do %>
    <div>Contenuto complesso con HTML</div>
  <% end %>
<% end %>

Con attributi HTML aggiuntivi

<%= bui_accordion(id: "faq-accordion", "data-testid": "main-faq") do |accordion| %>
  <%= accordion.with_item(title: "Come funziona?") do %>
    <p>Spiegazione dettagliata...</p>
  <% end %>
<% end %>

Con item disabilitati e icone personalizzate

<%= bui_accordion(theme: :violet, size: :small) do |accordion| %>
  <%= accordion.with_item(title: "Disponibile", icon: "check-circle") do %>
    <p>Questa sezione è disponibile</p>
  <% end %>
  <%= accordion.with_item(title: "Non disponibile", disabled: true) do %>
    <p>Questa sezione è disabilitata</p>
  <% end %>
<% end %>

Parameters:

  • multiple (Boolean) (defaults to: false)

    se permettere multipli item aperti contemporaneamente

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

    tema di colore per l’accordion

  • variant (Symbol) (defaults to: :bordered)

    variante visuale dell’accordion

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

    dimensione del testo e padding

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

    classi CSS aggiuntive per il wrapper

  • options (Hash)

    attributi HTML aggiuntivi da passare al componente

Returns:

  • (String)

    HTML renderizzato dell’accordion



58
59
60
61
62
63
64
65
66
67
68
# File 'app/helpers/better_ui/general/components/accordion/accordion_helper.rb', line 58

def bui_accordion(multiple: false, theme: :default, variant: :bordered, size: :medium, 
                 classes: '', **options, &block)
  render BetterUi::General::Accordion::Component.new(
    multiple: multiple,
    theme: theme,
    variant: variant,
    size: size,
    classes: classes,
    **options
  ), &block
end