{
  "meta": {
    "docsUrl": "https://v2.quasar.dev/vue-components/pull-to-refresh"
  },

  "props": {
    "color": {
      "desc": "Color name for the icon from the Quasar Color Palette",
      "extends": "color"
    },

    "bg-color": {
      "desc": "Color name for background of the icon container from the Quasar Color Palette",
      "extends": "color"
    },

    "icon": {
      "extends": "icon",
      "desc": "Icon to display when refreshing the content"
    },

    "no-mouse": {
      "type": "Boolean",
      "desc": "Don't listen for mouse events",
      "category": "behavior"
    },

    "side": {
      "type": "String",
      "desc": "Side of the content the pull starts from; the refresh is triggered by pulling from that edge towards the inside of the content, while the scroll target is scrolled to that edge; 'bottom' suits messenger-styled content, where the newest entries sit at the bottom",
      "values": ["'top'", "'bottom'", "'left'", "'right'"],
      "default": "'top'",
      "category": "behavior",
      "addedIn": "v2.30"
    },

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

    "scroll-target": {
      "extends": "scroll-target"
    }
  },

  "slots": {
    "default": {
      "desc": "Content (area controlled by the component) goes here"
    }
  },

  "events": {
    "refresh": {
      "desc": "Called whenever a refresh is triggered; at this time, your function should load more data",
      "params": {
        "done": {
          "type": "Function",
          "desc": "Call the done() function when your data has been refreshed",
          "params": null,
          "returns": null
        }
      }
    }
  },

  "methods": {
    "trigger": {
      "desc": "Triggers a refresh",
      "params": null,
      "returns": null
    },

    "updateScrollTarget": {
      "extends": "updateScrollTarget"
    }
  }
}
