{
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
  "name": "@nasa-terra/components",
  "version": "0.0.173",
  "description-markup": "markdown",
  "contributions": {
    "html": {
      "elements": [
        {
          "name": "terra-accordion",
          "description": "A collapsible content panel for showing and hiding content.\n---\n\n\n### **Events:**\n - **terra-accordion-toggle** - emitted when the accordion opens or closes\n\n### **Slots:**\n - _default_ - The default slot for accordion content.\n- **summary** - The summary/header for the accordion (optional, overrides summary property)",
          "doc-url": "",
          "attributes": [
            {
              "name": "summary",
              "description": "The summary/header for the accordion. Use the property for simple text, or the slot for custom content.",
              "value": { "type": "string" }
            },
            {
              "name": "open",
              "description": "Whether the accordion is open or not. This property is reflected as an attribute and can be controlled programmatically or by user interaction.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "showArrow",
              "value": { "type": "boolean", "default": "true" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The default slot for accordion content."
            },
            {
              "name": "summary",
              "description": "The summary/header for the accordion (optional, overrides summary property)"
            }
          ],
          "events": [
            {
              "name": "terra-accordion-toggle",
              "description": "emitted when the accordion opens or closes"
            }
          ],
          "js": {
            "properties": [
              {
                "name": "summary",
                "description": "The summary/header for the accordion. Use the property for simple text, or the slot for custom content.",
                "type": "string"
              },
              {
                "name": "open",
                "description": "Whether the accordion is open or not. This property is reflected as an attribute and can be controlled programmatically or by user interaction.",
                "type": "boolean"
              },
              { "name": "showArrow", "type": "boolean" }
            ],
            "events": [
              {
                "name": "terra-accordion-toggle",
                "description": "emitted when the accordion opens or closes"
              }
            ]
          }
        },
        {
          "name": "terra-alert",
          "description": "Alerts are used to display important messages inline or as toast notifications.\n---\n\n\n### **Events:**\n - **terra-show** - Emitted when the alert opens.\n- **terra-after-show** - Emitted after the alert opens and all animations are complete.\n- **terra-hide** - Emitted when the alert closes.\n- **terra-after-hide** - Emitted after the alert closes and all animations are complete.\n\n### **Methods:**\n - **show()** - Shows the alert.\n- **hide()** - Hides the alert\n- **toast()** - Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\ndismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\ncalling this method again. The returned promise will resolve after the alert is hidden.\n\n### **Slots:**\n - _default_ - The alert's main content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The container that wraps the optional icon.\n- **message** - The container that wraps the alert's main content.",
          "doc-url": "",
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the alert's open state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "closable",
              "description": "Enables a close button that allows the user to dismiss the alert.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "variant",
              "description": "The alert's theme variant.",
              "value": {
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'danger'",
                "default": "'primary'"
              }
            },
            {
              "name": "appearance",
              "description": "The alert's appearance style. \"filled\" uses a colored background with white text (HDS default).\n\"white\" uses a white background with a colored top border and dark text.",
              "value": { "type": "'filled' | 'white'", "default": "'filled'" }
            },
            {
              "name": "duration",
              "description": "The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\nthe alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\nthe alert will not close on its own.",
              "value": { "type": "string", "default": "Infinity" }
            },
            {
              "name": "countdown",
              "description": "Enables a countdown that indicates the remaining time the alert will be displayed.\nTypically used to indicate the remaining time before a whole app refresh.",
              "value": { "type": "'rtl' | 'ltr' | undefined" }
            }
          ],
          "slots": [{ "name": "", "description": "The alert's main content." }],
          "events": [
            {
              "name": "terra-show",
              "description": "Emitted when the alert opens."
            },
            {
              "name": "terra-after-show",
              "description": "Emitted after the alert opens and all animations are complete."
            },
            {
              "name": "terra-hide",
              "description": "Emitted when the alert closes."
            },
            {
              "name": "terra-after-hide",
              "description": "Emitted after the alert closes and all animations are complete."
            }
          ],
          "js": {
            "properties": [
              { "name": "base", "type": "HTMLElement" },
              { "name": "countdownElement", "type": "HTMLElement" },
              {
                "name": "open",
                "description": "Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the alert's open state.",
                "type": "boolean"
              },
              {
                "name": "closable",
                "description": "Enables a close button that allows the user to dismiss the alert.",
                "type": "boolean"
              },
              {
                "name": "variant",
                "description": "The alert's theme variant.",
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'danger'"
              },
              {
                "name": "appearance",
                "description": "The alert's appearance style. \"filled\" uses a colored background with white text (HDS default).\n\"white\" uses a white background with a colored top border and dark text.",
                "type": "'filled' | 'white'"
              },
              {
                "name": "duration",
                "description": "The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\nthe alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\nthe alert will not close on its own."
              },
              {
                "name": "countdown",
                "description": "Enables a countdown that indicates the remaining time the alert will be displayed.\nTypically used to indicate the remaining time before a whole app refresh.",
                "type": "'rtl' | 'ltr' | undefined"
              }
            ],
            "events": [
              {
                "name": "terra-show",
                "description": "Emitted when the alert opens."
              },
              {
                "name": "terra-after-show",
                "description": "Emitted after the alert opens and all animations are complete."
              },
              {
                "name": "terra-hide",
                "description": "Emitted when the alert closes."
              },
              {
                "name": "terra-after-hide",
                "description": "Emitted after the alert closes and all animations are complete."
              }
            ]
          }
        },
        {
          "name": "terra-avatar",
          "description": "Avatars are used to represent a person or object.\n---\n\n\n### **Events:**\n - **terra-error** - The image could not be loaded. This may because of an invalid URL, a temporary network condition, or some unknown cause.\n\n### **Slots:**\n - **icon** - The default icon to use when no image or initials are present. Works best with `<terra-icon>`.\n\n### **CSS Properties:**\n - **--size** - The size of the avatar. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The container that wraps the avatar's icon.\n- **initials** - The container that wraps the avatar's initials.\n- **image** - The avatar image. Only shown when the `image` attribute is set.",
          "doc-url": "",
          "attributes": [
            {
              "name": "image",
              "description": "The image source to use for the avatar.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "label",
              "description": "A label to use to describe the avatar to assistive devices.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "initials",
              "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "loading",
              "description": "Indicates how the browser should load the image.",
              "value": { "type": "'eager' | 'lazy'", "default": "'eager'" }
            },
            {
              "name": "shape",
              "description": "The shape of the avatar.",
              "value": {
                "type": "'circle' | 'square' | 'rounded'",
                "default": "'circle'"
              }
            }
          ],
          "slots": [
            {
              "name": "icon",
              "description": "The default icon to use when no image or initials are present. Works best with `<terra-icon>`."
            }
          ],
          "events": [
            {
              "name": "terra-error",
              "description": "The image could not be loaded. This may because of an invalid URL, a temporary network condition, or some unknown cause."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "image",
                "description": "The image source to use for the avatar.",
                "type": "string"
              },
              {
                "name": "label",
                "description": "A label to use to describe the avatar to assistive devices.",
                "type": "string"
              },
              {
                "name": "initials",
                "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
                "type": "string"
              },
              {
                "name": "loading",
                "description": "Indicates how the browser should load the image.",
                "type": "'eager' | 'lazy'"
              },
              {
                "name": "shape",
                "description": "The shape of the avatar.",
                "type": "'circle' | 'square' | 'rounded'"
              }
            ],
            "events": [
              {
                "name": "terra-error",
                "description": "The image could not be loaded. This may because of an invalid URL, a temporary network condition, or some unknown cause."
              }
            ]
          }
        },
        {
          "name": "terra-badge",
          "description": "Badges are used to draw attention and display statuses or counts.\n---\n\n\n### **Slots:**\n - _default_ - The badge's content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The badge's theme variant.",
              "value": {
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'info'\n        | 'danger'",
                "default": "'primary'"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style badge with rounded edges.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "pulse",
              "description": "Makes the badge pulsate to draw attention.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The badge's content." }],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "variant",
                "description": "The badge's theme variant.",
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'info'\n        | 'danger'"
              },
              {
                "name": "pill",
                "description": "Draws a pill-style badge with rounded edges.",
                "type": "boolean"
              },
              {
                "name": "pulse",
                "description": "Makes the badge pulsate to draw attention.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-breadcrumb",
          "description": "A single breadcrumb item used inside `terra-breadcrumbs`.\n---\n\n\n### **Slots:**\n - _default_ - The default slot.\n\n### **CSS Properties:**\n - **--terra-breadcrumb-color** - The text color of inactive breadcrumbs. _(default: undefined)_\n- **--terra-breadcrumb-color-current** - The text color of the current (last) breadcrumb. _(default: undefined)_\n- **--terra-breadcrumb-color-visited** - The text color of visited breadcrumb links. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **link** - The breadcrumb link element.\n- **label** - The breadcrumb label element when not a link.",
          "doc-url": "",
          "attributes": [
            {
              "name": "href",
              "description": "The URL the breadcrumb points to. When omitted, the breadcrumb is rendered as plain text.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "current",
              "description": "Indicates that this breadcrumb represents the current page.\nWhen set, `aria-current=\"page\"` will be applied to the underlying element.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The default slot." }],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "href",
                "description": "The URL the breadcrumb points to. When omitted, the breadcrumb is rendered as plain text.",
                "type": "string | undefined"
              },
              {
                "name": "current",
                "description": "Indicates that this breadcrumb represents the current page.\nWhen set, `aria-current=\"page\"` will be applied to the underlying element.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-breadcrumbs",
          "description": "A collection of breadcrumb items that shows the current page's location in the site hierarchy.\n---\n\n\n### **Slots:**\n - _default_ - The breadcrumb items. Typically `<terra-breadcrumb>` elements.\n\n### **CSS Properties:**\n - **--terra-breadcrumbs-gap** - The space between breadcrumbs. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The navigation container.",
          "doc-url": "",
          "attributes": [
            {
              "name": "aria-label",
              "description": "Accessible label for the breadcrumb navigation.",
              "value": { "type": "string", "default": "'Breadcrumb'" }
            },
            {
              "name": "theme",
              "description": "Color theme of the breadcrumbs, matching the Horizon Design System.",
              "value": { "type": "'light' | 'dark'", "default": "'light'" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The breadcrumb items. Typically `<terra-breadcrumb>` elements."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "ariaLabel",
                "description": "Accessible label for the breadcrumb navigation.",
                "type": "string"
              },
              {
                "name": "theme",
                "description": "Color theme of the breadcrumbs, matching the Horizon Design System.",
                "type": "'light' | 'dark'"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-browse-variables",
          "description": "Browse through the NASA CMR or Giovanni catalogs.\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "catalog",
              "description": "Allows the user to switch the catalog between different providers\nTODO: add support for CMR catalog and make it the default",
              "value": { "type": "'giovanni'", "default": "'giovanni'" }
            },
            {
              "name": "selected-variable-entry-ids",
              "value": { "type": "string | undefined" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "catalog",
                "description": "Allows the user to switch the catalog between different providers\nTODO: add support for CMR catalog and make it the default",
                "type": "'giovanni'"
              },
              {
                "name": "selectedVariableEntryIds",
                "type": "string | undefined"
              },
              { "name": "searchQuery", "type": "string" },
              { "name": "selectedFacets", "type": "SelectedFacets" },
              { "name": "selectedVariables", "type": "Variable[]" },
              { "name": "showVariablesBrowse", "type": "boolean" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-button",
          "description": "Buttons represent actions that are available to the user.\n---\n\n\n### **Events:**\n - **terra-blur** - emitted when the button is blurred\n- **terra-focus** - emitted when the button is focused\n\n### **Methods:**\n - **click()** - Simulates a click on the button.\n- **focus(options: _FocusOptions_)** - Sets focus on the button.\n- **blur()** - Removes focus from the button.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<terra-icon>` element.\n- **spinner** - The spinner that shows when the button is in the loading state.",
          "doc-url": "",
          "attributes": [
            { "name": "title", "value": { "type": "string", "default": "''" } },
            {
              "name": "variant",
              "description": "The button's theme variant.",
              "value": {
                "type": "| 'default'\n        | 'primary'\n        | 'success'\n        | 'warning'\n        | 'danger'\n        | 'text'\n        | 'pagelink'",
                "default": "'primary'"
              }
            },
            {
              "name": "size",
              "description": "The button's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "caret",
              "description": "Draws the button with a caret. Used to indicate that the button triggers a dropdown menu or similar behavior.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "shape",
              "description": "The button's shape. Used to control the radius edge shape when button is not in a terra-button-group.",
              "value": { "type": "'square' | 'square-left' | 'square-right'" }
            },
            {
              "name": "disabled",
              "description": "Disables the button.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "loading",
              "description": "Draws the button in a loading state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "outline",
              "description": "Draws an outlined button.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "circle",
              "description": "Draws a circular icon button. When this attribute is present, the button expects a single `<terra-icon>` in the\ndefault slot.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "type",
              "description": "The type of button. Note that the default value is `button` instead of `submit`, which is opposite of how native\n`<button>` elements behave. When the type is `submit`, the button will submit the surrounding form.",
              "value": {
                "type": "'button' | 'submit' | 'reset'",
                "default": "'button'"
              }
            },
            {
              "name": "name",
              "description": "The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.\nThis attribute is ignored when `href` is present.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "value",
              "description": "The value of the button, submitted as a pair with the button's name as part of the form data, but only when this\nbutton is the submitter. This attribute is ignored when `href` is present.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "href",
              "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "target",
              "description": "Tells the browser where to open the link. Only used when `href` is present.",
              "value": { "type": "'_blank' | '_parent' | '_self' | '_top'" }
            },
            {
              "name": "rel",
              "description": "When using `href`, this attribute will map to the underlying link's `rel` attribute. Unlike regular links, the\ndefault is `noreferrer noopener` to prevent security exploits. However, if you're using `target` to point to a\nspecific tab/window, this will prevent that from working correctly. You can remove or change the default value by\nsetting the attribute to an empty string or a value of your choice, respectively.",
              "value": { "type": "string", "default": "'noreferrer noopener'" }
            },
            {
              "name": "download",
              "description": "Tells the browser to download the linked file as this filename. Only used when `href` is present.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "form",
              "description": "The \"form owner\" to associate the button with. If omitted, the closest containing form will be used instead. The\nvalue of this attribute must be an id of a form in the same document or shadow root as the button.",
              "value": { "type": "string" }
            },
            {
              "name": "formaction",
              "description": "Used to override the form owner's `action` attribute.",
              "value": { "type": "string" }
            },
            {
              "name": "formenctype",
              "description": "Used to override the form owner's `enctype` attribute.",
              "value": {
                "type": "| 'application/x-www-form-urlencoded'\n        | 'multipart/form-data'\n        | 'text/plain'"
              }
            },
            {
              "name": "formmethod",
              "description": "Used to override the form owner's `method` attribute.",
              "value": { "type": "'post' | 'get'" }
            },
            {
              "name": "formnovalidate",
              "description": "Used to override the form owner's `novalidate` attribute.",
              "value": { "type": "boolean" }
            },
            {
              "name": "formtarget",
              "description": "Used to override the form owner's `target` attribute.",
              "value": {
                "type": "| '_self'\n        | '_blank'\n        | '_parent'\n        | '_top'\n        | string"
              }
            },
            {
              "name": "for-dialog",
              "description": "Used to connect this button to a dqialog on the page. Clicking the button will toggle the dialog's visiblity",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "role",
              "description": "The ARIA role for the button. Defaults to 'button'.",
              "value": { "type": "string | null", "default": "'button'" }
            }
          ],
          "slots": [
            { "name": "", "description": "The button's label." },
            {
              "name": "prefix",
              "description": "A presentational prefix icon or similar element."
            },
            {
              "name": "suffix",
              "description": "A presentational suffix icon or similar element."
            }
          ],
          "events": [
            {
              "name": "terra-blur",
              "description": "emitted when the button is blurred"
            },
            {
              "name": "terra-focus",
              "description": "emitted when the button is focused"
            }
          ],
          "js": {
            "properties": [
              {
                "name": "button",
                "type": "HTMLButtonElement | HTMLLinkElement"
              },
              { "name": "invalid", "type": "boolean" },
              { "name": "title", "type": "string" },
              {
                "name": "variant",
                "description": "The button's theme variant.",
                "type": "| 'default'\n        | 'primary'\n        | 'success'\n        | 'warning'\n        | 'danger'\n        | 'text'\n        | 'pagelink'"
              },
              {
                "name": "size",
                "description": "The button's size.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "caret",
                "description": "Draws the button with a caret. Used to indicate that the button triggers a dropdown menu or similar behavior.",
                "type": "boolean"
              },
              {
                "name": "shape",
                "description": "The button's shape. Used to control the radius edge shape when button is not in a terra-button-group.",
                "type": "'square' | 'square-left' | 'square-right'"
              },
              {
                "name": "disabled",
                "description": "Disables the button.",
                "type": "boolean"
              },
              {
                "name": "loading",
                "description": "Draws the button in a loading state.",
                "type": "boolean"
              },
              {
                "name": "outline",
                "description": "Draws an outlined button.",
                "type": "boolean"
              },
              {
                "name": "circle",
                "description": "Draws a circular icon button. When this attribute is present, the button expects a single `<terra-icon>` in the\ndefault slot.",
                "type": "boolean"
              },
              {
                "name": "type",
                "description": "The type of button. Note that the default value is `button` instead of `submit`, which is opposite of how native\n`<button>` elements behave. When the type is `submit`, the button will submit the surrounding form.",
                "type": "'button' | 'submit' | 'reset'"
              },
              {
                "name": "name",
                "description": "The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.\nThis attribute is ignored when `href` is present.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The value of the button, submitted as a pair with the button's name as part of the form data, but only when this\nbutton is the submitter. This attribute is ignored when `href` is present.",
                "type": "string"
              },
              {
                "name": "href",
                "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
                "type": "string"
              },
              {
                "name": "target",
                "description": "Tells the browser where to open the link. Only used when `href` is present.",
                "type": "'_blank' | '_parent' | '_self' | '_top'"
              },
              {
                "name": "rel",
                "description": "When using `href`, this attribute will map to the underlying link's `rel` attribute. Unlike regular links, the\ndefault is `noreferrer noopener` to prevent security exploits. However, if you're using `target` to point to a\nspecific tab/window, this will prevent that from working correctly. You can remove or change the default value by\nsetting the attribute to an empty string or a value of your choice, respectively.",
                "type": "string"
              },
              {
                "name": "download",
                "description": "Tells the browser to download the linked file as this filename. Only used when `href` is present.",
                "type": "string | undefined"
              },
              {
                "name": "form",
                "description": "The \"form owner\" to associate the button with. If omitted, the closest containing form will be used instead. The\nvalue of this attribute must be an id of a form in the same document or shadow root as the button.",
                "type": "string"
              },
              {
                "name": "formAction",
                "description": "Used to override the form owner's `action` attribute.",
                "type": "string"
              },
              {
                "name": "formEnctype",
                "description": "Used to override the form owner's `enctype` attribute.",
                "type": "| 'application/x-www-form-urlencoded'\n        | 'multipart/form-data'\n        | 'text/plain'"
              },
              {
                "name": "formMethod",
                "description": "Used to override the form owner's `method` attribute.",
                "type": "'post' | 'get'"
              },
              {
                "name": "formNoValidate",
                "description": "Used to override the form owner's `novalidate` attribute.",
                "type": "boolean"
              },
              {
                "name": "formTarget",
                "description": "Used to override the form owner's `target` attribute.",
                "type": "| '_self'\n        | '_blank'\n        | '_parent'\n        | '_top'\n        | string"
              },
              {
                "name": "forDialog",
                "description": "Used to connect this button to a dqialog on the page. Clicking the button will toggle the dialog's visiblity",
                "type": "string | undefined"
              },
              {
                "name": "role",
                "description": "The ARIA role for the button. Defaults to 'button'.",
                "type": "string | null"
              },
              {
                "name": "expanded",
                "description": "if button is used to control another element on the page, such as an accordion or dialog, this state communicates whether the controlled element is expanded",
                "type": "boolean"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-blur",
                "description": "emitted when the button is blurred"
              },
              {
                "name": "terra-focus",
                "description": "emitted when the button is focused"
              }
            ]
          }
        },
        {
          "name": "terra-button-group",
          "description": "Button groups can be used to group related buttons into sections.\n---\n\n\n### **Slots:**\n - _default_ - One or more `<terra-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "One or more `<terra-button>` elements to display in the button group."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              { "name": "disableRole", "type": "boolean" },
              {
                "name": "label",
                "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
                "type": "string"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-caption",
          "description": "Captions are small text blocks that describe photos, provide additional context and information, and give credit to photographers and other content owners and creators.\n---\n\n\n### **Slots:**\n - _default_ - The caption content. Use a `<span class=\"credit\">` element for credits, which will be displayed with higher contrast.\n\n### **CSS Properties:**\n - **--terra-caption-font-family** - The font family for the caption. _(default: undefined)_\n- **--terra-caption-font-size** - The font size for the caption. _(default: undefined)_\n- **--terra-caption-font-weight** - The font weight for the caption. _(default: undefined)_\n- **--terra-caption-line-height** - The line height for the caption. _(default: undefined)_\n- **--terra-caption-color** - The text color for the caption. _(default: undefined)_\n- **--terra-caption-credit-color** - The text color for credits within the caption. _(default: undefined)_",
          "doc-url": "",
          "attributes": [],
          "slots": [
            {
              "name": "",
              "description": "The caption content. Use a `<span class=\"credit\">` element for credits, which will be displayed with higher contrast."
            }
          ],
          "events": [],
          "js": { "properties": [], "events": [] }
        },
        {
          "name": "terra-card",
          "description": "Cards can be used to group related subjects in a container.\n---\n\n\n### **Slots:**\n - _default_ - The card's main content.\n- **header** - An optional header for the card.\n- **footer** - An optional footer for the card.\n- **image** - An optional image to render at the start of the card.\n\n### **CSS Properties:**\n - **--border-color** - The card's border color, including borders that occur inside the card. _(default: undefined)_\n- **--border-radius** - The border radius for the card's edges. _(default: undefined)_\n- **--border-width** - The width of the card's borders. _(default: undefined)_\n- **--padding** - The padding to use for the card's sections. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **image** - The container that wraps the card's image.\n- **header** - The container that wraps the card's header.\n- **body** - The container that wraps the card's main content.\n- **footer** - The container that wraps the card's footer.",
          "doc-url": "",
          "attributes": [],
          "slots": [
            { "name": "", "description": "The card's main content." },
            {
              "name": "header",
              "description": "An optional header for the card."
            },
            {
              "name": "footer",
              "description": "An optional footer for the card."
            },
            {
              "name": "image",
              "description": "An optional image to render at the start of the card."
            }
          ],
          "events": [],
          "js": { "properties": [], "events": [] }
        },
        {
          "name": "terra-checkbox",
          "description": "Checkboxes are a form field used when there are multiple options to select from a list.\n---\n\n\n### **Events:**\n - **terra-blur** - Emitted when the checkbox loses focus.\n- **terra-change** - Emitted when the checked state changes.\n- **terra-focus** - Emitted when the checkbox gains focus.\n- **terra-input** - Emitted when the checkbox receives input.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the checkbox.\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox.\n- **blur()** - Removes focus from the checkbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The checkbox's label.\n- **help-text** - Text that describes how to use the checkbox. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--terra-checkbox-*** - All checkbox design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the checkbox's checked state.\n- **control--checked** - Matches the control part when the checkbox is checked.\n- **control--indeterminate** - Matches the control part when the checkbox is indeterminate.\n- **checked-icon** - The checked icon, an `<terra-icon>` element.\n- **indeterminate-icon** - The indeterminate icon, an `<terra-icon>` element.\n- **label** - The container that wraps the checkbox's label.\n- **form-control-help-text** - The help text's wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "title", "value": { "type": "string", "default": "''" } },
            {
              "name": "name",
              "description": "The name of the checkbox, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "value",
              "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
              "value": { "type": "string" }
            },
            {
              "name": "size",
              "description": "The checkbox's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the checkbox.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "checked",
              "description": "Draws the checkbox in a checked state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "indeterminate",
              "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "required",
              "description": "Makes the checkbox a required field.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "help-text",
              "description": "The checkbox's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            { "name": "", "description": "The checkbox's label." },
            {
              "name": "help-text",
              "description": "Text that describes how to use the checkbox. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-blur",
              "description": "Emitted when the checkbox loses focus."
            },
            {
              "name": "terra-change",
              "description": "Emitted when the checked state changes."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the checkbox gains focus."
            },
            {
              "name": "terra-input",
              "description": "Emitted when the checkbox receives input."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "input", "type": "HTMLInputElement" },
              { "name": "title", "type": "string" },
              {
                "name": "name",
                "description": "The name of the checkbox, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "size",
                "description": "The checkbox's size.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "disabled",
                "description": "Disables the checkbox.",
                "type": "boolean"
              },
              {
                "name": "checked",
                "description": "Draws the checkbox in a checked state.",
                "type": "boolean"
              },
              {
                "name": "indeterminate",
                "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
                "type": "boolean"
              },
              {
                "name": "defaultChecked",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "boolean"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "required",
                "description": "Makes the checkbox a required field.",
                "type": "boolean"
              },
              {
                "name": "helpText",
                "description": "The checkbox's help text. If you need to display HTML, use the `help-text` slot instead.",
                "type": "string"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-blur",
                "description": "Emitted when the checkbox loses focus."
              },
              {
                "name": "terra-change",
                "description": "Emitted when the checked state changes."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the checkbox gains focus."
              },
              {
                "name": "terra-input",
                "description": "Emitted when the checkbox receives input."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-chip",
          "description": "Used for contacts and tags\n---\n\n\n### **Events:**\n - **terra-remove** - emitted when the chip's close button is clicked\n\n### **Slots:**\n - _default_ - The chip's label.\n\n### **CSS Properties:**\n - **--terra-chip-background-color** - The background color of the chip. _(default: undefined)_\n- **--terra-chip-color** - The text color of the chip. _(default: undefined)_",
          "doc-url": "",
          "attributes": [
            {
              "name": "size",
              "description": "The size of the chip.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "closeable",
              "description": "When true, the chip will have a close button that can be used to remove the chip.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "stack",
              "description": "When true, chips will stack vertically instead of sitting side by side.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The chip's label." }],
          "events": [
            {
              "name": "terra-remove",
              "description": "emitted when the chip's close button is clicked"
            }
          ],
          "js": {
            "properties": [
              {
                "name": "size",
                "description": "The size of the chip.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "closeable",
                "description": "When true, the chip will have a close button that can be used to remove the chip.",
                "type": "boolean"
              },
              {
                "name": "stack",
                "description": "When true, chips will stack vertically instead of sitting side by side.",
                "type": "boolean"
              }
            ],
            "events": [
              {
                "name": "terra-remove",
                "description": "emitted when the chip's close button is clicked"
              }
            ]
          }
        },
        {
          "name": "terra-combobox",
          "description": "Fuzzy-search for combobox with list autocomplete.\n---\n\n\n### **CSS Properties:**\n - **--host-height** - The height of the host element. _(default: undefined)_\n- **--help-height** - The height of the search help element. _(default: undefined)_\n- **--label-height** - The height of the input's label element. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - A `search` element, the component's base.\n- **combobox** - An `input` element used for searching.\n- **button** - A `button` used for toggling the listbox's visibility.\n- **listbox** - A `ul` that holds the clickable options.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "Label the combobox with this.",
              "value": { "type": "string", "default": "'Search for Items'" }
            },
            {
              "name": "name",
              "description": "name the combobox with this.",
              "value": { "type": "string", "default": "'Item'" }
            },
            {
              "name": "placeholder",
              "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
              "value": { "type": "string" }
            },
            {
              "name": "hide-help",
              "description": "Hide the combobox's help text.\nWhen hidden, not rendered at all.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hide-label",
              "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "status",
              "description": "status of the content",
              "value": {
                "type": "'INITIAL' | 'PENDING' | 'COMPLETE' | 'ERROR'",
                "default": "'INITIAL'"
              }
            },
            {
              "name": "content",
              "description": "content or data of the combobox. This could be of type string | GroupedListItem[] | ListItem[] | undefined",
              "value": {
                "type": "Content",
                "default": "{\n        type: SearchableListType.GroupedListItem,\n        data: [],\n    }"
              }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "label",
                "description": "Label the combobox with this.",
                "type": "string"
              },
              {
                "name": "name",
                "description": "name the combobox with this.",
                "type": "string"
              },
              {
                "name": "placeholder",
                "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
                "type": "string"
              },
              {
                "name": "hideHelp",
                "description": "Hide the combobox's help text.\nWhen hidden, not rendered at all.",
                "type": "boolean"
              },
              {
                "name": "hideLabel",
                "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
                "type": "boolean"
              },
              {
                "name": "status",
                "description": "status of the content",
                "type": "'INITIAL' | 'PENDING' | 'COMPLETE' | 'ERROR'"
              },
              {
                "name": "content",
                "description": "content or data of the combobox. This could be of type string | GroupedListItem[] | ListItem[] | undefined",
                "type": "Content"
              },
              { "name": "isExpanded", "type": "boolean" },
              { "name": "query" },
              {
                "name": "searchResults",
                "type": "GroupedListItem[] | ListItem[]"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-data-access",
          "description": "Discover and export collection granules with search, temporal, spatial, and cloud cover filters.\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "short-name",
              "description": "Collection short name used to build the Collection Entry ID.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "version",
              "description": "Collection version used to build the Collection Entry ID.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "showPanelClose",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "footer-slot",
              "description": "When true, the footer will be rendered with slot=\"footer\" for use in a dialog.",
              "value": { "type": "boolean | undefined" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "shortName", "type": "string | undefined" },
              { "name": "version", "type": "string | undefined" },
              { "name": "showPanelClose", "type": "boolean" },
              {
                "name": "footerSlot",
                "description": "When true, the footer will be rendered with slot=\"footer\" for use in a dialog.",
                "type": "boolean | undefined"
              },
              { "name": "limit", "type": "number" },
              { "name": "page", "type": "number" },
              { "name": "search", "type": "string" },
              { "name": "startDate", "type": "string" },
              { "name": "endDate", "type": "string" },
              { "name": "location", "type": "MapEventDetail | null" },
              {
                "name": "cloudCover",
                "type": "{ min?: number; max?: number }"
              },
              { "name": "cloudCoverPickerOpen", "type": "boolean" },
              { "name": "datePickerRef" },
              { "name": "spatialPickerRef" },
              { "name": "cloudCoverSliderRef" },
              { "name": "gridRef" },
              { "name": "dateDropdownRef" },
              { "name": "spatialDropdownRef" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-data-grid",
          "description": "A flexible data grid component built on AG Grid with support for various data sources and row models.\n---\n\n\n### **Events:**\n - **terra-grid-ready** - Emitted when the grid is initialized and ready.\n- **terra-selection-changed** - Emitted when row selection changes.\n- **terra-sort-changed** - Emitted when column sorting changes.\n- **terra-filter-changed** - Emitted when column filters change.\n- **terra-row-clicked** - Emitted when a row is clicked.\n- **terra-row-double-clicked** - Emitted when a row is double-clicked.\n- **terra-cell-clicked** - Emitted when a cell is clicked.\n- **terra-cell-value-changed** - Emitted when a cell value is edited.\n\n### **Methods:**\n - **getGridApi(): _GridApi<T> | undefined_** - Get the AG Grid API instance.\nUseful for programmatic control of the grid.\n- **refresh(): _void_** - Refresh the grid data.\nFor infinite scroll, purges cache and refetches.\n- **exportToCsv(options: _CsvExportParams_): _void_** - Export grid data to CSV.\n- **exportToExcel(options: _ExcelExportParams_): _void_** - Export grid data to Excel.\nNote: Requires AG Grid Enterprise license.\n\n### **CSS Properties:**\n - **--terra-data-grid-height** - The height of the grid (default: 400px). _(default: undefined)_\n- **--terra-data-grid-border-color** - Border color using HDS tokens. _(default: undefined)_\n- **--terra-data-grid-header-background** - Header background color. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **grid** - The AG Grid container element.\n- **loading** - The loading overlay container.",
          "doc-url": "",
          "attributes": [
            {
              "name": "gridOptions",
              "description": "AG Grid options configuration object.\nThis is the primary way to configure the grid.\nMust be set via JavaScript (not as an attribute).",
              "value": { "type": "GridOptions<T> | undefined" }
            },
            {
              "name": "columnDefs",
              "description": "Column definitions for the grid.\nAlternative to setting columnDefs in gridOptions.\nMust be set via JavaScript (not as an attribute).",
              "value": { "type": "ColDef<T>[] | undefined" }
            },
            {
              "name": "rowData",
              "description": "Row data for client-side row model.\nMust be set via JavaScript (not as an attribute).",
              "value": { "type": "T[] | undefined" }
            },
            {
              "name": "datasource",
              "description": "Datasource for infinite scroll row model.\nMust be set via JavaScript (not as an attribute).",
              "value": { "type": "IDatasource | undefined" }
            },
            {
              "name": "height",
              "description": "Height of the grid in pixels or CSS units.\nDefault: 400px",
              "value": { "type": "string", "default": "'400px'" }
            },
            {
              "name": "row-model-type",
              "description": "Row model type: 'clientSide', 'infinite', or 'serverSide'.\nDefault: 'clientSide'",
              "value": {
                "type": "'clientSide' | 'infinite' | 'serverSide'",
                "default": "'clientSide'"
              }
            },
            {
              "name": "theme",
              "description": "Theme for AG Grid: 'alpine', 'alpine-dark', 'balham', 'balham-dark', 'material', 'quartz'.\nDefault: 'alpine'",
              "value": { "type": "string", "default": "'alpine'" }
            },
            {
              "name": "show-loading",
              "description": "Whether to show loading overlay when data is being fetched.\nDefault: false",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "events": [
            {
              "name": "terra-grid-ready",
              "description": "Emitted when the grid is initialized and ready."
            },
            {
              "name": "terra-selection-changed",
              "description": "Emitted when row selection changes."
            },
            {
              "name": "terra-sort-changed",
              "description": "Emitted when column sorting changes."
            },
            {
              "name": "terra-filter-changed",
              "description": "Emitted when column filters change."
            },
            {
              "name": "terra-row-clicked",
              "description": "Emitted when a row is clicked."
            },
            {
              "name": "terra-row-double-clicked",
              "description": "Emitted when a row is double-clicked."
            },
            {
              "name": "terra-cell-clicked",
              "description": "Emitted when a cell is clicked."
            },
            {
              "name": "terra-cell-value-changed",
              "description": "Emitted when a cell value is edited."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "gridOptions",
                "description": "AG Grid options configuration object.\nThis is the primary way to configure the grid.\nMust be set via JavaScript (not as an attribute).",
                "type": "GridOptions<T> | undefined"
              },
              {
                "name": "columnDefs",
                "description": "Column definitions for the grid.\nAlternative to setting columnDefs in gridOptions.\nMust be set via JavaScript (not as an attribute).",
                "type": "ColDef<T>[] | undefined"
              },
              {
                "name": "rowData",
                "description": "Row data for client-side row model.\nMust be set via JavaScript (not as an attribute).",
                "type": "T[] | undefined"
              },
              {
                "name": "datasource",
                "description": "Datasource for infinite scroll row model.\nMust be set via JavaScript (not as an attribute).",
                "type": "IDatasource | undefined"
              },
              {
                "name": "height",
                "description": "Height of the grid in pixels or CSS units.\nDefault: 400px",
                "type": "string"
              },
              {
                "name": "rowModelType",
                "description": "Row model type: 'clientSide', 'infinite', or 'serverSide'.\nDefault: 'clientSide'",
                "type": "'clientSide' | 'infinite' | 'serverSide'"
              },
              {
                "name": "theme",
                "description": "Theme for AG Grid: 'alpine', 'alpine-dark', 'balham', 'balham-dark', 'material', 'quartz'.\nDefault: 'alpine'",
                "type": "string"
              },
              {
                "name": "showLoading",
                "description": "Whether to show loading overlay when data is being fetched.\nDefault: false",
                "type": "boolean"
              },
              { "name": "isLoading", "type": "boolean" }
            ],
            "events": [
              {
                "name": "terra-grid-ready",
                "description": "Emitted when the grid is initialized and ready."
              },
              {
                "name": "terra-selection-changed",
                "description": "Emitted when row selection changes."
              },
              {
                "name": "terra-sort-changed",
                "description": "Emitted when column sorting changes."
              },
              {
                "name": "terra-filter-changed",
                "description": "Emitted when column filters change."
              },
              {
                "name": "terra-row-clicked",
                "description": "Emitted when a row is clicked."
              },
              {
                "name": "terra-row-double-clicked",
                "description": "Emitted when a row is double-clicked."
              },
              {
                "name": "terra-cell-clicked",
                "description": "Emitted when a cell is clicked."
              },
              {
                "name": "terra-cell-value-changed",
                "description": "Emitted when a cell value is edited."
              }
            ]
          }
        },
        {
          "name": "terra-data-rods",
          "description": "\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "variable-entry-id",
              "description": "a variable entry ID (ex: GPM_3IMERGHH_06_precipitationCal)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "collection",
              "description": "a collection entry id (ex: GPM_3IMERGHH_06)\nonly required if you don't include a variableEntryId",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "variable",
              "description": "a variable short name to plot (ex: precipitationCal)\nonly required if you don't include a variableEntryId",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "start-date",
              "description": "The start date for the time series plot. (ex: 2021-01-01)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "end-date",
              "description": "The end date for the time series plot. (ex: 2021-01-01)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "location",
              "description": "The point location in \"lat,lon\" format.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "bearer-token",
              "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
              "value": { "type": "string" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "variableEntryId",
                "description": "a variable entry ID (ex: GPM_3IMERGHH_06_precipitationCal)",
                "type": "string | undefined"
              },
              {
                "name": "collection",
                "description": "a collection entry id (ex: GPM_3IMERGHH_06)\nonly required if you don't include a variableEntryId",
                "type": "string | undefined"
              },
              {
                "name": "variable",
                "description": "a variable short name to plot (ex: precipitationCal)\nonly required if you don't include a variableEntryId",
                "type": "string | undefined"
              },
              {
                "name": "startDate",
                "description": "The start date for the time series plot. (ex: 2021-01-01)",
                "type": "string | undefined"
              },
              {
                "name": "endDate",
                "description": "The end date for the time series plot. (ex: 2021-01-01)",
                "type": "string | undefined"
              },
              {
                "name": "location",
                "description": "The point location in \"lat,lon\" format.",
                "type": "string | undefined"
              },
              {
                "name": "bearerToken",
                "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
                "type": "string"
              },
              { "name": "catalogVariable", "type": "Variable" },
              { "name": "_fetchVariableTask" },
              { "name": "variableBoundingBox" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-data-subsetter",
          "description": "Easily allow users to select, subset, and download NASA Earth science data collections with spatial, temporal, and variable filters.\n---\n\n\n### **Events:**\n - **terra-subset-job-complete** - called when a subset job enters a final state (e.g. successful, failed, completed_with_errors)",
          "doc-url": "",
          "attributes": [
            {
              "name": "collection-entry-id",
              "value": { "type": "string | undefined" }
            },
            { "name": "short-name", "value": { "type": "string | undefined" } },
            { "name": "version", "value": { "type": "string | undefined" } },
            {
              "name": "show-collection-search",
              "value": { "type": "boolean | undefined", "default": "true" }
            },
            {
              "name": "show-history-panel",
              "value": { "type": "boolean | undefined", "default": "true" }
            },
            { "name": "job-id", "value": { "type": "string | undefined" } },
            {
              "name": "bearer-token",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "dialog",
              "description": "Optional dialog ID. When set, the subsetter will render inside a dialog with this ID.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "is-history-view",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "events": [
            {
              "name": "terra-subset-job-complete",
              "description": "called when a subset job enters a final state (e.g. successful, failed, completed_with_errors)"
            }
          ],
          "js": {
            "properties": [
              { "name": "collectionEntryId", "type": "string | undefined" },
              { "name": "shortName", "type": "string | undefined" },
              { "name": "version", "type": "string | undefined" },
              { "name": "showCollectionSearch", "type": "boolean | undefined" },
              { "name": "showHistoryPanel", "type": "boolean | undefined" },
              { "name": "jobId", "type": "string | undefined" },
              { "name": "bearerToken", "type": "string | undefined" },
              {
                "name": "dialog",
                "description": "Optional dialog ID. When set, the subsetter will render inside a dialog with this ID.",
                "type": "string | undefined"
              },
              { "name": "isHistoryView", "type": "boolean" },
              {
                "name": "collectionWithServices",
                "type": "CollectionWithAvailableServices | undefined"
              },
              {
                "name": "variableDetails",
                "type": "Array<VariableDetails> | undefined"
              },
              { "name": "selectedVariables", "type": "Variable[]" },
              { "name": "expandedVariableGroups", "type": "Set<string>" },
              { "name": "variableFilterText", "type": "string" },
              { "name": "touchedFields", "type": "Set<string>" },
              {
                "name": "spatialSelection",
                "type": "BoundingBox | LatLng | null"
              },
              {
                "name": "selectedDateRange",
                "type": "{ startDate: string | null; endDate: string | null }"
              },
              { "name": "selectedFormat", "type": "string" },
              { "name": "cancelingGetData", "type": "boolean" },
              {
                "name": "selectedTab",
                "type": "'web-links' | 'selected-params'"
              },
              { "name": "refineParameters", "type": "boolean" },
              {
                "name": "collectionSearchType",
                "type": "'collection' | 'variable' | 'all'"
              },
              { "name": "collectionSearchQuery", "type": "string | undefined" },
              { "name": "collectionSearchLoading", "type": "boolean" },
              {
                "name": "collectionSearchResults",
                "type": "Array<CmrSearchResult> | undefined"
              },
              { "name": "collectionLoading", "type": "boolean" },
              { "name": "collectionAccordionOpen", "type": "boolean" },
              { "name": "dataAccessMode", "type": "'original' | 'subset'" },
              { "name": "validationError", "type": "string | undefined" },
              { "name": "granuleMinDate", "type": "string | undefined" },
              { "name": "granuleMaxDate", "type": "string | undefined" },
              {
                "name": "giovanniConfiguredVariables",
                "type": "Set<string> | undefined"
              },
              { "name": "spatialPicker", "type": "TerraSpatialPicker" },
              { "name": "dialogElement", "type": "TerraDialog | undefined" },
              { "name": "controller" }
            ],
            "events": [
              {
                "name": "terra-subset-job-complete",
                "description": "called when a subset job enters a final state (e.g. successful, failed, completed_with_errors)"
              }
            ]
          }
        },
        {
          "name": "terra-data-subsetter-history",
          "description": "Shows a floating panel with a user's recent data subset requests and their status, with quick access to results and re-submission.\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "value": { "type": "string", "default": "'History'" }
            },
            { "name": "bearer-token", "value": { "type": "string" } },
            {
              "name": "always-show",
              "description": "if a user has never done a subset request, by default they don't see the history panel at all\nthis prop allows you to override that behavior and always show the history panel",
              "value": { "type": "boolean", "default": "true" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "label", "type": "string" },
              { "name": "bearerToken", "type": "string" },
              {
                "name": "alwaysShow",
                "description": "if a user has never done a subset request, by default they don't see the history panel at all\nthis prop allows you to override that behavior and always show the history panel",
                "type": "boolean"
              },
              { "name": "collapsed", "type": "boolean" },
              { "name": "selectedJob", "type": "string | undefined" },
              {
                "name": "selectedCollectionEntryId",
                "type": "string | undefined"
              },
              { "name": "hideCancelled", "type": "boolean" },
              { "name": "dialog", "type": "TerraDialog" },
              { "name": "subsetter", "type": "TerraDataSubsetter" },
              { "name": "_authController" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-date-picker",
          "description": "A date picker component that implements the Horizon Design System (HDS) Date Picker patterns. Supports single date selection or date range selection with calendar popup.\n---\n\n\n### **Events:**\n - **terra-date-range-change** - Emitted when a date selection is made or changed.\n\n### **Methods:**\n - **clear()** - Clears the selected date(s) and resets the date picker to its initial state.\n\n### **Slots:**\n - _default_ - The default slot.\n\n### **CSS Properties:**\n - **--terra-date-picker-*** - All date picker design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **input** - The date input element (terra-input).\n- **calendar** - The calendar dropdown.\n- **sidebar** - The preset ranges sidebar.",
          "doc-url": "",
          "attributes": [
            { "name": "id", "value": { "type": "string" } },
            {
              "name": "range",
              "value": { "type": "boolean", "default": "false" }
            },
            { "name": "min-date", "value": { "type": "string | undefined" } },
            { "name": "max-date", "value": { "type": "string | undefined" } },
            { "name": "start-date", "value": { "type": "string | undefined" } },
            { "name": "end-date", "value": { "type": "string | undefined" } },
            {
              "name": "hide-label",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "label",
              "value": { "type": "string", "default": "'Select Date'" }
            },
            {
              "name": "help-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "start-help-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "end-help-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "start-label",
              "value": { "type": "string | undefined" }
            },
            { "name": "end-label", "value": { "type": "string | undefined" } },
            {
              "name": "show-presets",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "presets",
              "value": { "type": "PresetRange[]", "default": "[]" }
            },
            {
              "name": "enable-time",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "display-format",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "inline",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "split-inputs",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "placeholder",
              "value": { "type": "string", "default": "'Select Date'" }
            },
            {
              "name": "startPlaceholder",
              "value": { "type": "string", "default": "'Start Date'" }
            },
            {
              "name": "endPlaceholder",
              "value": { "type": "string", "default": "'End Date'" }
            },
            {
              "name": "role",
              "description": "The ARIA role for the button. Defaults to 'group'.",
              "value": { "type": "string | null", "default": "'group'" }
            },
            {
              "name": "aria-label",
              "description": "The ARIA label for the date picker. Defaults to 'Date picker'.",
              "value": { "type": "string | null", "default": "'Date picker'" }
            },
            {
              "name": "hideClearAll",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "clearAllLabel",
              "value": { "type": "string", "default": "'Clear Dates'" }
            },
            {
              "name": "use-end-of-day",
              "value": { "type": "boolean", "default": "true" }
            }
          ],
          "slots": [{ "name": "", "description": "The default slot." }],
          "events": [
            {
              "name": "terra-date-range-change",
              "description": "Emitted when a date selection is made or changed."
            }
          ],
          "js": {
            "properties": [
              { "name": "id", "type": "string" },
              { "name": "range", "type": "boolean" },
              { "name": "minDate", "type": "string | undefined" },
              { "name": "maxDate", "type": "string | undefined" },
              { "name": "startDate", "type": "string | undefined" },
              { "name": "endDate", "type": "string | undefined" },
              { "name": "hideLabel", "type": "boolean" },
              { "name": "label", "type": "string" },
              { "name": "helpText", "type": "string" },
              { "name": "startHelpText", "type": "string" },
              { "name": "endHelpText", "type": "string" },
              { "name": "startLabel", "type": "string | undefined" },
              { "name": "endLabel", "type": "string | undefined" },
              { "name": "showPresets", "type": "boolean" },
              { "name": "presets", "type": "PresetRange[]" },
              { "name": "enableTime", "type": "boolean" },
              { "name": "displayFormat", "type": "string | undefined" },
              { "name": "inline", "type": "boolean" },
              { "name": "splitInputs", "type": "boolean" },
              { "name": "placeholder", "type": "string" },
              { "name": "startPlaceholder", "type": "string" },
              { "name": "endPlaceholder", "type": "string" },
              {
                "name": "role",
                "description": "The ARIA role for the button. Defaults to 'group'.",
                "type": "string | null"
              },
              {
                "name": "ariaLabel",
                "description": "The ARIA label for the date picker. Defaults to 'Date picker'.",
                "type": "string | null"
              },
              { "name": "hideClearAll", "type": "boolean" },
              { "name": "clearAllLabel", "type": "string" },
              { "name": "useEndOfDay", "type": "boolean" },
              { "name": "isOpen", "type": "boolean" },
              { "name": "leftMonth", "type": "Date" },
              { "name": "rightMonth", "type": "Date" },
              { "name": "selectedStart", "type": "Date | null" },
              { "name": "selectedEnd", "type": "Date | null" },
              { "name": "hoverDate", "type": "Date | null" },
              { "name": "isSelectingRange", "type": "boolean" },
              { "name": "showLeftMonthDropdown", "type": "boolean" },
              { "name": "showRightMonthDropdown", "type": "boolean" },
              { "name": "startHour", "type": "number" },
              { "name": "startMinute", "type": "number" },
              { "name": "startSecond", "type": "number" },
              { "name": "endHour", "type": "number" },
              { "name": "endMinute", "type": "number" },
              { "name": "endSecond", "type": "number" },
              { "name": "selectedDates", "type": "object" },
              { "name": "dropdown", "type": "HTMLElement" },
              { "name": "dropdownRef" }
            ],
            "events": [
              {
                "name": "terra-date-range-change",
                "description": "Emitted when a date selection is made or changed."
              }
            ]
          }
        },
        {
          "name": "terra-date-range-slider",
          "description": "Short summary of the component's intended use.\n---\n\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "time-scale",
              "value": { "type": "TimeScale", "default": "'daily'" }
            },
            { "name": "min-date", "value": { "type": "string" } },
            { "name": "max-date", "value": { "type": "string" } },
            {
              "name": "start-date",
              "description": "The start date for the time series plot.",
              "value": { "type": "string" }
            },
            { "name": "end-date", "value": { "type": "string" } },
            {
              "name": "disabled",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "has-pips",
              "value": { "type": "boolean", "default": "true" }
            }
          ],
          "slots": [
            { "name": "", "description": "The default slot." },
            { "name": "example", "description": "An example slot." }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "slider", "type": "HTMLElement & { noUiSlider: API }" },
              { "name": "timeScale", "type": "TimeScale" },
              { "name": "minDate", "type": "string" },
              { "name": "maxDate", "type": "string" },
              {
                "name": "startDate",
                "description": "The start date for the time series plot.",
                "type": "string"
              },
              { "name": "endDate", "type": "string" },
              { "name": "disabled", "type": "boolean" },
              { "name": "hasPips", "type": "boolean" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-dialog",
          "description": "Dialogs, sometimes called \"modals\", appear above the page and require the user's immediate attention.\n---\n\n\n### **Events:**\n - **terra-dialog-show** - Emitted when the dialog opens.\n- **terra-dialog-after-show** - Emitted after the dialog opens and all animations are complete.\n- **terra-dialog-hide** - Emitted when the dialog closes.\n- **terra-dialog-after-hide** - Emitted after the dialog closes and all animations are complete.\n- **terra-dialog-initial-focus** - Emitted when the dialog opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n- **terra-dialog-request-close** - Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss.\n\n### **Methods:**\n - **show()** - Shows the dialog.\n- **hide()** - Hides the dialog\n\n### **Slots:**\n - _default_ - The dialog's main content.\n- **label** - The dialog's label. Alternatively, you can use the `label` attribute.\n- **header-actions** - Optional actions to add to the header. Works best with `<terra-button>`.\n- **footer** - The dialog's footer, usually one or more buttons representing various options.\n\n### **CSS Properties:**\n - **--width** - The preferred width of the dialog. Defaults to `fit-content` to size based on content. Can be set to a fixed value like `31rem` if needed. Note that the dialog will shrink to accommodate smaller screens. _(default: undefined)_\n- **--header-spacing** - The amount of padding to use for the header. _(default: undefined)_\n- **--body-spacing** - The amount of padding to use for the body. _(default: undefined)_\n- **--footer-spacing** - The amount of padding to use for the footer. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **overlay** - The overlay that covers the screen behind the dialog.\n- **panel** - The dialog's panel (where the dialog and its content are rendered).\n- **header** - The dialog's header. This element wraps the title and header actions.\n- **header-actions** - Optional actions to add to the header. Works best with `<terra-button>`.\n- **title** - The dialog's title.\n- **close-button** - The close button, an `<terra-button>`.\n- **close-button__base** - The close button's exported `base` part.\n- **body** - The dialog's body.\n- **footer** - The dialog's footer.",
          "doc-url": "",
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the dialog is open. You can toggle this attribute to show and hide the dialog, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the dialog's open state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "label",
              "description": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "no-header",
              "description": "Disables the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the dialog.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            { "name": "", "description": "The dialog's main content." },
            {
              "name": "label",
              "description": "The dialog's label. Alternatively, you can use the `label` attribute."
            },
            {
              "name": "header-actions",
              "description": "Optional actions to add to the header. Works best with `<terra-button>`."
            },
            {
              "name": "footer",
              "description": "The dialog's footer, usually one or more buttons representing various options."
            }
          ],
          "events": [
            {
              "name": "terra-dialog-show",
              "description": "Emitted when the dialog opens."
            },
            {
              "name": "terra-dialog-after-show",
              "description": "Emitted after the dialog opens and all animations are complete."
            },
            {
              "name": "terra-dialog-hide",
              "description": "Emitted when the dialog closes."
            },
            {
              "name": "terra-dialog-after-hide",
              "description": "Emitted after the dialog closes and all animations are complete."
            },
            {
              "name": "terra-dialog-initial-focus",
              "description": "Emitted when the dialog opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input."
            },
            {
              "name": "terra-dialog-request-close",
              "type": "{ source: 'close-button' | 'keyboard' | 'overlay' }",
              "description": "Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "modal",
                "description": "Exposes the internal modal utility that controls focus trapping. To temporarily disable focus trapping and allow third-party modals spawned from an active Terra modal, call `modal.activateExternal()` when the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Terra's focus trapping."
              },
              { "name": "dialog", "type": "HTMLElement" },
              { "name": "panel", "type": "HTMLElement" },
              { "name": "overlay", "type": "HTMLElement" },
              {
                "name": "open",
                "description": "Indicates whether or not the dialog is open. You can toggle this attribute to show and hide the dialog, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the dialog's open state.",
                "type": "boolean"
              },
              {
                "name": "label",
                "description": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
                "type": "string"
              },
              {
                "name": "noHeader",
                "description": "Disables the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the dialog.",
                "type": "boolean"
              }
            ],
            "events": [
              {
                "name": "terra-dialog-show",
                "description": "Emitted when the dialog opens."
              },
              {
                "name": "terra-dialog-after-show",
                "description": "Emitted after the dialog opens and all animations are complete."
              },
              {
                "name": "terra-dialog-hide",
                "description": "Emitted when the dialog closes."
              },
              {
                "name": "terra-dialog-after-hide",
                "description": "Emitted after the dialog closes and all animations are complete."
              },
              {
                "name": "terra-dialog-initial-focus",
                "description": "Emitted when the dialog opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input."
              },
              {
                "name": "terra-dialog-request-close",
                "type": "{ source: 'close-button' | 'keyboard' | 'overlay' }",
                "description": "Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss."
              }
            ]
          }
        },
        {
          "name": "terra-divider",
          "description": "Dividers are used to visually separate or group elements.\n---\n\n\n### **CSS Properties:**\n - **--terra-divider-color** - The color of the divider. _(default: undefined)_\n- **--terra-divider-width** - The width of the divider. _(default: undefined)_\n- **--terra-divider-spacing** - The spacing of the divider. _(default: undefined)_",
          "doc-url": "",
          "attributes": [
            {
              "name": "vertical",
              "description": "Draws the divider in a vertical orientation.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "vertical",
                "description": "Draws the divider in a vertical orientation.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-dropdown",
          "description": "Dropdowns expose additional content that \"drops down\" in a panel.\n---\n\n\n### **Events:**\n - **terra-show** - Emitted when the dropdown opens.\n- **terra-after-show** - Emitted after the dropdown opens and all animations are complete.\n- **terra-hide** - Emitted when the dropdown closes.\n- **terra-after-hide** - Emitted after the dropdown closes and all animations are complete.\n\n### **Methods:**\n - **show()** - Shows the dropdown panel.\n- **hide()** - Hides the dropdown panel\n- **reposition()** - Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\nis activated.\n\n### **Slots:**\n - _default_ - The dropdown's main content, typically a `<terra-menu>` element.\n- **trigger** - The dropdown's trigger, usually a `<terra-button>` element.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper, an `<terra-popup>` element.\n- **base__popup** - The popup's exported `popup` part. Use this to target the dropdown's popup container.\n- **trigger** - The container that wraps the trigger.\n- **panel** - The panel that gets shown when the dropdown is open.",
          "doc-url": "",
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
              "value": {
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'",
                "default": "'bottom-start'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the dropdown so the panel will not open.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "stay-open-on-select",
              "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the panel away from its trigger.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the panel along its trigger.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hover",
              "description": "When true, the dropdown opens on mouse hover instead of click.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "sync",
              "description": "Syncs the popup width or height to that of the trigger element.",
              "value": {
                "type": "'width' | 'height' | 'both' | undefined",
                "default": "undefined"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The dropdown's main content, typically a `<terra-menu>` element."
            },
            {
              "name": "trigger",
              "description": "The dropdown's trigger, usually a `<terra-button>` element."
            }
          ],
          "events": [
            {
              "name": "terra-show",
              "description": "Emitted when the dropdown opens."
            },
            {
              "name": "terra-after-show",
              "description": "Emitted after the dropdown opens and all animations are complete."
            },
            {
              "name": "terra-hide",
              "description": "Emitted when the dropdown closes."
            },
            {
              "name": "terra-after-hide",
              "description": "Emitted after the dropdown closes and all animations are complete."
            }
          ],
          "js": {
            "properties": [
              { "name": "popup", "type": "TerraPopup" },
              { "name": "trigger", "type": "HTMLSlotElement" },
              { "name": "panel", "type": "HTMLSlotElement" },
              {
                "name": "open",
                "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
                "type": "boolean"
              },
              {
                "name": "placement",
                "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'"
              },
              {
                "name": "disabled",
                "description": "Disables the dropdown so the panel will not open.",
                "type": "boolean"
              },
              {
                "name": "stayOpenOnSelect",
                "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
                "type": "boolean"
              },
              {
                "name": "containingElement",
                "description": "The dropdown will close when the user interacts outside of this element (e.g. clicking). Useful for composing other\ncomponents that use a dropdown internally.",
                "type": "HTMLElement | undefined"
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the panel away from its trigger.",
                "type": "number"
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the panel along its trigger.",
                "type": "number"
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
                "type": "boolean"
              },
              {
                "name": "hover",
                "description": "When true, the dropdown opens on mouse hover instead of click.",
                "type": "boolean"
              },
              {
                "name": "sync",
                "description": "Syncs the popup width or height to that of the trigger element.",
                "type": "'width' | 'height' | 'both' | undefined"
              }
            ],
            "events": [
              {
                "name": "terra-show",
                "description": "Emitted when the dropdown opens."
              },
              {
                "name": "terra-after-show",
                "description": "Emitted after the dropdown opens and all animations are complete."
              },
              {
                "name": "terra-hide",
                "description": "Emitted when the dropdown closes."
              },
              {
                "name": "terra-after-hide",
                "description": "Emitted after the dropdown closes and all animations are complete."
              }
            ]
          }
        },
        {
          "name": "terra-earthdata-login",
          "description": "A form that logs in to Earthdata Login (EDL)\n---\n\n\n### **Events:**\n - **terra-login** - Emitted when a bearer token has been received from EDL.",
          "doc-url": "",
          "attributes": [
            {
              "name": "logged-in-message",
              "description": "The message to show when the user is logged in\nYou can use the following placeholders:\n{username} - The username of the user\n{first_name} - The first name of the user\n{last_name} - The last name of the user",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "logged-out-message",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "loading-message",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "username",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "password",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "hide-password-toggle",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "auto-login",
              "description": "if true and the user has passed in a username and password, we will automatically log them in\nthis is useful for Jupyter Notebooks where we may want to automatically log the user in when the component is rendered",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "events": [
            {
              "name": "terra-login",
              "description": "Emitted when a bearer token has been received from EDL."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "loggedInMessage",
                "description": "The message to show when the user is logged in\nYou can use the following placeholders:\n{username} - The username of the user\n{first_name} - The first name of the user\n{last_name} - The last name of the user",
                "type": "string | undefined"
              },
              { "name": "loggedOutMessage", "type": "string | undefined" },
              { "name": "loadingMessage", "type": "string | undefined" },
              { "name": "username", "type": "string" },
              { "name": "password", "type": "string" },
              { "name": "hidePasswordToggle", "type": "boolean" },
              {
                "name": "autoLogin",
                "description": "if true and the user has passed in a username and password, we will automatically log them in\nthis is useful for Jupyter Notebooks where we may want to automatically log the user in when the component is rendered",
                "type": "boolean"
              },
              { "name": "usernameError", "type": "string" },
              { "name": "passwordError", "type": "string" },
              { "name": "usernameInput", "type": "TerraInput | undefined" },
              { "name": "passwordInput", "type": "TerraInput | undefined" }
            ],
            "events": [
              {
                "name": "terra-login",
                "description": "Emitted when a bearer token has been received from EDL."
              }
            ]
          }
        },
        {
          "name": "terra-file-upload",
          "description": "File upload fields allow visitors to attach one or multiple files to be submitted with a form.\n---\n\n\n### **Events:**\n - **terra-change** - Emitted when files are selected or removed.\n- **terra-focus** - Emitted when the control gains focus.\n- **terra-blur** - Emitted when the control loses focus.\n\n### **Methods:**\n - **getFiles(): _File[]_** - Gets the current files.\n- **clearFiles()** - Clears all selected files.\n\n### **Slots:**\n - _default_ - Custom content to display inside the drop zone.\n\n### **CSS Properties:**\n - **--terra-file-upload-*** - All file upload design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **dropzone** - The drop zone area.\n- **file-input** - The hidden file input element.\n- **file-list** - The container for file previews.\n- **file-item** - Individual file preview item.\n- **file-thumbnail** - The file thumbnail image.\n- **file-name** - The file name text.\n- **change-link** - The \"Change files\" link.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "The file upload's label.",
              "value": { "type": "string", "default": "'Upload'" }
            },
            {
              "name": "help-text",
              "description": "The file upload's help text.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "name",
              "description": "The name of the file input, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "multiple",
              "description": "Allows multiple files to be selected.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "disabled",
              "description": "Disables the file upload.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "required",
              "description": "Makes the file upload a required field.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "accept",
              "description": "Accepted file types (e.g., \"image/*\", \".pdf\", \"image/png,image/jpeg\").",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "max-file-size",
              "description": "Maximum file size in bytes.",
              "value": { "type": "number | undefined" }
            },
            {
              "name": "max-files",
              "description": "Maximum number of files allowed when multiple is enabled.",
              "value": { "type": "number | undefined" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Custom content to display inside the drop zone."
            }
          ],
          "events": [
            {
              "name": "terra-change",
              "description": "Emitted when files are selected or removed."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the control gains focus."
            },
            {
              "name": "terra-blur",
              "description": "Emitted when the control loses focus."
            }
          ],
          "js": {
            "properties": [
              { "name": "fileInput", "type": "HTMLInputElement" },
              { "name": "dropzone", "type": "HTMLElement" },
              {
                "name": "label",
                "description": "The file upload's label.",
                "type": "string"
              },
              {
                "name": "helpText",
                "description": "The file upload's help text.",
                "type": "string"
              },
              {
                "name": "name",
                "description": "The name of the file input, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "multiple",
                "description": "Allows multiple files to be selected.",
                "type": "boolean"
              },
              {
                "name": "disabled",
                "description": "Disables the file upload.",
                "type": "boolean"
              },
              {
                "name": "required",
                "description": "Makes the file upload a required field.",
                "type": "boolean"
              },
              {
                "name": "accept",
                "description": "Accepted file types (e.g., \"image/*\", \".pdf\", \"image/png,image/jpeg\").",
                "type": "string"
              },
              {
                "name": "maxFileSize",
                "description": "Maximum file size in bytes.",
                "type": "number | undefined"
              },
              {
                "name": "maxFiles",
                "description": "Maximum number of files allowed when multiple is enabled.",
                "type": "number | undefined"
              }
            ],
            "events": [
              {
                "name": "terra-change",
                "description": "Emitted when files are selected or removed."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "terra-blur",
                "description": "Emitted when the control loses focus."
              }
            ]
          }
        },
        {
          "name": "terra-icon",
          "description": "Icons are symbols that can be used to represent various options within an application.\n---\n\n\n### **Events:**\n - **terra-load** - Emitted when the icon has loaded.\n- **terra-error** - Emitted when the icon fails to load due to an error.\n\n### **CSS Parts:**\n - **svg** - The internal SVG element.",
          "doc-url": "",
          "attributes": [
            {
              "name": "name",
              "description": "The name of the icon to draw. Available names depend on the icon library being used.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "src",
              "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "label",
              "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "library",
              "description": "The name of a registered custom icon library.",
              "value": {
                "type": "'default' | 'heroicons' | string",
                "default": "'default'"
              }
            },
            {
              "name": "color",
              "description": "The CSS color to assign to the SVG.",
              "value": { "type": "string | null", "default": "null" }
            },
            {
              "name": "font-size",
              "description": "The CSS font-size to assign to the SVG.",
              "value": { "type": "string | null", "default": "null" }
            }
          ],
          "events": [
            {
              "name": "terra-load",
              "description": "Emitted when the icon has loaded."
            },
            {
              "name": "terra-error",
              "description": "Emitted when the icon fails to load due to an error."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "svg",
                "type": "SVGElement | HTMLTemplateResult | null"
              },
              {
                "name": "name",
                "description": "The name of the icon to draw. Available names depend on the icon library being used.",
                "type": "string | undefined"
              },
              {
                "name": "src",
                "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
                "type": "string | undefined"
              },
              {
                "name": "label",
                "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
                "type": "string"
              },
              {
                "name": "library",
                "description": "The name of a registered custom icon library.",
                "type": "'default' | 'heroicons' | string"
              },
              {
                "name": "color",
                "description": "The CSS color to assign to the SVG.",
                "type": "string | null"
              },
              {
                "name": "fontSize",
                "description": "The CSS font-size to assign to the SVG.",
                "type": "string | null"
              }
            ],
            "events": [
              {
                "name": "terra-load",
                "description": "Emitted when the icon has loaded."
              },
              {
                "name": "terra-error",
                "description": "Emitted when the icon fails to load due to an error."
              }
            ]
          }
        },
        {
          "name": "terra-input",
          "description": "A text input component with consistent styling across the design system.\n---\n\n\n### **Events:**\n - **terra-input** - Emitted when the input receives input.\n- **terra-change** - Emitted when an alteration to the control's value is committed by the user.\n- **terra-focus** - Emitted when the control gains focus.\n- **terra-blur** - Emitted when the control loses focus.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **terra-clear** - Emitted when the clear button is activated.\n\n### **Methods:**\n - **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n- **setRangeText(replacement: _string_, start: _number_, end: _number_, selectMode: _'select' | 'start' | 'end' | 'preserve'_)** - Replaces a range of text with a new string.\n- **showPicker()** - Displays the browser picker for an input element (only works if the browser supports it for the input type).\n- **stepUp()** - Increments the value of a numeric input type by the value of the step attribute.\n- **stepDown()** - Decrements the value of a numeric input type by the value of the step attribute.\n\n### **Slots:**\n - **prefix** - Used to prepend content (like an icon) to the input.\n- **suffix** - Used to append content (like an icon) to the input. When `clearable` or `resettable` is true, this slot is overridden.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **show-password-icon** - An icon to use in lieu of the default show password icon.\n- **hide-password-icon** - An icon to use in lieu of the default hide password icon.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **input** - The internal input control.\n- **prefix** - The container for prefix content.\n- **suffix** - The container for suffix content.\n- **clear-button** - The clear button.\n- **password-toggle-button** - The password toggle button.\n- **form-control-help-text** - The help text's wrapper.\n- **form-control-error-text** - The error text's wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "title", "value": { "type": "string", "default": "''" } },
            {
              "name": "type",
              "value": {
                "type": "| 'date'\n        | 'datetime-local'\n        | 'email'\n        | 'number'\n        | 'password'\n        | 'search'\n        | 'tel'\n        | 'text'\n        | 'time'\n        | 'url'",
                "default": "'text'"
              }
            },
            { "name": "name", "value": { "type": "string", "default": "''" } },
            { "name": "value", "value": { "type": "string", "default": "''" } },
            {
              "name": "placeholder",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "size",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "filled",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "pill",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "disabled",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "readonly",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "required",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "autocomplete",
              "value": { "type": "string | undefined" }
            },
            { "name": "minlength", "value": { "type": "number | undefined" } },
            { "name": "maxlength", "value": { "type": "number | undefined" } },
            {
              "name": "min",
              "value": { "type": "number | string | undefined" }
            },
            {
              "name": "max",
              "value": { "type": "number | string | undefined" }
            },
            {
              "name": "step",
              "value": { "type": "number | 'any' | undefined" }
            },
            { "name": "pattern", "value": { "type": "string | undefined" } },
            {
              "name": "input-mode",
              "value": {
                "type": "| 'none'\n        | 'text'\n        | 'decimal'\n        | 'numeric'\n        | 'tel'\n        | 'search'\n        | 'email'\n        | 'url'",
                "default": "'text'"
              }
            },
            { "name": "label", "value": { "type": "string", "default": "''" } },
            {
              "name": "hide-label",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "help-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "error-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "clearable",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "password-toggle",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "password-visible",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "no-spin-buttons",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "autofocus",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "enterkeyhint",
              "value": {
                "type": "| 'enter'\n        | 'done'\n        | 'go'\n        | 'next'\n        | 'previous'\n        | 'search'\n        | 'send' | undefined"
              }
            },
            {
              "name": "spellcheck",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "resettable",
              "description": "When true, shows a reset icon in the suffix that clears the input value when clicked.\nThe input will be reset to its `defaultValue` (or empty string if no defaultValue is set).",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            {
              "name": "prefix",
              "description": "Used to prepend content (like an icon) to the input."
            },
            {
              "name": "suffix",
              "description": "Used to append content (like an icon) to the input. When `clearable` or `resettable` is true, this slot is overridden."
            },
            {
              "name": "clear-icon",
              "description": "An icon to use in lieu of the default clear icon."
            },
            {
              "name": "show-password-icon",
              "description": "An icon to use in lieu of the default show password icon."
            },
            {
              "name": "hide-password-icon",
              "description": "An icon to use in lieu of the default hide password icon."
            },
            {
              "name": "help-text",
              "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-input",
              "description": "Emitted when the input receives input."
            },
            {
              "name": "terra-change",
              "description": "Emitted when an alteration to the control's value is committed by the user."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the control gains focus."
            },
            {
              "name": "terra-blur",
              "description": "Emitted when the control loses focus."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            },
            {
              "name": "terra-clear",
              "description": "Emitted when the clear button is activated."
            }
          ],
          "js": {
            "properties": [
              { "name": "input", "type": "HTMLInputElement" },
              { "name": "hasFocus", "type": "boolean" },
              { "name": "title", "type": "string" },
              {
                "name": "type",
                "type": "| 'date'\n        | 'datetime-local'\n        | 'email'\n        | 'number'\n        | 'password'\n        | 'search'\n        | 'tel'\n        | 'text'\n        | 'time'\n        | 'url'"
              },
              { "name": "name", "type": "string" },
              { "name": "value", "type": "string" },
              { "name": "placeholder", "type": "string" },
              { "name": "size", "type": "'small' | 'medium' | 'large'" },
              { "name": "filled", "type": "boolean" },
              { "name": "pill", "type": "boolean" },
              { "name": "disabled", "type": "boolean" },
              { "name": "readonly", "type": "boolean" },
              { "name": "required", "type": "boolean" },
              { "name": "autocomplete", "type": "string | undefined" },
              { "name": "minlength", "type": "number | undefined" },
              { "name": "maxlength", "type": "number | undefined" },
              { "name": "min", "type": "number | string | undefined" },
              { "name": "max", "type": "number | string | undefined" },
              { "name": "step", "type": "number | 'any' | undefined" },
              { "name": "pattern", "type": "string | undefined" },
              {
                "name": "inputMode",
                "type": "| 'none'\n        | 'text'\n        | 'decimal'\n        | 'numeric'\n        | 'tel'\n        | 'search'\n        | 'email'\n        | 'url'"
              },
              { "name": "label", "type": "string" },
              { "name": "hideLabel", "type": "boolean" },
              { "name": "helpText", "type": "string" },
              { "name": "errorText", "type": "string" },
              { "name": "clearable", "type": "boolean" },
              { "name": "passwordToggle", "type": "boolean" },
              { "name": "passwordVisible", "type": "boolean" },
              { "name": "noSpinButtons", "type": "boolean" },
              { "name": "autofocus", "type": "boolean" },
              {
                "name": "enterkeyhint",
                "type": "| 'enter'\n        | 'done'\n        | 'go'\n        | 'next'\n        | 'previous'\n        | 'search'\n        | 'send' | undefined"
              },
              { "name": "spellcheck", "type": "boolean" },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "string"
              },
              {
                "name": "resettable",
                "description": "When true, shows a reset icon in the suffix that clears the input value when clicked.\nThe input will be reset to its `defaultValue` (or empty string if no defaultValue is set).",
                "type": "boolean"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              },
              {
                "name": "valueAsDate",
                "description": "Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted.\nThis will use the native `<input type=\"{{type}}\">` implementation and may result in an error."
              },
              {
                "name": "valueAsNumber",
                "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
              }
            ],
            "events": [
              {
                "name": "terra-input",
                "description": "Emitted when the input receives input."
              },
              {
                "name": "terra-change",
                "description": "Emitted when an alteration to the control's value is committed by the user."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "terra-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "terra-clear",
                "description": "Emitted when the clear button is activated."
              }
            ]
          }
        },
        {
          "name": "terra-loader",
          "description": "Loaders are used to indicate there is content that is loading.\n---\n\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The loader's variant",
              "value": {
                "type": "'small' | 'large' | 'orbit'",
                "default": "'large'"
              }
            },
            {
              "name": "percent",
              "description": "The percent complete for the loader to display",
              "value": { "type": "string", "default": "'0'" }
            },
            {
              "name": "indeterminate",
              "description": "an indeterminate loader has an unknown progress and will show a spinner",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "role",
              "description": "The ARIA role for the loader",
              "value": { "type": "string | null", "default": "'progressbar'" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "variant",
                "description": "The loader's variant",
                "type": "'small' | 'large' | 'orbit'"
              },
              {
                "name": "percent",
                "description": "The percent complete for the loader to display",
                "type": "string"
              },
              {
                "name": "indeterminate",
                "description": "an indeterminate loader has an unknown progress and will show a spinner",
                "type": "boolean"
              },
              {
                "name": "role",
                "description": "The ARIA role for the loader",
                "type": "string | null"
              },
              { "name": "_currentPercent", "type": "number" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-login",
          "description": "A form that logs in to Earthdata Login (EDL) and returns a bearer token.\n---\n\n\n### **Events:**\n - **terra-login** - Emitted when a bearer token has been received from EDL.",
          "doc-url": "",
          "attributes": [
            {
              "name": "button-label",
              "value": { "type": "string", "default": "'Earthdata Login'" }
            },
            {
              "name": "logged-in-message",
              "description": "The message to show when the user is logged in\nYou can use the following placeholders:\n{username} - The username of the user\n{first_name} - The first name of the user\n{last_name} - The last name of the user",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "logged-out-message",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "loading-message",
              "value": { "type": "string | undefined" }
            }
          ],
          "events": [
            {
              "name": "terra-login",
              "description": "Emitted when a bearer token has been received from EDL."
            }
          ],
          "js": {
            "properties": [
              { "name": "buttonLabel", "type": "string" },
              {
                "name": "loggedInMessage",
                "description": "The message to show when the user is logged in\nYou can use the following placeholders:\n{username} - The username of the user\n{first_name} - The first name of the user\n{last_name} - The last name of the user",
                "type": "string | undefined"
              },
              { "name": "loggedOutMessage", "type": "string | undefined" },
              { "name": "loadingMessage", "type": "string | undefined" }
            ],
            "events": [
              {
                "name": "terra-login",
                "description": "Emitted when a bearer token has been received from EDL."
              }
            ]
          }
        },
        {
          "name": "terra-map",
          "description": "A map component for visualizing and selecting coordinates.\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "min-zoom",
              "description": "Minimum zoom level of the map.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "max-zoom",
              "description": "Maximum zoom level of the map.",
              "value": { "type": "number", "default": "23" }
            },
            {
              "name": "zoom",
              "description": "Initial map zoom level",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "has-navigation",
              "description": "has map navigation toolbar",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "has-coord-tracker",
              "description": "has coordinate tracker",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "has-shape-selector",
              "description": "has shape selector",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hide-bounding-box-selection",
              "value": { "type": "boolean | undefined" }
            },
            {
              "name": "hide-point-selection",
              "value": { "type": "boolean | undefined" }
            },
            {
              "name": "staticMode",
              "value": { "type": "boolean | undefined", "default": "false" }
            },
            {
              "name": "no-world-wrap",
              "description": "Disables infinite horizontal scrolling on the map (world wrapping)",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "spatial-constraints",
              "description": "Spatial constraints for the map (default: '-180, -90, 180, 90')\nFormat: 'west, south, east, north'",
              "value": { "type": "string", "default": "'-180, -90, 180, 90'" }
            },
            { "name": "value", "value": { "type": "any", "default": "[]" } }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "minZoom",
                "description": "Minimum zoom level of the map.",
                "type": "number"
              },
              {
                "name": "maxZoom",
                "description": "Maximum zoom level of the map.",
                "type": "number"
              },
              {
                "name": "zoom",
                "description": "Initial map zoom level",
                "type": "number"
              },
              {
                "name": "hasNavigation",
                "description": "has map navigation toolbar",
                "type": "boolean"
              },
              {
                "name": "hasCoordTracker",
                "description": "has coordinate tracker",
                "type": "boolean"
              },
              {
                "name": "hasShapeSelector",
                "description": "has shape selector",
                "type": "boolean"
              },
              {
                "name": "hideBoundingBoxSelection",
                "type": "boolean | undefined"
              },
              { "name": "hidePointSelection", "type": "boolean | undefined" },
              { "name": "staticMode", "type": "boolean | undefined" },
              {
                "name": "noWorldWrap",
                "description": "Disables infinite horizontal scrolling on the map (world wrapping)",
                "type": "boolean"
              },
              {
                "name": "spatialConstraints",
                "description": "Spatial constraints for the map (default: '-180, -90, 180, 90')\nFormat: 'west, south, east, north'",
                "type": "string"
              },
              { "name": "value", "type": "any" },
              { "name": "mapElement", "type": "HTMLDivElement" },
              { "name": "map" },
              {
                "name": "shapes",
                "description": "List of geojson shapes",
                "type": "ShapeFilesResponse"
              },
              { "name": "_mapController", "type": "MapController" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-menu",
          "description": "Menus provide a list of options for the user to choose from.\n---\n\n\n### **Events:**\n - **terra-select** - Emitted when a menu item is selected. The event detail contains the selected menu item.\n\n### **Slots:**\n - _default_ - The menu's content, typically `<terra-menu-item>` elements.",
          "doc-url": "",
          "attributes": [],
          "slots": [
            {
              "name": "",
              "description": "The menu's content, typically `<terra-menu-item>` elements."
            }
          ],
          "events": [
            {
              "name": "terra-select",
              "description": "Emitted when a menu item is selected. The event detail contains the selected menu item."
            }
          ],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" }
            ],
            "events": [
              {
                "name": "terra-select",
                "description": "Emitted when a menu item is selected. The event detail contains the selected menu item."
              }
            ]
          }
        },
        {
          "name": "terra-menu-item",
          "description": "Menu items provide options for the user to pick from in a menu.\n---\n\n\n### **Methods:**\n - **getTextLabel()** - Returns a text label based on the contents of the menu item's default slot.\n\n### **Slots:**\n - _default_ - The menu item's label.\n- **prefix** - Used to prepend an icon or similar element to the menu item.\n- **suffix** - Used to append an icon or similar element to the menu item.\n- **submenu** - Used to denote a nested menu.\n\n### **CSS Properties:**\n - **--submenu-offset** - The distance submenus shift to overlap the parent menu. _(default: -2px)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **checked-icon** - The checked icon, which is only visible when the menu item is checked.\n- **prefix** - The prefix container.\n- **label** - The menu item label.\n- **suffix** - The suffix container.\n- **spinner** - The spinner that shows when the menu item is in the loading state.\n- **spinner__base** - The spinner's base part.\n- **submenu-icon** - The submenu icon, visible only when the menu item has a submenu.",
          "doc-url": "",
          "attributes": [
            {
              "name": "type",
              "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
              "value": {
                "type": "'normal' | 'checkbox'",
                "default": "'normal'"
              }
            },
            {
              "name": "checked",
              "description": "Draws the item in a checked state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "value",
              "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "loading",
              "description": "Draws the menu item in a loading state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "disabled",
              "description": "Draws the menu item in a disabled state, preventing selection.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            { "name": "", "description": "The menu item's label." },
            {
              "name": "prefix",
              "description": "Used to prepend an icon or similar element to the menu item."
            },
            {
              "name": "suffix",
              "description": "Used to append an icon or similar element to the menu item."
            },
            {
              "name": "submenu",
              "description": "Used to denote a nested menu."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              { "name": "menuItem", "type": "HTMLElement" },
              {
                "name": "type",
                "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
                "type": "'normal' | 'checkbox'"
              },
              {
                "name": "checked",
                "description": "Draws the item in a checked state.",
                "type": "boolean"
              },
              {
                "name": "value",
                "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
                "type": "string"
              },
              {
                "name": "loading",
                "description": "Draws the menu item in a loading state.",
                "type": "boolean"
              },
              {
                "name": "disabled",
                "description": "Draws the menu item in a disabled state, preventing selection.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-option",
          "description": "Options define the selectable items within various form controls such as [select](/components/select).\n---\n\n\n### **Methods:**\n - **getTextLabel()** - Returns a plain text label based on the option's content.\n\n### **Slots:**\n - _default_ - The option's label.\n- **prefix** - Used to prepend an icon or similar element to the menu item.\n- **suffix** - Used to append an icon or similar element to the menu item.\n\n### **CSS Properties:**\n - **--terra-option-*** - All option design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **checked-icon** - The checked icon, an `<terra-icon>` element.\n- **base** - The component's base wrapper.\n- **label** - The option's label.\n- **prefix** - The container that wraps the prefix.\n- **suffix** - The container that wraps the suffix.",
          "doc-url": "",
          "attributes": [
            {
              "name": "value",
              "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "disabled",
              "description": "Draws the option in a disabled state, preventing selection.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            { "name": "", "description": "The option's label." },
            {
              "name": "prefix",
              "description": "Used to prepend an icon or similar element to the menu item."
            },
            {
              "name": "suffix",
              "description": "Used to append an icon or similar element to the menu item."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              { "name": "current", "type": "boolean" },
              { "name": "selected", "type": "boolean" },
              { "name": "hasHover", "type": "boolean" },
              {
                "name": "value",
                "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
                "type": "string"
              },
              {
                "name": "disabled",
                "description": "Draws the option in a disabled state, preventing selection.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-pagination",
          "description": "Pagination is a navigational element that allows users to navigate between content or pages.\n---\n\n\n### **Events:**\n - **terra-page-change** - Emitted when the page changes.\n\n### **Slots:**\n - _default_ - Content to display on the right side (e.g., rows per page dropdown). Only visible when variant is \"left\".\n\n### **CSS Properties:**\n - **--terra-pagination-button-color** - The text color of page buttons. _(default: undefined)_\n- **--terra-pagination-button-background-color** - The background color of page buttons. _(default: undefined)_\n- **--terra-pagination-button-color-hover** - The text color of page buttons on hover. _(default: undefined)_\n- **--terra-pagination-button-background-color-hover** - The background color of page buttons on hover. _(default: undefined)_\n- **--terra-pagination-button-color-current** - The text color of the current page button. _(default: undefined)_\n- **--terra-pagination-button-background-color-current** - The background color of the current page button. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The navigation container.\n- **button** - The page button elements.\n- **button-current** - The current page button.\n- **ellipsis** - The ellipsis element.\n- **prev** - The previous button.\n- **next** - The next button.\n- **slot** - The right-side slot container.",
          "doc-url": "",
          "attributes": [
            {
              "name": "current",
              "description": "The current page number (1-indexed).",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "total",
              "description": "The total number of pages.",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "variant",
              "description": "The pagination variant.",
              "value": { "type": "'full' | 'simple'", "default": "'full'" }
            },
            {
              "name": "centered",
              "description": "Whether the pagination is centered.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Content to display on the right side (e.g., rows per page dropdown). Only visible when variant is \"left\"."
            }
          ],
          "events": [
            {
              "name": "terra-page-change",
              "description": "Emitted when the page changes."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "current",
                "description": "The current page number (1-indexed).",
                "type": "number"
              },
              {
                "name": "total",
                "description": "The total number of pages.",
                "type": "number"
              },
              {
                "name": "variant",
                "description": "The pagination variant.",
                "type": "'full' | 'simple'"
              },
              {
                "name": "centered",
                "description": "Whether the pagination is centered.",
                "type": "boolean"
              }
            ],
            "events": [
              {
                "name": "terra-page-change",
                "description": "Emitted when the page changes."
              }
            ]
          }
        },
        {
          "name": "terra-plot",
          "description": "A web component for interactive graphs using Plotly.js.\n---\n\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "plotTitle", "value": { "type": "string | undefined" } },
            {
              "name": "layout",
              "value": {
                "type": "Partial<Plotly.Layout> | undefined",
                "default": "{}"
              }
            },
            {
              "name": "config",
              "value": {
                "type": "Partial<Plotly.Config> | undefined",
                "default": "{}"
              }
            },
            {
              "name": "data",
              "value": {
                "type": "Array<Partial<Plotly.Data>>",
                "default": "[]"
              }
            },
            {
              "name": "colors",
              "description": "Optional: Colors to assign to each time series line",
              "value": {
                "type": "string[]",
                "default": "[\n        '#1f77b4', // blue\n        '#ff7f0e', // orange\n        '#2ca02c', // green\n        '#d62728', // red\n        '#9467bd', // purple\n        '#8c564b', // brown\n        '#e377c2', // pink\n        '#7f7f7f', // gray\n        '#bcbd22', // yellow-green\n        '#17becf', // cyan\n    ]"
              }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "base", "type": "Plotly.PlotlyHTMLElement" },
              { "name": "plotTitle", "type": "string | undefined" },
              {
                "name": "layout",
                "type": "Partial<Plotly.Layout> | undefined"
              },
              {
                "name": "config",
                "type": "Partial<Plotly.Config> | undefined"
              },
              { "name": "data", "type": "Array<Partial<Plotly.Data>>" },
              {
                "name": "colors",
                "description": "Optional: Colors to assign to each time series line",
                "type": "string[]"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-plot-toolbar",
          "description": "Short summary of the component's intended use.\n---\n\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--terra-plot-toolbar-help-menu-display** - Controls the display of the help menu button. Set to `none` to hide it. Defaults to `flex`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "catalogVariable", "value": { "type": "Variable" } },
            { "name": "variableEntryId", "value": { "type": "string" } },
            { "name": "plot", "value": { "type": "TerraPlot | undefined" } },
            {
              "name": "timeSeriesData",
              "value": { "type": "Partial<Plotly.Data>[] | Blob | undefined" }
            },
            { "name": "location", "value": { "type": "string" } },
            { "name": "startDate", "value": { "type": "string" } },
            { "name": "endDate", "value": { "type": "string" } },
            { "name": "cacheKey", "value": { "type": "string" } },
            { "name": "dataType", "value": { "type": "DataType" } },
            {
              "name": "show-location",
              "value": { "type": "boolean", "default": "true" }
            },
            { "name": "show-date-range", "value": { "type": "boolean" } },
            {
              "name": "colormaps",
              "value": { "type": "string[]", "default": "[]" }
            },
            {
              "name": "color-map-name",
              "value": { "type": "string", "default": "'viridis'" }
            },
            {
              "name": "opacity",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "show-citation",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "application-citation",
              "description": "if you include an application citation, it will be displayed in the citation panel alongside the dataset citation",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "mobileView",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "productLabel",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "bottomSheetDragY",
              "value": { "type": "number", "default": "0" }
            }
          ],
          "slots": [
            { "name": "", "description": "The default slot." },
            { "name": "example", "description": "An example slot." }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "catalogVariable", "type": "Variable" },
              { "name": "variableEntryId", "type": "string" },
              { "name": "plot", "type": "TerraPlot | undefined" },
              {
                "name": "timeSeriesData",
                "type": "Partial<Plotly.Data>[] | Blob | undefined"
              },
              { "name": "location", "type": "string" },
              { "name": "startDate", "type": "string" },
              { "name": "endDate", "type": "string" },
              { "name": "cacheKey", "type": "string" },
              { "name": "dataType", "type": "DataType" },
              { "name": "showLocation", "type": "boolean" },
              { "name": "showDateRange", "type": "boolean" },
              { "name": "colormaps", "type": "string[]" },
              { "name": "colorMapName", "type": "string" },
              { "name": "opacity", "type": "number" },
              { "name": "showCitation", "type": "boolean" },
              {
                "name": "applicationCitation",
                "description": "if you include an application citation, it will be displayed in the citation panel alongside the dataset citation",
                "type": "string | undefined"
              },
              { "name": "mobileView", "type": "boolean" },
              { "name": "productLabel", "type": "string | undefined" },
              { "name": "bottomSheetDragY", "type": "number" },
              { "name": "hideTitle", "type": "boolean" },
              { "name": "activeMenuItem", "type": "MenuNames" },
              { "name": "showLocationTooltip", "type": "boolean" },
              { "name": "locationMapValue", "type": "any" },
              { "name": "menu", "type": "HTMLMenuElement" },
              { "name": "_authController" },
              { "name": "metadata", "type": "TimeSeriesMetadata" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-popup",
          "description": "Popup is a utility that lets you declaratively anchor \"popup\" containers to another element.\n---\n\n\n### **Events:**\n - **terra-reposition** - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it.\n\n### **Methods:**\n - **reposition()** - Forces the popup to recalculate and reposition itself.\n\n### **Slots:**\n - _default_ - The popup's content.\n- **anchor** - The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the `anchor` attribute or property instead.\n\n### **CSS Properties:**\n - **--arrow-size** - The size of the arrow. Note that an arrow won't be shown unless the `arrow` attribute is used. _(default: 6px)_\n- **--arrow-color** - The color of the arrow. _(default: var(--terra-color-carbon-black))_\n- **--auto-size-available-width** - A read-only custom property that determines the amount of width the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`. _(default: undefined)_\n- **--auto-size-available-height** - A read-only custom property that determines the amount of height the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`. _(default: undefined)_\n\n### **CSS Parts:**\n - **arrow** - The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and maybe a border or box shadow.\n- **popup** - The popup's container. Useful for setting a background color, box shadow, etc.\n- **hover-bridge** - The hover bridge element. Only available when the `hover-bridge` option is enabled.",
          "doc-url": "",
          "attributes": [
            {
              "name": "anchor",
              "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
              "value": { "type": "Element | string | VirtualElement" }
            },
            {
              "name": "active",
              "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
              "value": {
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'",
                "default": "'top'"
              }
            },
            {
              "name": "strategy",
              "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
              "value": {
                "type": "'absolute' | 'fixed'",
                "default": "'absolute'"
              }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the panel away from its anchor.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the panel along its anchor.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "arrow",
              "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "arrow-placement",
              "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
              "value": {
                "type": "| 'start'\n        | 'end'\n        | 'center'\n        | 'anchor'",
                "default": "'anchor'"
              }
            },
            {
              "name": "arrow-padding",
              "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
              "value": { "type": "number", "default": "10" }
            },
            {
              "name": "flip",
              "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "flip-fallback-placements",
              "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "flip-fallback-strategy",
              "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
              "value": {
                "type": "| 'best-fit'\n        | 'initial'",
                "default": "'best-fit'"
              }
            },
            {
              "name": "flipBoundary",
              "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": { "type": "Element | Element[]" }
            },
            {
              "name": "flip-padding",
              "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "shift",
              "description": "Moves the popup along the axis to keep it in view when clipped.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "shiftBoundary",
              "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": { "type": "Element | Element[]" }
            },
            {
              "name": "shift-padding",
              "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "auto-size",
              "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
              "value": { "type": "'horizontal' | 'vertical' | 'both'" }
            },
            {
              "name": "sync",
              "description": "Syncs the popup's width or height to that of the anchor element.",
              "value": { "type": "'width' | 'height' | 'both'" }
            },
            {
              "name": "autoSizeBoundary",
              "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": { "type": "Element | Element[]" }
            },
            {
              "name": "auto-size-padding",
              "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "hover-bridge",
              "description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            { "name": "", "description": "The popup's content." },
            {
              "name": "anchor",
              "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the `anchor` attribute or property instead."
            }
          ],
          "events": [
            {
              "name": "terra-reposition",
              "description": "Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "popup",
                "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript.",
                "type": "HTMLElement"
              },
              {
                "name": "anchor",
                "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
                "type": "Element | string | VirtualElement"
              },
              {
                "name": "active",
                "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
                "type": "boolean"
              },
              {
                "name": "placement",
                "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'"
              },
              {
                "name": "strategy",
                "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
                "type": "'absolute' | 'fixed'"
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the panel away from its anchor.",
                "type": "number"
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the panel along its anchor.",
                "type": "number"
              },
              {
                "name": "arrow",
                "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
                "type": "boolean"
              },
              {
                "name": "arrowPlacement",
                "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
                "type": "| 'start'\n        | 'end'\n        | 'center'\n        | 'anchor'"
              },
              {
                "name": "arrowPadding",
                "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
                "type": "number"
              },
              {
                "name": "flip",
                "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
                "type": "boolean"
              },
              {
                "name": "flipFallbackPlacements",
                "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
                "type": "string"
              },
              {
                "name": "flipFallbackStrategy",
                "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
                "type": "| 'best-fit'\n        | 'initial'"
              },
              {
                "name": "flipBoundary",
                "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "type": "Element | Element[]"
              },
              {
                "name": "flipPadding",
                "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
                "type": "number"
              },
              {
                "name": "shift",
                "description": "Moves the popup along the axis to keep it in view when clipped.",
                "type": "boolean"
              },
              {
                "name": "shiftBoundary",
                "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "type": "Element | Element[]"
              },
              {
                "name": "shiftPadding",
                "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
                "type": "number"
              },
              {
                "name": "autoSize",
                "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
                "type": "'horizontal' | 'vertical' | 'both'"
              },
              {
                "name": "sync",
                "description": "Syncs the popup's width or height to that of the anchor element.",
                "type": "'width' | 'height' | 'both'"
              },
              {
                "name": "autoSizeBoundary",
                "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "type": "Element | Element[]"
              },
              {
                "name": "autoSizePadding",
                "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
                "type": "number"
              },
              {
                "name": "hoverBridge",
                "description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
                "type": "boolean"
              }
            ],
            "events": [
              {
                "name": "terra-reposition",
                "description": "Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it."
              }
            ]
          }
        },
        {
          "name": "terra-progress-bar",
          "description": "Progress bars are used to show the status of an ongoing operation.\n---\n\n\n### **Slots:**\n - _default_ - A label to show inside the progress indicator.\n\n### **CSS Properties:**\n - **--height** - The progress bar's height. _(default: undefined)_\n- **--track-color** - The color of the track. _(default: undefined)_\n- **--indicator-color** - The color of the indicator. _(default: undefined)_\n- **--label-color** - The color of the label. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **indicator** - The progress bar's indicator.\n- **label** - The progress bar's label.",
          "doc-url": "",
          "attributes": [
            {
              "name": "value",
              "description": "The current progress as a percentage, 0 to 100.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "indeterminate",
              "description": "When true, percentage is ignored, the label is hidden, and the progress bar is drawn in an indeterminate state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "label",
              "description": "A custom label for assistive devices.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "variant",
              "description": "The progress bar's theme variant.",
              "value": {
                "type": "| 'default'\n        | 'primary'\n        | 'success'\n        | 'warning'\n        | 'danger'",
                "default": "'primary'"
              }
            },
            { "name": "title", "value": { "type": "string", "default": "''" } }
          ],
          "slots": [
            {
              "name": "",
              "description": "A label to show inside the progress indicator."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "value",
                "description": "The current progress as a percentage, 0 to 100.",
                "type": "number"
              },
              {
                "name": "indeterminate",
                "description": "When true, percentage is ignored, the label is hidden, and the progress bar is drawn in an indeterminate state.",
                "type": "boolean"
              },
              {
                "name": "label",
                "description": "A custom label for assistive devices.",
                "type": "string"
              },
              {
                "name": "variant",
                "description": "The progress bar's theme variant.",
                "type": "| 'default'\n        | 'primary'\n        | 'success'\n        | 'warning'\n        | 'danger'"
              },
              { "name": "title", "type": "string" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-radio",
          "description": "Radio buttons are a form field used when only a single selection can be made from a list.\n---\n\n\n### **Events:**\n - **terra-blur** - Emitted when the radio loses focus.\n- **terra-change** - Emitted when the checked state changes.\n- **terra-focus** - Emitted when the radio gains focus.\n- **terra-input** - Emitted when the radio receives input.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the radio.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio.\n- **blur()** - Removes focus from the radio.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The radio's label.\n\n### **CSS Properties:**\n - **--terra-radio-*** - All radio design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The circular container that wraps the radio's checked state.\n- **control--checked** - The radio control when the radio is checked.\n- **checked-icon** - The checked icon, an SVG element.\n- **label** - The container that wraps the radio's label.",
          "doc-url": "",
          "attributes": [
            { "name": "title", "value": { "type": "string", "default": "''" } },
            {
              "name": "name",
              "description": "The name of the radio, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "value",
              "description": "The radio's value. When selected, the radio group will receive this value.",
              "value": { "type": "string" }
            },
            {
              "name": "size",
              "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the radio.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "checked",
              "description": "Draws the radio in a checked state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "required",
              "description": "Makes the radio a required field.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The radio's label." }],
          "events": [
            {
              "name": "terra-blur",
              "description": "Emitted when the radio loses focus."
            },
            {
              "name": "terra-change",
              "description": "Emitted when the checked state changes."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the radio gains focus."
            },
            {
              "name": "terra-input",
              "description": "Emitted when the radio receives input."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "input", "type": "HTMLInputElement" },
              { "name": "title", "type": "string" },
              {
                "name": "name",
                "description": "The name of the radio, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The radio's value. When selected, the radio group will receive this value.",
                "type": "string"
              },
              {
                "name": "size",
                "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "disabled",
                "description": "Disables the radio.",
                "type": "boolean"
              },
              {
                "name": "checked",
                "description": "Draws the radio in a checked state.",
                "type": "boolean"
              },
              {
                "name": "defaultChecked",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "boolean"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "required",
                "description": "Makes the radio a required field.",
                "type": "boolean"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-blur",
                "description": "Emitted when the radio loses focus."
              },
              {
                "name": "terra-change",
                "description": "Emitted when the checked state changes."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the radio gains focus."
              },
              {
                "name": "terra-input",
                "description": "Emitted when the radio receives input."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-radio-group",
          "description": "Radio groups are used to group multiple radio buttons so they function as a single form control.\n---\n\n\n### **Events:**\n - **terra-change** - Emitted when the radio group's selected value changes.\n- **terra-input** - Emitted when the radio group receives user input.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio-group.\n\n### **Slots:**\n - _default_ - The default slot where `<terra-radio>` elements are placed.\n- **label** - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label` attribute.\n- **help-text** - Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--terra-radio-group-*** - All radio group design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "help-text",
              "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "name",
              "description": "The name of the radio group, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "'option'" }
            },
            {
              "name": "value",
              "description": "The current value of the radio group, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "size",
              "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "required",
              "description": "Ensures a child radio is checked before allowing the containing form to submit.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The default slot where `<terra-radio>` elements are placed."
            },
            {
              "name": "label",
              "description": "The radio group's label. Required for proper accessibility. Alternatively, you can use the `label` attribute."
            },
            {
              "name": "help-text",
              "description": "Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-change",
              "description": "Emitted when the radio group's selected value changes."
            },
            {
              "name": "terra-input",
              "description": "Emitted when the radio group receives user input."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              { "name": "validationInput", "type": "HTMLInputElement" },
              { "name": "defaultValue", "type": "string" },
              {
                "name": "label",
                "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
                "type": "string"
              },
              {
                "name": "helpText",
                "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
                "type": "string"
              },
              {
                "name": "name",
                "description": "The name of the radio group, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The current value of the radio group, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "size",
                "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "required",
                "description": "Ensures a child radio is checked before allowing the containing form to submit.",
                "type": "boolean"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-change",
                "description": "Emitted when the radio group's selected value changes."
              },
              {
                "name": "terra-input",
                "description": "Emitted when the radio group receives user input."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-scroll-hint",
          "description": "Scroll hint is an animated button that prompts visitors to scroll.\n---\n\n\n### **Events:**\n - **terra-scroll** - Emitted when the scroll hint is clicked and scrolling begins.\n\n### **CSS Properties:**\n - **--terra-scroll-hint-icon-background-color** - The background color of the icon circle. _(default: undefined)_\n- **--terra-scroll-hint-icon-color** - The color of the chevron icon. _(default: undefined)_\n- **--terra-scroll-hint-text-color** - The color of the text. _(default: undefined)_\n- **--terra-scroll-hint-ring-color** - The color of the pulsing ring. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **button** - The clickable button element.\n- **icon-container** - The container for the icon and pulsing ring.\n- **icon** - The chevron icon.\n- **ring** - The pulsing ring around the icon.\n- **text** - The \"SCROLL TO CONTINUE\" text.",
          "doc-url": "",
          "attributes": [
            {
              "name": "inline",
              "description": "When true, the component will be positioned inline in the DOM flow instead of fixed to the viewport.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "dark",
              "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "inactivityDelay",
              "description": "The delay in milliseconds before showing the scroll hint after inactivity. Defaults to 3000ms (3 seconds).",
              "value": { "type": "number", "default": "3000" }
            }
          ],
          "events": [
            {
              "name": "terra-scroll",
              "description": "Emitted when the scroll hint is clicked and scrolling begins."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "inline",
                "description": "When true, the component will be positioned inline in the DOM flow instead of fixed to the viewport.",
                "type": "boolean"
              },
              {
                "name": "dark",
                "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
                "type": "boolean"
              },
              {
                "name": "inactivityDelay",
                "description": "The delay in milliseconds before showing the scroll hint after inactivity. Defaults to 3000ms (3 seconds).",
                "type": "number"
              }
            ],
            "events": [
              {
                "name": "terra-scroll",
                "description": "Emitted when the scroll hint is clicked and scrolling begins."
              }
            ]
          }
        },
        {
          "name": "terra-select",
          "description": "Select fields are a form field used to select one option from a list.\n---\n\n\n### **Events:**\n - **terra-change** - Emitted when the control's value changes.\n- **terra-clear** - Emitted when the control's value is cleared.\n- **terra-input** - Emitted when the control receives input.\n- **terra-focus** - Emitted when the control gains focus.\n- **terra-blur** - Emitted when the control loses focus.\n- **terra-show** - Emitted when the select's menu opens.\n- **terra-after-show** - Emitted after the select's menu opens and all animations are complete.\n- **terra-hide** - Emitted when the select's menu closes.\n- **terra-after-hide** - Emitted after the select's menu closes and all animations are complete.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the control.\n- **blur()** - Removes focus from the control.\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<terra-option>` elements.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **suffix** - Used to append a presentational icon or similar element to the combobox.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **expand-icon** - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--terra-select-*** - All select design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, suffix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **suffix** - The container that wraps the suffix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **tags** - The container that houses option tags when `multiple` is used.\n- **tag** - The individual tags that represent each multiselect option.\n- **clear-button** - The clear button.\n- **expand-icon** - The container that wraps the expand icon.",
          "doc-url": "",
          "attributes": [
            {
              "name": "name",
              "description": "The name of the select, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "value",
              "description": "The default value of the form control. Primarily used for resetting the form control.",
              "value": { "type": "string | string[]", "default": "''" }
            },
            {
              "name": "size",
              "description": "The select's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "placeholder",
              "description": "Placeholder text to show as a hint when the select is empty.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "multiple",
              "description": "Allows more than one option to be selected.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "max-options-visible",
              "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
              "value": { "type": "number", "default": "3" }
            },
            {
              "name": "disabled",
              "description": "Disables the select control.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "clearable",
              "description": "Adds a clear button when the select is not empty.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "open",
              "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "filled",
              "description": "Draws a filled select.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style select with rounded edges.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "label",
              "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
              "value": { "type": "'top' | 'bottom'", "default": "'bottom'" }
            },
            {
              "name": "help-text",
              "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "required",
              "description": "The select's required attribute.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "getTag",
              "description": "A function that customizes the tags to be rendered when multiple=true. The first argument is the option, the second\nis the current tag's index.  The function should return either a Lit TemplateResult or a string containing trusted HTML of the symbol to render at\nthe specified value.",
              "value": {
                "type": "(\n        option: TerraOption,\n        index: number\n    ) => TemplateResult | string | HTMLElement"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The listbox options. Must be `<terra-option>` elements."
            },
            {
              "name": "label",
              "description": "The input's label. Alternatively, you can use the `label` attribute."
            },
            {
              "name": "prefix",
              "description": "Used to prepend a presentational icon or similar element to the combobox."
            },
            {
              "name": "suffix",
              "description": "Used to append a presentational icon or similar element to the combobox."
            },
            {
              "name": "clear-icon",
              "description": "An icon to use in lieu of the default clear icon."
            },
            {
              "name": "expand-icon",
              "description": "The icon to show when the control is expanded and collapsed. Rotates on open and close."
            },
            {
              "name": "help-text",
              "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-change",
              "description": "Emitted when the control's value changes."
            },
            {
              "name": "terra-clear",
              "description": "Emitted when the control's value is cleared."
            },
            {
              "name": "terra-input",
              "description": "Emitted when the control receives input."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the control gains focus."
            },
            {
              "name": "terra-blur",
              "description": "Emitted when the control loses focus."
            },
            {
              "name": "terra-show",
              "description": "Emitted when the select's menu opens."
            },
            {
              "name": "terra-after-show",
              "description": "Emitted after the select's menu opens and all animations are complete."
            },
            {
              "name": "terra-hide",
              "description": "Emitted when the select's menu closes."
            },
            {
              "name": "terra-after-hide",
              "description": "Emitted after the select's menu closes and all animations are complete."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "popup", "type": "TerraPopup" },
              { "name": "combobox", "type": "HTMLSlotElement" },
              { "name": "displayInput", "type": "HTMLInputElement" },
              { "name": "valueInput", "type": "HTMLInputElement" },
              { "name": "listbox", "type": "HTMLSlotElement" },
              { "name": "displayLabel", "type": "string" },
              { "name": "currentOption", "type": "TerraOption" },
              { "name": "selectedOptions", "type": "TerraOption[]" },
              {
                "name": "name",
                "description": "The name of the select, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue attribute will be a space-delimited list of values based on the options selected, and the value property will\nbe an array. **For this reason, values must not contain spaces.**"
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "string | string[]"
              },
              {
                "name": "size",
                "description": "The select's size.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "placeholder",
                "description": "Placeholder text to show as a hint when the select is empty.",
                "type": "string"
              },
              {
                "name": "multiple",
                "description": "Allows more than one option to be selected.",
                "type": "boolean"
              },
              {
                "name": "maxOptionsVisible",
                "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
                "type": "number"
              },
              {
                "name": "disabled",
                "description": "Disables the select control.",
                "type": "boolean"
              },
              {
                "name": "clearable",
                "description": "Adds a clear button when the select is not empty.",
                "type": "boolean"
              },
              {
                "name": "open",
                "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
                "type": "boolean"
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
                "type": "boolean"
              },
              {
                "name": "filled",
                "description": "Draws a filled select.",
                "type": "boolean"
              },
              {
                "name": "pill",
                "description": "Draws a pill-style select with rounded edges.",
                "type": "boolean"
              },
              {
                "name": "label",
                "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
                "type": "string"
              },
              {
                "name": "placement",
                "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
                "type": "'top' | 'bottom'"
              },
              {
                "name": "helpText",
                "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
                "type": "string"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "required",
                "description": "The select's required attribute.",
                "type": "boolean"
              },
              {
                "name": "getTag",
                "description": "A function that customizes the tags to be rendered when multiple=true. The first argument is the option, the second\nis the current tag's index.  The function should return either a Lit TemplateResult or a string containing trusted HTML of the symbol to render at\nthe specified value.",
                "type": "(\n        option: TerraOption,\n        index: number\n    ) => TemplateResult | string | HTMLElement"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-change",
                "description": "Emitted when the control's value changes."
              },
              {
                "name": "terra-clear",
                "description": "Emitted when the control's value is cleared."
              },
              {
                "name": "terra-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "terra-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "terra-show",
                "description": "Emitted when the select's menu opens."
              },
              {
                "name": "terra-after-show",
                "description": "Emitted after the select's menu opens and all animations are complete."
              },
              {
                "name": "terra-hide",
                "description": "Emitted when the select's menu closes."
              },
              {
                "name": "terra-after-hide",
                "description": "Emitted after the select's menu closes and all animations are complete."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-site-header",
          "description": "Site headers provide a consistent navigation structure at the top of pages.\n---\n\n\n### **Slots:**\n - **title** - The site title displayed next to the logo. Defaults to the `site-name` prop value.\n- **center** - Content displayed in the center of the header (e.g., navigation).\n- **right** - Content displayed on the right side of the header. Defaults to a search icon button.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **logo** - The NASA logo container.\n- **title** - The site title container.\n- **center** - The center content container.\n- **right** - The right content container.",
          "doc-url": "",
          "attributes": [
            {
              "name": "site-name",
              "description": "The default site name displayed in the title slot if no content is provided.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            {
              "name": "title",
              "description": "The site title displayed next to the logo. Defaults to the `site-name` prop value."
            },
            {
              "name": "center",
              "description": "Content displayed in the center of the header (e.g., navigation)."
            },
            {
              "name": "right",
              "description": "Content displayed on the right side of the header. Defaults to a search icon button."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "siteName",
                "description": "The default site name displayed in the title slot if no content is provided.",
                "type": "string"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-site-navigation",
          "description": "Site navigation provides a flexible navigation structure with dropdown menus.\n---\n\n\n### **Slots:**\n - _default_ - Navigation items. Can contain `<terra-dropdown>` elements or any custom navigation content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "full-width",
              "description": "When true, dropdowns use full-width panels instead of normal list-based navigation.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Navigation items. Can contain `<terra-dropdown>` elements or any custom navigation content."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "fullWidth",
                "description": "When true, dropdowns use full-width panels instead of normal list-based navigation.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-skeleton",
          "description": "Skeletons are loading indicators to represent where content will eventually be drawn.\n---\n",
          "doc-url": "",
          "attributes": [
            { "name": "rows", "value": { "type": "number", "default": "1" } },
            {
              "name": "effect",
              "value": {
                "type": "'pulse' | 'sheen' | 'none'",
                "default": "'pulse'"
              }
            },
            {
              "name": "variableWidths",
              "value": { "type": "boolean", "default": "true" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "rows", "type": "number" },
              { "name": "effect", "type": "'pulse' | 'sheen' | 'none'" },
              { "name": "variableWidths", "type": "boolean" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-slider",
          "description": "\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "mode",
              "description": "The slider mode - either 'single' for one value or 'range' for selecting a range.",
              "value": { "type": "SliderMode", "default": "'single'" }
            },
            {
              "name": "min",
              "description": "The minimum value of the slider.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "max",
              "description": "The maximum value of the slider.",
              "value": { "type": "number", "default": "100" }
            },
            {
              "name": "step",
              "description": "The step size for the slider. Use integers (1, 2, 5) for whole numbers or decimals (0.1, 0.2, 0.5) for fractional steps.",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "disabled",
              "description": "Disables the slider.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "has-pips",
              "description": "Shows tick marks and labels on the slider.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "has-tooltips",
              "description": "Shows tooltips on the slider handles.\nWhen false (default), selected values are shown in the top right instead.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "show-inputs",
              "description": "Shows input fields below the slider for precise value entry.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "value",
              "description": "The current value for single mode sliders.",
              "value": { "type": "number | undefined" }
            },
            {
              "name": "start-value",
              "description": "The start value for range mode sliders.",
              "value": { "type": "number | undefined" }
            },
            {
              "name": "end-value",
              "description": "The end value for range mode sliders.",
              "value": { "type": "number | undefined" }
            },
            {
              "name": "label",
              "description": "The label text for the slider.",
              "value": { "type": "string", "default": "'Slider'" }
            },
            {
              "name": "hide-label",
              "description": "Hide the slider's label text.\nWhen hidden, still presents to screen readers.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "slider", "type": "HTMLElement & { noUiSlider: API }" },
              {
                "name": "mode",
                "description": "The slider mode - either 'single' for one value or 'range' for selecting a range.",
                "type": "SliderMode"
              },
              {
                "name": "min",
                "description": "The minimum value of the slider.",
                "type": "number"
              },
              {
                "name": "max",
                "description": "The maximum value of the slider.",
                "type": "number"
              },
              {
                "name": "step",
                "description": "The step size for the slider. Use integers (1, 2, 5) for whole numbers or decimals (0.1, 0.2, 0.5) for fractional steps.",
                "type": "number"
              },
              {
                "name": "disabled",
                "description": "Disables the slider.",
                "type": "boolean"
              },
              {
                "name": "hasPips",
                "description": "Shows tick marks and labels on the slider.",
                "type": "boolean"
              },
              {
                "name": "hasTooltips",
                "description": "Shows tooltips on the slider handles.\nWhen false (default), selected values are shown in the top right instead.",
                "type": "boolean"
              },
              {
                "name": "showInputs",
                "description": "Shows input fields below the slider for precise value entry.",
                "type": "boolean"
              },
              {
                "name": "value",
                "description": "The current value for single mode sliders.",
                "type": "number | undefined"
              },
              {
                "name": "startValue",
                "description": "The start value for range mode sliders.",
                "type": "number | undefined"
              },
              {
                "name": "endValue",
                "description": "The end value for range mode sliders.",
                "type": "number | undefined"
              },
              {
                "name": "label",
                "description": "The label text for the slider.",
                "type": "string"
              },
              {
                "name": "hideLabel",
                "description": "Hide the slider's label text.\nWhen hidden, still presents to screen readers.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-spatial-picker",
          "description": "A component that allows input of coordinates and rendering of map.\n---\n",
          "doc-url": "",
          "attributes": [
            {
              "name": "min-zoom",
              "description": "Minimum zoom level of the map.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "max-zoom",
              "description": "Maximum zoom level of the map.",
              "value": { "type": "number", "default": "23" }
            },
            {
              "name": "zoom",
              "description": "Initial map zoom level",
              "value": { "type": "number", "default": "1" }
            },
            {
              "name": "has-navigation",
              "description": "has map navigation toolbar",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "has-coord-tracker",
              "description": "has coordinate tracker",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "has-shape-selector",
              "description": "has shape selector",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hide-bounding-box-selection",
              "value": { "type": "boolean | undefined" }
            },
            {
              "name": "hide-point-selection",
              "value": { "type": "boolean | undefined" }
            },
            {
              "name": "initial-value",
              "description": "initialValue of spatial picker",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "hide-label",
              "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "label",
              "description": "spatial picker label",
              "value": { "type": "string", "default": "'Select Region'" }
            },
            {
              "name": "spatial-constraints",
              "description": "Spatial constraints for the map (default: '-180, -90, 180, 90')",
              "value": {
                "type": "string | undefined",
                "default": "'-180, -90, 180, 90'"
              }
            },
            {
              "name": "is-expanded",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "no-world-wrap",
              "description": "Disables infinite horizontal scrolling on the map (world wrapping)",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "inline",
              "description": "Whether the map should be shown inline, or as part of the normal content flow\nthe default is false, the map is positioned absolute under the input",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "show-map-on-focus",
              "description": "Whether the map should show automatically when the input is focused",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "url-state",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "help-text",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "minZoom",
                "description": "Minimum zoom level of the map.",
                "type": "number"
              },
              {
                "name": "maxZoom",
                "description": "Maximum zoom level of the map.",
                "type": "number"
              },
              {
                "name": "zoom",
                "description": "Initial map zoom level",
                "type": "number"
              },
              {
                "name": "hasNavigation",
                "description": "has map navigation toolbar",
                "type": "boolean"
              },
              {
                "name": "hasCoordTracker",
                "description": "has coordinate tracker",
                "type": "boolean"
              },
              {
                "name": "hasShapeSelector",
                "description": "has shape selector",
                "type": "boolean"
              },
              {
                "name": "hideBoundingBoxSelection",
                "type": "boolean | undefined"
              },
              { "name": "hidePointSelection", "type": "boolean | undefined" },
              {
                "name": "initialValue",
                "description": "initialValue of spatial picker",
                "type": "string"
              },
              {
                "name": "hideLabel",
                "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
                "type": "boolean"
              },
              {
                "name": "label",
                "description": "spatial picker label",
                "type": "string"
              },
              {
                "name": "spatialConstraints",
                "description": "Spatial constraints for the map (default: '-180, -90, 180, 90')",
                "type": "string | undefined"
              },
              { "name": "isExpanded", "type": "boolean" },
              {
                "name": "noWorldWrap",
                "description": "Disables infinite horizontal scrolling on the map (world wrapping)",
                "type": "boolean"
              },
              {
                "name": "inline",
                "description": "Whether the map should be shown inline, or as part of the normal content flow\nthe default is false, the map is positioned absolute under the input",
                "type": "boolean"
              },
              {
                "name": "showMapOnFocus",
                "description": "Whether the map should show automatically when the input is focused",
                "type": "boolean"
              },
              { "name": "urlState", "type": "boolean" },
              { "name": "helpText", "type": "string" },
              { "name": "mapValue", "type": "any" },
              { "name": "error", "type": "string" },
              { "name": "dropdownRef" },
              { "name": "terraInput", "type": "TerraInput" },
              { "name": "map", "type": "TerraMap" },
              { "name": "parsedConstraints" }
            ],
            "events": []
          }
        },
        {
          "name": "terra-status-indicator",
          "description": "Status indicators are dynamic labels that indicate the current state of a mission or project.\n---\n\n\n### **Slots:**\n - _default_ - The status label text.\n\n### **CSS Properties:**\n - **--terra-status-indicator-dot-color** - The color of the status dot. _(default: undefined)_\n- **--terra-status-indicator-label-color** - The color of the label text. _(default: undefined)_\n- **--terra-status-indicator-font-family** - The font family for the label. _(default: undefined)_\n- **--terra-status-indicator-font-size** - The font size for the label. _(default: undefined)_\n- **--terra-status-indicator-font-weight** - The font weight for the label. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **dot** - The colored status dot.\n- **label** - The text label.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The status variant. Determines the color of the indicator dot.",
              "value": {
                "type": "| 'active'\n        | 'completed'\n        | 'testing'\n        | 'future'",
                "default": "'active'"
              }
            },
            {
              "name": "dark",
              "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The status label text." }],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "variant",
                "description": "The status variant. Determines the color of the indicator dot.",
                "type": "| 'active'\n        | 'completed'\n        | 'testing'\n        | 'future'"
              },
              {
                "name": "dark",
                "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-stepper",
          "description": "Steppers display a visitor's progress through linear workflows and experiences with multiple steps.\n---\n\n\n### **Slots:**\n - _default_ - One or more `<terra-stepper-step>` elements to display in the stepper.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The stepper's variant. The default variant includes titles and optional captions for each step.\nThe condensed variant uses colored bars to represent each step and is useful when space is a concern.",
              "value": {
                "type": "'default' | 'condensed'",
                "default": "'default'"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "One or more `<terra-stepper-step>` elements to display in the stepper."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              {
                "name": "variant",
                "description": "The stepper's variant. The default variant includes titles and optional captions for each step.\nThe condensed variant uses colored bars to represent each step and is useful when space is a concern.",
                "type": "'default' | 'condensed'"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-stepper-step",
          "description": "A step within a stepper component that displays progress through a multi-step workflow.\n---\n\n\n### **Slots:**\n - _default_ - The step's caption (optional, only shown in default variant).\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **bar** - The progress bar indicator.\n- **content** - The content area containing title and caption.\n- **title** - The step's title.\n- **caption** - The step's caption.\n- **icon** - The checkmark icon (shown when completed).",
          "doc-url": "",
          "attributes": [
            {
              "name": "state",
              "description": "The step's state. \"completed\" shows a checkmark, \"current\" highlights the step as active,\nand \"upcoming\" shows the step as not yet reached.",
              "value": {
                "type": "'completed' | 'current' | 'upcoming'",
                "default": "'upcoming'"
              }
            },
            {
              "name": "title",
              "description": "The step's title. Should be short, preferably 1-2 words.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "hide-checkmark",
              "description": "When true, hides the checkmark icon for completed steps.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The step's caption (optional, only shown in default variant)."
            }
          ],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "state",
                "description": "The step's state. \"completed\" shows a checkmark, \"current\" highlights the step as active,\nand \"upcoming\" shows the step as not yet reached.",
                "type": "'completed' | 'current' | 'upcoming'"
              },
              {
                "name": "title",
                "description": "The step's title. Should be short, preferably 1-2 words.",
                "type": "string"
              },
              {
                "name": "hideCheckmark",
                "description": "When true, hides the checkmark icon for completed steps.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-tab",
          "description": "Tabs are used inside [tabs](/components/tabs) to represent and activate [tab panels](/components/tab-panel).\n---\n\n\n### **Events:**\n - **terra-close** - Emitted when the tab is closable and the close button is activated.\n\n### **Slots:**\n - _default_ - The tab's label. For icon-only tabs, place a `<terra-icon>` here.\n\n### **CSS Properties:**\n - **--terra-tab-*** - All tab design tokens from horizon.css are supported. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **close-button** - The close button icon.",
          "doc-url": "",
          "attributes": [
            {
              "name": "panel",
              "description": "The name of the tab panel this tab is associated with. The panel must be located in the same tabs component.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "active",
              "description": "Draws the tab in an active state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "closable",
              "description": "Makes the tab closable and shows a close button.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "disabled",
              "description": "Disables the tab and prevents selection.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "size",
              "description": "The tab's size. Inherits from the parent tabs component if not specified.",
              "value": { "type": "'large' | 'small'", "default": "'large'" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The tab's label. For icon-only tabs, place a `<terra-icon>` here."
            }
          ],
          "events": [
            {
              "name": "terra-close",
              "description": "Emitted when the tab is closable and the close button is activated."
            }
          ],
          "js": {
            "properties": [
              { "name": "tab", "type": "HTMLElement" },
              {
                "name": "panel",
                "description": "The name of the tab panel this tab is associated with. The panel must be located in the same tabs component.",
                "type": "string"
              },
              {
                "name": "active",
                "description": "Draws the tab in an active state.",
                "type": "boolean"
              },
              {
                "name": "closable",
                "description": "Makes the tab closable and shows a close button.",
                "type": "boolean"
              },
              {
                "name": "disabled",
                "description": "Disables the tab and prevents selection.",
                "type": "boolean"
              },
              {
                "name": "size",
                "description": "The tab's size. Inherits from the parent tabs component if not specified.",
                "type": "'large' | 'small'"
              }
            ],
            "events": [
              {
                "name": "terra-close",
                "description": "Emitted when the tab is closable and the close button is activated."
              }
            ]
          }
        },
        {
          "name": "terra-tab-panel",
          "description": "Tab panels are used inside [tabs](/components/tabs) to display tabbed content.\n---\n\n\n### **Slots:**\n - _default_ - The tab panel's content.\n\n### **CSS Properties:**\n - **--padding** - The tab panel's padding. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
          "doc-url": "",
          "attributes": [
            {
              "name": "name",
              "description": "The tab panel's name.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "active",
              "description": "When true, the tab panel will be shown.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [{ "name": "", "description": "The tab panel's content." }],
          "events": [],
          "js": {
            "properties": [
              {
                "name": "name",
                "description": "The tab panel's name.",
                "type": "string"
              },
              {
                "name": "active",
                "description": "When true, the tab panel will be shown.",
                "type": "boolean"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-tabs",
          "description": "Tabs organize content into a container that shows one section at a time.\n---\n\n\n### **Events:**\n - **terra-tab-show** - Emitted when a tab is shown.\n- **terra-tab-hide** - Emitted when a tab is hidden.\n\n### **Methods:**\n - **show(panel: _string_)** - Shows the specified tab panel.\n\n### **Slots:**\n - _default_ - Used for grouping tab panels in the tabs component. Must be `<terra-tab-panel>` elements.\n- **nav** - Used for grouping tabs in the tabs component. Must be `<terra-tab>` elements.\n\n### **CSS Properties:**\n - **--terra-tabs-indicator-color** - The color of the active tab indicator. _(default: undefined)_\n- **--terra-tabs-track-color** - The color of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n- **--terra-tabs-track-width** - The width of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The tabs' navigation container where tabs are slotted in.\n- **tabs** - The container that wraps the tabs.\n- **active-tab-indicator** - The line that highlights the currently selected tab.\n- **body** - The tabs' body where tab panels are slotted in.\n- **scroll-button** - The previous/next scroll buttons that show when tabs are scrollable.\n- **scroll-button--start** - The starting scroll button.\n- **scroll-button--end** - The ending scroll button.",
          "doc-url": "",
          "attributes": [
            {
              "name": "placement",
              "description": "The placement of the tabs.",
              "value": {
                "type": "'top' | 'bottom' | 'start' | 'end'",
                "default": "'top'"
              }
            },
            {
              "name": "activation",
              "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
              "value": { "type": "'auto' | 'manual'", "default": "'auto'" }
            },
            {
              "name": "no-scroll-controls",
              "description": "Disables the scroll arrows that appear when tabs overflow.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "fixed-scroll-controls",
              "description": "Prevent scroll buttons from being hidden when inactive.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "size",
              "description": "The size of the tabs. Can be overridden by individual tab components.",
              "value": { "type": "'large' | 'small'", "default": "'large'" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Used for grouping tab panels in the tabs component. Must be `<terra-tab-panel>` elements."
            },
            {
              "name": "nav",
              "description": "Used for grouping tabs in the tabs component. Must be `<terra-tab>` elements."
            }
          ],
          "events": [
            {
              "name": "terra-tab-show",
              "type": "{ name: String }",
              "description": "Emitted when a tab is shown."
            },
            {
              "name": "terra-tab-hide",
              "type": "{ name: String }",
              "description": "Emitted when a tab is hidden."
            }
          ],
          "js": {
            "properties": [
              { "name": "tabsElement", "type": "HTMLElement" },
              { "name": "body", "type": "HTMLSlotElement" },
              { "name": "nav", "type": "HTMLElement" },
              { "name": "indicator", "type": "HTMLElement" },
              {
                "name": "placement",
                "description": "The placement of the tabs.",
                "type": "'top' | 'bottom' | 'start' | 'end'"
              },
              {
                "name": "activation",
                "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
                "type": "'auto' | 'manual'"
              },
              {
                "name": "noScrollControls",
                "description": "Disables the scroll arrows that appear when tabs overflow.",
                "type": "boolean"
              },
              {
                "name": "fixedScrollControls",
                "description": "Prevent scroll buttons from being hidden when inactive.",
                "type": "boolean"
              },
              {
                "name": "size",
                "description": "The size of the tabs. Can be overridden by individual tab components.",
                "type": "'large' | 'small'"
              }
            ],
            "events": [
              {
                "name": "terra-tab-show",
                "type": "{ name: String }",
                "description": "Emitted when a tab is shown."
              },
              {
                "name": "terra-tab-hide",
                "type": "{ name: String }",
                "description": "Emitted when a tab is hidden."
              }
            ]
          }
        },
        {
          "name": "terra-tag",
          "description": "Tags are simple labels that help categorize items.\n---\n\n\n### **Events:**\n - **terra-click** - Emitted when a topic tag is clicked (unless href is provided).\n\n### **Slots:**\n - _default_ - The tag label text.\n- **icon** - Optional icon slot for content tags (overrides icon prop).\n\n### **CSS Properties:**\n - **--terra-tag-font-family** - The font family for the tag. _(default: undefined)_\n- **--terra-tag-font-size-small** - The font size for small tags. _(default: undefined)_\n- **--terra-tag-font-size-medium** - The font size for medium tags. _(default: undefined)_\n- **--terra-tag-font-size-large** - The font size for large tags. _(default: undefined)_\n- **--terra-tag-font-weight** - The font weight for the tag. _(default: undefined)_\n- **--terra-tag-font-weight-urgent** - The font weight for urgent tags. _(default: undefined)_\n- **--terra-tag-color** - The text color of the tag. _(default: undefined)_\n- **--terra-tag-background-color** - The background color of the tag. _(default: undefined)_\n- **--terra-tag-border-color** - The border color for topic tags. _(default: undefined)_\n- **--terra-tag-border-color-hover** - The border color for topic tags on hover. _(default: undefined)_\n- **--terra-tag-background-color-hover** - The background color for topic tags on hover. _(default: undefined)_\n- **--terra-tag-icon-border-color** - The border color for content tag icons. _(default: undefined)_\n- **--terra-tag-icon-size-small** - The size of small content tag icons. _(default: undefined)_\n- **--terra-tag-icon-size-medium** - The size of medium content tag icons. _(default: undefined)_\n- **--terra-tag-icon-size-large** - The size of large content tag icons. _(default: undefined)_\n- **--terra-tag-icon-inner-size-small** - The inner icon size for small content tags. _(default: undefined)_\n- **--terra-tag-icon-inner-size-medium** - The inner icon size for medium content tags. _(default: undefined)_\n- **--terra-tag-icon-inner-size-large** - The inner icon size for large content tags. _(default: undefined)_\n- **--terra-tag-urgent-color** - The text color for urgent tags. _(default: undefined)_\n- **--terra-tag-urgent-background-color** - The background color for urgent tags. _(default: undefined)_\n- **--terra-tag-padding-small** - The padding for small topic/urgent tags. _(default: undefined)_\n- **--terra-tag-padding-medium** - The padding for medium topic/urgent tags. _(default: undefined)_\n- **--terra-tag-padding-large** - The padding for large topic/urgent tags. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The icon element (content tags only).\n- **label** - The text label.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The tag variant. Determines the styling and behavior.",
              "value": {
                "type": "'content' | 'topic' | 'urgent'",
                "default": "'content'"
              }
            },
            {
              "name": "size",
              "description": "The size of the tag.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "icon",
              "description": "The icon name for content tags. Used with the default icon library.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "iconLibrary",
              "description": "The icon library to use for content tags.",
              "value": {
                "type": "'default' | 'heroicons' | string",
                "default": "'default'"
              }
            },
            {
              "name": "stack",
              "description": "When true, tags will stack vertically instead of sitting side by side.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "dark",
              "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "href",
              "description": "The href for topic tags. If provided, the tag will be rendered as a link.",
              "value": { "type": "string | undefined" }
            }
          ],
          "slots": [
            { "name": "", "description": "The tag label text." },
            {
              "name": "icon",
              "description": "Optional icon slot for content tags (overrides icon prop)."
            }
          ],
          "events": [
            {
              "name": "terra-click",
              "description": "Emitted when a topic tag is clicked (unless href is provided)."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "variant",
                "description": "The tag variant. Determines the styling and behavior.",
                "type": "'content' | 'topic' | 'urgent'"
              },
              {
                "name": "size",
                "description": "The size of the tag.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "icon",
                "description": "The icon name for content tags. Used with the default icon library.",
                "type": "string | undefined"
              },
              {
                "name": "iconLibrary",
                "description": "The icon library to use for content tags.",
                "type": "'default' | 'heroicons' | string"
              },
              {
                "name": "stack",
                "description": "When true, tags will stack vertically instead of sitting side by side.",
                "type": "boolean"
              },
              {
                "name": "dark",
                "description": "When true, forces dark mode styles regardless of system preference. Useful when placing the component on a dark background.",
                "type": "boolean"
              },
              {
                "name": "href",
                "description": "The href for topic tags. If provided, the tag will be rendered as a link.",
                "type": "string | undefined"
              }
            ],
            "events": [
              {
                "name": "terra-click",
                "description": "Emitted when a topic tag is clicked (unless href is provided)."
              }
            ]
          }
        },
        {
          "name": "terra-textarea",
          "description": "A textarea component with consistent styling across the design system.\n---\n\n\n### **Events:**\n - **terra-input** - Emitted when the textarea receives input.\n- **terra-change** - Emitted when an alteration to the control's value is committed by the user.\n- **terra-focus** - Emitted when the textarea gains focus.\n- **terra-blur** - Emitted when the textarea loses focus.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - **help-text** - Text that describes how to use the textarea. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **textarea** - The internal textarea control.\n- **form-control-help-text** - The help text's wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "name", "value": { "type": "string", "default": "''" } },
            { "name": "value", "value": { "type": "string", "default": "''" } },
            {
              "name": "placeholder",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "disabled",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "readonly",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "required",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "autocomplete",
              "value": { "type": "string | undefined" }
            },
            { "name": "minlength", "value": { "type": "number | undefined" } },
            { "name": "maxlength", "value": { "type": "number | undefined" } },
            { "name": "rows", "value": { "type": "number | undefined" } },
            { "name": "cols", "value": { "type": "number | undefined" } },
            { "name": "label", "value": { "type": "string", "default": "''" } },
            {
              "name": "hide-label",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "help-text",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "resize",
              "value": {
                "type": "'none' | 'both' | 'horizontal' | 'vertical'",
                "default": "'vertical'"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            {
              "name": "help-text",
              "description": "Text that describes how to use the textarea. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-input",
              "description": "Emitted when the textarea receives input."
            },
            {
              "name": "terra-change",
              "description": "Emitted when an alteration to the control's value is committed by the user."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the textarea gains focus."
            },
            {
              "name": "terra-blur",
              "description": "Emitted when the textarea loses focus."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "textarea", "type": "HTMLTextAreaElement" },
              { "name": "hasFocus", "type": "boolean" },
              { "name": "name", "type": "string" },
              { "name": "value", "type": "string" },
              { "name": "placeholder", "type": "string" },
              { "name": "disabled", "type": "boolean" },
              { "name": "readonly", "type": "boolean" },
              { "name": "required", "type": "boolean" },
              { "name": "autocomplete", "type": "string | undefined" },
              { "name": "minlength", "type": "number | undefined" },
              { "name": "maxlength", "type": "number | undefined" },
              { "name": "rows", "type": "number | undefined" },
              { "name": "cols", "type": "number | undefined" },
              { "name": "label", "type": "string" },
              { "name": "hideLabel", "type": "boolean" },
              { "name": "helpText", "type": "string" },
              {
                "name": "resize",
                "type": "'none' | 'both' | 'horizontal' | 'vertical'"
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "string"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-input",
                "description": "Emitted when the textarea receives input."
              },
              {
                "name": "terra-change",
                "description": "Emitted when an alteration to the control's value is committed by the user."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the textarea gains focus."
              },
              {
                "name": "terra-blur",
                "description": "Emitted when the textarea loses focus."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-time-average-map",
          "description": "\n---\n",
          "doc-url": "",
          "attributes": [
            { "name": "collection", "value": { "type": "string | undefined" } },
            { "name": "variable", "value": { "type": "string | undefined" } },
            { "name": "start-date", "value": { "type": "string | undefined" } },
            { "name": "end-date", "value": { "type": "string | undefined" } },
            { "name": "location", "value": { "type": "string | undefined" } },
            { "name": "bearer-token", "value": { "type": "string" } },
            {
              "name": "long_name",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "color-map-name",
              "value": { "type": "string", "default": "'viridis'" }
            },
            { "name": "opacity", "value": { "type": "number", "default": "1" } }
          ],
          "events": [],
          "js": {
            "properties": [
              { "name": "collection", "type": "string | undefined" },
              { "name": "variable", "type": "string | undefined" },
              { "name": "startDate", "type": "string | undefined" },
              { "name": "endDate", "type": "string | undefined" },
              { "name": "location", "type": "string | undefined" },
              { "name": "bearerToken", "type": "string" },
              { "name": "long_name", "type": "string" },
              { "name": "colorMapName", "type": "string" },
              { "name": "opacity", "type": "number" },
              { "name": "catalogVariable", "type": "Variable" },
              { "name": "pixelValue", "type": "string" },
              { "name": "pixelCoordinates", "type": "string" },
              { "name": "metadata", "type": "{ [key: string]: string }" },
              { "name": "toggleState", "type": "boolean" },
              { "name": "minimized", "type": "boolean" },
              { "name": "noDataValue", "type": "number" },
              { "name": "min", "type": "string" },
              { "name": "max", "type": "string" },
              {
                "name": "legendValues",
                "type": "{ value: string; rgb: string }[]"
              },
              { "name": "_authController" },
              { "name": "colormaps", "type": "array" },
              { "name": "plotData", "type": "object" },
              { "name": "layout", "type": "object" },
              { "name": "harmonyJobId", "type": "string | undefined" },
              {
                "name": "_fetchVariableTask",
                "description": "anytime the collection or variable changes, we'll fetch the variable from the catalog to get all of it's metadata"
              }
            ],
            "events": []
          }
        },
        {
          "name": "terra-time-series",
          "description": "A component for visualizing time series data using the GES DISC Giovanni API.\n---\n\n\n### **Events:**\n - **terra-date-range-change** - Emitted whenever the date range is modified\n- **terra-time-series-data-change** - Emitted whenever time series data has been fetched from Giovanni",
          "doc-url": "",
          "attributes": [
            {
              "name": "variable-entry-id",
              "description": "a variable entry ID (ex: GPM_3IMERGHH_06_precipitationCal)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "variable-entry-ids",
              "description": "variable entry IDs for multi-variable time series plotting\n(ex: [\"GPM_3IMERGHH_06_precipitationCal\", \"GPM_3IMERGHH_06_probLiquidPrecipitation\"])",
              "value": { "type": "string[]", "default": "[]" }
            },
            {
              "name": "collection",
              "description": "a collection entry id (ex: GPM_3IMERGHH_06)\nonly required if you don't include a variableEntryId",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "variable",
              "description": "a variable short name to plot (ex: precipitationCal)\nonly required if you don't include a variableEntryId",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "start-date",
              "description": "The start date for the time series plot. (ex: 2021-01-01)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "end-date",
              "description": "The end date for the time series plot. (ex: 2021-01-01)",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "location",
              "description": "The point location in \"lat,lon\" format.\nOr the bounding box in \"west,south,east,north\" format.",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "show-citation",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "application-citation",
              "description": "if you include an application citation, it will be displayed in the citation panel alongside the dataset citation",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "disable-auto-fetch",
              "description": "When true, disables automatic data fetching when the user zooms, pans, or otherwise interacts with the plot.\nWhen disabled, the plot will only show the data for the initial date range and won't fetch new data on plot interactions.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "bearer-token",
              "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
              "value": { "type": "string | undefined" }
            },
            {
              "name": "mobile-view",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hide-toolbar",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "product-label",
              "value": { "type": "string | undefined" }
            }
          ],
          "events": [
            {
              "name": "terra-date-range-change",
              "type": "CustomEvent",
              "description": "Emitted whenever the date range is modified"
            },
            {
              "name": "terra-time-series-data-change",
              "description": "Emitted whenever time series data has been fetched from Giovanni"
            }
          ],
          "js": {
            "properties": [
              {
                "name": "variableEntryId",
                "description": "a variable entry ID (ex: GPM_3IMERGHH_06_precipitationCal)",
                "type": "string | undefined"
              },
              {
                "name": "variableEntryIds",
                "description": "variable entry IDs for multi-variable time series plotting\n(ex: [\"GPM_3IMERGHH_06_precipitationCal\", \"GPM_3IMERGHH_06_probLiquidPrecipitation\"])",
                "type": "string[]"
              },
              {
                "name": "collection",
                "description": "a collection entry id (ex: GPM_3IMERGHH_06)\nonly required if you don't include a variableEntryId",
                "type": "string | undefined"
              },
              {
                "name": "variable",
                "description": "a variable short name to plot (ex: precipitationCal)\nonly required if you don't include a variableEntryId",
                "type": "string | undefined"
              },
              {
                "name": "startDate",
                "description": "The start date for the time series plot. (ex: 2021-01-01)",
                "type": "string | undefined"
              },
              {
                "name": "endDate",
                "description": "The end date for the time series plot. (ex: 2021-01-01)",
                "type": "string | undefined"
              },
              {
                "name": "location",
                "description": "The point location in \"lat,lon\" format.\nOr the bounding box in \"west,south,east,north\" format.",
                "type": "string | undefined"
              },
              { "name": "showCitation", "type": "boolean" },
              {
                "name": "applicationCitation",
                "description": "if you include an application citation, it will be displayed in the citation panel alongside the dataset citation",
                "type": "string | undefined"
              },
              {
                "name": "disableAutoFetch",
                "description": "When true, disables automatic data fetching when the user zooms, pans, or otherwise interacts with the plot.\nWhen disabled, the plot will only show the data for the initial date range and won't fetch new data on plot interactions.",
                "type": "boolean"
              },
              {
                "name": "bearerToken",
                "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
                "type": "string | undefined"
              },
              { "name": "mobileView", "type": "boolean" },
              { "name": "hideToolbar", "type": "boolean" },
              { "name": "productLabel", "type": "string | undefined" },
              { "name": "plot", "type": "TerraPlot" },
              { "name": "plotToolbar", "type": "TerraPlotToolbar" },
              { "name": "catalogVariable", "type": "Variable" },
              { "name": "catalogVariables", "type": "Variable[]" },
              {
                "name": "showDataPointWarning",
                "description": "if true, we'll show a warning to the user about them requesting a large number of data points",
                "type": "boolean"
              },
              {
                "name": "estimatedDataPoints",
                "description": "stores the estimated",
                "type": "number"
              },
              { "name": "_authController" },
              { "name": "_fetchVariableTask" }
            ],
            "events": [
              {
                "name": "terra-date-range-change",
                "type": "CustomEvent",
                "description": "Emitted whenever the date range is modified"
              },
              {
                "name": "terra-time-series-data-change",
                "description": "Emitted whenever time series data has been fetched from Giovanni"
              }
            ]
          }
        },
        {
          "name": "terra-toast",
          "description": "Toasts are used to display brief, non-intrusive notifications that appear temporarily.\n---\n\n\n### **Events:**\n - **terra-show** - Emitted when the toast opens.\n- **terra-after-show** - Emitted after the toast opens and all animations are complete.\n- **terra-hide** - Emitted when the toast closes.\n- **terra-after-hide** - Emitted after the toast closes and all animations are complete.\n\n### **Methods:**\n - **toast()** - Displays the toast as a notification. This will move the toast out of its position in the DOM and, when\ndismissed, it will be removed from the DOM completely. By storing a reference to the toast, you can reuse it by\ncalling this method again. The returned promise will resolve after the toast is hidden.\n- **show()** - Shows the toast.\n- **hide()** - Hides the toast.\n- **notify(message: _string_, variant: _'primary' | 'success' | 'neutral' | 'warning' | 'danger'_, icon: _string_, duration): __** - Creates a toast notification imperatively. This is a convenience method that creates a toast, appends it to the\nbody, and displays it as a notification.\n\n### **Slots:**\n - _default_ - The toast's main content.\n- **icon** - An icon to show in the toast. Works best with `<terra-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper, an `<terra-alert>` element.\n- **base__base** - The alert's exported `base` part.\n- **base__icon** - The alert's exported `icon` part.\n- **base__message** - The alert's exported `message` part.",
          "doc-url": "",
          "attributes": [
            {
              "name": "variant",
              "description": "The toast's theme variant.",
              "value": {
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'danger'",
                "default": "'primary'"
              }
            },
            {
              "name": "duration",
              "description": "The length of time, in milliseconds, the toast will show before closing itself. If the user interacts with\nthe toast before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `3000` (3 seconds).",
              "value": { "type": "number", "default": "3000" }
            },
            {
              "name": "closable",
              "description": "Enables a close button that allows the user to dismiss the toast.",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "countdown",
              "description": "Enables a countdown that indicates the remaining time the toast will be displayed.\nTypically used for toasts with relatively long duration.",
              "value": { "type": "'rtl' | 'ltr' | undefined" }
            }
          ],
          "slots": [
            { "name": "", "description": "The toast's main content." },
            {
              "name": "icon",
              "description": "An icon to show in the toast. Works best with `<terra-icon>`."
            }
          ],
          "events": [
            {
              "name": "terra-show",
              "description": "Emitted when the toast opens."
            },
            {
              "name": "terra-after-show",
              "description": "Emitted after the toast opens and all animations are complete."
            },
            {
              "name": "terra-hide",
              "description": "Emitted when the toast closes."
            },
            {
              "name": "terra-after-hide",
              "description": "Emitted after the toast closes and all animations are complete."
            }
          ],
          "js": {
            "properties": [
              { "name": "alert", "type": "TerraAlert | null" },
              {
                "name": "variant",
                "description": "The toast's theme variant.",
                "type": "| 'primary'\n        | 'success'\n        | 'neutral'\n        | 'warning'\n        | 'danger'"
              },
              {
                "name": "duration",
                "description": "The length of time, in milliseconds, the toast will show before closing itself. If the user interacts with\nthe toast before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `3000` (3 seconds).",
                "type": "number"
              },
              {
                "name": "closable",
                "description": "Enables a close button that allows the user to dismiss the toast.",
                "type": "boolean"
              },
              {
                "name": "countdown",
                "description": "Enables a countdown that indicates the remaining time the toast will be displayed.\nTypically used for toasts with relatively long duration.",
                "type": "'rtl' | 'ltr' | undefined"
              }
            ],
            "events": [
              {
                "name": "terra-show",
                "description": "Emitted when the toast opens."
              },
              {
                "name": "terra-after-show",
                "description": "Emitted after the toast opens and all animations are complete."
              },
              {
                "name": "terra-hide",
                "description": "Emitted when the toast closes."
              },
              {
                "name": "terra-after-hide",
                "description": "Emitted after the toast closes and all animations are complete."
              }
            ]
          }
        },
        {
          "name": "terra-toggle",
          "description": "Switches allow the user to toggle an option on or off.\n---\n\n\n### **Events:**\n - **terra-blur** - Emitted when the control loses focus.\n- **terra-change** - Emitted when the control's checked state changes.\n- **terra-input** - Emitted when the control receives input.\n- **terra-focus** - Emitted when the control gains focus.\n- **terra-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the switch.\n- **focus(options: _FocusOptions_)** - Sets focus on the switch.\n- **blur()** - Removes focus from the switch.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The switch's label.\n- **help-text** - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--width** - The width of the switch. _(default: undefined)_\n- **--height** - The height of the switch. _(default: undefined)_\n- **--thumb-size** - The size of the thumb. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The control that houses the switch's thumb.\n- **thumb** - The switch's thumb.\n- **label** - The switch's label.\n- **form-control-help-text** - The help text's wrapper.",
          "doc-url": "",
          "attributes": [
            { "name": "title", "value": { "type": "string", "default": "''" } },
            {
              "name": "name",
              "description": "The name of the switch, submitted as a name/value pair with form data.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "value",
              "description": "The current value of the switch, submitted as a name/value pair with form data.",
              "value": { "type": "string" }
            },
            {
              "name": "size",
              "description": "The switch's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'",
                "default": "'medium'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the switch.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "checked",
              "description": "Draws the switch in a checked state.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "required",
              "description": "Makes the switch a required field.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "help-text",
              "description": "The switch's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": { "type": "string", "default": "''" }
            }
          ],
          "slots": [
            { "name": "", "description": "The switch's label." },
            {
              "name": "help-text",
              "description": "Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute."
            }
          ],
          "events": [
            {
              "name": "terra-blur",
              "description": "Emitted when the control loses focus."
            },
            {
              "name": "terra-change",
              "description": "Emitted when the control's checked state changes."
            },
            {
              "name": "terra-input",
              "description": "Emitted when the control receives input."
            },
            {
              "name": "terra-focus",
              "description": "Emitted when the control gains focus."
            },
            {
              "name": "terra-invalid",
              "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
            }
          ],
          "js": {
            "properties": [
              { "name": "input", "type": "HTMLInputElement" },
              { "name": "title", "type": "string" },
              {
                "name": "name",
                "description": "The name of the switch, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "value",
                "description": "The current value of the switch, submitted as a name/value pair with form data.",
                "type": "string"
              },
              {
                "name": "size",
                "description": "The switch's size.",
                "type": "'small' | 'medium' | 'large'"
              },
              {
                "name": "disabled",
                "description": "Disables the switch.",
                "type": "boolean"
              },
              {
                "name": "checked",
                "description": "Draws the switch in a checked state.",
                "type": "boolean"
              },
              {
                "name": "defaultChecked",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "type": "boolean"
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "type": "string"
              },
              {
                "name": "required",
                "description": "Makes the switch a required field.",
                "type": "boolean"
              },
              {
                "name": "helpText",
                "description": "The switch's help text. If you need to display HTML, use the `help-text` slot instead.",
                "type": "string"
              },
              {
                "name": "validity",
                "description": "Gets the validity state object"
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message"
              }
            ],
            "events": [
              {
                "name": "terra-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "terra-change",
                "description": "Emitted when the control's checked state changes."
              },
              {
                "name": "terra-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "terra-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "terra-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              }
            ]
          }
        },
        {
          "name": "terra-tooltip",
          "description": "Tooltips display brief, contextual help on hover or focus. Popovers show richer supporting content.\n---\n\n\n### **Events:**\n - **terra-show** - Emitted when the tooltip or popover begins to show.\n- **terra-after-show** - Emitted after it has shown and all animations are complete.\n- **terra-hide** - Emitted when the tooltip or popover begins to hide.\n- **terra-after-hide** - Emitted after it has hidden and all animations are complete.\n\n### **Methods:**\n - **show()** - Shows the tooltip or popover.\n- **hide()** - Hides the tooltip or popover.\n\n### **Slots:**\n - _default_ - The tooltip or popover target element. Avoid slotting in more than one element, as subsequent ones will be ignored.\n- **content** - The content to render in the tooltip or popover. Alternatively, you can use the `content` attribute.\n- **image** - Optional image slot for popovers. When provided, the image will span the full width of the popover.\n\n### **CSS Properties:**\n - **--max-width** - The maximum width of the tooltip before its content will wrap. _(default: undefined)_\n- **--hide-delay** - The amount of time to wait before hiding the tooltip when hovering. _(default: undefined)_\n- **--show-delay** - The amount of time to wait before showing the tooltip when hovering. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper, an `<terra-popup>` element.\n- **base__popup** - The popup's exported `popup` part. Use this to target the tooltip's popup container.\n- **base__arrow** - The popup's exported `arrow` part. Use this to target the tooltip's arrow.\n- **body** - The tooltip or popover body where its content is rendered.",
          "doc-url": "",
          "attributes": [
            {
              "name": "content",
              "description": "The tooltip or popover content. If you need to display HTML, use the `content` slot instead.",
              "value": { "type": "string", "default": "''" }
            },
            {
              "name": "variant",
              "description": "The variant of the component. `tooltip` shows compact inline help, while `popover` shows a larger card-style panel\nthat can contain images and links.",
              "value": {
                "type": "'tooltip' | 'popover'",
                "default": "'tooltip'"
              }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\ninside of the viewport.",
              "value": {
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'",
                "default": "'top'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the tooltip so it won't show when triggered.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the tooltip or popover away from its target.",
              "value": { "type": "number", "default": "8" }
            },
            {
              "name": "open",
              "description": "Indicates whether or not the tooltip or popover is open. You can use this in lieu of the show/hide methods.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the tooltip along its target.",
              "value": { "type": "number", "default": "0" }
            },
            {
              "name": "trigger",
              "description": "Controls how the tooltip or popover is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\noptions can be passed by separating them with a space. When manual is used, the tooltip must be activated\nprogrammatically.",
              "value": { "type": "string", "default": "'hover focus'" }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n`overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\nscenarios.",
              "value": { "type": "boolean", "default": "false" }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "The tooltip or popover target element. Avoid slotting in more than one element, as subsequent ones will be ignored."
            },
            {
              "name": "content",
              "description": "The content to render in the tooltip or popover. Alternatively, you can use the `content` attribute."
            },
            {
              "name": "image",
              "description": "Optional image slot for popovers. When provided, the image will span the full width of the popover."
            }
          ],
          "events": [
            {
              "name": "terra-show",
              "description": "Emitted when the tooltip or popover begins to show."
            },
            {
              "name": "terra-after-show",
              "description": "Emitted after it has shown and all animations are complete."
            },
            {
              "name": "terra-hide",
              "description": "Emitted when the tooltip or popover begins to hide."
            },
            {
              "name": "terra-after-hide",
              "description": "Emitted after it has hidden and all animations are complete."
            }
          ],
          "js": {
            "properties": [
              { "name": "defaultSlot", "type": "HTMLSlotElement" },
              { "name": "body", "type": "HTMLElement" },
              { "name": "popup", "type": "TerraPopup" },
              {
                "name": "content",
                "description": "The tooltip or popover content. If you need to display HTML, use the `content` slot instead.",
                "type": "string"
              },
              {
                "name": "variant",
                "description": "The variant of the component. `tooltip` shows compact inline help, while `popover` shows a larger card-style panel\nthat can contain images and links.",
                "type": "'tooltip' | 'popover'"
              },
              {
                "name": "placement",
                "description": "The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\ninside of the viewport.",
                "type": "| 'top'\n        | 'top-start'\n        | 'top-end'\n        | 'right'\n        | 'right-start'\n        | 'right-end'\n        | 'bottom'\n        | 'bottom-start'\n        | 'bottom-end'\n        | 'left'\n        | 'left-start'\n        | 'left-end'"
              },
              {
                "name": "disabled",
                "description": "Disables the tooltip so it won't show when triggered.",
                "type": "boolean"
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the tooltip or popover away from its target.",
                "type": "number"
              },
              {
                "name": "open",
                "description": "Indicates whether or not the tooltip or popover is open. You can use this in lieu of the show/hide methods.",
                "type": "boolean"
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the tooltip along its target.",
                "type": "number"
              },
              {
                "name": "trigger",
                "description": "Controls how the tooltip or popover is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\noptions can be passed by separating them with a space. When manual is used, the tooltip must be activated\nprogrammatically.",
                "type": "string"
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n`overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\nscenarios.",
                "type": "boolean"
              }
            ],
            "events": [
              {
                "name": "terra-show",
                "description": "Emitted when the tooltip or popover begins to show."
              },
              {
                "name": "terra-after-show",
                "description": "Emitted after it has shown and all animations are complete."
              },
              {
                "name": "terra-hide",
                "description": "Emitted when the tooltip or popover begins to hide."
              },
              {
                "name": "terra-after-hide",
                "description": "Emitted after it has hidden and all animations are complete."
              }
            ]
          }
        },
        {
          "name": "terra-variable-combobox",
          "description": "Fuzzy-search for dataset variables in combobox with list autocomplete.\n---\n\n\n### **Events:**\n - **terra-combobox-change** - Emitted when an option is selected.\n\n### **Methods:**\n - **valueChanged(oldValue: _string_, newValue: _string_)** - This component's value is read by other components.\nInternally, the variable metdata has slight differences that require adapting.\n\n### **CSS Properties:**\n - **--host-height** - The height of the host element. _(default: undefined)_\n- **--help-height** - The height of the search help element. _(default: undefined)_\n- **--label-height** - The height of the input's label element. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - A `search` element, the component's base.\n- **combobox** - An `input` element used for searching.\n- **button** - A `button` used for toggling the listbox's visibility.\n- **listbox** - A `ul` that holds the clickable options.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "Label the combobox with this.",
              "value": { "type": "string", "default": "'Search for Variables'" }
            },
            {
              "name": "placeholder",
              "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
              "value": { "type": "string" }
            },
            {
              "name": "hide-help",
              "description": "Hide the combobox's help text.\nWhen hidden, not rendered at all.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "hide-label",
              "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "use-tags",
              "description": "Determines if the variable combobox uses tags or plain text to display the query.",
              "value": { "type": "boolean", "default": "false" }
            },
            {
              "name": "value",
              "description": "Represents the EntryID (<collection-name>_<variable-name>) of the selected variable.\nOther components (like the time-series graphing component) will use this.",
              "value": { "type": "string" }
            },
            {
              "name": "bearer-token",
              "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
              "value": { "type": "string" }
            }
          ],
          "events": [
            {
              "name": "terra-combobox-change",
              "description": "Emitted when an option is selected."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "label",
                "description": "Label the combobox with this.",
                "type": "string"
              },
              {
                "name": "placeholder",
                "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
                "type": "string"
              },
              {
                "name": "hideHelp",
                "description": "Hide the combobox's help text.\nWhen hidden, not rendered at all.",
                "type": "boolean"
              },
              {
                "name": "hideLabel",
                "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
                "type": "boolean"
              },
              {
                "name": "useTags",
                "description": "Determines if the variable combobox uses tags or plain text to display the query.",
                "type": "boolean"
              },
              {
                "name": "value",
                "description": "Represents the EntryID (<collection-name>_<variable-name>) of the selected variable.\nOther components (like the time-series graphing component) will use this.",
                "type": "string"
              },
              {
                "name": "bearerToken",
                "description": "The token to be used for authentication with remote servers.\nThe component provides the header \"Authorization: Bearer\" (the request header and authentication scheme).\nThe property's value will be inserted after \"Bearer\" (the authentication scheme).",
                "type": "string"
              },
              { "name": "isExpanded", "type": "boolean" },
              { "name": "query" },
              { "name": "searchResults", "type": "ListItem[]" },
              { "name": "tags", "type": "string[]" },
              { "name": "tagContainerWidth", "type": "number" }
            ],
            "events": [
              {
                "name": "terra-combobox-change",
                "description": "Emitted when an option is selected."
              }
            ]
          }
        },
        {
          "name": "terra-variable-keyword-search",
          "description": "Fuzzy-search for dataset keywords in combobox with list autocomplete.\n---\n\n\n### **Events:**\n - **terra-variable-keyword-search-change** - Emitted when an option is selected.\n- **terra-search** - Emitted when the component is triggering a search (like a form triggering submit).\n\n### **CSS Properties:**\n - **--host-height** - The height of the host element. _(default: undefined)_\n- **--label-height** - The height of the input's label element. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - A `search` element, the component's base.\n- **combobox** - An `input` element used for searching.\n- **button** - A `button` used for toggling the listbox's visibility.\n- **listbox** - A `ul` that holds the clickable options.",
          "doc-url": "",
          "attributes": [
            {
              "name": "label",
              "description": "Label the combobox with this.",
              "value": {
                "type": "string",
                "default": "'Enter search terms (e.g., precipitation, AOD)'"
              }
            },
            {
              "name": "placeholder",
              "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
              "value": { "type": "string" }
            },
            {
              "name": "hide-label",
              "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
              "value": { "type": "boolean", "default": "true" }
            },
            {
              "name": "searchConfig",
              "description": "type can be `Boolean`, `String`, `Number`, `Object`, or `Array`",
              "value": {
                "type": "object",
                "default": "{\n        //* @see {@link https://www.fusejs.io/api/options.html#options}\n        keys: ['id'],\n        useExtendedSearch: true,\n    }"
              }
            },
            { "name": "value", "value": { "type": "string" } }
          ],
          "events": [
            {
              "name": "terra-variable-keyword-search-change",
              "description": "Emitted when an option is selected."
            },
            {
              "name": "terra-search",
              "description": "Emitted when the component is triggering a search (like a form triggering submit)."
            }
          ],
          "js": {
            "properties": [
              {
                "name": "label",
                "description": "Label the combobox with this.",
                "type": "string"
              },
              {
                "name": "placeholder",
                "description": "Set a placeholder for the combobox with this.\nDefaults to the label's value.",
                "type": "string"
              },
              {
                "name": "hideLabel",
                "description": "Hide the combobox's label text.\nWhen hidden, still presents to screen readers.",
                "type": "boolean"
              },
              {
                "name": "searchConfig",
                "description": "type can be `Boolean`, `String`, `Number`, `Object`, or `Array`",
                "type": "object"
              },
              { "name": "value", "type": "string" },
              { "name": "isExpanded", "type": "boolean" },
              { "name": "query" },
              { "name": "searchResults", "type": "ListItem[]" }
            ],
            "events": [
              {
                "name": "terra-variable-keyword-search-change",
                "description": "Emitted when an option is selected."
              },
              {
                "name": "terra-search",
                "description": "Emitted when the component is triggering a search (like a form triggering submit)."
              }
            ]
          }
        }
      ]
    }
  }
}
