{{#let
  (has-block "prepend")
  (has-block "append")
  (arg-or-default @id (unique-id)) as |hasPrepend hasAppend inputId|
}}
  {{#let
    (class-names
      (if @icon "euiFieldText--withIcon")
      (if @fullWidth "euiFieldText--fullWidth")
      (if @compressed "euiFieldText--compressed")
      (if (or hasPrepend hasAppend) "euiFieldText--inGroup")
      (if @isLoading "euiFieldText--isLoading")
      "euiFieldText"
    ) as |classes|
  }}
    {{#if @controlOnly}}
      <input
        id={{inputId}}
        class={{classes}}
        type="text"
        ...attributes
        {{validatable-control @isInvalid}}
      />
    {{else}}
      <EuiFormControlLayout
        @icon={{@icon}}
        @clear={{@clear}}
        @fullWidth={{@fullWidth}}
        @isLoading={{@isLoading}}
        @compressed={{@compressed}}
        @readOnly={{@readOnly}}
        @useGroup={{or hasPrepend hasAppend}}
      >
        <:prepend as |prependClasses|>
          {{yield prependClasses inputId to="prepend"}}
        </:prepend>
        <:field>
          <input
            id={{inputId}}
            value={{@value}}
            class={{classes}}
            type="text"
            ...attributes
            {{validatable-control @isInvalid}}
          />
        </:field>
        <:append as |appendClasses|>
          {{yield appendClasses inputId to="append"}}
        </:append>
      </EuiFormControlLayout>
    {{/if}}
  {{/let}}
{{/let}}