{
  "$schema": "http://json.schemastore.org/web-types",
  "framework": "vue",
  "name": "@ionic/vue",
  "version": "8.8.5",
  "contributions": {
    "html": {
      "types-syntax": "typescript",
      "description-markup": "markdown",
      "tags": [
        {
          "name": "IonAccordion",
          "doc-url": "https://ionicframework.com/docs/api/accordion",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/accordion/accordion.d.ts",
            "symbol": "Accordion"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the accordion cannot be interacted with.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the accordion cannot be interacted with,\nbut does not alter the opacity.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "toggle-icon",
              "description": "The toggle icon to use. This icon will be\nrotated when the accordion is expanded\nor collapsed.",
              "required": false,
              "default": "chevronDown",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "toggle-icon-slot",
              "description": "The slot inside of `ion-item` to\nplace the toggle icon. Defaults to `\"end\"`.",
              "required": false,
              "default": "'end'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"start\""
              }
            },
            {
              "name": "value",
              "description": "The value of the accordion. Defaults to an autogenerated\nvalue.",
              "required": false,
              "default": "`ion-accordion-${accordionIds++}`",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            }
          ],
          "slots": [
            {
              "name": "content",
              "description": "Content is placed below the header and is\nshown or hidden based on expanded state."
            },
            {
              "name": "header",
              "description": "Content is placed at the top and is used to\nexpand or collapse the accordion item."
            }
          ],
          "events": []
        },
        {
          "name": "IonAccordionGroup",
          "doc-url": "https://ionicframework.com/docs/api/accordion-group",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/accordion-group/accordion-group.d.ts",
            "symbol": "AccordionGroup"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, all accordions inside of the\naccordion group will animate when expanding\nor collapsing.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the accordion group cannot be interacted with.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "expand",
              "description": "Describes the expansion behavior for each accordion.\nPossible values are `\"compact\"` and `\"inset\"`.\nDefaults to `\"compact\"`.",
              "required": false,
              "default": "'compact'",
              "value": {
                "kind": "expression",
                "type": "\"compact\" | \"inset\""
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "multiple",
              "description": "If `true`, the accordion group can have multiple\naccordion components expanded at the same time.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the accordion group cannot be interacted with,\nbut does not alter the opacity.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The value of the accordion group. This controls which\naccordions are expanded.\nThis should be an array of strings only when `multiple=\"true\"`",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | string[] | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionChange",
              "description": "Emitted when the value property has changed as a result of a user action such as a click.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "AccordionGroupChangeEventDetail<any>"
                }
              ]
            }
          ]
        },
        {
          "name": "IonActionSheet",
          "doc-url": "https://ionicframework.com/docs/api/action-sheet",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/action-sheet/action-sheet.d.ts",
            "symbol": "ActionSheet"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the action sheet will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the action sheet will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "buttons",
              "description": "An array of buttons for the action sheet.",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "(string | ActionSheetButton<any>)[]"
              }
            },
            {
              "name": "css-class",
              "description": "Additional classes to apply for custom CSS. If multiple classes are\nprovided they should be separated by spaces.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | string[] | undefined"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the action sheet is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "header",
              "description": "Title for the action sheet.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the action sheet.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the action sheet will open. If `false`, the action sheet will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the actionSheetController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe action sheet dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the action sheet is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "sub-header",
              "description": "Subtitle for the action sheet.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the action sheet will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the action sheet to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the action sheet has dismissed.\nShorthand for ionActionSheetDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the action sheet has presented.\nShorthand for ionActionSheetWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the action sheet has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the action sheet has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the action sheet has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the action sheet has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the action sheet has dismissed.\nShorthand for ionActionSheetWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the action sheet has presented.\nShorthand for ionActionSheetWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonAlert",
          "doc-url": "https://ionicframework.com/docs/api/alert",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/alert/alert.d.ts",
            "symbol": "Alert"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the alert will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the alert will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "buttons",
              "description": "Array of buttons to be added to the alert.",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "(string | AlertButton)[]"
              }
            },
            {
              "name": "css-class",
              "description": "Additional classes to apply for custom CSS. If multiple classes are\nprovided they should be separated by spaces.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | string[] | undefined"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the alert is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "header",
              "description": "The main title in the heading of the alert.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the alert.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "inputs",
              "description": "Array of input to show in the alert.",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "AlertInput[]"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the alert will open. If `false`, the alert will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the alertController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe alert dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the alert is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "message",
              "description": "The main message to be displayed in the alert.\n`message` can accept either plaintext or HTML as a string.\nTo display characters normally reserved for HTML, they\nmust be escaped. For example `<Ionic>` would become\n`&lt;Ionic&gt;`\n\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n\nThis property accepts custom HTML as a string.\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "sub-header",
              "description": "The subtitle in the heading of the alert. Displayed under the title.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the alert will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the alert to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the alert has dismissed.\nShorthand for ionAlertDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the alert has presented.\nShorthand for ionAlertWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the alert has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the alert has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the alert has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the alert has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the alert has dismissed.\nShorthand for ionAlertWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the alert has presented.\nShorthand for ionAlertWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonAvatar",
          "doc-url": "https://ionicframework.com/docs/api/avatar",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/avatar/avatar.d.ts",
            "symbol": "Avatar"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonBackButton",
          "doc-url": "https://ionicframework.com/docs/api/back-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/back-button/back-button.d.ts",
            "symbol": "BackButton"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "default-href",
              "description": "The url to navigate back to by default when there is no history.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "icon",
              "description": "The built-in named SVG icon name or the exact `src` of an SVG file\nto use for the back button.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "text",
              "description": "The text to display in the back button.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonBackdrop",
          "doc-url": "https://ionicframework.com/docs/api/backdrop",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/backdrop/backdrop.d.ts",
            "symbol": "Backdrop"
          },
          "attributes": [
            {
              "name": "stop-propagation",
              "description": "If `true`, the backdrop will stop propagation on tap.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "tappable",
              "description": "If `true`, the backdrop will can be clicked and will emit the `ionBackdropTap` event.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "visible",
              "description": "If `true`, the backdrop will be visible.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "onTap",
              "description": "Emitted when the backdrop is tapped.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonBadge",
          "doc-url": "https://ionicframework.com/docs/api/badge",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/badge/badge.d.ts",
            "symbol": "Badge"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonBreadcrumb",
          "doc-url": "https://ionicframework.com/docs/api/breadcrumb",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/breadcrumb/breadcrumb.d.ts",
            "symbol": "Breadcrumb"
          },
          "attributes": [
            {
              "name": "active",
              "description": "If `true`, the breadcrumb will take on a different look to show that\nit is the currently active breadcrumb. Defaults to `true` for the\nlast breadcrumb if it is not set on any.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the breadcrumb.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page using `href`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "router-direction",
              "description": "When using a router, it specifies the transition direction when navigating to\nanother page using `href`.",
              "required": false,
              "default": "'forward'",
              "value": {
                "kind": "expression",
                "type": "\"back\" | \"forward\" | \"root\""
              }
            },
            {
              "name": "separator",
              "description": "If true, show a separator between this breadcrumb and the next.\nDefaults to `true` for all breadcrumbs except the last.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the breadcrumb loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the breadcrumb has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonBreadcrumbs",
          "doc-url": "https://ionicframework.com/docs/api/breadcrumbs",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/breadcrumbs/breadcrumbs.d.ts",
            "symbol": "Breadcrumbs"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "items-after-collapse",
              "description": "The number of breadcrumbs to show after the collapsed indicator.\nIf `itemsBeforeCollapse` + `itemsAfterCollapse` is greater than `maxItems`,\nthe breadcrumbs will not be collapsed.",
              "required": false,
              "default": "1",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "items-before-collapse",
              "description": "The number of breadcrumbs to show before the collapsed indicator.\nIf `itemsBeforeCollapse` + `itemsAfterCollapse` is greater than `maxItems`,\nthe breadcrumbs will not be collapsed.",
              "required": false,
              "default": "1",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "max-items",
              "description": "The maximum number of breadcrumbs to show before collapsing.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionCollapsedClick",
              "description": "Emitted when the collapsed indicator is clicked on.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "BreadcrumbCollapsedClickEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonButton",
          "doc-url": "https://ionicframework.com/docs/api/button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/button/button.d.ts",
            "symbol": "Button"
          },
          "attributes": [
            {
              "name": "button-type",
              "description": "The type of button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "expand",
              "description": "Set to `\"block\"` for a full-width button or to `\"full\"` for a full-width button\nwith square corners and no left or right borders.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"block\" | \"full\" | undefined"
              }
            },
            {
              "name": "fill",
              "description": "Set to `\"clear\"` for a transparent button that resembles a flat button, to `\"outline\"`\nfor a transparent button with a border, or to `\"solid\"` for a button with a filled background.\nThe default fill is `\"solid\"` except inside of a toolbar, where the default is `\"clear\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"clear\" | \"default\" | \"outline\" | \"solid\" | undefined"
              }
            },
            {
              "name": "form",
              "description": "The HTML form element or form element id. Used to submit a form when the button is not a child of the form.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "HTMLFormElement | string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page using `href`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "router-direction",
              "description": "When using a router, it specifies the transition direction when navigating to\nanother page using `href`.",
              "required": false,
              "default": "'forward'",
              "value": {
                "kind": "expression",
                "type": "\"back\" | \"forward\" | \"root\""
              }
            },
            {
              "name": "shape",
              "description": "Set to `\"round\"` for a button with more rounded corners.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"round\" | undefined"
              }
            },
            {
              "name": "size",
              "description": "Set to `\"small\"` for a button with less height and padding, to `\"default\"`\nfor a button with the default height and padding, or to `\"large\"` for a button\nwith more height and padding. By default the size is unset, unless the button\nis inside of an item, where the size is `\"small\"` by default. Set the size to\n`\"default\"` inside of an item to make it a standard size button.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"default\" | \"large\" | \"small\" | undefined"
              }
            },
            {
              "name": "strong",
              "description": "If `true`, activates a button with a heavier font weight.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "end",
              "description": "Content is placed to the right of the button text in LTR, and to the left in RTL."
            },
            {
              "name": "icon-only",
              "description": "Should be used on an icon in a button that has no text."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the button text in LTR, and to the right in RTL."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the button loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the button has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonButtons",
          "doc-url": "https://ionicframework.com/docs/api/buttons",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/buttons/buttons.d.ts",
            "symbol": "Buttons"
          },
          "attributes": [
            {
              "name": "collapse",
              "description": "If true, buttons will disappear when its\nparent toolbar has fully collapsed if the toolbar\nis not the first toolbar. If the toolbar is the\nfirst toolbar, the buttons will be hidden and will\nonly be shown once all toolbars have fully collapsed.\n\nOnly applies in `ios` mode with `collapse` set to\n`true` on `ion-header`.\n\nTypically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCard",
          "doc-url": "https://ionicframework.com/docs/api/card",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/card/card.d.ts",
            "symbol": "Card"
          },
          "attributes": [
            {
              "name": "button",
              "description": "If `true`, a button tag will be rendered and the card will be tappable.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the card.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page using `href`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "router-direction",
              "description": "When using a router, it specifies the transition direction when navigating to\nanother page using `href`.",
              "required": false,
              "default": "'forward'",
              "value": {
                "kind": "expression",
                "type": "\"back\" | \"forward\" | \"root\""
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of the button. Only used when an `onclick` or `button` property is present.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCardContent",
          "doc-url": "https://ionicframework.com/docs/api/card-content",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/card-content/card-content.d.ts",
            "symbol": "CardContent"
          },
          "attributes": [
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCardHeader",
          "doc-url": "https://ionicframework.com/docs/api/card-header",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/card-header/card-header.d.ts",
            "symbol": "CardHeader"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the card header will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCardSubtitle",
          "doc-url": "https://ionicframework.com/docs/api/card-subtitle",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/card-subtitle/card-subtitle.d.ts",
            "symbol": "CardSubtitle"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCardTitle",
          "doc-url": "https://ionicframework.com/docs/api/card-title",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/card-title/card-title.d.ts",
            "symbol": "CardTitle"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCheckbox",
          "doc-url": "https://ionicframework.com/docs/api/checkbox",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/checkbox/checkbox.d.ts",
            "symbol": "Checkbox"
          },
          "attributes": [
            {
              "name": "alignment",
              "description": "How to control the alignment of the checkbox and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.\nSetting this property will change the checkbox `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"center\" | \"start\" | undefined"
              }
            },
            {
              "name": "checked",
              "description": "If `true`, the checkbox is selected.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the checkbox.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "error-text",
              "description": "Text that is placed under the checkbox label and displayed when an error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "Text that is placed under the checkbox label and displayed when no error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "indeterminate",
              "description": "If `true`, the checkbox will visually appear as indeterminate.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "justify",
              "description": "How to pack the label and checkbox within a line.\n`\"start\"`: The label and checkbox will appear on the left in LTR and\non the right in RTL.\n`\"end\"`: The label and checkbox will appear on the right in LTR and\non the left in RTL.\n`\"space-between\"`: The label and checkbox will appear on opposite\nends of the line with space between the two elements.\nSetting this property will change the checkbox `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"space-between\" | \"start\" | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the checkbox.\n`\"start\"`: The label will appear to the left of the checkbox in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the checkbox in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the checkbox regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The value of the checkbox does not mean if it's checked or not, use the `checked`\nproperty for that.\n\nThe value of a checkbox is analogous to the value of an `<input type=\"checkbox\">`,\nit's only used when the checkbox participates in a native `<form>`.",
              "required": false,
              "default": "'on'",
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "The label text to associate with the checkbox. Use the \"labelPlacement\" property to control where the label is placed relative to the checkbox."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the checkbox loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "Emitted when the checked property has changed as a result of a user action such as a click.\n\nThis event will not emit when programmatically setting the `checked` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "CheckboxChangeEventDetail<any>"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the checkbox has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonChip",
          "doc-url": "https://ionicframework.com/docs/api/chip",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/chip/chip.d.ts",
            "symbol": "Chip"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the chip.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "outline",
              "description": "Display an outline style button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonCol",
          "doc-url": "https://ionicframework.com/docs/api/col",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/col/col.d.ts",
            "symbol": "Col"
          },
          "attributes": [
            {
              "name": "offset",
              "description": "The amount to offset the column, in terms of how many columns it should shift to the end\nof the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "offset-lg",
              "description": "The amount to offset the column for lg screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "offset-md",
              "description": "The amount to offset the column for md screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "offset-sm",
              "description": "The amount to offset the column for sm screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "offset-xl",
              "description": "The amount to offset the column for xl screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "offset-xs",
              "description": "The amount to offset the column for xs screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull",
              "description": "The amount to pull the column, in terms of how many columns it should shift to the start of\nthe total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull-lg",
              "description": "The amount to pull the column for lg screens, in terms of how many columns it should shift\nto the start of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull-md",
              "description": "The amount to pull the column for md screens, in terms of how many columns it should shift\nto the start of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull-sm",
              "description": "The amount to pull the column for sm screens, in terms of how many columns it should shift\nto the start of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull-xl",
              "description": "The amount to pull the column for xl screens, in terms of how many columns it should shift\nto the start of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "pull-xs",
              "description": "The amount to pull the column for xs screens, in terms of how many columns it should shift\nto the start of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push",
              "description": "The amount to push the column, in terms of how many columns it should shift to the end\nof the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push-lg",
              "description": "The amount to push the column for lg screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push-md",
              "description": "The amount to push the column for md screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push-sm",
              "description": "The amount to push the column for sm screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push-xl",
              "description": "The amount to push the column for xl screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "push-xs",
              "description": "The amount to push the column for xs screens, in terms of how many columns it should shift\nto the end of the total available.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size",
              "description": "The size of the column, in terms of how many columns it should take up out of the total\navailable. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size-lg",
              "description": "The size of the column for lg screens, in terms of how many columns it should take up out\nof the total available. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size-md",
              "description": "The size of the column for md screens, in terms of how many columns it should take up out\nof the total available. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size-sm",
              "description": "The size of the column for sm screens, in terms of how many columns it should take up out\nof the total available. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size-xl",
              "description": "The size of the column for xl screens, in terms of how many columns it should take up out\nof the total available. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "size-xs",
              "description": "The size of the column for xs screens, in terms of how many columns it should take up out\nof the total available. If `\"auto\"` is passed, the column will be the size of its content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonContent",
          "doc-url": "https://ionicframework.com/docs/api/content",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/content/content.d.ts",
            "symbol": "Content"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "fixed-slot-placement",
              "description": "Controls where the fixed content is placed relative to the main content\nin the DOM. This can be used to control the order in which fixed elements\nreceive keyboard focus.\nFor example, if a FAB in the fixed slot should receive keyboard focus before\nthe main page content, set this property to `'before'`.",
              "required": false,
              "default": "'after'",
              "value": {
                "kind": "expression",
                "type": "\"after\" | \"before\""
              }
            },
            {
              "name": "force-overscroll",
              "description": "If `true` and the content does not cause an overflow scroll, the scroll interaction will cause a bounce.\nIf the content exceeds the bounds of ionContent, nothing will change.\nNote, this does not disable the system bounce on iOS. That is an OS level setting.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "fullscreen",
              "description": "If `true`, the content will scroll behind the headers\nand footers. This effect can easily be seen by setting the toolbar\nto transparent.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "scroll-events",
              "description": "Because of performance reasons, ionScroll events are disabled by default, in order to enable them\nand start listening from (ionScroll), set this property to `true`.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "scroll-x",
              "description": "If you want to enable the content scrolling in the X axis, set this property to `true`.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "scroll-y",
              "description": "If you want to disable the content scrolling in the Y axis, set this property to `false`.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed in the scrollable area if provided without a slot."
            },
            {
              "name": "fixed",
              "description": "Should be used for fixed content that should not scroll."
            }
          ],
          "events": [
            {
              "name": "ionScroll",
              "description": "Emitted while scrolling. This event is disabled by default.\nSet `scrollEvents` to `true` to enable.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ScrollDetail"
                }
              ]
            },
            {
              "name": "ionScrollEnd",
              "description": "Emitted when the scroll has ended. This event is disabled by default.\nSet `scrollEvents` to `true` to enable.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ScrollBaseDetail"
                }
              ]
            },
            {
              "name": "ionScrollStart",
              "description": "Emitted when the scroll has started. This event is disabled by default.\nSet `scrollEvents` to `true` to enable.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ScrollBaseDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonDatetime",
          "doc-url": "https://ionicframework.com/docs/api/datetime",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/datetime/datetime.d.ts",
            "symbol": "Datetime"
          },
          "attributes": [
            {
              "name": "cancel-text",
              "description": "The text to display on the picker's cancel button.",
              "required": false,
              "default": "'Cancel'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "clear-text",
              "description": "The text to display on the picker's \"Clear\" button.",
              "required": false,
              "default": "'Clear'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "default": "'primary'",
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "day-values",
              "description": "Values used to create the list of selectable days. By default\nevery day is shown for the given month. However, to control exactly which days of\nthe month to display, the `dayValues` input can take a number, an array of numbers, or\na string of comma separated numbers. Note that even if the array days have an invalid\nnumber for the selected month, like `31` in February, it will correctly not show\ndays which are not valid for the selected month.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | number[] | string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the datetime.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "done-text",
              "description": "The text to display on the picker's \"Done\" button.",
              "required": false,
              "default": "'Done'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "first-day-of-week",
              "description": "The first day of the week to use for `ion-datetime`. The\ndefault value is `0` and represents Sunday.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "formatOptions",
              "description": "Formatting options for dates and times.\nShould include a 'date' and/or 'time' object, each of which is of type [Intl.DateTimeFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { date: DateTimeFormatOptions; time?: DateTimeFormatOptions | undefined; } | { date?: DateTimeFormatOptions | undefined; time: DateTimeFormatOptions; }"
              }
            },
            {
              "name": "highlightedDates",
              "description": "Used to apply custom text and background colors to specific dates.\n\nCan be either an array of objects containing ISO strings and colors,\nor a callback that receives an ISO string and returns the colors.\n\nOnly applies to the `date`, `date-time`, and `time-date` presentations,\nwith `preferWheel=\"false\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((dateIsoString: string) => DatetimeHighlightStyle | undefined) | DatetimeHighlight[] | undefined"
              }
            },
            {
              "name": "hour-cycle",
              "description": "The hour cycle of the `ion-datetime`. If no value is set, this is\nspecified by the current locale.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined"
              }
            },
            {
              "name": "hour-values",
              "description": "Values used to create the list of selectable hours. By default\nthe hour values range from `0` to `23` for 24-hour, or `1` to `12` for 12-hour. However,\nto control exactly which hours to display, the `hourValues` input can take a number, an\narray of numbers, or a string of comma separated numbers.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | number[] | string | undefined"
              }
            },
            {
              "name": "isDateEnabled",
              "description": "Returns if an individual date (calendar day) is enabled or disabled.\n\nIf `true`, the day will be enabled/interactive.\nIf `false`, the day will be disabled/non-interactive.\n\nThe function accepts an ISO 8601 date string of a given day.\nBy default, all days are enabled. Developers can use this function\nto write custom logic to disable certain days.\n\nThe function is called for each rendered calendar day, for the previous, current and next month.\nCustom implementations should be optimized for performance to avoid jank.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((dateIsoString: string) => boolean) | undefined"
              }
            },
            {
              "name": "locale",
              "description": "The locale to use for `ion-datetime`. This\nimpacts month and day name formatting.\nThe `\"default\"` value refers to the default\nlocale set by your device.",
              "required": false,
              "default": "'default'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "max",
              "description": "The maximum datetime allowed. Value must be a date string\nfollowing the\n[ISO 8601 datetime format standard](https://www.w3.org/TR/NOTE-datetime),\n`1996-12-19`. The format does not have to be specific to an exact\ndatetime. For example, the maximum could just be the year, such as `1994`.\nDefaults to the end of this year.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "min",
              "description": "The minimum datetime allowed. Value must be a date string\nfollowing the\n[ISO 8601 datetime format standard](https://www.w3.org/TR/NOTE-datetime),\nsuch as `1996-12-19`. The format does not have to be specific to an exact\ndatetime. For example, the minimum could just be the year, such as `1994`.\nDefaults to the beginning of the year, 100 years ago from today.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "minute-values",
              "description": "Values used to create the list of selectable minutes. By default\nthe minutes range from `0` to `59`. However, to control exactly which minutes to display,\nthe `minuteValues` input can take a number, an array of numbers, or a string of comma\nseparated numbers. For example, if the minute selections should only be every 15 minutes,\nthen this input value would be `minuteValues=\"0,15,30,45\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | number[] | string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "month-values",
              "description": "Values used to create the list of selectable months. By default\nthe month values range from `1` to `12`. However, to control exactly which months to\ndisplay, the `monthValues` input can take a number, an array of numbers, or a string of\ncomma separated numbers. For example, if only summer months should be shown, then this\ninput value would be `monthValues=\"6,7,8\"`. Note that month numbers do *not* have a\nzero-based index, meaning January's value is `1`, and December's is `12`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | number[] | string | undefined"
              }
            },
            {
              "name": "multiple",
              "description": "If `true`, multiple dates can be selected at once. Only\napplies to `presentation=\"date\"` and `preferWheel=\"false\"`.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "prefer-wheel",
              "description": "If `true`, a wheel picker will be rendered instead of a calendar grid\nwhere possible. If `false`, a calendar grid will be rendered instead of\na wheel picker where possible.\n\nA wheel picker can be rendered instead of a grid when `presentation` is\none of the following values: `\"date\"`, `\"date-time\"`, or `\"time-date\"`.\n\nA wheel picker will always be rendered regardless of\nthe `preferWheel` value when `presentation` is one of the following values:\n`\"time\"`, `\"month\"`, `\"month-year\"`, or `\"year\"`.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "presentation",
              "description": "Which values you want to select. `\"date\"` will show\na calendar picker to select the month, day, and year. `\"time\"`\nwill show a time picker to select the hour, minute, and (optionally)\nAM/PM. `\"date-time\"` will show the date picker first and time picker second.\n`\"time-date\"` will show the time picker first and date picker second.",
              "required": false,
              "default": "'date-time'",
              "value": {
                "kind": "expression",
                "type": "\"date\" | \"date-time\" | \"month\" | \"month-year\" | \"time\" | \"time-date\" | \"year\""
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the datetime appears normal but the selected date cannot be changed.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "show-adjacent-days",
              "description": "If `true`, the datetime calendar displays a six-week (42-day) layout,\nincluding days from the previous and next months to fill the grid.\nThese adjacent days are selectable unless disabled.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "show-clear-button",
              "description": "If `true`, a \"Clear\" button will be rendered alongside\nthe default \"Cancel\" and \"OK\" buttons at the bottom of the `ion-datetime`\ncomponent. Developers can also use the `button` slot\nif they want to customize these buttons. If custom\nbuttons are set in the `button` slot then the\ndefault buttons will not be rendered.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "show-default-buttons",
              "description": "If `true`, the default \"Cancel\" and \"OK\" buttons\nwill be rendered at the bottom of the `ion-datetime`\ncomponent. Developers can also use the `button` slot\nif they want to customize these buttons. If custom\nbuttons are set in the `button` slot then the\ndefault buttons will not be rendered.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "show-default-time-label",
              "description": "If `true`, the default \"Time\" label will be rendered\nfor the time selector of the `ion-datetime` component.\nDevelopers can also use the `time-label` slot\nif they want to customize this label. If a custom\nlabel is set in the `time-label` slot then the\ndefault label will not be rendered.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "show-default-title",
              "description": "If `true`, a header will be shown above the calendar\npicker. This will include both the slotted title, and\nthe selected date.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "size",
              "description": "If `cover`, the `ion-datetime` will expand to cover the full width of its container.\nIf `fixed`, the `ion-datetime` will have a fixed width.",
              "required": false,
              "default": "'fixed'",
              "value": {
                "kind": "expression",
                "type": "\"cover\" | \"fixed\""
              }
            },
            {
              "name": "titleSelectedDatesFormatter",
              "description": "A callback used to format the header text that shows how many\ndates are selected. Only used if there are 0 or more than 1\nselected (i.e. unused for exactly 1). By default, the header\ntext is set to \"numberOfDates days\".\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((selectedDates: string[]) => string) | undefined"
              }
            },
            {
              "name": "value",
              "description": "The value of the datetime as a valid ISO 8601 datetime string.\nThis should be an array of strings only when `multiple=\"true\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | string[] | undefined"
              }
            },
            {
              "name": "year-values",
              "description": "Values used to create the list of selectable years. By default\nthe year values range between the `min` and `max` datetime inputs. However, to\ncontrol exactly which years to display, the `yearValues` input can take a number, an array\nof numbers, or string of comma separated numbers. For example, to show upcoming and\nrecent leap years, then this input's value would be `yearValues=\"2008,2012,2016,2020,2024\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | number[] | string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "buttons",
              "description": "The buttons in the datetime."
            },
            {
              "name": "time-label",
              "description": "The label for the time selector in the datetime."
            },
            {
              "name": "title",
              "description": "The title of the datetime."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the datetime loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionCancel",
              "description": "Emitted when the datetime selection was cancelled.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "Emitted when the value (selected date) has changed.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "DatetimeChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the datetime has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonDatetimeButton",
          "doc-url": "https://ionicframework.com/docs/api/datetime-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/datetime-button/datetime-button.d.ts",
            "symbol": "DatetimeButton"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "default": "'primary'",
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "datetime",
              "description": "The ID of the `ion-datetime` instance\nassociated with the datetime button.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [
            {
              "name": "date-target",
              "description": "Content displayed inside of the date button."
            },
            {
              "name": "time-target",
              "description": "Content displayed inside of the time button."
            }
          ],
          "events": []
        },
        {
          "name": "IonFab",
          "doc-url": "https://ionicframework.com/docs/api/fab",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/fab/fab.d.ts",
            "symbol": "Fab"
          },
          "attributes": [
            {
              "name": "activated",
              "description": "If `true`, both the `ion-fab-button` and all `ion-fab-list` inside `ion-fab` will become active.\nThat means `ion-fab-button` will become a `close` icon and `ion-fab-list` will become visible.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "edge",
              "description": "If `true`, the fab will display on the edge of the header if\n`vertical` is `\"top\"`, and on the edge of the footer if\nit is `\"bottom\"`. Should be used with a `fixed` slot.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "horizontal",
              "description": "Where to align the fab horizontally in the viewport.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"center\" | \"end\" | \"start\" | undefined"
              }
            },
            {
              "name": "vertical",
              "description": "Where to align the fab vertically in the viewport.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"bottom\" | \"center\" | \"top\" | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonFabButton",
          "doc-url": "https://ionicframework.com/docs/api/fab-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/fab-button/fab-button.d.ts",
            "symbol": "FabButton"
          },
          "attributes": [
            {
              "name": "activated",
              "description": "If `true`, the fab button will be show a close icon.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "close-icon",
              "description": "The icon name to use for the close icon. This will appear when the fab button\nis pressed. Only applies if it is the main button inside of a fab containing a\nfab list.",
              "required": false,
              "default": "close",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the fab button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page using `href`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "router-direction",
              "description": "When using a router, it specifies the transition direction when navigating to\nanother page using `href`.",
              "required": false,
              "default": "'forward'",
              "value": {
                "kind": "expression",
                "type": "\"back\" | \"forward\" | \"root\""
              }
            },
            {
              "name": "show",
              "description": "If `true`, the fab button will show when in a fab-list.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "size",
              "description": "The size of the button. Set this to `small` in order to have a mini fab button.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"small\" | undefined"
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the fab button will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the button loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the button has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonFabList",
          "doc-url": "https://ionicframework.com/docs/api/fab-list",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/fab-list/fab-list.d.ts",
            "symbol": "FabList"
          },
          "attributes": [
            {
              "name": "activated",
              "description": "If `true`, the fab list will show all fab buttons in the list.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "side",
              "description": "The side the fab list will show on relative to the main fab button.",
              "required": false,
              "default": "'bottom'",
              "value": {
                "kind": "expression",
                "type": "\"bottom\" | \"end\" | \"start\" | \"top\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonFooter",
          "doc-url": "https://ionicframework.com/docs/api/footer",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/footer/footer.d.ts",
            "symbol": "Footer"
          },
          "attributes": [
            {
              "name": "collapse",
              "description": "Describes the scroll effect that will be applied to the footer.\nOnly applies in iOS mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"fade\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the footer will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n\nNote: In order to scroll content behind the footer, the `fullscreen`\nattribute needs to be set on the content.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonGrid",
          "doc-url": "https://ionicframework.com/docs/api/grid",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/grid/grid.d.ts",
            "symbol": "Grid"
          },
          "attributes": [
            {
              "name": "fixed",
              "description": "If `true`, the grid will have a fixed width based on the screen size.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonHeader",
          "doc-url": "https://ionicframework.com/docs/api/header",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/header/header.d.ts",
            "symbol": "Header"
          },
          "attributes": [
            {
              "name": "collapse",
              "description": "Describes the scroll effect that will be applied to the header.\nOnly applies in iOS mode.\n\nTypically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"condense\" | \"fade\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the header will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n\nNote: In order to scroll content behind the header, the `fullscreen`\nattribute needs to be set on the content.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonImg",
          "doc-url": "https://ionicframework.com/docs/api/img",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/img/img.d.ts",
            "symbol": "Img"
          },
          "attributes": [
            {
              "name": "alt",
              "description": "This attribute defines the alternative text describing the image.\nUsers will see this text displayed if the image URL is wrong,\nthe image is not in one of the supported formats, or if the image is not yet downloaded.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "src",
              "description": "The image URL. This attribute is mandatory for the `<img>` element.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionError",
              "description": "Emitted when the img fails to load",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidLoad",
              "description": "Emitted when the image has finished loading",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillLoad",
              "description": "Emitted when the img src has been set",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonInfiniteScroll",
          "doc-url": "https://ionicframework.com/docs/api/infinite-scroll",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/infinite-scroll/infinite-scroll.d.ts",
            "symbol": "InfiniteScroll"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the infinite scroll will be hidden and scroll event listeners\nwill be removed.\n\nSet this to true to disable the infinite scroll from actively\ntrying to receive new data while scrolling. This is useful\nwhen it is known that there is no more data that can be added, and\nthe infinite scroll is no longer needed.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "position",
              "description": "The position of the infinite scroll element.\nThe value can be either `top` or `bottom`.",
              "required": false,
              "default": "'bottom'",
              "value": {
                "kind": "expression",
                "type": "\"bottom\" | \"top\""
              }
            },
            {
              "name": "threshold",
              "description": "The threshold distance from the bottom\nof the content to call the `infinite` output event when scrolled.\nThe threshold value can be either a percent, or\nin pixels. For example, use the value of `10%` for the `infinite`\noutput event to get called when the user has scrolled 10%\nfrom the bottom of the page. Use the value `100px` when the\nscroll is within 100 pixels from the bottom of the page.",
              "required": false,
              "default": "'15%'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionInfinite",
              "description": "Emitted when the scroll reaches\nthe threshold distance. From within your infinite handler,\nyou must call the infinite scroll's `complete()` method when\nyour async operation has completed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonInfiniteScrollContent",
          "doc-url": "https://ionicframework.com/docs/api/infinite-scroll-content",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/infinite-scroll-content/infinite-scroll-content.d.ts",
            "symbol": "InfiniteScrollContent"
          },
          "attributes": [
            {
              "name": "loading-spinner",
              "description": "An animated SVG spinner that shows while loading.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"bubbles\" | \"circles\" | \"circular\" | \"crescent\" | \"dots\" | \"lines\" | \"lines-sharp\" | \"lines-sharp-small\" | \"lines-small\" | null | undefined"
              }
            },
            {
              "name": "loading-text",
              "description": "Optional text to display while loading.\n`loadingText` can accept either plaintext or HTML as a string.\nTo display characters normally reserved for HTML, they\nmust be escaped. For example `<Ionic>` would become\n`&lt;Ionic&gt;`\n\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n\nThis property accepts custom HTML as a string.\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonInput",
          "doc-url": "https://ionicframework.com/docs/api/input",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/input/input.d.ts",
            "symbol": "Input"
          },
          "attributes": [
            {
              "name": "autocapitalize",
              "description": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "autocomplete",
              "description": "Indicates whether the value of the control can be automatically completed by the browser.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "\"additional-name\" | \"address-level1\" | \"address-level2\" | \"address-level3\" | \"address-level4\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"cc-additional-name\" | \"cc-csc\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-family-name\" | \"cc-given-name\" | \"cc-name\" | \"cc-number\" | \"cc-type\" | \"country\" | \"country-name\" | \"current-password\" | \"email\" | \"family-name\" | \"given-name\" | \"honorific-prefix\" | \"honorific-suffix\" | \"impp\" | \"language\" | \"name\" | \"new-password\" | \"nickname\" | \"off\" | \"on\" | \"one-time-code\" | \"organization\" | \"organization-title\" | \"photo\" | \"postal-code\" | \"sex\" | \"street-address\" | \"tel\" | \"tel-area-code\" | \"tel-country-code\" | \"tel-extension\" | \"tel-local\" | \"tel-national\" | \"transaction-amount\" | \"transaction-currency\" | \"url\" | \"username\""
              }
            },
            {
              "name": "autocorrect",
              "description": "Whether auto correction should be enabled when the user is entering/editing the text value.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "\"off\" | \"on\""
              }
            },
            {
              "name": "autofocus",
              "description": "Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.\n\nThis may not be sufficient for the element to be focused on page load. See [managing focus](/docs/developing/managing-focus) for more information.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "clear-input",
              "description": "If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "clear-input-icon",
              "description": "The icon to use for the clear button. Only applies when `clearInput` is set to `true`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "clear-on-edit",
              "description": "If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "counter",
              "description": "If `true`, a character counter will display the ratio of characters used and the total character limit. Developers must also set the `maxlength` property for the counter to be calculated correctly.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "counterFormatter",
              "description": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\".\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((inputLength: number, maxLength: number) => string) | undefined"
              }
            },
            {
              "name": "debounce",
              "description": "Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the input.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "enterkeyhint",
              "description": "A hint to the browser for which enter key to display.\nPossible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n`\"previous\"`, `\"search\"`, and `\"send\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined"
              }
            },
            {
              "name": "error-text",
              "description": "Text that is placed under the input and displayed when an error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "fill",
              "description": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"outline\" | \"solid\" | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "Text that is placed under the input and displayed when no error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "inputmode",
              "description": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined"
              }
            },
            {
              "name": "label",
              "description": "The visible label associated with the input.\n\nUse this if you need to render a plaintext label.\n\nThe `label` property will take priority over the `label` slot if both are used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the input in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the input in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.\n`\"stacked\"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "max",
              "description": "The maximum value, which must not be less than its minimum (min attribute) value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | string | undefined"
              }
            },
            {
              "name": "maxlength",
              "description": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "min",
              "description": "The minimum value, which must not be greater than its maximum (max attribute) value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | string | undefined"
              }
            },
            {
              "name": "minlength",
              "description": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "multiple",
              "description": "If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"`, otherwise it is ignored.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "pattern",
              "description": "A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, `\"date\"`, or `\"password\"`, otherwise it is ignored. When the type attribute is `\"date\"`, `pattern` will only be used in browsers that do not support the `\"date\"` input type natively. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date for more information.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "description": "Instructional text that shows before the input has a value.\nThis property applies only when the `type` property is set to `\"email\"`,\n`\"number\"`, `\"password\"`, `\"search\"`, `\"tel\"`, `\"text\"`, or `\"url\"`, otherwise it is ignored.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the user cannot modify the value.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "required",
              "description": "If `true`, the user must fill in a value before submitting a form.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "shape",
              "description": "The shape of the input. If \"round\" it will have an increased border radius.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"round\" | undefined"
              }
            },
            {
              "name": "spellcheck",
              "description": "If `true`, the element will have its spelling and grammar checked.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "step",
              "description": "Works with the min and max attributes to limit the increments at which a value can be set.\nPossible values are: `\"any\"` or a positive floating point number.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of control to display. The default type is text.",
              "required": false,
              "default": "'text'",
              "value": {
                "kind": "expression",
                "type": "\"date\" | \"datetime-local\" | \"email\" | \"month\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"time\" | \"url\" | \"week\""
              }
            },
            {
              "name": "value",
              "description": "The value of the input.",
              "required": false,
              "default": "''",
              "value": {
                "kind": "expression",
                "type": "null | number | string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "end",
              "description": "Content to display at the trailing edge of the input. (EXPERIMENTAL)"
            },
            {
              "name": "label",
              "description": "The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
            },
            {
              "name": "start",
              "description": "Content to display at the leading edge of the input. (EXPERIMENTAL)"
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the input loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "The `ionChange` event is fired when the user modifies the input's value.\nUnlike the `ionInput` event, the `ionChange` event is only fired when changes\nare committed, not as the user types.\n\nDepending on the way the users interacts with the element, the `ionChange`\nevent fires at a different moment:\n- When the user commits the change explicitly (e.g. by selecting a date\nfrom a date picker for `<ion-input type=\"date\">`, pressing the \"Enter\" key, etc.).\n- When the element loses focus after its value has changed: for elements\nwhere the user's interaction is typing.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "InputChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the input has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "on",
              "description": "The `ionInput` event is fired each time the user modifies the input's value.\nUnlike the `ionChange` event, the `ionInput` event is fired for each alteration\nto the input's value. This typically happens for each keystroke as the user types.\n\nFor elements that accept text input (`type=text`, `type=tel`, etc.), the interface\nis [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\nthe interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\nthe input is cleared on edit, the type is `null`.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "InputInputEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonInputOtp",
          "doc-url": "https://ionicframework.com/docs/api/input-otp",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/input-otp/input-otp.d.ts",
            "symbol": "InputOtp"
          },
          "attributes": [
            {
              "name": "autocapitalize",
              "description": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the input.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "fill",
              "description": "The fill for the input boxes. If `\"solid\"` the input boxes will have a background. If\n`\"outline\"` the input boxes will be transparent with a border.",
              "required": false,
              "default": "'outline'",
              "value": {
                "kind": "expression",
                "type": "\"outline\" | \"solid\" | undefined"
              }
            },
            {
              "name": "inputmode",
              "description": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n\nFor numbers (type=\"number\"): \"numeric\"\nFor text (type=\"text\"): \"text\"",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined"
              }
            },
            {
              "name": "length",
              "description": "The number of input boxes to display.",
              "required": false,
              "default": "4",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "pattern",
              "description": "A regex pattern string for allowed characters. Defaults based on type.\n\nFor numbers (`type=\"number\"`): `\"[\\p{N}]\"`\nFor text (`type=\"text\"`): `\"[\\p{L}\\p{N}]\"`",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the user cannot modify the value.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "separators",
              "description": "Where separators should be shown between input boxes.\nCan be a comma-separated string or an array of numbers.\n\nFor example:\n`\"3\"` will show a separator after the 3rd input box.\n`[1,4]` will show a separator after the 1st and 4th input boxes.\n`\"all\"` will show a separator between every input box.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number[] | string | undefined"
              }
            },
            {
              "name": "shape",
              "description": "The shape of the input boxes.\nIf \"round\" they will have an increased border radius.\nIf \"rectangular\" they will have no border radius.\nIf \"soft\" they will have a soft border radius.",
              "required": false,
              "default": "'round'",
              "value": {
                "kind": "expression",
                "type": "\"rectangular\" | \"round\" | \"soft\""
              }
            },
            {
              "name": "size",
              "description": "The size of the input boxes.",
              "required": false,
              "default": "'medium'",
              "value": {
                "kind": "expression",
                "type": "\"large\" | \"medium\" | \"small\""
              }
            },
            {
              "name": "type",
              "description": "The type of input allowed in the input boxes.",
              "required": false,
              "default": "'number'",
              "value": {
                "kind": "expression",
                "type": "\"number\" | \"text\""
              }
            },
            {
              "name": "value",
              "description": "The value of the input group.",
              "required": false,
              "default": "''",
              "value": {
                "kind": "expression",
                "type": "null | number | string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the input group loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "The `ionChange` event is fired when the user modifies the input's value.\nUnlike the `ionInput` event, the `ionChange` event is only fired when changes\nare committed, not as the user types.\n\nThe `ionChange` event fires when the `<ion-input-otp>` component loses\nfocus after its value has changed.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "InputOtpChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionComplete",
              "description": "Emitted when all input boxes have been filled with valid values.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "InputOtpCompleteEventDetail"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the input group has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "ionInput",
              "description": "The `ionInput` event is fired each time the user modifies the input's value.\nUnlike the `ionChange` event, the `ionInput` event is fired for each alteration\nto the input's value. This typically happens for each keystroke as the user types.\n\nFor elements that accept text input (`type=text`, `type=tel`, etc.), the interface\nis [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\nthe interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\nthe input is cleared on edit, the type is `null`.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "InputOtpInputEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonInputPasswordToggle",
          "doc-url": "https://ionicframework.com/docs/api/input-password-toggle",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/input-password-toggle/input-password-toggle.d.ts",
            "symbol": "InputPasswordToggle"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "hide-icon",
              "description": "The icon that can be used to represent hiding a password. If not set, the \"eyeOff\" Ionicon will be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "show-icon",
              "description": "The icon that can be used to represent showing a password. If not set, the \"eye\" Ionicon will be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonItem",
          "doc-url": "https://ionicframework.com/docs/api/item",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item/item.d.ts",
            "symbol": "Item"
          },
          "attributes": [
            {
              "name": "button",
              "description": "If `true`, a button tag will be rendered and the item will be tappable.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "detail",
              "description": "If `true`, a detail arrow will appear on the item. Defaults to `false` unless the `mode`\nis `ios` and an `href` or `button` property is present.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "detail-icon",
              "description": "The icon to use when `detail` is set to `true`.",
              "required": false,
              "default": "chevronForward",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the item.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "lines",
              "description": "How the bottom border should be displayed on the item.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"full\" | \"inset\" | \"none\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "routerAnimation",
              "description": "When using a router, it specifies the transition animation when navigating to\nanother page using `href`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "router-direction",
              "description": "When using a router, it specifies the transition direction when navigating to\nanother page using `href`.",
              "required": false,
              "default": "'forward'",
              "value": {
                "kind": "expression",
                "type": "\"back\" | \"forward\" | \"root\""
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of the button. Only used when an `onclick` or `button` property is present.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "end",
              "description": "Content is placed to the right of the item text in LTR, and to the left in RTL."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the item text in LTR, and to the right in RTL."
            }
          ],
          "events": []
        },
        {
          "name": "IonItemDivider",
          "doc-url": "https://ionicframework.com/docs/api/item-divider",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item-divider/item-divider.d.ts",
            "symbol": "ItemDivider"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "sticky",
              "description": "When it's set to `true`, the item-divider will stay visible when it reaches the top\nof the viewport until the next `ion-item-divider` replaces it.\n\nThis feature relies in `position:sticky`:\nhttps://caniuse.com/#feat=css-sticky",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "end",
              "description": "Content is placed to the right of the divider text in LTR, and to the left in RTL."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the divider text in LTR, and to the right in RTL."
            }
          ],
          "events": []
        },
        {
          "name": "IonItemGroup",
          "doc-url": "https://ionicframework.com/docs/api/item-group",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item-group/item-group.d.ts",
            "symbol": "ItemGroup"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonItemOption",
          "doc-url": "https://ionicframework.com/docs/api/item-option",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item-option/item-option.d.ts",
            "symbol": "ItemOption"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the item option.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "expandable",
              "description": "If `true`, the option will expand to take up the available width and cover any other options.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "bottom",
              "description": "Content is placed below the option text."
            },
            {
              "name": "end",
              "description": "Content is placed to the right of the option text in LTR, and to the left in RTL."
            },
            {
              "name": "icon-only",
              "description": "Should be used on an icon in an option that has no text."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the option text in LTR, and to the right in RTL."
            },
            {
              "name": "top",
              "description": "Content is placed above the option text."
            }
          ],
          "events": []
        },
        {
          "name": "IonItemOptions",
          "doc-url": "https://ionicframework.com/docs/api/item-options",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item-options/item-options.d.ts",
            "symbol": "ItemOptions"
          },
          "attributes": [
            {
              "name": "side",
              "description": "The side the option button should be on. Possible values: `\"start\"` and `\"end\"`. If you have multiple `ion-item-options`, a side must be provided for each.",
              "required": false,
              "default": "'end'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"start\""
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionSwipe",
              "description": "Emitted when the item has been fully swiped.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "any"
                }
              ]
            }
          ]
        },
        {
          "name": "IonItemSliding",
          "doc-url": "https://ionicframework.com/docs/api/item-sliding",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/item-sliding/item-sliding.d.ts",
            "symbol": "ItemSliding"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the sliding item.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionDrag",
              "description": "Emitted when the sliding position changes.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "any"
                }
              ]
            }
          ]
        },
        {
          "name": "IonLabel",
          "doc-url": "https://ionicframework.com/docs/api/label",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/label/label.d.ts",
            "symbol": "Label"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "position",
              "description": "The position determines where and how the label behaves inside an item.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"fixed\" | \"floating\" | \"stacked\" | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonList",
          "doc-url": "https://ionicframework.com/docs/api/list",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/list/list.d.ts",
            "symbol": "List"
          },
          "attributes": [
            {
              "name": "inset",
              "description": "If `true`, the list will have margin around it and rounded corners.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "lines",
              "description": "How the bottom border should be displayed on all items.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"full\" | \"inset\" | \"none\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonListHeader",
          "doc-url": "https://ionicframework.com/docs/api/list-header",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/list-header/list-header.d.ts",
            "symbol": "ListHeader"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "lines",
              "description": "How the bottom border should be displayed on the list header.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"full\" | \"inset\" | \"none\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonLoading",
          "doc-url": "https://ionicframework.com/docs/api/loading",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/loading/loading.d.ts",
            "symbol": "Loading"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the loading indicator will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the loading indicator will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "css-class",
              "description": "Additional classes to apply for custom CSS. If multiple classes are\nprovided they should be separated by spaces.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | string[] | undefined"
              }
            },
            {
              "name": "duration",
              "description": "Number of milliseconds to wait before dismissing the loading indicator.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the loading indicator is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the loader.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the loading indicator will open. If `false`, the loading indicator will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the loadingController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe loading indicator dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the loading indicator is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "message",
              "description": "Optional text content to display in the loading indicator.\n\nThis property accepts custom HTML as a string.\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "show-backdrop",
              "description": "If `true`, a backdrop will be displayed behind the loading indicator.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "spinner",
              "description": "The name of the spinner to display.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"bubbles\" | \"circles\" | \"circular\" | \"crescent\" | \"dots\" | \"lines\" | \"lines-sharp\" | \"lines-sharp-small\" | \"lines-small\" | null | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the loading indicator will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the loading indicator to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the loading indicator has dismissed.\nShorthand for ionLoadingDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the loading indicator has presented.\nShorthand for ionLoadingWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the loading has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the loading has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the loading has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the loading has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the loading indicator has dismissed.\nShorthand for ionLoadingWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the loading indicator has presented.\nShorthand for ionLoadingWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonMenu",
          "doc-url": "https://ionicframework.com/docs/api/menu",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/menu/menu.d.ts",
            "symbol": "Menu"
          },
          "attributes": [
            {
              "name": "content-id",
              "description": "The `id` of the main content. When using\na router this is typically `ion-router-outlet`.\nWhen not using a router, this is typically\nyour main view's `ion-content`. This is not the\nid of the `ion-content` inside of your `ion-menu`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the menu is disabled.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "max-edge-start",
              "description": "The edge threshold for dragging the menu open.\nIf a drag/swipe happens over this value, the menu is not triggered.",
              "required": false,
              "default": "50",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "menu-id",
              "description": "An id for the menu.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "side",
              "description": "Which side of the view the menu should be placed.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"start\""
              }
            },
            {
              "name": "swipe-gesture",
              "description": "If `true`, swiping the menu is enabled.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "type",
              "description": "The display type of the menu.\nAvailable options: `\"overlay\"`, `\"reveal\"`, `\"push\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"overlay\" | \"push\" | \"reveal\" | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionDidClose",
              "description": "Emitted when the menu is closed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "MenuCloseEventDetail"
                }
              ]
            },
            {
              "name": "ionDidOpen",
              "description": "Emitted when the menu is open.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionWillClose",
              "description": "Emitted when the menu is about to be closed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "MenuCloseEventDetail"
                }
              ]
            },
            {
              "name": "ionWillOpen",
              "description": "Emitted when the menu is about to be opened.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonMenuButton",
          "doc-url": "https://ionicframework.com/docs/api/menu-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/menu-button/menu-button.d.ts",
            "symbol": "MenuButton"
          },
          "attributes": [
            {
              "name": "auto-hide",
              "description": "Automatically hides the menu button when the corresponding menu is not active",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the menu button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "menu",
              "description": "Optional property that maps to a Menu's `menuId` prop. Can also be `start` or `end` for the menu side. This is used to find the correct menu to toggle",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonMenuToggle",
          "doc-url": "https://ionicframework.com/docs/api/menu-toggle",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/menu-toggle/menu-toggle.d.ts",
            "symbol": "MenuToggle"
          },
          "attributes": [
            {
              "name": "auto-hide",
              "description": "Automatically hides the content when the corresponding menu is not active.\n\nBy default, it's `true`. Change it to `false` in order to\nkeep `ion-menu-toggle` always visible regardless the state of the menu.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "menu",
              "description": "Optional property that maps to a Menu's `menuId` prop.\nCan also be `start` or `end` for the menu side.\nThis is used to find the correct menu to toggle.\n\nIf this property is not used, `ion-menu-toggle` will toggle the\nfirst menu that is active.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed inside the toggle to act as the click target."
            }
          ],
          "events": []
        },
        {
          "name": "IonModal",
          "doc-url": "https://ionicframework.com/docs/api/modal",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/modal/modal.d.ts",
            "symbol": "Modal"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the modal will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-breakpoint",
              "description": "A decimal value between 0 and 1 that indicates the\npoint after which the backdrop will begin to fade in\nwhen using a sheet modal. Prior to this point, the\nbackdrop will be hidden and the content underneath\nthe sheet can be interacted with. This value is exclusive\nmeaning the backdrop will become active after the value\nspecified.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the modal will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "breakpoints",
              "description": "The breakpoints to use when creating a sheet modal. Each value in the\narray must be a decimal between 0 and 1 where 0 indicates the modal is fully\nclosed and 1 indicates the modal is fully open. Values are relative\nto the height of the modal, not the height of the screen. One of the values in this\narray must be the value of the `initialBreakpoint` property.\nFor example: [0, .25, .5, 1]",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number[] | undefined"
              }
            },
            {
              "name": "can-dismiss",
              "description": "Determines whether or not a modal can dismiss\nwhen calling the `dismiss` method.\n\nIf the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.\nIf the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "((data?: any, role?: string | undefined) => Promise<boolean>) | boolean"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the modal is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "expand-to-scroll",
              "description": "Controls whether scrolling or dragging within the sheet modal expands\nit to a larger breakpoint. This only takes effect when `breakpoints`\nand `initialBreakpoint` are set.\n\nIf `true`, scrolling or dragging anywhere in the modal will first expand\nit to the next breakpoint. Once fully expanded, scrolling will affect the\ncontent.\nIf `false`, scrolling will always affect the content. The modal will\nonly expand when dragging the header or handle. The modal will close when\ndragging the header or handle. It can also be closed when dragging the\ncontent, but only if the content is scrolled to the top.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "focus-trap",
              "description": "If `true`, focus will not be allowed to move outside of this overlay.\nIf `false`, focus will be allowed to move outside of the overlay.\n\nIn most scenarios this property should remain set to `true`. Setting\nthis property to `false` can cause severe accessibility issues as users\nrelying on assistive technologies may be able to move focus into\na confusing state. We recommend only setting this to `false` when\nabsolutely necessary.\n\nDevelopers may want to consider disabling focus trapping if this\noverlay presents a non-Ionic overlay from a 3rd party library.\nDevelopers would disable focus trapping on the Ionic overlay\nwhen presenting the 3rd party overlay and then re-enable\nfocus trapping when dismissing the 3rd party overlay and moving\nfocus back to the Ionic overlay.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "handle",
              "description": "The horizontal line that displays at the top of a sheet modal. It is `true` by default when\nsetting the `breakpoints` and `initialBreakpoint` properties.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "handle-behavior",
              "description": "The interaction behavior for the sheet modal when the handle is pressed.\n\nDefaults to `\"none\"`, which  means the modal will not change size or position when the handle is pressed.\nSet to `\"cycle\"` to let the modal cycle between available breakpoints when pressed.\n\nHandle behavior is unavailable when the `handle` property is set to `false` or\nwhen the `breakpoints` property is not set (using a fullscreen or card modal).",
              "required": false,
              "default": "'none'",
              "value": {
                "kind": "expression",
                "type": "\"cycle\" | \"none\" | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the modal.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "initial-breakpoint",
              "description": "A decimal value between 0 and 1 that indicates the\ninitial point the modal will open at when creating a\nsheet modal. This value must also be listed in the\n`breakpoints` array.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the modal will open. If `false`, the modal will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the modalController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe modal dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keep-contents-mounted",
              "description": "If `true`, the component passed into `ion-modal` will\nautomatically be mounted when the modal is created. The\ncomponent will remain mounted even when the modal is dismissed.\nHowever, the component will be destroyed when the modal is\ndestroyed. This property is not reactive and should only be\nused when initially creating a modal.\n\nNote: This feature only applies to inline modals in JavaScript\nframeworks such as Angular, React, and Vue.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the modal is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "presentingElement",
              "description": "The element that presented the modal. This is used for card presentation effects\nand for stacking multiple modals on top of each other. Only applies in iOS mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "HTMLElement | undefined"
              }
            },
            {
              "name": "show-backdrop",
              "description": "If `true`, a backdrop will be displayed behind the modal.\nThis property controls whether or not the backdrop\ndarkens the screen when the modal is presented.\nIt does not control whether or not the backdrop\nis active or present in the DOM.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the modal to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed inside of the `.modal-content` element."
            }
          ],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the modal has dismissed.\nShorthand for ionModalDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the modal has presented.\nShorthand for ionModalDidPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionBreakpointDidChange",
              "description": "Emitted after the modal breakpoint has changed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ModalBreakpointChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionDragEnd",
              "description": "Event that is emitted when the sheet modal or card modal gesture ends.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ModalDragEventDetail"
                }
              ]
            },
            {
              "name": "ionDragMove",
              "description": "Event that is emitted when the sheet modal or card modal gesture moves.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ModalDragEventDetail"
                }
              ]
            },
            {
              "name": "ionDragStart",
              "description": "Event that is emitted when the sheet modal or card modal gesture starts.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the modal has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the modal has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the modal has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the modal has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the modal has dismissed.\nShorthand for ionModalWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the modal has presented.\nShorthand for ionModalWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonNote",
          "doc-url": "https://ionicframework.com/docs/api/note",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/note/note.d.ts",
            "symbol": "Note"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonPicker",
          "doc-url": "https://ionicframework.com/docs/api/picker",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/picker/picker.d.ts",
            "symbol": "Picker"
          },
          "attributes": [
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonPickerColumn",
          "doc-url": "https://ionicframework.com/docs/api/picker-column",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/picker-column/picker-column.d.ts",
            "symbol": "PickerColumn"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "default": "'primary'",
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the picker.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "value",
              "description": "The selected option in the picker.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "prefix",
              "description": "Content to show on the left side of the picker options."
            },
            {
              "name": "suffix",
              "description": "Content to show on the right side of the picker options."
            }
          ],
          "events": [
            {
              "name": "ionChange",
              "description": "Emitted when the value has changed.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "PickerColumnChangeEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonPickerColumnOption",
          "doc-url": "https://ionicframework.com/docs/api/picker-column-option",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/picker-column-option/picker-column-option.d.ts",
            "symbol": "PickerColumnOption"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "default": "'primary'",
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the picker column option.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The text value of the option.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonPickerLegacy",
          "doc-url": "https://ionicframework.com/docs/api/picker-legacy",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/picker-legacy/picker.d.ts",
            "symbol": "PickerLegacy"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the picker will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the picker will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "buttons",
              "description": "Array of buttons to be displayed at the top of the picker.",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "PickerButton[]"
              }
            },
            {
              "name": "columns",
              "description": "Array of columns to be displayed in the picker.",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "PickerColumn[]"
              }
            },
            {
              "name": "css-class",
              "description": "Additional classes to apply for custom CSS. If multiple classes are\nprovided they should be separated by spaces.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | string[] | undefined"
              }
            },
            {
              "name": "duration",
              "description": "Number of milliseconds to wait before dismissing the picker.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the picker is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the picker.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the picker will open. If `false`, the picker will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the pickerController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe picker dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the picker is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "show-backdrop",
              "description": "If `true`, a backdrop will be displayed behind the picker.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the picker to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the picker has dismissed.\nShorthand for ionPickerDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the picker has presented.\nShorthand for ionPickerWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionPickerDidDismiss",
              "description": "Emitted after the picker has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "ionPickerDidPresent",
              "description": "Emitted after the picker has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionPickerWillDismiss",
              "description": "Emitted before the picker has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "ionPickerWillPresent",
              "description": "Emitted before the picker has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the picker has dismissed.\nShorthand for ionPickerWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the picker has presented.\nShorthand for ionPickerWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonPopover",
          "doc-url": "https://ionicframework.com/docs/api/popover",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/popover/popover.d.ts",
            "symbol": "Popover"
          },
          "attributes": [
            {
              "name": "alignment",
              "description": "Describes how to align the popover content with the `reference` point.\nDefaults to `\"center\"` for `ios` mode, and `\"start\"` for `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"center\" | \"end\" | \"start\" | undefined"
              }
            },
            {
              "name": "animated",
              "description": "If `true`, the popover will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "arrow",
              "description": "If `true`, the popover will display an arrow that points at the\n`reference` when running in `ios` mode. Does not apply in `md` mode.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "backdrop-dismiss",
              "description": "If `true`, the popover will be dismissed when the backdrop is clicked.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "component",
              "description": "The component to display inside of the popover.\nYou only need to use this if you are not using\na JavaScript framework. Otherwise, you can just\nslot your component inside of `ion-popover`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "Function | HTMLElement | null | string | undefined"
              }
            },
            {
              "name": "componentProps",
              "description": "The data to pass to the popover component.\nYou only need to use this if you are not using\na JavaScript framework. Otherwise, you can just\nset the props directly on your component.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "T | undefined"
              }
            },
            {
              "name": "dismiss-on-select",
              "description": "If `true`, the popover will be automatically\ndismissed when the content has been clicked.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the popover is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "event",
              "description": "The event to pass to the popover animation.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            },
            {
              "name": "focus-trap",
              "description": "If `true`, focus will not be allowed to move outside of this overlay.\nIf `false`, focus will be allowed to move outside of the overlay.\n\nIn most scenarios this property should remain set to `true`. Setting\nthis property to `false` can cause severe accessibility issues as users\nrelying on assistive technologies may be able to move focus into\na confusing state. We recommend only setting this to `false` when\nabsolutely necessary.\n\nDevelopers may want to consider disabling focus trapping if this\noverlay presents a non-Ionic overlay from a 3rd party library.\nDevelopers would disable focus trapping on the Ionic overlay\nwhen presenting the 3rd party overlay and then re-enable\nfocus trapping when dismissing the 3rd party overlay and moving\nfocus back to the Ionic overlay.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the popover.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the popover will open. If `false`, the popover will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the popoverController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe popover dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keep-contents-mounted",
              "description": "If `true`, the component passed into `ion-popover` will\nautomatically be mounted when the popover is created. The\ncomponent will remain mounted even when the popover is dismissed.\nHowever, the component will be destroyed when the popover is\ndestroyed. This property is not reactive and should only be\nused when initially creating a popover.\n\nNote: This feature only applies to inline popovers in JavaScript\nframeworks such as Angular, React, and Vue.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the popover is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "reference",
              "description": "Describes what to position the popover relative to.\nIf `\"trigger\"`, the popover will be positioned relative\nto the trigger button. If passing in an event, this is\ndetermined via event.target.\nIf `\"event\"`, the popover will be positioned relative\nto the x/y coordinates of the trigger action. If passing\nin an event, this is determined via event.clientX and event.clientY.",
              "required": false,
              "default": "'trigger'",
              "value": {
                "kind": "expression",
                "type": "\"event\" | \"trigger\""
              }
            },
            {
              "name": "show-backdrop",
              "description": "If `true`, a backdrop will be displayed behind the popover.\nThis property controls whether or not the backdrop\ndarkens the screen when the popover is presented.\nIt does not control whether or not the backdrop\nis active or present in the DOM.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "side",
              "description": "Describes which side of the `reference` point to position\nthe popover on. The `\"start\"` and `\"end\"` values are RTL-aware,\nand the `\"left\"` and `\"right\"` values are not.",
              "required": false,
              "default": "'bottom'",
              "value": {
                "kind": "expression",
                "type": "\"bottom\" | \"end\" | \"left\" | \"right\" | \"start\" | \"top\""
              }
            },
            {
              "name": "size",
              "description": "Describes how to calculate the popover width.\nIf `\"cover\"`, the popover width will match the width of the trigger.\nIf `\"auto\"`, the popover width will be set to a static default value.",
              "required": false,
              "default": "'auto'",
              "value": {
                "kind": "expression",
                "type": "\"auto\" | \"cover\""
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the popover will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the popover to open. Use the `trigger-action`\nproperty to customize the interaction that results in\nthe popover opening.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "trigger-action",
              "description": "Describes what kind of interaction with the trigger that\nshould cause the popover to open. Does not apply when the `trigger`\nproperty is `undefined`.\nIf `\"click\"`, the popover will be presented when the trigger is left clicked.\nIf `\"hover\"`, the popover will be presented when a pointer hovers over the trigger.\nIf `\"context-menu\"`, the popover will be presented when the trigger is right\nclicked on desktop and long pressed on mobile. This will also prevent your\ndevice's normal context menu from appearing.",
              "required": false,
              "default": "'click'",
              "value": {
                "kind": "expression",
                "type": "\"click\" | \"context-menu\" | \"hover\""
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed inside of the `.popover-content` element."
            }
          ],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the popover has dismissed.\nShorthand for ionPopoverDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the popover has presented.\nShorthand for ionPopoverWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the popover has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the popover has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the popover has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the popover has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the popover has dismissed.\nShorthand for ionPopoverWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the popover has presented.\nShorthand for ionPopoverWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonProgressBar",
          "doc-url": "https://ionicframework.com/docs/api/progress-bar",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/progress-bar/progress-bar.d.ts",
            "symbol": "ProgressBar"
          },
          "attributes": [
            {
              "name": "buffer",
              "description": "If the buffer and value are smaller than 1, the buffer circles will show.\nThe buffer should be between [0, 1].",
              "required": false,
              "default": "1",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "reversed",
              "description": "If true, reverse the progress bar direction.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "type",
              "description": "The state of the progress bar, based on if the time the process takes is known or not.\nDefault options are: `\"determinate\"` (no animation), `\"indeterminate\"` (animate from left to right).",
              "required": false,
              "default": "'determinate'",
              "value": {
                "kind": "expression",
                "type": "\"determinate\" | \"indeterminate\""
              }
            },
            {
              "name": "value",
              "description": "The value determines how much of the active bar should display when the\n`type` is `\"determinate\"`.\nThe value should be between [0, 1].",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonRadio",
          "doc-url": "https://ionicframework.com/docs/api/radio",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/radio/radio.d.ts",
            "symbol": "Radio"
          },
          "attributes": [
            {
              "name": "alignment",
              "description": "How to control the alignment of the radio and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.\nSetting this property will change the radio `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"center\" | \"start\" | undefined"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the radio.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "justify",
              "description": "How to pack the label and radio within a line.\n`\"start\"`: The label and radio will appear on the left in LTR and\non the right in RTL.\n`\"end\"`: The label and radio will appear on the right in LTR and\non the left in RTL.\n`\"space-between\"`: The label and radio will appear on opposite\nends of the line with space between the two elements.\nSetting this property will change the radio `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"space-between\" | \"start\" | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the radio.\n`\"start\"`: The label will appear to the left of the radio in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the radio in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the radio regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "the value of the radio.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "The label text to associate with the radio. Use the \"labelPlacement\" property to control where the label is placed relative to the radio."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the radio button loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the radio button has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRadioGroup",
          "doc-url": "https://ionicframework.com/docs/api/radio-group",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/radio-group/radio-group.d.ts",
            "symbol": "RadioGroup"
          },
          "attributes": [
            {
              "name": "allow-empty-selection",
              "description": "If `true`, the radios can be deselected.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "compare-with",
              "description": "This property allows developers to specify a custom function or property\nname for comparing objects when determining the selected option in the\nion-radio-group. When not specified, the default behavior will use strict\nequality (===) for comparison.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined"
              }
            },
            {
              "name": "error-text",
              "description": "The error text to display at the top of the radio group.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "The helper text to display at the top of the radio group.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "the value of the radio group.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionChange",
              "description": "Emitted when the value has changed.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RadioGroupChangeEventDetail<any>"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRange",
          "doc-url": "https://ionicframework.com/docs/api/range",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/range/range.d.ts",
            "symbol": "Range"
          },
          "attributes": [
            {
              "name": "active-bar-start",
              "description": "The start position of the range active bar. This feature is only available with a single knob (dualKnobs=\"false\").\nValid values are greater than or equal to the min value and less than or equal to the max value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "debounce",
              "description": "How long, in milliseconds, to wait to trigger the\n`ionInput` event after each change in the range value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the range.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "dual-knobs",
              "description": "Show two knobs.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The text to display as the control's label. Use this over the `label` slot if\nyou only need plain text. The `label` property will take priority over the\n`label` slot if both are used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the range.\n`\"start\"`: The label will appear to the left of the range in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the range in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the range regardless of the direction.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "max",
              "description": "Maximum integer value of the range.",
              "required": false,
              "default": "100",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "min",
              "description": "Minimum integer value of the range.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.rangeId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "pin",
              "description": "If `true`, a pin with integer value is shown when the knob\nis pressed.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "pinFormatter",
              "description": "A callback used to format the pin text.\nBy default the pin text is set to `Math.round(value)`.\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback.",
              "required": false,
              "default": "(value: number): number => Math.round(value)",
              "value": {
                "kind": "expression",
                "type": "(value: number) => string | number"
              }
            },
            {
              "name": "snaps",
              "description": "If `true`, the knob snaps to tick marks evenly spaced based\non the step property value.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "step",
              "description": "Specifies the value granularity.",
              "required": false,
              "default": "1",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "ticks",
              "description": "If `true`, tick marks are displayed based on the step value.\nOnly applies when `snaps` is `true`.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "the value of the range.",
              "required": false,
              "default": "0",
              "value": {
                "kind": "expression",
                "type": "number | { lower: number; upper: number; }"
              }
            }
          ],
          "slots": [
            {
              "name": "end",
              "description": "Content is placed to the right of the range slider in LTR, and to the left in RTL."
            },
            {
              "name": "label",
              "description": "The label text to associate with the range. Use the \"labelPlacement\" property to control where the label is placed relative to the range."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the range slider in LTR, and to the right in RTL."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the range loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "The `ionChange` event is fired for `<ion-range>` elements when the user\nmodifies the element's value:\n- When the user releases the knob after dragging;\n- When the user moves the knob with keyboard arrows\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RangeChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the range has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionInput",
              "description": "The `ionInput` event is fired for `<ion-range>` elements when the value\nis modified. Unlike `ionChange`, `ionInput` is fired continuously\nwhile the user is dragging the knob.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RangeChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionKnobMoveEnd",
              "description": "Emitted when the user finishes moving the range knob, whether through\nmouse drag, touch gesture, or keyboard interaction.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RangeKnobMoveEndEventDetail"
                }
              ]
            },
            {
              "name": "ionKnobMoveStart",
              "description": "Emitted when the user starts moving the range knob, whether through\nmouse drag, touch gesture, or keyboard interaction.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RangeKnobMoveStartEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRefresher",
          "doc-url": "https://ionicframework.com/docs/api/refresher",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/refresher/refresher.d.ts",
            "symbol": "Refresher"
          },
          "attributes": [
            {
              "name": "close-duration",
              "description": "Time it takes to close the refresher.\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
              "required": false,
              "default": "'280ms'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the refresher will be hidden.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "pull-factor",
              "description": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
              "required": false,
              "default": "1",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "pull-max",
              "description": "The maximum distance of the pull until the refresher\nwill automatically go into the `refreshing` state.\nDefaults to the result of `pullMin + 60`.\nDoes not apply when  the refresher content uses a spinner,\nenabling the native refresher.",
              "required": false,
              "default": "this.pullMin + 60",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "pull-min",
              "description": "The minimum distance the user must pull down until the\nrefresher will go into the `refreshing` state.\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
              "required": false,
              "default": "60",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "snapback-duration",
              "description": "Time it takes the refresher to snap back to the `refreshing` state.\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
              "required": false,
              "default": "'280ms'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionPull",
              "description": "Emitted while the user is pulling down the content and exposing the refresher.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionPullEnd",
              "description": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RefresherPullEndEventDetail"
                }
              ]
            },
            {
              "name": "ionPullStart",
              "description": "Emitted when the user begins to start pulling down.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionRefresh",
              "description": "Emitted when the user lets go of the content and has pulled down\nfurther than the `pullMin` or pulls the content down and exceeds the pullMax.\nUpdates the refresher state to `refreshing`. The `complete()` method should be\ncalled when the async operation has completed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "RefresherEventDetail"
                }
              ]
            },
            {
              "name": "ionStart",
              "description": "Emitted when the user begins to start pulling down.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRefresherContent",
          "doc-url": "https://ionicframework.com/docs/api/refresher-content",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/refresher-content/refresher-content.d.ts",
            "symbol": "RefresherContent"
          },
          "attributes": [
            {
              "name": "pulling-icon",
              "description": "A static icon or a spinner to display when you begin to pull down.\nA spinner name can be provided to gradually show tick marks\nwhen pulling down on iOS devices.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            },
            {
              "name": "pulling-text",
              "description": "The text you want to display when you begin to pull down.\n`pullingText` can accept either plaintext or HTML as a string.\nTo display characters normally reserved for HTML, they\nmust be escaped. For example `<Ionic>` would become\n`&lt;Ionic&gt;`\n\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            },
            {
              "name": "refreshing-spinner",
              "description": "An animated SVG spinner that shows when refreshing begins",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"bubbles\" | \"circles\" | \"circular\" | \"crescent\" | \"dots\" | \"lines\" | \"lines-sharp\" | \"lines-sharp-small\" | \"lines-small\" | null | undefined"
              }
            },
            {
              "name": "refreshing-text",
              "description": "The text you want to display when performing a refresh.\n`refreshingText` can accept either plaintext or HTML as a string.\nTo display characters normally reserved for HTML, they\nmust be escaped. For example `<Ionic>` would become\n`&lt;Ionic&gt;`\n\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonReorder",
          "doc-url": "https://ionicframework.com/docs/api/reorder",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/reorder/reorder.d.ts",
            "symbol": "Reorder"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonReorderGroup",
          "doc-url": "https://ionicframework.com/docs/api/reorder-group",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/reorder-group/reorder-group.d.ts",
            "symbol": "ReorderGroup"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the reorder will be hidden.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionItemReorder",
              "description": "Event that needs to be listened to in order to complete the reorder action.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ItemReorderEventDetail"
                }
              ]
            },
            {
              "name": "ionReorderEnd",
              "description": "Event that is emitted when the reorder gesture ends.\nThe from and to properties are always available, regardless of\nif the reorder gesture moved the item. If the item did not change\nfrom its start position, the from and to properties will be the same.\nOnce the event has been emitted, the `complete()` method then needs\nto be called in order to finalize the reorder action.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ReorderEndEventDetail"
                }
              ]
            },
            {
              "name": "ionReorderMove",
              "description": "Event that is emitted as the reorder gesture moves.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ReorderMoveEventDetail"
                }
              ]
            },
            {
              "name": "ionReorderStart",
              "description": "Event that is emitted when the reorder gesture starts.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRippleEffect",
          "doc-url": "https://ionicframework.com/docs/api/ripple-effect",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/ripple-effect/ripple-effect.d.ts",
            "symbol": "RippleEffect"
          },
          "attributes": [
            {
              "name": "type",
              "description": "Sets the type of ripple-effect:\n\n- `bounded`: the ripple effect expands from the user's click position\n- `unbounded`: the ripple effect expands from the center of the button and overflows the container.\n\nNOTE: Surfaces for bounded ripples should have the overflow property set to hidden,\nwhile surfaces for unbounded ripples should have it set to visible.",
              "required": false,
              "default": "'bounded'",
              "value": {
                "kind": "expression",
                "type": "\"bounded\" | \"unbounded\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonRoute",
          "doc-url": "https://ionicframework.com/docs/api/route",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/route/route.d.ts",
            "symbol": "Route"
          },
          "attributes": [
            {
              "name": "beforeEnter",
              "description": "A navigation hook that is fired when the route tries to enter.\nReturning `true` allows the navigation to proceed, while returning\n`false` causes it to be cancelled. Returning a `NavigationHookOptions`\nobject causes the router to redirect to the path specified.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "(() => NavigationHookResult | Promise<NavigationHookResult>) | undefined"
              }
            },
            {
              "name": "beforeLeave",
              "description": "A navigation hook that is fired when the route tries to leave.\nReturning `true` allows the navigation to proceed, while returning\n`false` causes it to be cancelled. Returning a `NavigationHookOptions`\nobject causes the router to redirect to the path specified.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "(() => NavigationHookResult | Promise<NavigationHookResult>) | undefined"
              }
            },
            {
              "name": "component",
              "description": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-nav`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select.",
              "required": true,
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "componentProps",
              "description": "A key value `{ 'red': true, 'blue': 'white'}` containing props that should be passed\nto the defined component when rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "url",
              "description": "Relative path that needs to match in order for this route to apply.\n\nAccepts paths similar to expressjs so that you can define parameters\nin the url /foo/:bar where bar would be available in incoming props.",
              "required": false,
              "default": "''",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "onDataChanged",
              "description": "Used internally by `ion-router` to know when this route did change.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "any"
                }
              ]
            }
          ]
        },
        {
          "name": "IonRow",
          "doc-url": "https://ionicframework.com/docs/api/row",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/row/row.d.ts",
            "symbol": "Row"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSearchbar",
          "doc-url": "https://ionicframework.com/docs/api/searchbar",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/searchbar/searchbar.d.ts",
            "symbol": "Searchbar"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, enable searchbar animation.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "autocapitalize",
              "description": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "autocomplete",
              "description": "Set the input's autocomplete property.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "\"additional-name\" | \"address-level1\" | \"address-level2\" | \"address-level3\" | \"address-level4\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"cc-additional-name\" | \"cc-csc\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-family-name\" | \"cc-given-name\" | \"cc-name\" | \"cc-number\" | \"cc-type\" | \"country\" | \"country-name\" | \"current-password\" | \"email\" | \"family-name\" | \"given-name\" | \"honorific-prefix\" | \"honorific-suffix\" | \"impp\" | \"language\" | \"name\" | \"new-password\" | \"nickname\" | \"off\" | \"on\" | \"one-time-code\" | \"organization\" | \"organization-title\" | \"photo\" | \"postal-code\" | \"sex\" | \"street-address\" | \"tel\" | \"tel-area-code\" | \"tel-country-code\" | \"tel-extension\" | \"tel-local\" | \"tel-national\" | \"transaction-amount\" | \"transaction-currency\" | \"url\" | \"username\""
              }
            },
            {
              "name": "autocorrect",
              "description": "Set the input's autocorrect property.",
              "required": false,
              "default": "'off'",
              "value": {
                "kind": "expression",
                "type": "\"off\" | \"on\""
              }
            },
            {
              "name": "cancel-button-icon",
              "description": "Set the cancel button icon. Only applies to `md` mode.\nDefaults to `arrow-back-sharp`.",
              "required": false,
              "default": "config.get('backButtonIcon', arrowBackSharp) as string",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "cancel-button-text",
              "description": "Set the cancel button text. Only applies to `ios` mode.",
              "required": false,
              "default": "'Cancel'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "clear-icon",
              "description": "Set the clear icon. Defaults to `close-circle` for `ios` and `close-sharp` for `md`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "debounce",
              "description": "Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the input.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "enterkeyhint",
              "description": "A hint to the browser for which enter key to display.\nPossible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n`\"previous\"`, `\"search\"`, and `\"send\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined"
              }
            },
            {
              "name": "inputmode",
              "description": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined"
              }
            },
            {
              "name": "maxlength",
              "description": "This attribute specifies the maximum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "minlength",
              "description": "This attribute specifies the minimum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "If used in a form, set the name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "placeholder",
              "description": "Set the input's placeholder.\n`placeholder` can accept either plaintext or HTML as a string.\nTo display characters normally reserved for HTML, they\nmust be escaped. For example `<Ionic>` would become\n`&lt;Ionic&gt;`\n\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)",
              "required": false,
              "default": "'Search'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "search-icon",
              "description": "The icon to use as the search icon. Defaults to `search-outline` in\n`ios` mode and `search-sharp` in `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "show-cancel-button",
              "description": "Sets the behavior for the cancel button. Defaults to `\"never\"`.\nSetting to `\"focus\"` shows the cancel button on focus.\nSetting to `\"never\"` hides the cancel button.\nSetting to `\"always\"` shows the cancel button regardless\nof focus state.",
              "required": false,
              "default": "'never'",
              "value": {
                "kind": "expression",
                "type": "\"always\" | \"focus\" | \"never\""
              }
            },
            {
              "name": "show-clear-button",
              "description": "Sets the behavior for the clear button. Defaults to `\"focus\"`.\nSetting to `\"focus\"` shows the clear button on focus if the\ninput is not empty.\nSetting to `\"never\"` hides the clear button.\nSetting to `\"always\"` shows the clear button regardless\nof focus state, but only if the input is not empty.",
              "required": false,
              "default": "'always'",
              "value": {
                "kind": "expression",
                "type": "\"always\" | \"focus\" | \"never\""
              }
            },
            {
              "name": "spellcheck",
              "description": "If `true`, enable spellcheck on the input.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "type",
              "description": "Set the type of the input.",
              "required": false,
              "default": "'search'",
              "value": {
                "kind": "expression",
                "type": "\"email\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\""
              }
            },
            {
              "name": "value",
              "description": "the value of the searchbar.",
              "required": false,
              "default": "''",
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the input loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionCancel",
              "description": "Emitted when the cancel button is clicked.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "The `ionChange` event is fired for `<ion-searchbar>` elements when the user\nmodifies the element's value. Unlike the `ionInput` event, the `ionChange`\nevent is not necessarily fired for each alteration to an element's value.\n\nThe `ionChange` event is fired when the value has been committed\nby the user. This can happen when the element loses focus or\nwhen the \"Enter\" key is pressed. `ionChange` can also fire\nwhen clicking the clear or cancel buttons.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "SearchbarChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionClear",
              "description": "Emitted when the clear input button is clicked.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the input has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionInput",
              "description": "Emitted when the `value` of the `ion-searchbar` element has changed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "SearchbarInputEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonSegment",
          "doc-url": "https://ionicframework.com/docs/api/segment",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/segment/segment.d.ts",
            "symbol": "Segment"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the segment.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "scrollable",
              "description": "If `true`, the segment buttons will overflow and the user can swipe to see them.\nIn addition, this will disable the gesture to drag the indicator between the buttons\nin order to swipe to see hidden buttons.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "select-on-focus",
              "description": "If `true`, navigating to an `ion-segment-button` with the keyboard will focus and select the element.\nIf `false`, keyboard navigation will only focus the `ion-segment-button` element.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "swipe-gesture",
              "description": "If `true`, users will be able to swipe between segment buttons to activate them.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "the value of the segment.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "ionChange",
              "description": "Emitted when the value property has changed and any dragging pointer has been released from `ion-segment`.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "SegmentChangeEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonSegmentButton",
          "doc-url": "https://ionicframework.com/docs/api/segment-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/segment-button/segment-button.d.ts",
            "symbol": "SegmentButton"
          },
          "attributes": [
            {
              "name": "content-id",
              "description": "The `id` of the segment content.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the segment button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "layout",
              "description": "Set the layout of the text and icon in the segment.",
              "required": false,
              "default": "'icon-top'",
              "value": {
                "kind": "expression",
                "type": "\"icon-bottom\" | \"icon-end\" | \"icon-hide\" | \"icon-start\" | \"icon-top\" | \"label-hide\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "type",
              "description": "The type of the button.",
              "required": false,
              "default": "'button'",
              "value": {
                "kind": "expression",
                "type": "\"button\" | \"reset\" | \"submit\""
              }
            },
            {
              "name": "value",
              "description": "The value of the segment button.",
              "required": false,
              "default": "'ion-sb-' + ids++",
              "value": {
                "kind": "expression",
                "type": "number | string"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSegmentContent",
          "doc-url": "https://ionicframework.com/docs/api/segment-content",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/segment-content/segment-content.d.ts",
            "symbol": "SegmentContent"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSegmentView",
          "doc-url": "https://ionicframework.com/docs/api/segment-view",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/segment-view/segment-view.d.ts",
            "symbol": "SegmentView"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the segment view cannot be interacted with.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "swipe-gesture",
              "description": "If `true`, users will be able to swipe the segment view to navigate between segment contents.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "onScroll",
              "description": "Emitted when the segment view is scrolled.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "SegmentViewScrollEvent"
                }
              ]
            }
          ]
        },
        {
          "name": "IonSelect",
          "doc-url": "https://ionicframework.com/docs/api/select",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/select/select.d.ts",
            "symbol": "Select"
          },
          "attributes": [
            {
              "name": "cancel-text",
              "description": "The text to display on the cancel button.",
              "required": false,
              "default": "'Cancel'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).\n\nThis property is only available when using the modern select syntax.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "compare-with",
              "description": "This property allows developers to specify a custom function or property\nname for comparing objects when determining the selected option in the\nion-select. When not specified, the default behavior will use strict\nequality (===) for comparison.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the select.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "error-text",
              "description": "Text that is placed under the select and displayed when an error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "expanded-icon",
              "description": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `md` mode will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "fill",
              "description": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"outline\" | \"solid\" | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "Text that is placed under the select and displayed when no error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "interface",
              "description": "The interface the select should use: `action-sheet`, `popover`, `alert`, or `modal`.",
              "required": false,
              "default": "'alert'",
              "value": {
                "kind": "expression",
                "type": "\"action-sheet\" | \"alert\" | \"modal\" | \"popover\""
              }
            },
            {
              "name": "interface-options",
              "description": "Any additional options that the `alert`, `action-sheet` or `popover` interface\ncan take. See the [ion-alert docs](./alert), the\n[ion-action-sheet docs](./action-sheet), the\n[ion-popover docs](./popover), and the [ion-modal docs](./modal) for the\ncreate options for each interface.\n\nNote: `interfaceOptions` will not override `inputs` or `buttons` with the `alert` interface.",
              "required": false,
              "default": "{}",
              "value": {
                "kind": "expression",
                "type": "any"
              }
            },
            {
              "name": "justify",
              "description": "How to pack the label and select within a line.\n`justify` does not apply when the label and select\nare on different lines when `labelPlacement` is set to\n`\"floating\"` or `\"stacked\"`.\n`\"start\"`: The label and select will appear on the left in LTR and\non the right in RTL.\n`\"end\"`: The label and select will appear on the right in LTR and\non the left in RTL.\n`\"space-between\"`: The label and select will appear on opposite\nends of the line with space between the two elements.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"space-between\" | \"start\" | undefined"
              }
            },
            {
              "name": "label",
              "description": "The visible label associated with the select.\n\nUse this if you need to render a plaintext label.\n\nThe `label` property will take priority over the `label` slot if both are used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the select.\n`\"start\"`: The label will appear to the left of the select in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the select in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the select when the select is focused or it has a value. Otherwise it will appear on top of the select.\n`\"stacked\"`: The label will appear smaller and above the select regardless even when the select is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\nWhen using `\"floating\"` or `\"stacked\"` we recommend initializing the select with either a `value` or a `placeholder`.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "multiple",
              "description": "If `true`, the select can accept multiple values.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "ok-text",
              "description": "The text to display on the ok button.",
              "required": false,
              "default": "'OK'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "placeholder",
              "description": "The text to display when the select is empty.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "required",
              "description": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "selected-text",
              "description": "The text to display instead of the selected option's value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            },
            {
              "name": "shape",
              "description": "The shape of the select. If \"round\" it will have an increased border radius.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"round\" | undefined"
              }
            },
            {
              "name": "toggle-icon",
              "description": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "value",
              "description": "The value of the select.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [
            {
              "name": "end",
              "description": "Content to display at the trailing edge of the select."
            },
            {
              "name": "label",
              "description": "The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML."
            },
            {
              "name": "start",
              "description": "Content to display at the leading edge of the select."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the select loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionCancel",
              "description": "Emitted when the selection is cancelled.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "Emitted when the value has changed.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "SelectChangeEventDetail<any>"
                }
              ]
            },
            {
              "name": "ionDismiss",
              "description": "Emitted when the overlay is dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the select has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonSelectModal",
          "doc-url": "https://ionicframework.com/docs/api/select-modal",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/select-modal/select-modal.d.ts",
            "symbol": "SelectModal"
          },
          "attributes": [
            {
              "name": "cancel-text",
              "description": "The text to display on the cancel button.",
              "required": false,
              "default": "'Close'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "header",
              "description": "",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "multiple",
              "description": "",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "options",
              "description": "",
              "required": false,
              "default": "[]",
              "value": {
                "kind": "expression",
                "type": "SelectModalOption[]"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSelectOption",
          "doc-url": "https://ionicframework.com/docs/api/select-option",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/select-option/select-option.d.ts",
            "symbol": "SelectOption"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the select option. This property does not apply when `interface=\"action-sheet\"` as `ion-action-sheet` does not allow for disabled buttons.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The text value of the option.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "any"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSkeletonText",
          "doc-url": "https://ionicframework.com/docs/api/skeleton-text",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/skeleton-text/skeleton-text.d.ts",
            "symbol": "SkeletonText"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the skeleton text will animate.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSpinner",
          "doc-url": "https://ionicframework.com/docs/api/spinner",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/spinner/spinner.d.ts",
            "symbol": "Spinner"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "duration",
              "description": "Duration of the spinner animation in milliseconds. The default varies based on the spinner.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "name",
              "description": "The name of the SVG spinner to use. If a name is not provided, the platform's default\nspinner will be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"bubbles\" | \"circles\" | \"circular\" | \"crescent\" | \"dots\" | \"lines\" | \"lines-sharp\" | \"lines-sharp-small\" | \"lines-small\" | undefined"
              }
            },
            {
              "name": "paused",
              "description": "If `true`, the spinner's animation will be paused.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonSplitPane",
          "doc-url": "https://ionicframework.com/docs/api/split-pane",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/split-pane/split-pane.d.ts",
            "symbol": "SplitPane"
          },
          "attributes": [
            {
              "name": "content-id",
              "description": "The `id` of the main content. When using\na router this is typically `ion-router-outlet`.\nWhen not using a router, this is typically\nyour main view's `ion-content`. This is not the\nid of the `ion-content` inside of your `ion-menu`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the split pane will be hidden.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "when",
              "description": "When the split-pane should be shown.\nCan be a CSS media query expression, or a shortcut expression.\nCan also be a boolean expression.",
              "required": false,
              "default": "QUERY['lg']",
              "value": {
                "kind": "expression",
                "type": "boolean | string"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "onVisible",
              "description": "Expression to be called when the split-pane visibility has changed",
              "arguments": [
                {
                  "name": "detail",
                  "type": "{ visible: boolean; }"
                }
              ]
            }
          ]
        },
        {
          "name": "IonTab",
          "doc-url": "https://ionicframework.com/docs/api/tab",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/tab/tab.d.ts",
            "symbol": "Tab"
          },
          "attributes": [
            {
              "name": "component",
              "description": "The component to display inside of the tab.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "Function | HTMLElement | null | string | undefined"
              }
            },
            {
              "name": "tab",
              "description": "A tab id must be provided for each `ion-tab`. It's used internally to reference\nthe selected tab or by the router to switch between them.",
              "required": true,
              "value": {
                "kind": "expression",
                "type": "string"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonTabBar",
          "doc-url": "https://ionicframework.com/docs/api/tab-bar",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/tab-bar/tab-bar.d.ts",
            "symbol": "TabBar"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "selected-tab",
              "description": "The selected tab component",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the tab bar will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonTabButton",
          "doc-url": "https://ionicframework.com/docs/api/tab-button",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/tab-button/tab-button.d.ts",
            "symbol": "TabButton"
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the tab button.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "download",
              "description": "This attribute instructs browsers to download a URL instead of navigating to\nit, so the user will be prompted to save it as a local file. If the attribute\nhas a value, it is used as the pre-filled file name in the Save prompt\n(the user can still change the file name if they want).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "Contains a URL or a URL fragment that the hyperlink points to.\nIf this property is set, an anchor tag will be rendered.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "layout",
              "description": "Set the layout of the text and icon in the tab bar.\nIt defaults to `\"icon-top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"icon-bottom\" | \"icon-end\" | \"icon-hide\" | \"icon-start\" | \"icon-top\" | \"label-hide\" | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "rel",
              "description": "Specifies the relationship of the target object to the link object.\nThe value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "selected",
              "description": "The selected tab component",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "tab",
              "description": "A tab id must be provided for each `ion-tab`. It's used internally to reference\nthe selected tab or by the router to switch between them.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "target",
              "description": "Specifies where to display the linked URL.\nOnly applies when an `href` is provided.\nSpecial keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonTabs",
          "doc-url": "https://ionicframework.com/docs/api/tabs",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/tabs/tabs.d.ts",
            "symbol": "Tabs"
          },
          "attributes": [],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "bottom",
              "description": "Content is placed at the bottom of the screen."
            },
            {
              "name": "top",
              "description": "Content is placed at the top of the screen."
            }
          ],
          "events": [
            {
              "name": "onDidChange",
              "description": "Emitted when the navigation has finished transitioning to a new component.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "{ tab: string; }"
                }
              ]
            },
            {
              "name": "onWillChange",
              "description": "Emitted when the navigation is about to transition to a new component.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "{ tab: string; }"
                }
              ]
            }
          ]
        },
        {
          "name": "IonText",
          "doc-url": "https://ionicframework.com/docs/api/text",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/text/text.d.ts",
            "symbol": "Text"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonTextarea",
          "doc-url": "https://ionicframework.com/docs/api/textarea",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/textarea/textarea.d.ts",
            "symbol": "Textarea"
          },
          "attributes": [
            {
              "name": "auto-grow",
              "description": "If `true`, the textarea container will grow and shrink based\non the contents of the textarea.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "autocapitalize",
              "description": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.",
              "required": false,
              "default": "'none'",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "autofocus",
              "description": "Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.\n\nThis may not be sufficient for the element to be focused on page load. See [managing focus](/docs/developing/managing-focus) for more information.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "clear-on-edit",
              "description": "If `true`, the value will be cleared after focus upon edit.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "cols",
              "description": "The visible width of the text control, in average character widths. If it is specified, it must be a positive integer.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "counter",
              "description": "If `true`, a character counter will display the ratio of characters used and the total character limit.\nDevelopers must also set the `maxlength` property for the counter to be calculated correctly.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "counterFormatter",
              "description": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\".\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((inputLength: number, maxLength: number) => string) | undefined"
              }
            },
            {
              "name": "debounce",
              "description": "Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the textarea.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "enterkeyhint",
              "description": "A hint to the browser for which enter key to display.\nPossible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n`\"previous\"`, `\"search\"`, and `\"send\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined"
              }
            },
            {
              "name": "error-text",
              "description": "Text that is placed under the textarea and displayed when an error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "fill",
              "description": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"outline\" | \"solid\" | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "Text that is placed under the textarea and displayed when no error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "inputmode",
              "description": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined"
              }
            },
            {
              "name": "label",
              "description": "The visible label associated with the textarea.\n\nUse this if you need to render a plaintext label.\n\nThe `label` property will take priority over the `label` slot if both are used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the textarea.\n`\"start\"`: The label will appear to the left of the textarea in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the textarea in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the textarea when the textarea is focused or it has a value. Otherwise it will appear on top of the textarea.\n`\"stacked\"`: The label will appear smaller and above the textarea regardless even when the textarea is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "maxlength",
              "description": "This attribute specifies the maximum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "minlength",
              "description": "This attribute specifies the minimum number of characters that the user can enter.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "placeholder",
              "description": "Instructional text that shows before the input has a value.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "readonly",
              "description": "If `true`, the user cannot modify the value.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "required",
              "description": "If `true`, the user must fill in a value before submitting a form.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "rows",
              "description": "The number of visible text lines for the control.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "number | undefined"
              }
            },
            {
              "name": "shape",
              "description": "The shape of the textarea. If \"round\" it will have an increased border radius.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"round\" | undefined"
              }
            },
            {
              "name": "spellcheck",
              "description": "If `true`, the element will have its spelling and grammar checked.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The value of the textarea.",
              "required": false,
              "default": "''",
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            },
            {
              "name": "wrap",
              "description": "Indicates how the control wraps text.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"hard\" | \"off\" | \"soft\" | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "end",
              "description": "Content to display at the trailing edge of the textarea. (EXPERIMENTAL)"
            },
            {
              "name": "label",
              "description": "The label text to associate with the textarea. Use the `labelPlacement` property to control where the label is placed relative to the textarea. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
            },
            {
              "name": "start",
              "description": "Content to display at the leading edge of the textarea. (EXPERIMENTAL)"
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the input loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "The `ionChange` event is fired when the user modifies the textarea's value.\nUnlike the `ionInput` event, the `ionChange` event is fired when\nthe element loses focus after its value has been modified.\n\nThis event will not emit when programmatically setting the `value` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "TextareaChangeEventDetail"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the input has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "FocusEvent"
                }
              ]
            },
            {
              "name": "ionInput",
              "description": "The `ionInput` event is fired each time the user modifies the textarea's value.\nUnlike the `ionChange` event, the `ionInput` event is fired for each alteration\nto the textarea's value. This typically happens for each keystroke as the user types.\n\nWhen `clearOnEdit` is enabled, the `ionInput` event will be fired when\nthe user clears the textarea by performing a keydown event.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "TextareaInputEventDetail"
                }
              ]
            }
          ]
        },
        {
          "name": "IonThumbnail",
          "doc-url": "https://ionicframework.com/docs/api/thumbnail",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/thumbnail/thumbnail.d.ts",
            "symbol": "Thumbnail"
          },
          "attributes": [],
          "slots": [],
          "events": []
        },
        {
          "name": "IonTitle",
          "doc-url": "https://ionicframework.com/docs/api/title",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/title/title.d.ts",
            "symbol": "Title"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "size",
              "description": "The size of the toolbar title.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"large\" | \"small\" | undefined"
              }
            }
          ],
          "slots": [],
          "events": []
        },
        {
          "name": "IonToast",
          "doc-url": "https://ionicframework.com/docs/api/toast",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/toast/toast.d.ts",
            "symbol": "Toast"
          },
          "attributes": [
            {
              "name": "animated",
              "description": "If `true`, the toast will animate.",
              "required": false,
              "default": "true",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "buttons",
              "description": "An array of buttons for the toast.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "(string | ToastButton)[] | undefined"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "css-class",
              "description": "Additional classes to apply for custom CSS. If multiple classes are\nprovided they should be separated by spaces.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | string[] | undefined"
              }
            },
            {
              "name": "duration",
              "description": "How many milliseconds to wait before hiding the toast. By default, it will show\nuntil `dismiss()` is called.",
              "required": false,
              "default": "config.getNumber('toastDuration', 0)",
              "value": {
                "kind": "expression",
                "type": "number"
              }
            },
            {
              "name": "enterAnimation",
              "description": "Animation to use when the toast is presented.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "header",
              "description": "Header to be shown in the toast.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "htmlAttributes",
              "description": "Additional attributes to pass to the toast.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "undefined | { [key: string]: any; }"
              }
            },
            {
              "name": "icon",
              "description": "The name of the icon to display, or the path to a valid SVG file. See `ion-icon`.\nhttps://ionic.io/ionicons",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "is-open",
              "description": "If `true`, the toast will open. If `false`, the toast will close.\nUse this if you need finer grained control over presentation, otherwise\njust use the toastController or the `trigger` property.\nNote: `isOpen` will not automatically be set back to `false` when\nthe toast dismisses. You will need to do that in your code.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "keyboard-close",
              "description": "If `true`, the keyboard will be automatically dismissed when the overlay is presented.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "layout",
              "description": "Defines how the message and buttons are laid out in the toast.\n'baseline': The message and the buttons will appear on the same line.\nMessage text may wrap within the message container.\n'stacked': The buttons containers and message will stack on top\nof each other. Use this if you have long text in your buttons.",
              "required": false,
              "default": "'baseline'",
              "value": {
                "kind": "expression",
                "type": "\"baseline\" | \"stacked\""
              }
            },
            {
              "name": "leaveAnimation",
              "description": "Animation to use when the toast is dismissed.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "((baseEl: any, opts?: any) => Animation) | undefined"
              }
            },
            {
              "name": "message",
              "description": "Message to be shown in the toast.\nThis property accepts custom HTML as a string.\nContent is parsed as plaintext by default.\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\nbefore custom HTML can be used.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "IonicSafeString | string | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "position",
              "description": "The starting position of the toast on the screen. Can be tweaked further\nusing the `positionAnchor` property.",
              "required": false,
              "default": "'bottom'",
              "value": {
                "kind": "expression",
                "type": "\"bottom\" | \"middle\" | \"top\""
              }
            },
            {
              "name": "position-anchor",
              "description": "The element to anchor the toast's position to. Can be set as a direct reference\nor the ID of the element. With `position=\"bottom\"`, the toast will sit above the\nchosen element. With `position=\"top\"`, the toast will sit below the chosen element.\nWith `position=\"middle\"`, the value of `positionAnchor` is ignored.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "HTMLElement | string | undefined"
              }
            },
            {
              "name": "swipe-gesture",
              "description": "If set to 'vertical', the Toast can be dismissed with\na swipe gesture. The swipe direction is determined by\nthe value of the `position` property:\n`top`: The Toast can be swiped up to dismiss.\n`bottom`: The Toast can be swiped down to dismiss.\n`middle`: The Toast can be swiped up or down to dismiss.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"vertical\" | undefined"
              }
            },
            {
              "name": "translucent",
              "description": "If `true`, the toast will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "trigger",
              "description": "An ID corresponding to the trigger element that\ncauses the toast to open when clicked.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            }
          ],
          "slots": [],
          "events": [
            {
              "name": "didDismiss",
              "description": "Emitted after the toast has dismissed.\nShorthand for ionToastDidDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "didPresent",
              "description": "Emitted after the toast has presented.\nShorthand for ionToastWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onDidDismiss",
              "description": "Emitted after the toast has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onDidPresent",
              "description": "Emitted after the toast has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "onWillDismiss",
              "description": "Emitted before the toast has dismissed.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "onWillPresent",
              "description": "Emitted before the toast has presented.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "willDismiss",
              "description": "Emitted before the toast has dismissed.\nShorthand for ionToastWillDismiss.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "OverlayEventDetail<any>"
                }
              ]
            },
            {
              "name": "willPresent",
              "description": "Emitted before the toast has presented.\nShorthand for ionToastWillPresent.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonToggle",
          "doc-url": "https://ionicframework.com/docs/api/toggle",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/toggle/toggle.d.ts",
            "symbol": "Toggle"
          },
          "attributes": [
            {
              "name": "alignment",
              "description": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.\nSetting this property will change the toggle `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"center\" | \"start\" | undefined"
              }
            },
            {
              "name": "checked",
              "description": "If `true`, the toggle is selected.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "disabled",
              "description": "If `true`, the user cannot interact with the toggle.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "enable-on-off-labels",
              "description": "Enables the on/off accessibility switch labels within the toggle.",
              "required": false,
              "default": "config.get('toggleOnOffLabels')",
              "value": {
                "kind": "expression",
                "type": "boolean | undefined"
              }
            },
            {
              "name": "error-text",
              "description": "Text that is placed under the toggle label and displayed when an error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "helper-text",
              "description": "Text that is placed under the toggle label and displayed when no error is detected.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "string | undefined"
              }
            },
            {
              "name": "justify",
              "description": "How to pack the label and toggle within a line.\n`\"start\"`: The label and toggle will appear on the left in LTR and\non the right in RTL.\n`\"end\"`: The label and toggle will appear on the right in LTR and\non the left in RTL.\n`\"space-between\"`: The label and toggle will appear on opposite\nends of the line with space between the two elements.\nSetting this property will change the toggle `display` to `block`.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"space-between\" | \"start\" | undefined"
              }
            },
            {
              "name": "label-placement",
              "description": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the toggle in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the toggle in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the toggle regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
              "required": false,
              "default": "'start'",
              "value": {
                "kind": "expression",
                "type": "\"end\" | \"fixed\" | \"stacked\" | \"start\""
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            },
            {
              "name": "name",
              "description": "The name of the control, which is submitted with the form data.",
              "required": false,
              "default": "this.inputId",
              "value": {
                "kind": "expression",
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid.",
              "required": false,
              "default": "false",
              "value": {
                "kind": "expression",
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "The value of the toggle does not mean if it's checked or not, use the `checked`\nproperty for that.\n\nThe value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\nit's only used when the toggle participates in a native `<form>`.",
              "required": false,
              "default": "'on'",
              "value": {
                "kind": "expression",
                "type": "null | string | undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "The label text to associate with the toggle. Use the \"labelPlacement\" property to control where the label is placed relative to the toggle."
            }
          ],
          "events": [
            {
              "name": "ionBlur",
              "description": "Emitted when the toggle loses focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            },
            {
              "name": "ionChange",
              "description": "Emitted when the user switches the toggle on or off.\n\nThis event will not emit when programmatically setting the `checked` property.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "ToggleChangeEventDetail<any>"
                }
              ]
            },
            {
              "name": "ionFocus",
              "description": "Emitted when the toggle has focus.",
              "arguments": [
                {
                  "name": "detail",
                  "type": "void"
                }
              ]
            }
          ]
        },
        {
          "name": "IonToolbar",
          "doc-url": "https://ionicframework.com/docs/api/toolbar",
          "description": "",
          "source": {
            "module": "@ionic/core/src/components/toolbar/toolbar.d.ts",
            "symbol": "Toolbar"
          },
          "attributes": [
            {
              "name": "color",
              "description": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics).",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined"
              }
            },
            {
              "name": "mode",
              "description": "The mode determines which platform styles to use.",
              "required": false,
              "value": {
                "kind": "expression",
                "type": "\"ios\" | \"md\""
              }
            }
          ],
          "slots": [
            {
              "name": "default",
              "description": "Content is placed between the named slots if provided without a slot."
            },
            {
              "name": "end",
              "description": "Content is placed to the right of the toolbar text in LTR, and to the left in RTL."
            },
            {
              "name": "primary",
              "description": "Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode."
            },
            {
              "name": "secondary",
              "description": "Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode."
            },
            {
              "name": "start",
              "description": "Content is placed to the left of the toolbar text in LTR, and to the right in RTL."
            }
          ],
          "events": []
        }
      ]
    }
  }
}