class Primer::Forms::Dsl::TextFieldInput

:nodoc:

def focusable?

def focusable?
  true
end

def initialize(name:, label:, **system_arguments)

def initialize(name:, label:, **system_arguments)
  @name = name
  @label = label
  @show_clear_button = system_arguments.delete(:show_clear_button)
  @leading_visual = system_arguments.delete(:leading_visual)
  @clear_button_id = system_arguments.delete(:clear_button_id)
  @inset = system_arguments.delete(:inset)
  @monospace = system_arguments.delete(:monospace)
  @auto_check_src = system_arguments.delete(:auto_check_src)
  if @leading_visual
    @leading_visual[:classes] = class_names(
      "FormControl-input-leadingVisual",
      @leading_visual[:classes]
    )
  end
  super(**system_arguments)
  add_input_data(:target, "primer-text-field.inputElement #{system_arguments.dig(:data, :target) || ''}")
  add_input_classes("FormControl-inset") if inset?
  add_input_classes("FormControl-monospace") if monospace?
end

def leading_visual?

def leading_visual?
  !!@leading_visual
end

def to_component

def to_component
  TextField.new(input: self)
end

def type

def type
  :text_field
end

def validation_arguments

def validation_arguments
  if auto_check_src.present?
    super.merge(
      data: {
        target: "primer-text-field.validationElement"
      }
    )
  else
    super
  end
end

def validation_error_icon_target

def validation_error_icon_target
  "primer-text-field.validationErrorIcon"
end

def validation_message_arguments

def validation_message_arguments
  if auto_check_src.present?
    super.merge(
      data: {
        target: "primer-text-field.validationMessageElement"
      }
    )
  else
    super
  end
end

def validation_success_icon_target

def validation_success_icon_target
  "primer-text-field.validationSuccessIcon"
end