class Lookbook::ParamsEditor::Field::Component

def alpine_component

def alpine_component
  "paramsEditorFieldComponent"
end

def alpine_data

def alpine_data
  "{name: '#{@name}', value: #{value.to_json}}"
end

def field_type

def field_type
  @input.to_s
end

def initialize(input:, name:, default: nil, value: nil, input_type: nil, type: nil, options: nil, **html_attrs)

def initialize(input:, name:, default: nil, value: nil, input_type: nil, type: nil, options: nil, **html_attrs)
  @input = input
  @name = name
  @value = value
  @default_value = default
  @input_type = input_type
  @type = type
  @options = options
  super(**html_attrs)
end

def input_type

def input_type
  @input_type.nil? && field_type == "text" ? "text" : @input_type
end

def label

def label
  @name.titleize
end

def value

def value
  val = @value.presence || @default_value
  @type == "Boolean" ? val == "true" || val == true : val
end