<div class="FreestyleDynamic-input" ...attributes>
  <label for={{this.inputId}}>
    {{@propertyName}}:
  </label>
  {{#if this.isCheckbox}}
    <input
      checked={{@value}}
      id={{this.inputId}}
      type="checkbox"
      {{on "input" this.toggleCheckbox}}
    >
  {{else if this.isTextarea}}
    <textarea
      cols="40"
      id={{this.inputId}}
      rows="5"
      value={{@value}}
      {{on "input" this.sendChangedText}}
    />
  {{else if this.isSelect}}
    <select id={{this.inputId}} {{on "change" this.onChange}}>
      {{#each @options as |option|}}
        <FreestyleDynamicInputSelectOption @selectedValue={{@value}} @optionValue={{option}} />
      {{/each}}
    </select>
  {{else if this.isNumber}}
    <input
      id={{this.inputId}}
      type="number"
      value={{@value}}
      {{on "input" this.onChangeWithNumericCoercion}}
    >
  {{else if this.isRange}}
    <input
      id={{this.inputId}}
      max={{@max}}
      min={{@min}}
      type="range"
      value={{@value}}
      {{on "input" this.onChangeWithNumericCoercion}}
    >
    {{@value}}
  {{else}}
    <input
      id={{this.inputId}}
      type="text"
      value={{@value}}
      {{on "input" this.onChange}}
    >
  {{/if}}
  {{#if @description}}
    <small class="FreestyleDynamic-inputDescription">
      {{@description}}
    </small>
  {{/if}}
</div>
