Class: PhlexKit::Collapsible

Inherits:
BaseComponent show all
Defined in:
app/components/phlex_kit/collapsible/collapsible.rb

Overview

Show/hide a single region. Ported from ruby_ui's RubyUI::Collapsible. Compose Collapsible > (CollapsibleTrigger + CollapsibleContent). phlex-kit--collapsible.

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(open: false, **attrs) ⇒ Collapsible

Returns a new instance of Collapsible.



5
6
7
8
# File 'app/components/phlex_kit/collapsible/collapsible.rb', line 5

def initialize(open: false, **attrs)
  @open = open
  @attrs = attrs
end

Instance Method Details

#view_templateObject



9
10
11
12
13
14
# File 'app/components/phlex_kit/collapsible/collapsible.rb', line 9

def view_template(&)
  # data-state is the CSS styling hook (chevron rotation) — it must be
  # server-rendered or an open: true collapsible renders a closed-pointing
  # chevron until Stimulus connects (and always, with JS off).
  div(**mix({ class: "pk-collapsible", data: { controller: "phlex-kit--collapsible", phlex_kit__collapsible_open_value: @open, state: @open ? "open" : "closed" } }, @attrs), &)
end