text: define(["../polymer/polymer-legacy.js", "../paper-styles/default-theme.js", "../paper-styles/typography.js", "../polymer/lib/legacy/polymer-fn.js", "../polymer/lib/utils/html-tag.js", "./paper-input-addon-behavior.js"], function (_polymerLegacy, _defaultTheme, _typography, _polymerFn, _htmlTag, _paperInputAddonBehavior) {
    "use strict";
  
    function _templateObject_23d9b4c0d1d911ea92952ff2097cf814() {
      var data = babelHelpers.taggedTemplateLiteral(["\n    <style>\n      :host {\n        display: inline-block;\n        visibility: hidden;\n\n        color: var(--paper-input-container-invalid-color, var(--error-color));\n\n        @apply --paper-font-caption;\n        @apply --paper-input-error;\n        position: absolute;\n        left:0;\n        right:0;\n      }\n\n      :host([invalid]) {\n        visibility: visible;\n      }\n\n      #a11yWrapper {\n        visibility: hidden;\n      }\n\n      :host([invalid]) #a11yWrapper {\n        visibility: visible;\n      }\n    </style>\n\n    <!--\n    If the paper-input-error element is directly referenced by an\n    `aria-describedby` attribute, such as when used as a paper-input add-on,\n    then applying `visibility: hidden;` to the paper-input-error element itself\n    does not hide the error.\n\n    For more information, see:\n    https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n    -->\n    <div id=\"a11yWrapper\">\n      <slot></slot>\n    </div>\n"], ["\n    <style>\n      :host {\n        display: inline-block;\n        visibility: hidden;\n\n        color: var(--paper-input-container-invalid-color, var(--error-color));\n\n        @apply --paper-font-caption;\n        @apply --paper-input-error;\n        position: absolute;\n        left:0;\n        right:0;\n      }\n\n      :host([invalid]) {\n        visibility: visible;\n      }\n\n      #a11yWrapper {\n        visibility: hidden;\n      }\n\n      :host([invalid]) #a11yWrapper {\n        visibility: visible;\n      }\n    </style>\n\n    <!--\n    If the paper-input-error element is directly referenced by an\n    \\`aria-describedby\\` attribute, such as when used as a paper-input add-on,\n    then applying \\`visibility: hidden;\\` to the paper-input-error element itself\n    does not hide the error.\n\n    For more information, see:\n    https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n    -->\n    <div id=\"a11yWrapper\">\n      <slot></slot>\n    </div>\n"]);
  
      _templateObject_23d9b4c0d1d911ea92952ff2097cf814 = function _templateObject_23d9b4c0d1d911ea92952ff2097cf814() {
        return data;
      };
  
      return data;
    }
  
    /*
    `<paper-input-error>` is an error message for use with
    `<paper-input-container>`. The error is displayed when the
    `<paper-input-container>` is `invalid`.
    
        <paper-input-container>
          <input pattern="[0-9]*">
          <paper-input-error slot="add-on">Only numbers are
    allowed!</paper-input-error>
        </paper-input-container>
    
    ### Styling
    
    The following custom properties and mixins are available for styling:
    
    Custom property | Description | Default
    ----------------|-------------|----------
    `--paper-input-container-invalid-color` | The foreground color of the error | `--error-color`
    `--paper-input-error` | Mixin applied to the error | `{}`
    */
    (0, _polymerFn.Polymer)({
      /** @override */
      _template: (0, _htmlTag.html)(_templateObject_23d9b4c0d1d911ea92952ff2097cf814()),
      is: 'paper-input-error',
      behaviors: [_paperInputAddonBehavior.PaperInputAddonBehavior],
      properties: {
        /**
         * True if the error is showing.
         */
        invalid: {
          readOnly: true,
          reflectToAttribute: true,
          type: Boolean
        }
      },
  
      /**
       * This overrides the update function in PaperInputAddonBehavior.
       * @param {{
       *   inputElement: (Element|undefined),
       *   value: (string|undefined),
       *   invalid: boolean
       * }} state -
       *     inputElement: The input element.
       *     value: The input value.
       *     invalid: True if the input value is invalid.
       */
      update: function update(state) {
        this._setInvalid(state.invalid);
      }
    });
  });