{
  "mixins": [ "components/btn/__btn-mixin", "mixins/model-toggle" ],

  "props": {
    "value": {
      "desc": "Controls Menu show/hidden state; Either use this property (along with a listener for 'input' event) OR use v-model directive",
      "examples": [ "v-model=\"menuState\"" ],
      "category": "model"
    },

    "split": {
      "type": "Boolean",
      "desc": "Split dropdown icon into its own button",
      "category": "content|behavior"
    },

    "dropdown-icon": {
      "extends": "icon",
      "addedIn": "v1.1.6"
    },

    "disable-main-btn": {
      "type": "Boolean",
      "desc": "Disable main button (useful along with 'split' prop)",
      "category": "behavior"
    },

    "disable-dropdown": {
      "type": "Boolean",
      "desc": "Disables dropdown (dropdown button if using along 'split' prop)",
      "category": "behavior"
    },

    "content-style": {
      "type": [ "Array", "String", "Object" ],
      "desc": "Style definitions to be attributed to the menu",
      "examples": [
        "background-color: #ff0000",
        ":content-style=\"{ backgroundColor: '#ff0000' }\""
      ],
      "category": "style"
    },

    "content-class": {
      "type": [ "Array", "String", "Object" ],
      "desc": "Class definitions to be attributed to the menu",
      "examples": [
        "my-special-class",
        ":content-class=\"{ 'my-special-class': <condition> }\""
      ],
      "category": "style"
    },

    "cover": {
      "type": "Boolean",
      "desc": "Allows the menu to cover the button. When used, the 'menu-self' and 'menu-fit' props are no longer effective",
      "category": "position"
    },

    "persistent": {
      "type": "Boolean",
      "desc": "Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key",
      "category": "behavior"
    },

    "auto-close": {
      "type": "Boolean",
      "desc": "Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",
      "category": "behavior"
    },

    "menu-anchor": {
      "type": "String",
      "desc": "Two values setting the starting position or anchor point of the menu relative to its target",
      "values": [
        "top left", "top middle", "top right",
        "center left", "center middle", "center right",
        "bottom left", "bottom center", "bottom right"
      ],
      "examples": [ "top left", "bottom right" ],
      "category": "position"
    },

    "menu-self": {
      "type": "String",
      "desc": "Two values setting the menu's own position relative to its target",
      "values": [
        "top left", "top middle", "top right",
        "center left", "center middle", "center right",
        "bottom left", "bottom center", "bottom right"
      ],
      "examples": [ "top left", "bottom right" ],
      "category": "position"
    }
  },

  "slots": {
    "default": {
      "extends": "default"
    },

    "label": {
      "desc": "Customize main button's content through this slot, unless you're using the 'icon' and 'label' props"
    }
  },

  "events": {
    "click": {
      "extends": "click",
      "desc": "Emitted when user clicks/taps on the main button (not the icon one, if using 'split')"
    }
  }
}
