{
  "mixins": [ "mixins/ripple", "mixins/size" ],

  "props": {
    "type":{
      "type": "String",
      "desc": "Define the button HTML DOM type",
      "default": "button",
      "values": [
        "a", "submit", "button", "reset"
      ],
      "examples": [
        "type=\"a\" href=\"http://some-site.net\" target=\"__blank\""
      ],
      "category": "general"
    },

    "to": {
      "type": [ "String", "Object" ],
      "desc": "Equivalent to Vue Router <router-link> 'to' property",
      "examples": [
        "/home/dashboard",
        ":to=\"{ name: 'my-route-name' }\""
      ],
      "category": "router"
    },

    "replace": {
      "type": "Boolean",
      "desc": "Equivalent to Vue Router <router-link> 'replace' property",
      "category": "router"
    },

    "label":{
      "type": [ "String", "Number" ],
      "desc": "The text that will be shown on the button",
      "examples": [ "Button Label" ],
      "category": "content"
    },

    "icon": {
      "extends": "icon"
    },

    "icon-right": {
      "extends": "icon"
    },

    "outline": {
      "type": "Boolean",
      "desc": "Use 'outline' design",
      "category": "style"
    },

    "flat": {
      "type": "Boolean",
      "desc": "Use 'flat' design",
      "category": "style"
    },

    "unelevated": {
      "type": "Boolean",
      "desc": "Remove shadow",
      "category": "style"
    },

    "rounded": {
      "type": "Boolean",
      "desc": "Applies a more prominent border-radius for a squared shape button",
      "category": "style"
    },

    "push": {
      "type": "Boolean",
      "desc": "Use 'push' design",
      "category": "style"
    },

    "glossy": {
      "type": "Boolean",
      "desc": "Applies a glossy effect",
      "category": "style"
    },

    "fab": {
      "type": "Boolean",
      "desc": "Makes button size and shape to fit a Floating Action Button",
      "category": "style"
    },

    "fab-mini": {
      "type": "Boolean",
      "desc": "Makes button size and shape to fit a small Floating Action Button",
      "category": "style"
    },

    "color": {
      "extends": "color"
    },

    "text-color": {
      "extends": "text-color"
    },

    "no-caps": {
      "type": "Boolean",
      "desc": "Avoid turning label text into caps (which happens by default)",
      "category": "content"
    },

    "no-wrap": {
      "type": "Boolean",
      "desc": "Avoid label text wrapping",
      "category": "content"
    },

    "dense": {
      "extends": "dense"
    },

    "tabindex": {
      "extends": "tabindex"
    },

    "align": {
      "type": "String",
      "desc": "Label or content alignment",
      "default": "center",
      "values": [ "left", "right", "center", "around", "between", "evenly" ],
      "category": "content"
    },

    "stack": {
      "type": "Boolean",
      "desc": "Stack icon and label vertically instead of on same line (like it is by default)",
      "category": "content"
    },

    "stretch": {
      "type": "Boolean",
      "desc": "When used on flexbox parent, button will stretch to parent's height",
      "category": "content"
    },

    "loading": {
      "type": "Boolean",
      "desc": "Put button into loading state (displays a QSpinner -- can be overriden by using a 'loading' slot)",
      "category": "behavior|state"
    },

    "disable": {
      "extends": "disable"
    }
  }
}
