{
  "type": "plugin",
  "injection": "$q.bottomSheet",
  "methods": {
    "create": {
      "desc": "Creates an ad-hoc Bottom Sheet; Same as calling $q.bottomSheet(...)",
      "params": {
        "opts": {
          "type": "Object",
          "required": true,
          "definition": {
            "class": {
              "type": [
                "String",
                "Array",
                "Object"
              ],
              "desc": "CSS Class name to apply to the Dialog's QCard",
              "examples": [
                "my-class"
              ]
            },
            "style": {
              "type": [
                "String",
                "Array",
                "Object"
              ],
              "desc": "CSS style to apply to the Dialog's QCard",
              "examples": [
                "border: 2px solid black"
              ]
            },
            "title": {
              "type": "String",
              "desc": "Title",
              "examples": [
                "Share"
              ]
            },
            "message": {
              "type": "String",
              "desc": "Message",
              "examples": [
                "Please select how to share"
              ]
            },
            "actions": {
              "type": "Array",
              "desc": "Array of Objects, each Object defining an action",
              "definition": {
                "classes": {
                  "type": [
                    "String",
                    "Array",
                    "Object"
                  ],
                  "desc": "CSS classes for this action",
                  "examples": [
                    "my-class"
                  ]
                },
                "icon": {
                  "type": "String",
                  "desc": "Icon name following Quasar convention; make sure you have the icon library installed unless you are using 'img:' prefix",
                  "examples": [
                    "map",
                    "ion-add",
                    "img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
                    "img:statics/path/to/some_image.png"
                  ],
                  "category": "content"
                },
                "img": {
                  "type": "String",
                  "desc": "Path to an image for this action",
                  "examples": [
                    "(statics folder) statics/img/something.png",
                    "(relative path format) :src=\"require('./my_img.jpg')\"",
                    "(URL) https://some-site.net/some-img.gif"
                  ]
                },
                "avatar": {
                  "type": "Boolean",
                  "desc": "Display img as avatar (round borders)"
                },
                "label": {
                  "type": [
                    "String",
                    "Number"
                  ],
                  "desc": "Action label",
                  "examples": [
                    "Facebook"
                  ]
                }
              }
            },
            "grid": {
              "type": "Boolean",
              "desc": "Display actions as a grid instead of as a list"
            },
            "dark": {
              "type": "Boolean",
              "desc": "Apply dark mode",
              "category": "style"
            },
            "seamless": {
              "type": "Boolean",
              "desc": "Put Bottom Sheet into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too"
            },
            "persistent": {
              "type": "Boolean",
              "desc": "User cannot dismiss Bottom Sheet if clicking outside of it or hitting ESC key"
            }
          },
          "desc": "Bottom Sheet options"
        }
      },
      "returns": {
        "type": "Object",
        "desc": "Chainable Object",
        "tsType": "DialogChainObject",
        "definition": {
          "onOk": {
            "type": "Function",
            "desc": "Receives a Function param to tell what to do when OK is pressed / option is selected",
            "params": {
              "callbackFn": {
                "type": "Function",
                "desc": "Tell what to do",
                "required": true,
                "params": null,
                "returns": null
              }
            },
            "returns": {
              "type": "Object",
              "desc": "Chained Object",
              "tsType": "DialogChainObject"
            }
          },
          "onCancel": {
            "type": "Function",
            "desc": "Receives a Function as param to tell what to do when Cancel is pressed / dialog is dismissed",
            "params": {
              "callbackFn": {
                "type": "Function",
                "desc": "Tell what to do",
                "required": true,
                "params": null,
                "returns": null
              }
            },
            "returns": {
              "type": "Object",
              "desc": "Chained Object",
              "tsType": "DialogChainObject"
            }
          },
          "onDismiss": {
            "type": "Function",
            "desc": "Receives a Function param to tell what to do when the dialog is closed",
            "params": {
              "callbackFn": {
                "type": "Function",
                "desc": "Tell what to do",
                "required": true,
                "params": null,
                "returns": null
              }
            },
            "returns": {
              "type": "Object",
              "desc": "Chained Object",
              "tsType": "DialogChainObject"
            }
          },
          "hide": {
            "type": "Function",
            "desc": "Hides the dialog when called",
            "params": null,
            "returns": {
              "type": "Object",
              "desc": "Chained Object",
              "tsType": "DialogChainObject"
            }
          }
        }
      },
      "tsInjectionPoint": true
    }
  }
}