<form {{action (perform signInTask) on='submit'}} data-test={{hook 'sign-in-form'}} class="form sign-in__form">
  {{#form-item
    label=(t 'sign-in.form.labels.email')
    errors=(if (and signInTask.last validations.attrs.email.isInvalid) validations.attrs.email.messages)
  }}
    <input
      type='email'
      value={{email}}
      disabled={{signInTask.isRunning}}
      required
      oninput={{action (mut email) value='target.value'}}
      data-test={{hook 'sign-in-email'}}>
  {{/form-item}}

  {{#form-item
    label=(t 'sign-in.form.labels.password')
    errors=(if (and signInTask.last validations.attrs.password.isInvalid) validations.attrs.password.messages)
  }}
    <input
      type='password'
      value={{password}}
      disabled={{signInTask.isRunning}}
      required
      oninput={{action (mut password) value='target.value'}}
      data-test={{hook 'sign-in-password'}}>
  {{/form-item}}

  {{vinli-button
    type='submit'
    default=(t 'sign-in.form.buttons.form-submit')
    disabled=signInTask.isRunning
    isWorking=signInTask.isRunning
    pending=(t 'sign-in.form.buttons.form-submit')
    size='medium'
    theme='normal'
    width='full'
    hook='sign-in-submit'
  }}
</form>

{{#if (or onSignUp onForgotPassword)}}
  {{#vinli-button-group align='center'}}
    {{#if onSignUp}}
      {{vinli-button
        action=onSignUp
        default=(t 'sign-in.actions.sign-up')
        size='small'
        theme='transparent'
        hook='sign-in-sign-up'
      }}
    {{/if}}

    {{#if onForgotPassword}}
      {{vinli-button
        action=onForgotPassword
        default=(t 'sign-in.actions.forgot-password')
        size='small'
        theme='transparent'
        hook='sign-in-forgot-password'
      }}
    {{/if}}
  {{/vinli-button-group}}
{{/if}}
