Class: UI::AccordionTrigger

Inherits:
Phlex::HTML
  • Object
show all
Includes:
AccordionTriggerBehavior
Defined in:
app/components/ui/accordion_trigger.rb

Overview

Accordion Trigger component (Phlex) Button that toggles accordion item open/closed

Examples:

Basic usage

render UI::Trigger.new(item_value: "item-1") do
  "Click to toggle"
end

Instance Method Summary collapse

Methods included from AccordionTriggerBehavior

#aria_expanded, #caret_svg, #content_id, #item_value, #merged_trigger_data_attributes, #trigger_base_classes, #trigger_classes, #trigger_data_attributes, #trigger_html_attributes, #trigger_id, #trigger_state

Constructor Details

#initialize(item_value: nil, initial_open: false, classes: "", attributes: {}) ⇒ AccordionTrigger

Returns a new instance of AccordionTrigger.

Parameters:

  • item_value (String) (defaults to: nil)

    value from parent Item

  • initial_open (Boolean) (defaults to: false)

    initial state from parent Item

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

    additional CSS classes

  • attributes (Hash) (defaults to: {})

    additional HTML attributes



17
18
19
20
21
22
# File 'app/components/ui/accordion_trigger.rb', line 17

def initialize(item_value: nil, initial_open: false, classes: "", attributes: {}, **)
  @item_value = item_value
  @initial_open = initial_open
  @classes = classes
  @attributes = attributes
end

Instance Method Details

#view_template(&block) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'app/components/ui/accordion_trigger.rb', line 24

def view_template(&block)
  h3(class: "flex", "data-orientation": @orientation || "vertical", "data-state": trigger_state) do
    button(**trigger_html_attributes) do
      yield if block_given?
      # Render caret icon using Phlex DSL
      render_caret_icon
    end
  end
end