ember-paper provides a paper-form to help you build forms
        and keep track of the form's global validity state. This component uses
        the html form tag by default, so expected form behavior will occur.
        (For example, pressing the enter key from within one of the form's
        inputs will submit the form.)
        paper-form yields paper-input,
        paper-select
        and paper-autocomplete controls.
        In the following example you can see how we use the yielded form controls:
      
Template
<PaperForm @onSubmit={{action "basicSubmitAction"}} as |form|>
  <div class="layout-row">
    <div class="layout-column flex-50">
      <form.input @label="First Name" @value={{this.firstName}} @onChange={{action (mut this.firstName)}} @required={{true}} />
      <form.input @label="Last Name" @value={{this.lastName}} @onChange={{action (mut this.lastName)}} />
    </div>
    <div class="layout-column flex-50">
      <form.autocomplete @required={{true}} @options={{this.items}} @selected={{this.selectedCountry}} @searchField="name" @labelPath="name" @label="Country" @noMatchesMessage="Oops this country doesn't exist." @onSelectionChange={{action (mut this.selectedCountry)}} as |country select|>
        <PaperAutocompleteHighlight @label={{country.name}} @searchText={{select.searchText}} @flags="i" />
      </form.autocomplete>
      <form.input @type="number" @label="Age" @value={{this.age}} @onChange={{action (mut this.age)}} @min={{13}} @max={{65}} @required={{true}} />
    </div>
  </div>
  <div class="layout-row">
    <form.submit-button @raised={{true}} @primary={{true}}>Submit</form.submit-button>
  </div>
</PaperForm>
    
        A typical use case for the global validity state is to toggle the submit button
        between a disabled and enabled state. Here is how you would do that with
        paper-form:
      
Template
<PaperForm @onSubmit={{action "disabledSubmitAction"}} as |form|>
  <div class="layout-row">
    <form.input @label="Favorite Letter" @value={{this.favoriteLetter}} @onChange={{action (mut this.favoriteLetter)}} @required={{true}} @maxlength={{1}} />
  </div>
  <div class="layout-row">
    <form.submit-button @raised={{true}} @primary={{true}} @disabled={{form.isInvalid}}>
      Submit
    </form.submit-button>
  </div>
</PaperForm>
    
        If you prefer, you can trigger the submit action without using a submit button.
        paper-form also yields an onSubmit action you
        can use wherever you like, e.g: 
        
          <button onclick={{action form.onSubmit}}>
            Submit
          </button>
        
      
      You can also extend paper-input to make your own custom components (money inputs, phone inputs, etc.) and the form validation will still work out of the box! Just replace paper-input with your component's name.
Template
<PaperForm @onSubmit={{action "customSubmitAction"}} as |form|>
  <div class="layout-row">
    <PaperInput @label="Favorite Number" @value={{this.favoriteNumber}} @onChange={{action (mut this.favoriteNumber)}} @required={{true}} @min={{1}} @max={{10}} />
  </div>
  <div class="layout-row">
    <form.submit-button @raised={{true}} @primary={{true}}>Submit</form.submit-button>
  </div>
</PaperForm>
    