<!--
Copyright (C) 2016 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../../behaviors/gr-tooltip-behavior/gr-tooltip-behavior.html">
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-button">
  <template strip-whitespace>
    <style include="shared-styles">
      :host {
        background-color: #f5f5f5;
        border: 1px solid #d1d2d3;
        border-radius: 2px;
        box-sizing: border-box;
        color: #333;
        cursor: pointer;
        display: inline-block;
        font-family: var(--font-family-bold);
        font-size: 12px;
        outline-width: 0;
        padding: .4em .85em;
        position: relative;
        text-align: center;
        -moz-user-select: none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none;
      }
      :host([hidden]) {
        display: none;
      }
      :host([primary]),
      :host([secondary]) {
        color: #fff;
      }
      :host([primary]) {
        background-color: #4d90fe;
        border-color: #3079ed;
      }
      :host([secondary]) {
        background-color: #d14836;
        border-color: transparent;
      }
      :host([small]) {
        font-size: 12px;
      }
      :host([link]) {
        background-color: transparent;
        border: none;
        color: #00f;
        font-size: inherit;
        font-family: var(--font-family);
        padding: 0;
        text-decoration: underline;
      }
      :host([loading]),
      :host([disabled]) {
        background-color: #efefef;
        color: #aaa;
      }
      :host([disabled]) {
        cursor: default;
      }
      :host([loading]),
      :host([loading][disabled]) {
        cursor: wait;
      }
      :host:focus:not([link]),
      :host:hover:not([link]) {
        background-color: #f8f8f8;
        border-color: #aaa;
      }
      :host(:active) {
        border-color: #d1d2d3;
        color: #aaa;
      }
      :host([primary]:focus),
      :host([secondary]:focus),
      :host([primary]:active),
      :host([secondary]:active) {
        color: #fff;
      }
      :host([primary]:focus) {
        box-shadow: 0 0 1px #00f;
        background-color: #4d90fe;
      }
      :host([primary]:not([disabled]):hover) {
        background-color: #4d90fe;
        border-color: #00F;
      }
      :host([primary]:active),
      :host([secondary]:active) {
        box-shadow: none;
      }
      :host([primary]:active) {
        border-color: #0c2188;
      }
      :host([secondary]:focus) {
        box-shadow: 0 0 1px #f00;
        background-color: #d14836;
      }
      :host([secondary]:not([disabled]):hover) {
        background-color: #c53727;
        border: 1px solid #b0281a;
      }
      :host([secondary]:active) {
        border-color: #941c0c;
      }
      :host([primary][loading]) {
        background-color: #7caeff;
        border-color: transparent;
        color: #fff;
      }
      :host([primary][disabled]) {
        background-color: #4d90fe;
        color: #fff;
        opacity: .5;
      }
    </style>
    <content></content>
  </template>
  <script src="gr-button.js"></script>
</dom-module>
