Class: CubitComponents::SpreadComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
lib/cubit_components/spread_component.rb

Constant Summary collapse

VALID_VATTRS =
Set.new(
  %w[
    items-start items-center items-end
    text-left text-center text-right
    flex-col flex-row
    justify-between
  ]
).freeze
DEFAULT_VATTRS =
%w[flex justify-between w-full items-start text-left].freeze

Instance Method Summary collapse

Methods inherited from BaseComponent

#call

Constructor Details

#initialize(element: "div", classes: "", vattrs: []) ⇒ SpreadComponent

Returns a new instance of SpreadComponent.

Parameters:

  • element (String) (defaults to: "div")

    HTML element to use

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

    additional CSS classes

  • vattrs (Array<String>) (defaults to: [])

    utility/variant attributes



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cubit_components/spread_component.rb', line 19

def initialize(element: "div", classes: "", vattrs: [])
  vattrs = merge_default_vattrs(Array(vattrs))

  extra_classes = []
  # Add vertical class if specified, otherwise it's horizontal by default
  if vattrs.include?("vertical")
    extra_classes << "flex-col"
    extra_classes << "h-full"
    vattrs.delete("vertical")
  else
    extra_classes << "flex-row"
  end

  super(
    element: element,
    classes: [classes, extra_classes].join(" ").strip,
    vattrs: vattrs
  )
end