Module: UI::AccordionBehavior

Included in:
Accordion, AccordionComponent
Defined in:
app/behaviors/ui/accordion_behavior.rb

Overview

UI::AccordionBehavior

Instance Method Summary collapse

Instance Method Details

#accordion_data_attributesObject

Generate Stimulus controller data attributes



31
32
33
34
35
36
37
# File 'app/behaviors/ui/accordion_behavior.rb', line 31

def accordion_data_attributes
  {
    controller: "ui--accordion",
    ui__accordion_type_value: @type || "single",
    ui__accordion_collapsible_value: @collapsible || false
  }
end

#accordion_html_attributesObject

Build complete HTML attributes hash for accordion container



46
47
48
49
50
51
52
53
# File 'app/behaviors/ui/accordion_behavior.rb', line 46

def accordion_html_attributes
  base_attrs = @attributes&.except(:data) || {}
  base_attrs.merge(
    class: @classes || "",
    "data-orientation": @orientation || "vertical",
    data: merged_data_attributes
  )
end

#merged_data_attributesObject

Merge user-provided data attributes with accordion controller data



40
41
42
43
# File 'app/behaviors/ui/accordion_behavior.rb', line 40

def merged_data_attributes
  user_data = @attributes&.fetch(:data, {}) || {}
  user_data.merge(accordion_data_attributes)
end