Class: LightningUiKit::CollapsibleComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/lightning_ui_kit/collapsible_component.rb

Instance Method Summary collapse

Constructor Details

#initialize(open: false, **options) ⇒ CollapsibleComponent

Returns a new instance of CollapsibleComponent.



5
6
7
8
# File 'app/components/lightning_ui_kit/collapsible_component.rb', line 5

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

Instance Method Details

#classesObject



10
11
12
13
14
15
# File 'app/components/lightning_ui_kit/collapsible_component.rb', line 10

def classes
  merge_classes([
    "lui:flex lui:flex-col lui:gap-2",
    @options[:class]
  ].compact.join(" "))
end

#content_classesObject



17
18
19
20
# File 'app/components/lightning_ui_kit/collapsible_component.rb', line 17

def content_classes
  rows = @open ? "lui:grid-rows-[1fr]" : "lui:grid-rows-[0fr]"
  "lui:grid lui:transition-all lui:duration-200 lui:ease-out #{rows}"
end

#dataObject



22
23
24
25
26
27
# File 'app/components/lightning_ui_kit/collapsible_component.rb', line 22

def data
  {
    controller: "lui-collapsible",
    lui_collapsible_open_value: @open
  }.merge(@options[:data] || {})
end