{
  "timestamp": "2024-04-07T10:33:59",
  "compiler": {
    "name": "@stencil/core",
    "version": "4.13.0",
    "typescriptVersion": "5.4.2"
  },
  "components": [
    {
      "filePath": "src/components/go-accordion/go-accordion.tsx",
      "encapsulation": "none",
      "tag": "go-accordion",
      "readme": "---\ntitle: Accordion\n---\n\n# Accordion <span class=\"text-size-0\">`go-accordion`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Accordions help users reduce cluster by showing only the sections that they are interested in.</div>\n\n## Accessibility\n\n`go-accordion` and `go-accordion-item` components are implemented following the [WAI-ARIA Authoring Practices 1.1](https://www.w3.org/TR/wai-aria-practices-1.1/#accordion) guidelines.\n\n\n## Demo\n\n### Single mode\n\nBy default only one `<go-accordion-item>` element inside a `<go-accordion>` can be expanded at any given time. When clicked on a different `<go-accordion-item>`, the active one will be collapsed and the clicked one will be expanded.\n\n<demo-frame component=\"go-accordion\" demo=\"single\"></demo-frame>\n\n### Multiple mode\n\nThere are times when you need multiple items to be open at the same time. Just add `multiple` attribute to the `<go-accordion>` element.\n\n<demo-frame component=\"go-accordion\" demo=\"multiple\"></demo-frame>\n\n### Nested\n\nNested accordions are also possible, the components will figure out which `<go-accordion>` component is being interacted with.\n\n<demo-frame component=\"go-accordion\" demo=\"nested\"></demo-frame>\n\n### Customisation\n\nThere are 2 slots you can use to customise each item. `slot=\"heading\"` and `slot=\"arrow\"`\n\n<demo-frame component=\"go-accordion\" demo=\"slots\"></demo-frame>\n\n\n",
      "docs": "---\ntitle: Accordion\n---",
      "docsTags": [],
      "usage": {
        "multiple": "<div class=\"container\">\n  <go-accordion multiple>\n    <go-accordion-item heading=\"We\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Are\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Groot\"> Lorem ipsum dolor sit </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "nested": "<div class=\"container\">\n  <go-accordion>\n    <go-accordion-item heading=\"Accordions can be nested too\">\n      Lorem ipsum dolor sit\n\n      <go-accordion id=\"inner-accordion\">\n        <go-accordion-item heading=\"Nested\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n\n        <go-accordion-item heading=\"Accordions\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n        <go-accordion-item heading=\"Are pretty cool\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n      </go-accordion>\n\n    </go-accordion-item>\n    <go-accordion-item heading=\"Yayyy\"\">\n      Lorem ipsum dolor sit\n    </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "single": "<div class=\"container\">\n  <go-accordion id=\"inner-accordion\">\n    <go-accordion-item heading=\"I\" active> Add <code>active</code> attribute to open an item by default. </go-accordion-item>\n    <go-accordion-item heading=\"Am\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Groot\"> Lorem ipsum dolor sit </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "slots": "<div class=\"container\">\n  <go-accordion>\n    <go-accordion-item>\n      <div slot=\"heading\">\n        <mark> Use <code>slot=\"heading\"</code> to customise heading </mark>\n      </div>\n      Lorem ipsum dolor sit\n    </go-accordion-item>\n    <go-accordion-item heading=\"Customise arrow\">\n      <div slot=\"arrow\" style=\"text-align: center; color: red; width: 60px; height: 60px; font-size: 60px; line-height: 60px\">&#10084;</div>\n      Use <code>slot=\"arrow\"</code> to customise arrow\n    </go-accordion-item>\n  </go-accordion>\n</div>\n"
      },
      "props": [
        {
          "name": "multiple",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "multiple",
          "reflectToAttr": false,
          "docs": "If true, multiple `<go-accordion-item>`s can be opened at the same time",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [
        {
          "event": "opened",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--heading-bg-color",
          "annotation": "prop",
          "docs": "Heading background colour - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--heading-bg-color-hover",
          "annotation": "prop",
          "docs": "Bg color for hover state - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--heading-border-bottom",
          "annotation": "prop",
          "docs": "Bottom border applied to the heading element to better separate the heading and panel, especially useful when content is scrollable. - default: var(--go-border-thin) solid var(--go-color-border)"
        },
        {
          "name": "--heading-fg-color-hover",
          "annotation": "prop",
          "docs": "Foreground color for hover state - default: var(--go-color-text)"
        },
        {
          "name": "--heading-font-size",
          "annotation": "prop",
          "docs": "Heading font size - default: var(--go-size-0, 1rem)"
        },
        {
          "name": "--heading-font-weight",
          "annotation": "prop",
          "docs": "Heading font weight - default: 700"
        },
        {
          "name": "--heading-padding-x",
          "annotation": "prop",
          "docs": "Horizontal padding for item heading - default: 1rem"
        },
        {
          "name": "--heading-padding-y",
          "annotation": "prop",
          "docs": "Vertical padding for item heading - default: 0.5rem"
        },
        {
          "name": "--heading-radius",
          "annotation": "prop",
          "docs": "Border radius of heading button - default: var(--radius-2)"
        },
        {
          "name": "--heading-text-color",
          "annotation": "prop",
          "docs": "Heading text colour - default: var(--go-color-text, #333333)"
        },
        {
          "name": "--panel-bg-color",
          "annotation": "prop",
          "docs": "Content background colour - default: var(--go-color-bg)"
        },
        {
          "name": "--panel-max-height",
          "annotation": "prop",
          "docs": "Inner content max height. This values is also used for CSS animation - default: 100vh"
        },
        {
          "name": "--panel-padding-x",
          "annotation": "prop",
          "docs": "Horizontal padding for inner content - default: 2rem"
        },
        {
          "name": "--panel-padding-y",
          "annotation": "prop",
          "docs": "Vertical padding for inner content - default: 2rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-accordion/go-accordion-item.tsx",
      "encapsulation": "none",
      "tag": "go-accordion-item",
      "readme": "---\ntitle: Accordion\n---\n\n# Accordion <span class=\"text-size-0\">`go-accordion`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Accordions help users reduce cluster by showing only the sections that they are interested in.</div>\n\n## Accessibility\n\n`go-accordion` and `go-accordion-item` components are implemented following the [WAI-ARIA Authoring Practices 1.1](https://www.w3.org/TR/wai-aria-practices-1.1/#accordion) guidelines.\n\n\n## Demo\n\n### Single mode\n\nBy default only one `<go-accordion-item>` element inside a `<go-accordion>` can be expanded at any given time. When clicked on a different `<go-accordion-item>`, the active one will be collapsed and the clicked one will be expanded.\n\n<demo-frame component=\"go-accordion\" demo=\"single\"></demo-frame>\n\n### Multiple mode\n\nThere are times when you need multiple items to be open at the same time. Just add `multiple` attribute to the `<go-accordion>` element.\n\n<demo-frame component=\"go-accordion\" demo=\"multiple\"></demo-frame>\n\n### Nested\n\nNested accordions are also possible, the components will figure out which `<go-accordion>` component is being interacted with.\n\n<demo-frame component=\"go-accordion\" demo=\"nested\"></demo-frame>\n\n### Customisation\n\nThere are 2 slots you can use to customise each item. `slot=\"heading\"` and `slot=\"arrow\"`\n\n<demo-frame component=\"go-accordion\" demo=\"slots\"></demo-frame>\n\n\n",
      "docs": "---\ntitle: Accordion\n---",
      "docsTags": [],
      "usage": {
        "multiple": "<div class=\"container\">\n  <go-accordion multiple>\n    <go-accordion-item heading=\"We\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Are\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Groot\"> Lorem ipsum dolor sit </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "nested": "<div class=\"container\">\n  <go-accordion>\n    <go-accordion-item heading=\"Accordions can be nested too\">\n      Lorem ipsum dolor sit\n\n      <go-accordion id=\"inner-accordion\">\n        <go-accordion-item heading=\"Nested\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n\n        <go-accordion-item heading=\"Accordions\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n        <go-accordion-item heading=\"Are pretty cool\">\n          Lorem ipsum dolor sit\n        </go-accordion-item>\n      </go-accordion>\n\n    </go-accordion-item>\n    <go-accordion-item heading=\"Yayyy\"\">\n      Lorem ipsum dolor sit\n    </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "single": "<div class=\"container\">\n  <go-accordion id=\"inner-accordion\">\n    <go-accordion-item heading=\"I\" active> Add <code>active</code> attribute to open an item by default. </go-accordion-item>\n    <go-accordion-item heading=\"Am\"> Lorem ipsum dolor sit </go-accordion-item>\n    <go-accordion-item heading=\"Groot\"> Lorem ipsum dolor sit </go-accordion-item>\n  </go-accordion>\n</div>\n",
        "slots": "<div class=\"container\">\n  <go-accordion>\n    <go-accordion-item>\n      <div slot=\"heading\">\n        <mark> Use <code>slot=\"heading\"</code> to customise heading </mark>\n      </div>\n      Lorem ipsum dolor sit\n    </go-accordion-item>\n    <go-accordion-item heading=\"Customise arrow\">\n      <div slot=\"arrow\" style=\"text-align: center; color: red; width: 60px; height: 60px; font-size: 60px; line-height: 60px\">&#10084;</div>\n      Use <code>slot=\"arrow\"</code> to customise arrow\n    </go-accordion-item>\n  </go-accordion>\n</div>\n"
      },
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": true,
          "docs": "If the accordion item should be opened by default",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "autoHeight",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-height",
          "reflectToAttr": false,
          "docs": "If expanded height should be automatically calculated. If true, the `--go-accordion-item-body-max-height` CSS variable will be set automatically to the content height",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading text.\nThis can be overwritten by `heading` slot",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "headingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading-tag",
          "reflectToAttr": false,
          "docs": "The HTML tag to be applied to the heading text.\nThis can be overwritten by `heading` slot",
          "docsTags": [],
          "default": "'h3'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close() => Promise<void>",
          "parameters": [],
          "docs": "Closes the accordion item",
          "docsTags": []
        },
        {
          "name": "focusOnControl",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "HTMLElement": {
                "location": "global",
                "id": "global::HTMLElement"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "focusOnControl() => Promise<void>",
          "parameters": [],
          "docs": "Focus on header control",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "Opens the accordion item.",
          "docsTags": []
        },
        {
          "name": "toggle",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "toggle() => Promise<void>",
          "parameters": [],
          "docs": "Toggle open state of accordion item",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "closed",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when accordion item has closed",
          "docsTags": []
        },
        {
          "event": "closing",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when accordion item started closing",
          "docsTags": []
        },
        {
          "event": "opened",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when accordion item has opened",
          "docsTags": []
        },
        {
          "event": "opening",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when accordion item started opening",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-badge/go-badge.tsx",
      "encapsulation": "none",
      "tag": "go-badge",
      "readme": "---\ntitle: Badge\n---\n\n# Badge <span class=\"text-size-0\">`go-badge`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Badge is used to alert users to a particular status or to show a count.</div>\n\n## Usage\n\nBadges are to be used on interactable elements such as buttons, links and other elements that need to convey a status.\n\n## Accessibility\n\nBadges contain only limited information, in order to make assistive technologies convey the meanings correctly, you can use the `label` attribute on the badge component.\n\n## Demo\n\n<demo-frame component=\"go-badge\" demo=\"go-badge\" hide-source />\n\n",
      "docs": "---\ntitle: Badge\n---",
      "docsTags": [],
      "usage": {
        "go-badge": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n\n<wc-playground\n  tag=\"go-badge\"\n  props=\"[\n  {name: 'count', type: 'number'},\n  {name: 'min', type: 'number'},\n  {name: 'max', type: 'number'},\n  {name: 'dotOnly', type: 'boolean'},\n  {name: 'label', type: 'string'},\n  ]\"\n  slots='[\n  {\n    \"name\": \"default\",\n    \"docs\": \"Element to receive the badge\"\n  },\n  ]'\n  code='\n  <go-badge label=\"You have 9 unread messages\" count=\"9\" min=\"1\" max=\"1000\">\n    <go-button variant=\"primary\" icon aria-label=\"Example Button\">\n      <go-icon name=\"favorite\"></go-icon>\n    </go-button>\n  </go-badge>'\n>\n</wc-playground>\n"
      },
      "props": [
        {
          "name": "count",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "count",
          "reflectToAttr": false,
          "docs": "Number to be displayed on the badge",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "dotOnly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "dot-only",
          "reflectToAttr": false,
          "docs": "If true, the badge will be displayed only as a dot, no number will be shown",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Provide a meaningful label for the badge",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "max",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "max",
          "reflectToAttr": false,
          "docs": "maximum number displayable on the badge, if count is greater than max, `{max}+` is displayed",
          "docsTags": [],
          "default": "99",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "min",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "min",
          "reflectToAttr": false,
          "docs": "minimum number displayable on the badge, if count is less than min, the badge will not be displayed",
          "docsTags": [],
          "default": "0",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-banner/go-banner.tsx",
      "encapsulation": "none",
      "tag": "go-banner",
      "readme": "---\ntitle: Banner\n---\n\n# Banner <span class=\"text-size-0\">`go-banner`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Banner is a component in Go UI.</div>\n\n## Usage\n\nBanner can be used inside a container or by itself on top of the page (global banner).\n\nA banner draws the users' attention to the content. The banner can be used to display a message, a success feedback, or an error.\n\n## Demo\n\n<demo-frame component=\"go-banner\" demo=\"go-banner\" hide-source></demo-frame>\n",
      "docs": "---\ntitle: Banner\n---",
      "docsTags": [],
      "usage": {
        "go-banner": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n\n<wc-playground\n    tag=\"go-banner\"\n    props=\"[\n      {name: 'heading', type: 'string'},\n      {name: 'dismissible', type: 'boolean'},\n      {name: 'global', type: 'boolean'},\n      {name: 'variant', type: 'select', options: ['info', 'critical', 'success']},\n    ]\"\n    slots='[\n    {\n      \"name\": \"default\",\n      \"docs\": \"Banner content\"\n    },\n    {\n      \"name\": \"icon\",\n      \"docs\": \"Slot for banner icon\"\n    }\n  ]'\n  code=\"\n  <go-banner variant='info' heading='Banner heading'>\n    <go-icon slot='icon' name='lightbulb'></go-icon>\n    Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui quis voluptatum commodi, earum laudantium dolorem deleniti animi, natus sed aperiam.\n  </go-banner>\n\"\n>\n</wc-playground>\n"
      },
      "props": [
        {
          "name": "dismissible",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "dismissible",
          "reflectToAttr": false,
          "docs": "If the banner can be dismissed, a close button will be rendered",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading of banner",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "variant",
          "type": "\"critical\" | \"info\" | \"success\"",
          "complexType": {
            "original": "BannerVariants",
            "resolved": "\"critical\" | \"info\" | \"success\"",
            "references": {
              "BannerVariants": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::BannerVariants"
              }
            }
          },
          "mutable": false,
          "attr": "variant",
          "reflectToAttr": true,
          "docs": "Type of banner",
          "docsTags": [],
          "default": "'info'",
          "values": [
            {
              "value": "critical",
              "type": "string"
            },
            {
              "value": "info",
              "type": "string"
            },
            {
              "value": "success",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "dismissed",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--banner-bg-color",
          "annotation": "prop",
          "docs": "Background color for banner. - default: var(--go-color-primary-200)"
        },
        {
          "name": "--banner-border-color",
          "annotation": "prop",
          "docs": "Define the border color for left decorative banner bar. - default: var(--go-color-primary-300)"
        },
        {
          "name": "--banner-border-width",
          "annotation": "prop",
          "docs": "Define the border width for hte left decorative banner bar. - default: 0.5rem"
        },
        {
          "name": "--banner-fg-color",
          "annotation": "prop",
          "docs": "Foreground color for banner - default: var(--go-color-darkest)"
        },
        {
          "name": "--banner-heading-gap The gap between the heading and the content. - default 0.5rem",
          "annotation": "prop",
          "docs": ""
        },
        {
          "name": "--banner-icon-bar-padding",
          "annotation": "prop",
          "docs": "Padding for icon bar - default: 0.5rem"
        },
        {
          "name": "--banner-padding-x",
          "annotation": "prop",
          "docs": "Horizontal padding of banner area - default: 1rem"
        },
        {
          "name": "--banner-padding-y",
          "annotation": "prop",
          "docs": "Vertical padding of banner area - default: 1rem"
        },
        {
          "name": "--banner-radius",
          "annotation": "prop",
          "docs": "Define border radius for banner. - default: var(--radius-2)"
        },
        {
          "name": "--banner-shadow",
          "annotation": "prop",
          "docs": "Shadow for banner - default: var(--shadow-1)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-button"
      ],
      "dependencyGraph": {
        "go-banner": [
          "go-button"
        ],
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/go-blockquote/go-blockquote.tsx",
      "encapsulation": "none",
      "tag": "go-blockquote",
      "readme": "---\ntitle: Blockquote\n---\n\n# Blockquote <span class=\"text-size-0\">`go-blockquote`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  The blockquote element indicates that the enclosed text is an extended quotation. \n</div>\n\n## Demo\n\n<demo-frame component=\"go-blockquote\" demo=\"go-blockquote\"></demo-frame>\n",
      "docs": "---\ntitle: Blockquote\n---",
      "docsTags": [],
      "usage": {
        "go-blockquote": "<go-blockquote>\n  <p>Words can be like X-rays, if you use them properly — they’ll go through anything. You read and you’re pierced.</p>\n  <div slot=\"caption\">\n    Aldous Huxley, <cite><a href=\"https://google.com\">Brave New World</a></cite>\n  </div>\n</go-blockquote>"
      },
      "props": [
        {
          "name": "citeUrl",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "cite-url",
          "reflectToAttr": false,
          "docs": "A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\nSee also: [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote#attr-cite)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hideQuoteMark",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "hide-quote-mark",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--blockquote-border",
          "annotation": "prop",
          "docs": "Left border of blockquote - default: var(--border-size-3) solid var(--go-color-neutral-400)"
        },
        {
          "name": "--blockquote-caption-font-size",
          "annotation": "prop",
          "docs": "Font size of caption - default: var(--go-size-0)"
        },
        {
          "name": "--blockquote-caption-margin-top",
          "annotation": "prop",
          "docs": "Gap between blockquote and caption - default: 1rem"
        },
        {
          "name": "--blockquote-font-size",
          "annotation": "prop",
          "docs": "Font size of block quote content - default: var(--go-size-1)"
        },
        {
          "name": "--blockquote-icon-size",
          "annotation": "prop",
          "docs": "Blockquote quote mark icon size - default: 5rem"
        },
        {
          "name": "--blockquote-padding",
          "annotation": "prop",
          "docs": "blockquote padding - default: 1rem 2rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-breadcrumbs/go-breadcrumbs.tsx",
      "encapsulation": "none",
      "tag": "go-breadcrumbs",
      "readme": "---\ntitle: Breadcrumbs\n---\n\n# Breadcrumbs <span class=\"text-size-0\">`go-breadcrumbs`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Breadcrumbs provide a quick way to help users understand where they are in the website's information hierarchy.</div>\n\n## Usage and guidance\n\nAlways place breadcrumbs at the top of a page, and have the [skip link](../go-skip-link) target an element below the breadcrumbs so that screen readers can skip this navigation area.\n\n- On desktop devices, the breadcrumbs should start with \"Home\" even though the logo should also link to the home page.\n- Labels of the breadcrumb items should reflect their page headings in the actual information architecture.\n- On mobile devices, due to the limited screen real estate, the breadcrumb items are condensed into only having the direct parent of the current page (and the current page title if `show-current` attribute is set to `\"true\"`). User should be able to click on the logo to go back to the home page.\n- If items in breadcrumb get too long, the items will wrap into the next line. This is an sign that the information architecture (IA) might need to be updated.\n\n## Accessibility\n\n- Breadcrumbs are contained within a `<nav>` landmark region labelled as \"Breadcrumbs\" (you can change this by setting the `label` attribute).\n- If item has `url` and `hide-current` attribute is not set, the current page will be rendered as a link, in this scenario `aria-current=\"page\"` is set to the link element.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-breadcrumbs\" demo=\"go-breadcrumbs\"></demo-frame>\n",
      "docs": "---\ntitle: Breadcrumbs\n---",
      "docsTags": [],
      "usage": {
        "go-breadcrumbs": "<!-- material icons -->\n<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n\n<go-breadcrumbs\nitems=\"[\n{\nlabel: 'Home',\nurl: '#',\n},\n{\nlabel: 'Top level content page',\nurl: '#',\n},\n{\nlabel: 'Parent page',\nurl: '#',\n},\n{\nlabel: 'Current page',\n},\n]\"\n\n> </go-breadcrumbs>\n"
      },
      "props": [
        {
          "name": "hideCurrent",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "hide-current",
          "reflectToAttr": false,
          "docs": "Hide current page (last item without url) from the breadcrumbs",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "items",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "items",
          "reflectToAttr": false,
          "docs": "list of navigation items to be displayed",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "The label for the navigation landmark. This is used by assistive technologies to identify the landmark.",
          "docsTags": [],
          "default": "'Breadcrumbs'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-hero"
      ],
      "dependencies": [
        "go-nav-link"
      ],
      "dependencyGraph": {
        "go-breadcrumbs": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-hero": [
          "go-breadcrumbs"
        ]
      }
    },
    {
      "filePath": "src/components/go-button/go-button.tsx",
      "encapsulation": "none",
      "tag": "go-button",
      "readme": "---\ntitle: Button\n---\n# Button <span class=\"text-size-0\">`go-button`</span>\n\n<div class=\"text-size-1\">A button is a simple way to call on the attention of the user.</div>\n\n## When to use\n\nUse a button when you want to:\n\n- Call on the user's attention.\n- Provide a way to initiate an action or a navigation (see [buttons vs links](#buttons-vs-links)).\n- Provide a command that the user can execute, such as saving data or submitting a form.\n\n## Accessibility\n\n- Buttons must have discernible text. (https://www.w3.org/WAI/WCAG21/Techniques/aria/ARIA14)\n\n  Most of the time, the text within button slot will be sufficient, when using icon buttons, we check if there is a `aria-label` or `aria-labelledby` attribute on the button, and a console warning will be thrown if there is not.\n\n- Elements must have significant color contrast.\n\n\n## Demo\n\n<demo-frame component=\"go-button\" demo=\"go-button\" hide-source></demo-frame>\n\n## Block level\n\nIt is often nice to make the button more prominent on mobile devices by making it a full-width. This accommodates for the limited screen real-estate. You can specify at which device/breakpoint you want the button to be full-width by passing the breakpoint keyword into the `block` attribute. (If `block` attribute is present but no value is specified, the button will be full-width at all breakpoints.)\n\n<demo-frame component=\"go-button\" demo=\"block\"></demo-frame>\n\n## Icons\n\nButton can be icon-only, the only caveat is that you'll need to provide `aria-label` or `aria-labelledby` attributes for accessibility.\n\n<demo-frame component=\"go-button\" demo=\"icons\"></demo-frame>\n\n## Buttons vs links\n\nFor a comprehensive breakdown of buttons and links, see [A Complete Guide to Links and Buttons](https://css-tricks.com/a-complete-guide-to-links-and-buttons/) from CSS Tricks.\nButtons and links may feel similar but they serve different purposes and have different accessibility requirements.\n\n> Buttons are used for actions that affect the website's front-end or back-end; links are used for navigation and actions that don't affect the website at all.\n>\n> -- <cite>[UX Office](https://ux.iu.edu/writings/buttons-vs-links-basic/)</cite>\n\n<demo-frame component=\"go-button\" demo=\"button-link\"></demo-frame>\n\n",
      "docs": "---\ntitle: Button\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "default - Button text"
        },
        {
          "name": "slot",
          "text": "prefix - Use this slot to prepend content to the button."
        },
        {
          "name": "slot",
          "text": "suffix - Use this slot to append content to the button."
        }
      ],
      "usage": {
        "block": "<div class=\"container\">\n  <!-- block -->\n  <p>Full width on all devices</p>\n  <go-button block=\"all\" variant=\"primary\">Button</go-button>\n\n  <p>Full width on mobile, inline from tablet onwards</p>\n  <go-button block=\"mobile\" variant=\"primary\">Button</go-button>\n\n  <p>Full width on mobile and tablet, inline from desktop onwards</p>\n  <go-button block=\"tablet\" variant=\"primary\">Button</go-button>\n\n  <p>Full width on mobile, tablet and desktop, inline from large onwards</p>\n  <go-button block=\"desktop\" variant=\"primary\">Button</go-button>\n</div>\n",
        "button-link": "<div class=\"container\">\n  <h3>Button vs links</h3>\n  <p>While there are times when you want to style links as buttons, it's often not the right approach if you want to style buttons as links.</p>\n  <go-button variant=\"primary\" href=\"https://google.com\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">I'm a link styled like a button</go-button>\n</div>\n",
        "go-button": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n\n  <wc-playground\n    tag=\"go-button\"\n    props=\"[\n      {name: 'variant', type: 'select', value: 'neutral', 'options': ['neutral','primary','secondary','critical','text']},\n      {name: 'outline', type: 'boolean', value: false},\n      {name: 'outlineFill', type: 'boolean', value: false},\n      {name: 'flat', type: 'boolean', value: false},\n      {name: 'disabled', type: 'boolean', value: false},\n      {name: 'round', type: 'boolean', value: false},\n      {name: 'compact', type: 'boolean', value: false},\n    ]\"\n    slots='[\n        {\n          \"name\": \"default\",\n          \"docs\": \"Button text\"\n        },\n        {\n          \"name\": \"prefix\",\n          \"docs\": \"Use this slot to prepend content to the button.\"\n        },\n        {\n          \"name\": \"suffix\",\n          \"docs\": \"Use this slot to append content to the button.\"\n        }\n    ]'\n    code='<go-button type=\"button\">\n      Button\n    </go-button>'\n  ></wc-playground> ",
        "icons": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<div class=\"container\">\n  <p>Additional icon font CSS required, see source code for details.</p>\n  <go-button icon aria-label=\"Search button\" variant=\"primary\">\n    <go-icon decorative name=\"search\"></go-icon>\n    <span class=\"visually-hidden\">Search</span>\n  </go-button>\n\n  <go-button icon aria-label=\"Search button\" outline variant=\"primary\">\n    <go-icon decorative name=\"search\"></go-icon>\n    <span class=\"visually-hidden\">Search</span>\n  </go-button>\n\n  <go-button icon aria-label=\"Search button\" outline round variant=\"primary\">\n    <go-icon decorative name=\"search\"></go-icon>\n    <span class=\"visually-hidden\">Search</span>\n  </go-button>\n\n  <go-button icon aria-label=\"Search button\" flat variant=\"primary\">\n    <go-icon decorative name=\"search\"></go-icon>\n    <span class=\"visually-hidden\">Search</span>\n  </go-button>\n</div>\n"
      },
      "props": [
        {
          "name": "block",
          "type": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
          "complexType": {
            "original": "Breakpoints",
            "resolved": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
            "references": {
              "Breakpoints": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::Breakpoints"
              }
            }
          },
          "mutable": false,
          "attr": "block",
          "reflectToAttr": true,
          "docs": "If set, the button will take up the full width of its parent\nIf block=\"{breakpoint}\" is set, the button will take up the full width for the specified breakpoint. e.g. a `block=\"mobile\"` button will display full width on mobile devices.\nIf block=\"all\", the button will take full width on all devices.",
          "docsTags": [],
          "values": [
            {
              "value": "all",
              "type": "string"
            },
            {
              "value": "desktop",
              "type": "string"
            },
            {
              "value": "large",
              "type": "string"
            },
            {
              "value": "mobile",
              "type": "string"
            },
            {
              "value": "tablet",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "compact",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "compact",
          "reflectToAttr": true,
          "docs": "Reduce inner gaps and outer paddings",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": true,
          "docs": "If this button is disabled",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "flat",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "flat",
          "reflectToAttr": true,
          "docs": "If `flat` is set, the button will have no shadow and will be filled with the background color of the selected variant",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "href",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "href",
          "reflectToAttr": false,
          "docs": "If the button has an href, it will be rendered as an anchor tag",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "icon",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "icon",
          "reflectToAttr": true,
          "docs": "Circle shaped icon only button that has min size of 40px for touch devices",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "loading",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "loading",
          "reflectToAttr": false,
          "docs": "If the button is loading",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "loadingAnouncement",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "loading-anouncement",
          "reflectToAttr": false,
          "docs": "Screen reader announcement for loading state",
          "docsTags": [],
          "default": "'Loading'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "outline",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "outline",
          "reflectToAttr": true,
          "docs": "If `outline` is true, the button will have a border based on selected variant",
          "docsTags": [
            {
              "name": "see",
              "text": " `variant` property"
            }
          ],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "outlineFill",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "outline-fill",
          "reflectToAttr": true,
          "docs": "Outline style with filled background",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "round",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "round",
          "reflectToAttr": true,
          "docs": "If button should have pill-shaped corners",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "stack",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "stack",
          "reflectToAttr": true,
          "docs": "Stack elements inside the button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "type",
          "type": "\"button\" | \"reset\" | \"submit\"",
          "complexType": {
            "original": "'submit' | 'reset' | 'button'",
            "resolved": "\"button\" | \"reset\" | \"submit\"",
            "references": {}
          },
          "mutable": false,
          "attr": "type",
          "reflectToAttr": false,
          "docs": "Html type of the button",
          "docsTags": [],
          "default": "'button'",
          "values": [
            {
              "value": "button",
              "type": "string"
            },
            {
              "value": "reset",
              "type": "string"
            },
            {
              "value": "submit",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "variant",
          "type": "\"critical\" | \"neutral\" | \"primary\" | \"secondary\" | \"success\" | \"text\"",
          "complexType": {
            "original": "ColorVariants | 'text'",
            "resolved": "\"critical\" | \"neutral\" | \"primary\" | \"secondary\" | \"success\" | \"text\"",
            "references": {
              "ColorVariants": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::ColorVariants"
              }
            }
          },
          "mutable": false,
          "attr": "variant",
          "reflectToAttr": true,
          "docs": "Button variants",
          "docsTags": [],
          "default": "'neutral'",
          "values": [
            {
              "value": "critical",
              "type": "string"
            },
            {
              "value": "neutral",
              "type": "string"
            },
            {
              "value": "primary",
              "type": "string"
            },
            {
              "value": "secondary",
              "type": "string"
            },
            {
              "value": "success",
              "type": "string"
            },
            {
              "value": "text",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--go-btn-bg-color",
          "annotation": "prop",
          "docs": "Background colour for the button. - default: var(--go-color-neutral-600)"
        },
        {
          "name": "--go-btn-border-width",
          "annotation": "prop",
          "docs": "Width of button border - default: 2px"
        },
        {
          "name": "--go-btn-icon-size",
          "annotation": "prop",
          "docs": "Outer size of the icon button. - default: 3rem"
        },
        {
          "name": "--go-btn-inline-icon-size",
          "annotation": "prop",
          "docs": "Size of the icon inside the button. - default: calc(var(--go-btn-icon-size) / 2)"
        }
      ],
      "slots": [
        {
          "name": "default",
          "docs": "Button text"
        },
        {
          "name": "prefix",
          "docs": "Use this slot to prepend content to the button."
        },
        {
          "name": "suffix",
          "docs": "Use this slot to append content to the button."
        }
      ],
      "parts": [],
      "dependents": [
        "go-banner",
        "go-dialog",
        "go-nav-drawer",
        "go-search-bar",
        "go-to-top"
      ],
      "dependencies": [
        "go-spinner"
      ],
      "dependencyGraph": {
        "go-button": [
          "go-spinner"
        ],
        "go-banner": [
          "go-button"
        ],
        "go-dialog": [
          "go-button"
        ],
        "go-nav-drawer": [
          "go-button"
        ],
        "go-search-bar": [
          "go-button"
        ],
        "go-to-top": [
          "go-button"
        ]
      }
    },
    {
      "filePath": "src/patterns/go-button-group/go-button-group.tsx",
      "encapsulation": "none",
      "tag": "go-button-group",
      "readme": "---\ntitle: Button group\n---\n\n# Button group\n\n<!-- Description -->\n\nMake buttons nicely grouped.\n\n## When to use\n\n- When you need to present users with multiple actions to choose from.\n- When you need consistent alignment of buttons.\n\n## Components\n\n::: critical go-button dependency\nOnly `go-button` components are optimised as child components, use them as direct children of `go-button-group`.\n:::\n\n- [Button](../components/go-button)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-button-group\" demo=\"button-group\"></demo-frame>\n\nRemove gap between buttons by adding `connected` attribute.\n\n<demo-frame component=\"go-button-group\" demo=\"button-group-connected\"></demo-frame>\n\n",
      "docs": "---\ntitle: Button group\n---",
      "docsTags": [],
      "usage": {
        "button-group": "<div class=\"container\">\n  <div class=\"row\">\n    <div class=\"col-12\">\n      <go-button-group block=\"mobile\">\n        <go-button variant=\"primary\">Primary action</go-button>\n        <go-button variant=\"secondary\" outline-fill flat>Secondary action</go-button>\n      </go-button-group>\n    </div>\n  </div>\n</div>\n",
        "button-group-connected": "<div class=\"container\">\n  <div class=\"row\">\n    <div class=\"col-tablet-6\">\n      <p>Connected button group</p>\n      <go-button-group connected>\n        <go-button variant=\"primary\">Button</go-button>\n        <go-button variant=\"primary\">Button</go-button>\n        <go-button variant=\"primary\">Button</go-button>\n      </go-button-group>\n    </div>\n    <div class=\"col-tablet-6\">\n      <p>Connected compact buttons</p>\n      <go-button-group connected>\n        <go-button variant=\"secondary\" compact>Button</go-button>\n        <go-button variant=\"secondary\" compact>Button</go-button>\n        <go-button variant=\"secondary\" compact>Button</go-button>\n      </go-button-group>\n    </div>\n  </div>\n</div>\n"
      },
      "props": [
        {
          "name": "block",
          "type": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
          "complexType": {
            "original": "Breakpoints",
            "resolved": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
            "references": {
              "Breakpoints": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::Breakpoints"
              }
            }
          },
          "mutable": false,
          "attr": "block",
          "reflectToAttr": true,
          "docs": "If specified, buttons within group will be full width on smaller devices and auto-width going forward. e.g. having `block=\"tablet\"` will make all buttons in group take up full width on mobile and tablet sizes and auto-width on larger devices.",
          "docsTags": [],
          "values": [
            {
              "value": "all",
              "type": "string"
            },
            {
              "value": "desktop",
              "type": "string"
            },
            {
              "value": "large",
              "type": "string"
            },
            {
              "value": "mobile",
              "type": "string"
            },
            {
              "value": "tablet",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "connected",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "connected",
          "reflectToAttr": false,
          "docs": "No gap between buttons.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--go-button-group-gap",
          "annotation": "prop",
          "docs": "gap size between buttons inside the group - default: 1rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/patterns/go-callout-section/go-callout-section.tsx",
      "encapsulation": "none",
      "tag": "go-callout-section",
      "readme": "---\ntitle: Callout section\n---\n\n# Callout section\n\n<!-- Description -->\n\nThe callout pattern is a widely used design approach to prompting user engagement. This pattern is composed of two main components: a media section and a text section. Within the text section, there are three elements: a heading, an optional description, and an optional actions area that contains call-to-action (CTA) buttons.\n\nThe image component of the callout pattern typically features an eye-catching graphic or photograph that immediately draws the user's attention while the text section serves to provide more context and information about the highlighted content. The heading is a concise, engaging phrase that encapsulates the main idea, while the optional description offers further details and explanation. The CTA buttons invite users to perform specific actions related to the featured content. \n\n\n## When to use\n\n- Use a callout pattern when you want to draw attention to a specific piece of content on a webpage, such as a promotion, new product, or customer testimonial.\n- Use a callout pattern when you want to encourage user engagement and prompt users to take a specific action, such as signing up for a newsletter, making a purchase, or registering for an event.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-callout-section\" demo=\"callout-section\"></demo-frame>\n",
      "docs": "---\ntitle: Callout section\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "media - slot for media content (similar to [go-card](/docs/components/go-card#go-card-slots))"
        },
        {
          "name": "slot",
          "text": "heading - slot for heading text"
        },
        {
          "name": "slot",
          "text": "description - slot for description text"
        },
        {
          "name": "slot",
          "text": "actions - slot for actions"
        }
      ],
      "usage": {
        "go-callout-section": "<div class=\"container\">\n  <go-callout-section\n    class=\"mb-5\"\n    img-src=\"https://cdn.discordapp.com/attachments/989739733993263114/1089090825302048799/seanwuapps_knight_rider_inspired_electric_concept_car_0eed6a30-8150-4e5a-86bb-ba2f6bdce1ee.png\"\n    img-alt=\"AI generated concept car image\"\n    heading=\"AI will change car design\"\n    description=\"This is an AI generated concept car inspired from the 80s show Knight Rider\"\n    img-position=\"start\">\n    <div slot=\"actions\">\n      <go-button-group>\n        <go-button block=\"tablet\" variant=\"primary\">Primary action</go-button>\n        <go-button block=\"tablet\" variant=\"neutral\" outline>Secondary action</go-button>\n      </go-button-group>\n    </div>\n  </go-callout-section>\n  <go-callout-section img-pos=\"end\" style=\"--image-fit: cover\">\n    <img\n      src=\"https://images.unsplash.com/photo-1625870605450-40b1803df06d?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1472&q=80\"\n      alt=\"AI generated concept car image\"\n      slot=\"media\" />\n    <h3 slot=\"heading\">Lorem ipsum</h3>\n    <div slot=\"description\">\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies condimentum interdum. Pellentesque quam lectus, rhoncus at sollicitudin sedtempor\n        ac ex.\n      </p>\n      <ul>\n        <li>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestiae optio reiciendis sapiente.</li>\n        <li>Ex, veritatis. Totam sed dolor repellat quo voluptatibus suscipit, atque omnis quasi.</li>\n        <li>Totam odio voluptatibus quae laborum neque nisi reprehenderit molestias fuga, consequatur quibusdam.</li>\n        <li>Tempora quisquam ab dicta non, quis id voluptatibus voluptas velit! Deserunt, totam!</li>\n      </ul>\n    </div>\n    <div slot=\"actions\">\n      <go-button-group>\n        <go-button block=\"tablet\" variant=\"primary\">Primary action</go-button>\n        <go-button block=\"tablet\" variant=\"text\" outline>Secondary action</go-button>\n      </go-button-group>\n    </div>\n  </go-callout-section>\n</div>\n"
      },
      "props": [
        {
          "name": "description",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "description",
          "reflectToAttr": false,
          "docs": "Description text",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading text",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "headingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading-tag",
          "reflectToAttr": false,
          "docs": "HTML tag to use for heading",
          "docsTags": [],
          "default": "'h2'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "imgAlt",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "img-alt",
          "reflectToAttr": false,
          "docs": "Alt text of image (default '' which marks the image decorative)",
          "docsTags": [],
          "default": "''",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "imgPos",
          "type": "\"end\" | \"start\"",
          "complexType": {
            "original": "'start' | 'end'",
            "resolved": "\"end\" | \"start\"",
            "references": {}
          },
          "mutable": false,
          "attr": "img-pos",
          "reflectToAttr": false,
          "docs": "Image position, possible values are `start` and `end`",
          "docsTags": [],
          "default": "'start'",
          "values": [
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "imgSrc",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "img-src",
          "reflectToAttr": false,
          "docs": "Url of image",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--image-fit",
          "annotation": "prop",
          "docs": "object-fit property of image - default: contain"
        },
        {
          "name": "--image-object-position",
          "annotation": "prop",
          "docs": "object-position of image - default: top"
        },
        {
          "name": "--section-inner-gap",
          "annotation": "prop",
          "docs": "Inner gap size between image and text - default: 5%"
        },
        {
          "name": "--section-media-width",
          "annotation": "prop",
          "docs": "width of media part - default: 45%"
        },
        {
          "name": "--section-text-inner-gap",
          "annotation": "prop",
          "docs": "inner gap inside text part - default: 1rem"
        },
        {
          "name": "--section-text-width",
          "annotation": "prop",
          "docs": "width of text part - default: 50%"
        }
      ],
      "slots": [
        {
          "name": "actions",
          "docs": "slot for actions"
        },
        {
          "name": "description",
          "docs": "slot for description text"
        },
        {
          "name": "heading",
          "docs": "slot for heading text"
        },
        {
          "name": "media",
          "docs": "slot for media content (similar to [go-card](/docs/components/go-card#go-card-slots))"
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-card/go-card.tsx",
      "encapsulation": "none",
      "tag": "go-card",
      "readme": "---\ntitle: Card\n---\n\n# Card <span class=\"text-size-0\">`go-card`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">A card is an essential component to any modern design system.</div>\n\n## Card playground\n\n<demo-frame component=\"go-card\" demo=\"go-card\" hide-source></demo-frame>\n\n\n## Card links\n\nOften with cards you want to allow users to click a link to another page to find out more information. `go-card` allows you to create accessible link cards with ease.\n\nSimilar to [`go-link`](./go-link) component, you can add a `href` attribute and turn the card into a link. The whole card will be clickable for ease of use and only the title part will be announced as a link for screen readers.\n\n<demo-frame component=\"go-card\" demo=\"go-card-links\"></demo-frame>\n\n",
      "docs": "---\ntitle: Card\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "default - Card content"
        },
        {
          "name": "slot",
          "text": "heading - Slot for custom card heading"
        },
        {
          "name": "slot",
          "text": "pre-heading - Slot for content above the card heading"
        },
        {
          "name": "slot",
          "text": "media - Slot for media markup for media card"
        },
        {
          "name": "slot",
          "text": "footer - Slot for card footer markup"
        }
      ],
      "usage": {
        "go-card": "<wc-playground\ntag=\"go-card\"\nprops=\"[\n{name: 'heading', type: 'string'},\n{name: 'subHeading', type: 'string'},\n{name: 'mediaPosition', attr: 'media-position', type: 'select', options: [ 'left', 'right','top', 'bottom']},\n{name: 'href', attr: 'href', type: 'string'},\n{name: 'flat', attr: 'flat', type: 'boolean'},\n{name: 'border', attr: 'border', type: 'boolean'}\n]\"\nslots='[\n{\n\"name\": \"heading\",\n\"docs\": \"Slot for custom card heading\"\n},\n{\n\"name\": \"default\",\n\"docs\": \"Card content\"\n},\n{\n\"name\": \"footer\",\n\"docs\": \"Slot for card footer markup\"\n},\n{\n\"name\": \"media\",\n\"docs\": \"Slot for media markup for media card\"\n},\n{\n\"name\": \"pre-heading\",\n\"docs\": \"Slot for content above the card heading\"\n}\n]'\ncode=\"\n<go-card heading='Basic card' sub-heading='Subheading' media-position='left'>\nLorem ipsum dolor, sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis\n\n  <img src='//images.unsplash.com/photo-1512568400610-62da28bc8a13?auto=format&fit=crop&w=600&h=600&q=80' alt='Photo' slot='media' />\n  <div slot='pre-heading'>Active 2 hours ago</div>\n  <div slot='footer'>\n    <go-button variant='primary'>Button</go-button>\n  </div>\n</go-card>\n\">\n</wc-playground>\n",
        "go-card-footer-slot": "<div class=\"container\">\n  <div class=\"row equal-height-row\">\n    <div class=\"col-tablet-4\">\n      <go-card heading=\"Heading\" sub-heading=\"Sub heading\">\n        Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis\n        <go-button-group slot=\"footer\">\n          <go-button type=\"button\" variant=\"primary\">Primary</go-button>\n          <go-button type=\"button\" variant=\"secondary\">Secondary</go-button>\n        </go-button-group>\n      </go-card>\n    </div>\n    <div class=\"col-tablet-4\">\n      <go-card heading=\"Heading\" sub-heading=\"Sub heading\">\n        Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis Lorem ipsum dolor sit amet consectetur dolor sit\n        amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus\n        facilis\n        <go-button-group slot=\"footer\">\n          <go-button type=\"button\" variant=\"primary\">Primary</go-button>\n          <go-button type=\"button\" variant=\"secondary\">Secondary</go-button>\n        </go-button-group>\n      </go-card>\n    </div>\n    <div class=\"col-tablet-4\">\n      <go-card heading=\"Heading\" sub-heading=\"Sub heading\">\n        Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis Lorem ipsum dolor sit amet consectetur\n        <div slot=\"footer\">Lorem ipsum dolor sit.</div>\n      </go-card>\n    </div>\n  </div>\n</div>\n",
        "go-card-links": "<div class=\"container\">\n  <div class=\"row\">\n    <div class=\"col-tablet-6\">\n      <go-card heading=\"Heading\" sub-heading=\"Sub heading\" href=\"#\">\n        Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis\n      </go-card>\n    </div>\n    <div class=\"col-tablet-6\">\n      <go-card heading=\"External link\" sub-heading=\"Sub heading\" href=\"https://seanwuapps.com\">\n        Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis\n      </go-card>\n    </div>\n  </div>\n</div>\n"
      },
      "props": [
        {
          "name": "border",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "border",
          "reflectToAttr": false,
          "docs": "Show border on card",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "flat",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "flat",
          "reflectToAttr": false,
          "docs": "Flat card without box-shadow",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading of the card",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "href",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "href",
          "reflectToAttr": false,
          "docs": "For cards that link to destinations, one card can only link to one destination.\nNote: The link (`a` tag) will be applied to the heading, so if you don't have a `card-heading` prop, you will need to manually add the `a` tag in one of the slots provided.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "mediaPosition",
          "type": "\"bottom\" | \"end\" | \"left\" | \"right\" | \"start\" | \"top\"",
          "complexType": {
            "original": "| 'top'\n    | 'left'\n    | 'right'\n    | 'bottom'\n    | 'start' // responsive top left\n    | 'end'",
            "resolved": "\"bottom\" | \"end\" | \"left\" | \"right\" | \"start\" | \"top\"",
            "references": {}
          },
          "mutable": false,
          "attr": "media-position",
          "reflectToAttr": false,
          "docs": "Position of featured media in the card",
          "docsTags": [],
          "default": "'top'",
          "values": [
            {
              "value": "bottom",
              "type": "string"
            },
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "left",
              "type": "string"
            },
            {
              "value": "right",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            },
            {
              "value": "top",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "subHeading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "sub-heading",
          "reflectToAttr": false,
          "docs": "Sub heading of the card",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "target",
          "type": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
          "complexType": {
            "original": "'_blank' | '_self' | '_parent' | '_top'",
            "resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
            "references": {}
          },
          "mutable": false,
          "attr": "target",
          "reflectToAttr": false,
          "docs": "when href is present, `target` attribute to be applied to the card link",
          "docsTags": [],
          "values": [
            {
              "value": "_blank",
              "type": "string"
            },
            {
              "value": "_parent",
              "type": "string"
            },
            {
              "value": "_self",
              "type": "string"
            },
            {
              "value": "_top",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--go-card-bg",
          "annotation": "prop",
          "docs": "Background colour of card"
        },
        {
          "name": "--go-card-border-color",
          "annotation": "prop",
          "docs": "Border color for card (for `border` card only) - default: var(--go-color-neutral-300)"
        },
        {
          "name": "--go-card-border-width",
          "annotation": "prop",
          "docs": "Border width for `border` card - default: 1px"
        },
        {
          "name": "--go-card-fg",
          "annotation": "prop",
          "docs": "Foreground (text) color for the card"
        },
        {
          "name": "--go-card-heading-color",
          "annotation": "prop",
          "docs": "Text colour of card heading"
        },
        {
          "name": "--go-card-heading-font-size",
          "annotation": "prop",
          "docs": "Font size of card heading text"
        },
        {
          "name": "--go-card-heading-font-weight",
          "annotation": "prop",
          "docs": "Font weight of card heading text"
        },
        {
          "name": "--go-card-inner-gap",
          "annotation": "prop",
          "docs": "Gap size in between inner sections of card. ie. heading, content, footer"
        },
        {
          "name": "--go-card-media-aspect-ratio",
          "annotation": "prop",
          "docs": "Aspect ratio for media for when media position = top|bottom"
        },
        {
          "name": "--go-card-media-basis",
          "annotation": "prop",
          "docs": "Flex basis for media position = left|right"
        },
        {
          "name": "--go-card-media-height",
          "annotation": "prop",
          "docs": "Height of media for media position = top|bottom"
        },
        {
          "name": "--go-card-media-object-position",
          "annotation": "prop",
          "docs": "[Object-position rule](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) for the media. default: center"
        },
        {
          "name": "--go-card-outer-padding",
          "annotation": "prop",
          "docs": "Outer padding of card."
        },
        {
          "name": "--go-card-radius",
          "annotation": "prop",
          "docs": "Border radius for card"
        },
        {
          "name": "--go-card-shadow",
          "annotation": "prop",
          "docs": "Card shadow"
        },
        {
          "name": "--go-card-subheading-font-size",
          "annotation": "prop",
          "docs": "Font size of subheading"
        },
        {
          "name": "--go-card-subheading-font-weight",
          "annotation": "prop",
          "docs": "Font weight of subheading"
        },
        {
          "name": "--go-card-subheading-text-color",
          "annotation": "prop",
          "docs": "Text colour of subheading"
        }
      ],
      "slots": [
        {
          "name": "default",
          "docs": "Card content"
        },
        {
          "name": "footer",
          "docs": "Slot for card footer markup"
        },
        {
          "name": "heading",
          "docs": "Slot for custom card heading"
        },
        {
          "name": "media",
          "docs": "Slot for media markup for media card"
        },
        {
          "name": "pre-heading",
          "docs": "Slot for content above the card heading"
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-link"
      ],
      "dependencyGraph": {
        "go-card": [
          "go-link"
        ]
      }
    },
    {
      "filePath": "src/patterns/go-card-row/go-card-row.tsx",
      "encapsulation": "none",
      "tag": "go-card-row",
      "readme": "---\ntitle: Card row\ntags:\n  - Layout\n  - Navigation\n---\n\n# Card row\n\n<!-- Description -->\n\nCard row is a layout pattern to provide a consistent way of displaying a group of cards together.\n\n## Demo\n\n<demo-frame component=\"go-card-row\" demo=\"go-card-row\"></demo-frame>\n\n## Load cards dynamically\n\nThe following demo has the cards loaded in dynamically after the initial page load.\n\n<demo-frame component=\"go-card-row\" demo=\"go-card-row-dynamic\"></demo-frame>\n\n",
      "docs": "---\ntitle: Card row\ntags:\n  - Layout\n  - Navigation\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "default - Default slot, to be filled with `go-card` elements"
        },
        {
          "name": "slot",
          "text": "heading - Overwrite default `h2` heading for this card row section"
        }
      ],
      "usage": {
        "go-card-row": "<div class=\"container\">\n  <go-card-row heading=\"Dog quotes\" more-link-href=\"#\" more-link-text=\"More quotes\">\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      Everything I know I learned from dogs\n      <em slot=\"footer\">Nora Roberts (author, The Search)</em>\n    </go-card>\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      Dogs do speak, but only to those who know how to listen\n      <em slot=\"footer\">Orhan Pamuk (author, My Name Is Red)</em>\n    </go-card>\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      The better I get to know men, the more I find myself loving dogs\n      <em slot=\"footer\">Charles De Gaulle</em>\n    </go-card>\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      Everything I know I learned from dogs\n      <em slot=\"footer\">Nora Roberts (author, The Search)</em>\n    </go-card>\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      Dogs do speak, but only to those who know how to listen\n      <em slot=\"footer\">Orhan Pamuk (author, My Name Is Red)</em>\n    </go-card>\n    <go-card href=\"#\" heading=\"Dog quote\" sub-heading=\"Subtitle\">\n      <img src=\"//source.unsplash.com/random/800x600?dog\" alt=\"Poster\" slot=\"media\" />\n      The better I get to know men, the more I find myself loving dogs\n      <em slot=\"footer\">Charles De Gaulle</em>\n    </go-card>\n  </go-card-row>\n</div>\n",
        "go-card-row-dynamic": "<div class=\"container\" id=\"container\"></div>\n<script>\n  const container = document.querySelector('#container');\n  let rowHtml = `<go-card-row stagger=\"300\" cols=\"1\" cols-tablet=\"2\" cols-desktop=\"3\" cols-large=\"3\">`;\n\nfetch('https://imdb-api.com/en/API/MostPopularMovies/k_p38bst22')\n.then(res => res.json())\n.then(res => {\nconst movies = res.items;\nconsole.log({ movies });\nmovies.forEach(movie => {\nif (movie) {\nconst encodedTitle = encodeURIComponent(movie.title);\nconst card = `\n<go-card heading=\"${movie.fullTitle}\" sub-heading=\"${movie.year}\">\n<img src=\"${movie.image}\" alt=\"Poster\" slot=\"media\" />\n\n            <ul>\n              <li><strong>Crew:</strong> ${movie.crew}</li>\n              <li><strong>IMDb rating:</strong> ${movie.imDbRating} (${movie.imDbRatingCount})</li>\n            </ul>\n\n            <div slot=\"footer\">\n              <go-button block=\"mobile\" variant=\"primary\" target=\"_blank\" href=\"https://www.youtube.com/results?search_query=${encodedTitle}\">Watch trailer</go-button>\n            </div>\n          </go-card>`;\n          rowHtml += card;\n        }\n      });\n    })\n    .finally(() => {\n      rowHtml += `</go-card-row>`;\n      container.innerHTML = rowHtml;\n    });\n\n</script>\n"
      },
      "props": [
        {
          "name": "cols",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "cols",
          "reflectToAttr": false,
          "docs": "Number of columns from mobile breakpoint and up",
          "docsTags": [],
          "default": "1",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "colsDesktop",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "cols-desktop",
          "reflectToAttr": false,
          "docs": "Number of columns from desktop breakpoint and up",
          "docsTags": [],
          "default": "3",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "colsLarge",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "cols-large",
          "reflectToAttr": false,
          "docs": "Number of columns from large breakpoint and up",
          "docsTags": [],
          "default": "4",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "colsTablet",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "cols-tablet",
          "reflectToAttr": false,
          "docs": "Number of columns from tablet breakpoint and up",
          "docsTags": [],
          "default": "2",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading for this card row section",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "headingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading-tag",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "'h2'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "moreLinkHref",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "more-link-href",
          "reflectToAttr": false,
          "docs": "View more link href",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "moreLinkText",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "more-link-text",
          "reflectToAttr": false,
          "docs": "View more link text",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "noStretch",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "no-stretch",
          "reflectToAttr": false,
          "docs": "By default, `go-card-row` stretches all cards inside to the tallest card in view, unless this property is set to true.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "stagger",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "stagger",
          "reflectToAttr": false,
          "docs": "If set, cards will fade in one by one with the specified delay in milliseconds when they are in the viewport.\nuses `IntersectionObserver`, [see browser compatibility](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API)",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [
        {
          "name": "default",
          "docs": "Default slot, to be filled with `go-card` elements"
        },
        {
          "name": "heading",
          "docs": "Overwrite default `h2` heading for this card row section"
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-heading-row"
      ],
      "dependencyGraph": {
        "go-card-row": [
          "go-heading-row"
        ],
        "go-heading-row": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ]
      }
    },
    {
      "filePath": "src/components/go-center/go-center.tsx",
      "encapsulation": "none",
      "tag": "go-center",
      "readme": "---\ntitle: Center\n---\n\n# Center <span class=\"text-size-0\">`go-center`</span>\n\n<!-- Description -->\n<div class=\"text-size-1\">\n  Center is a layout component that centers the slot content (whatever is passed inside the component), it takes 100% of the available width, and allows the consuming application to specify the height.\n</div>\n\n## Demo\n\n<demo-frame component=\"go-center\" demo=\"go-center\"></demo-frame>\n",
      "docs": "---\ntitle: Center\n---",
      "docsTags": [],
      "usage": {
        "go-center": "<go-center height=\"100vh\">\n<span>I'm centered</span>\n</go-center>\n"
      },
      "props": [
        {
          "name": "alignText",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "align-text",
          "reflectToAttr": false,
          "docs": "If true, the text-align: center will also be applied to the container",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "height",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "height",
          "reflectToAttr": false,
          "docs": "Height of this container",
          "docsTags": [],
          "default": "'auto'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/form/go-checkbox/go-checkbox.tsx",
      "encapsulation": "none",
      "tag": "go-checkbox",
      "readme": "---\ntitle: Checkbox\n---\n\n# Checkbox <span class=\"text-size-0\">`go-checkbox`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\nCheckboxes allow users to select one or more options.\n</div>\n\n::: info Group checkboxes\nA common use case is to group checkboxes together in a `fieldset` along with a `legend` to provide context. See how you can achieve this easily with [`go-fieldset`](go-fieldset)\n:::\n\n## Accessibility\n- `label` announced by screen readers along with the \"checked\", \"half checked\" (`indeterminate` prop) or \"not checked\" state\n- `hint` prop or slot are announced by screen readers if present\n- `error` prop is announced by screen readers if present\n### Keyboard navigation\n- `Space` key - select and deselect an option when it has focus\n- `Tab` key - navigate to next focusable item (a `disabled` item doesn't receive focus)\n- `Shift` + `Tab` - navigate to previous focusable item (a `disabled` item doesn't receive focus)\n\n## Demo\n\n<demo-frame component=\"go-checkbox\" demo=\"go-checkbox\"></demo-frame>\n\n### Usage in a fieldset\n\n<demo-frame component=\"go-checkbox\" demo=\"checkbox-fieldset\"></demo-frame>\n",
      "docs": "---\ntitle: Checkbox\n---",
      "docsTags": [],
      "usage": {
        "checkbox-fieldset": "<go-fieldset label=\"What fruit do you like?\" hint=\"Select one or more\">\n  <go-checkbox name=\"fruit\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Banana\" value=\"banana\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Orange\" value=\"orange\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Kiwi\" value=\"kiwi\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Watermelon\" value=\"watermelon\"></go-checkbox>\n</go-fieldset>\n\n<p>Error state</p>\n<go-fieldset label=\"What fruit do you like?\" error=\"[This is an error message]\" hint=\"Select one or more\">\n  <go-checkbox name=\"fruit2\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-checkbox>\n  <go-checkbox name=\"fruit2\" label=\"Banana\" value=\"banana\"></go-checkbox>\n  <go-checkbox name=\"fruit2\" label=\"Orange\" value=\"orange\"></go-checkbox>\n  <go-checkbox name=\"fruit2\" label=\"Kiwi\" value=\"kiwi\"></go-checkbox>\n  <go-checkbox name=\"fruit2\" label=\"Watermelon\" value=\"watermelon\"></go-checkbox>\n</go-fieldset>\n",
        "go-checkbox": "<go-checkbox label=\"Checkbox\" hint=\"This is a hint message\"></go-checkbox>\n<go-checkbox label=\"Checked\" checked></go-checkbox>\n<go-checkbox label=\"Indeterminate\" checked indeterminate></go-checkbox>\n<go-checkbox id=\"cb\" label=\"Checked\" checked>\n  <div slot=\"hint\">This is a <go-link href=\"/\">slotted</go-link> hint</div>\n</go-checkbox>\n<go-checkbox label=\"Disabled\" disabled></go-checkbox>\n<go-checkbox label=\"Disabled checked\" checked disabled></go-checkbox>\n<go-checkbox label=\"Error\" hint=\"This is a hint message\" error=\"This is an error\"></go-checkbox>\n<go-checkbox label=\"Error checked\" error=\"This is an error\" checked></go-checkbox>\n<go-checkbox label=\"Error disabled\" error=\"This is an error\" disabled></go-checkbox>\n"
      },
      "props": [
        {
          "name": "checked",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "checked",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": true,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "indeterminate",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "indeterminate",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "value",
          "type": "any",
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "mutable": false,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "any"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--cb-border",
          "annotation": "prop",
          "docs": "Checkbox default border - default: var(--cb-border-width) solid var(--cb-border-color)"
        },
        {
          "name": "--cb-border-color",
          "annotation": "prop",
          "docs": "Default border color - default: var(--input-border-color)"
        },
        {
          "name": "--cb-border-color-hover",
          "annotation": "prop",
          "docs": "Checkbox hover state color - default: var(--go-color-neutral-700)"
        },
        {
          "name": "--cb-border-width",
          "annotation": "prop",
          "docs": "Default border width - default: 2px"
        },
        {
          "name": "--cb-checked-bg",
          "annotation": "prop",
          "docs": "Checkbox background color when checked - default: var(--control-selected-bg-color)"
        },
        {
          "name": "--cb-checked-text",
          "annotation": "prop",
          "docs": "Foreground color of checked checkbox - default: var(--control-selected-fg-color)"
        },
        {
          "name": "--cb-radius",
          "annotation": "prop",
          "docs": "Checkbox border radius - default: var(--input-radius)"
        },
        {
          "name": "--cb-size",
          "annotation": "prop",
          "docs": "Size of checkbox - default: 1.5rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-chip/go-chip.tsx",
      "encapsulation": "none",
      "tag": "go-chip",
      "readme": "---\ntitle: Chip\n---\n\n# Chip <span class=\"text-size-0\">`go-chip`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Chips are used to highlight small pieces of information.</div>\n\n## Accessibility\n\n\n## Static chips\n\n<demo-frame component=\"go-chip\" demo=\"go-chip\"></demo-frame>\n\n## Clickable chips\n\n<demo-frame component=\"go-chip\" demo=\"go-chip-clickable\"></demo-frame>\n\n## Dismissible chips\n\n<demo-frame component=\"go-chip\" demo=\"go-chip-dismissible\"></demo-frame>\n\n## Combine these\n\n<demo-frame component=\"go-chip\" demo=\"go-chip-combo\"></demo-frame>\n\n",
      "docs": "---\ntitle: Chip\n---",
      "docsTags": [],
      "usage": {
        "go-chip": "<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n<div class=\"container\">\n  <go-chip>hello world</go-chip>\n  <go-chip>\n    <go-icon name=\"info_outline\" slot=\"prefix\"></go-icon>\n    hello world\n  </go-chip>\n\n  <go-chip>\n    <go-icon name=\"delete_outline\" slot=\"suffix\"></go-icon>\n    hello world\n  </go-chip>\n  <hr />\n  <go-chip>Neutral (default)</go-chip>\n  <go-chip variant=\"primary\">Primary</go-chip>\n  <go-chip variant=\"secondary\">Secondary</go-chip>\n  <go-chip variant=\"success\">Success</go-chip>\n  <go-chip variant=\"critical\">Critical</go-chip>\n\n  <hr />\n  <go-chip outline=\"true\" variant=\"primary\">Outline</go-chip>\n  <go-chip outline=\"true\" variant=\"secondary\">Outline</go-chip>\n  <go-chip outline=\"true\" variant=\"success\">Outline</go-chip>\n  <go-chip outline=\"true\" variant=\"critical\">Outline</go-chip>\n</div>\n",
        "go-chip-clickable": "<div class=\"container\">\n  <go-chip clickable>Neutral (default)</go-chip>\n  <go-chip clickable variant=\"primary\">Primary</go-chip>\n  <go-chip clickable variant=\"secondary\">Secondary</go-chip>\n  <go-chip clickable variant=\"success\">Success</go-chip>\n  <go-chip clickable variant=\"critical\">Critical</go-chip>\n  <hr />\n  <go-chip outline clickable>Neutral (default)</go-chip>\n  <go-chip outline clickable variant=\"primary\">Primary</go-chip>\n  <go-chip outline clickable variant=\"secondary\">Secondary</go-chip>\n  <go-chip outline clickable variant=\"success\">Success</go-chip>\n  <go-chip outline clickable variant=\"critical\">Critical</go-chip>\n</div>\n\n<script>\n  document.querySelectorAll('go-chip').forEach((chip) => {\n    chip.addEventListener('chipClick', (e) => {\n      alert('You clicked the chip! Check browser console for event details.');\n      console.log('chipClick event fired with ', e);\n    });\n  });\n</script>\n",
        "go-chip-combo": "<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n<div class=\"container\">\n  <go-chip clickable dismissible>Neutral (default)</go-chip>\n  <go-chip clickable dismissible variant=\"primary\">Primary</go-chip>\n  <go-chip clickable dismissible variant=\"secondary\">Secondary</go-chip>\n  <go-chip clickable dismissible variant=\"success\">Success</go-chip>\n  <go-chip clickable dismissible variant=\"critical\">Critical</go-chip>\n  <hr />\n\n  <go-chip clickable dismissible outline>Neutral (default)</go-chip>\n  <go-chip clickable dismissible outline variant=\"primary\">Primary</go-chip>\n  <go-chip clickable dismissible outline variant=\"secondary\">Secondary</go-chip>\n  <go-chip clickable dismissible outline variant=\"success\">Success</go-chip>\n  <go-chip clickable dismissible outline variant=\"critical\">Critical</go-chip>\n</div>\n",
        "go-chip-dismissible": "<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n<div class=\"container\">\n  <go-chip dismissible>Neutral (default)</go-chip>\n  <go-chip dismissible variant=\"primary\">Primary</go-chip>\n  <go-chip dismissible variant=\"secondary\">Secondary</go-chip>\n  <go-chip dismissible variant=\"success\">Success</go-chip>\n  <go-chip dismissible variant=\"critical\">Critical</go-chip>\n  <hr />\n\n  <go-chip dismissible outline>Neutral (default)</go-chip>\n  <go-chip dismissible outline variant=\"primary\">Primary</go-chip>\n  <go-chip dismissible outline variant=\"secondary\">Secondary</go-chip>\n  <go-chip dismissible outline variant=\"success\">Success</go-chip>\n  <go-chip dismissible outline variant=\"critical\">Critical</go-chip>\n</div>\n\n<script>\n  document.querySelectorAll('go-chip').forEach((chip) => {\n    chip.addEventListener('chipDismissed', (e) => {\n      alert('You dismissed the chip! Check browser console for event details.');\n      console.log('chipDismiss event fired with ', e);\n      e.target.remove();\n    });\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "clickable",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "clickable",
          "reflectToAttr": false,
          "docs": "Make chip clickable, `chipClick` event will be emitted on click",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "dismissible",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "dismissible",
          "reflectToAttr": false,
          "docs": "Make chip dismissible, close button will be shown and `chipDismiss` event will be emitted when close button is clicked",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "outline",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "outline",
          "reflectToAttr": true,
          "docs": "If `outline` is true, the button will have a border based on selected variant",
          "docsTags": [
            {
              "name": "see",
              "text": " `variant` property"
            }
          ],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "variant",
          "type": "\"critical\" | \"neutral\" | \"primary\" | \"secondary\" | \"success\"",
          "complexType": {
            "original": "ChipVariants",
            "resolved": "\"critical\" | \"neutral\" | \"primary\" | \"secondary\" | \"success\"",
            "references": {
              "ChipVariants": {
                "location": "import",
                "path": "../../interfaces/variants",
                "id": "src/interfaces/variants.ts::ChipVariants"
              }
            }
          },
          "mutable": false,
          "attr": "variant",
          "reflectToAttr": true,
          "docs": "Colour variant of the chip",
          "docsTags": [],
          "default": "'neutral'",
          "values": [
            {
              "value": "critical",
              "type": "string"
            },
            {
              "value": "neutral",
              "type": "string"
            },
            {
              "value": "primary",
              "type": "string"
            },
            {
              "value": "secondary",
              "type": "string"
            },
            {
              "value": "success",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "chipClick",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted on chip click, only if `clickable` is true",
          "docsTags": []
        },
        {
          "event": "chipDismissed",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted on chip dismiss, only if `dismissible` is true",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--go-chip-border-width",
          "annotation": "prop",
          "docs": "Border width of the chip - default: 2px"
        },
        {
          "name": "--go-chip-color-bg",
          "annotation": "prop",
          "docs": "Background color of chip - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--go-chip-color-bg-hover",
          "annotation": "prop",
          "docs": "Background color on hover for `clickable` chips - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--go-chip-color-border",
          "annotation": "prop",
          "docs": "Border color of the chip - default: transparent"
        },
        {
          "name": "--go-chip-color-fg",
          "annotation": "prop",
          "docs": "Foreground color of chip - default: var(--go-color-text)"
        },
        {
          "name": "--go-chip-dismiss-btn-gap",
          "annotation": "prop",
          "docs": "Gap between chip content and the dismiss button (only applicable when `dismissable` is `true`) - default: 0"
        },
        {
          "name": "--go-chip-dismiss-btn-size",
          "annotation": "prop",
          "docs": "Width and height of the dismiss button - default: calc(1.5em + 2 * var(--go-chip-padding-y))"
        },
        {
          "name": "--go-chip-font-size",
          "annotation": "prop",
          "docs": "Font size of chip - default: var(--go-size--1)"
        },
        {
          "name": "--go-chip-gap",
          "annotation": "prop",
          "docs": "Gap between label, prefix and suffix. - default: 0.5em"
        },
        {
          "name": "--go-chip-padding",
          "annotation": "prop",
          "docs": "Padding of the chip - default: var(--go-chip-padding-y) var(--go-chip-padding-x)"
        },
        {
          "name": "--go-chip-padding-x",
          "annotation": "prop",
          "docs": "Horizontal padding of the chip - default: 0.75em"
        },
        {
          "name": "--go-chip-padding-y",
          "annotation": "prop",
          "docs": "Vertical padding of the chip - default: 0.25em"
        },
        {
          "name": "--go-chip-radius",
          "annotation": "prop",
          "docs": "Radius of chip - default: var(--radius-2)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-content/go-content.tsx",
      "encapsulation": "none",
      "tag": "go-content",
      "readme": "---\ntitle: Content\n---\n\n# Content <span class=\"text-size-0\">`go-content`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Container to apply generic content styling.</div>\n\n## Styling for generic content\n\nThis component provides a container for generic content styling, this means you don't necessarily have all the control over the html structure, as long as the structure is simple and flat, this component could be used. A really good use case is for when you have some \"rich-text\" content loaded from a content management system (CMS).\n\n\nBy default, the spacing style will be applied to the *direct* children of `go-content`, and if you use the [`go-md`](/docs/components/go-md) component inside `go-content`, the *direct* children of the `go-md` will also have the same spacing style.\n\n### The Lobotomised owls selector \n\nWe use the [*lobotomized owls*](https://alistapart.com/article/axiomatic-css-and-lobotomized-owls/) (credit goes to Heydon Pickering) selector to create the spacing style, this allows us to have a simple rule for all elements inside a container while having a low specificity level so if consuming apps wish to overwrite it, they can easily negate the rule by doing something like this:\n\n```css\n.my-special-container * {\n  margin-top: 0;\n}\n```\n\n\n::: info\n\nThe `iframe` tag is controlled to have 16/9 aspect ratio by default, if you need it in other aspect ratio, please use the `--iframe-embed-aspect-ratio` CSS variable to customise, e.g.\n\n```css\niframe.square {\n  --iframe-embed-aspect-ratio: 1/1\n}\n```\n\n:::\n\n## Demo\n\n<demo-frame component=\"go-content\" demo=\"go-content\"></demo-frame>\n",
      "docs": "---\ntitle: Content\n---",
      "docsTags": [],
      "usage": {
        "go-content": "<div class=\"container\">\n<go-content>\n  <go-md sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">Fallback content.</go-md>\n  <h2>Multimedia</h2>\n  <picture>\n    <img\n      src=\"https://images.unsplash.com/photo-1670093730919-7e72c9a64c25?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=872&q=80\"\n      alt=\"test\" />\n  </picture>\n  <figure>\n    <img\n      src=\"https://images.unsplash.com/photo-1670093730919-7e72c9a64c25?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=872&q=80\"\n      alt=\"test\" />\n    <figcaption>Fig.1 - test.</figcaption>\n  </figure>\n\n  <h3>hello</h3>\n  <iframe\n    width=\"560\"\n    height=\"315\"\n    src=\"https://www.youtube.com/embed/BYVZh5kqaFg\"\n    title=\"YouTube video player\"\n    frameborder=\"0\"\n    allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n    allowfullscreen></iframe>\n  <iframe\n    src=\"https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F7r5vNfdMVTVp7JkhGB%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F7r5vNfdMVTVp7JkhGB%2Fgiphy.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F7r5vNfdMVTVp7JkhGB%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy\"\n    allowfullscreen=\"\"\n    frameborder=\"0\"\n    height=\"410\"\n    width=\"435\"\n    title=\"Happy Feliz GIF by Fran Solo - Find &amp; Share on GIPHY\"\n    class=\"gj aq as ag ce\"\n    scrolling=\"auto\"></iframe>\n  <video controls>\n    <source src=\"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4\" type=\"video/mp4\" />\n    Your browser does not support the video tag.\n  </video>\n</go-content>\n</div>"
      },
      "props": [],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--iframe-embed-aspect-ratio",
          "annotation": "prop",
          "docs": "Aspect ratio for iframe content - default: 16/9"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/patterns/go-content-layout/go-content-layout.tsx",
      "encapsulation": "none",
      "tag": "go-content-layout",
      "readme": "---\ntitle: Content layout\ntags:\n  - Layout\n---\n\n# Content layout\n\n<!-- Description -->\n\nContent layout provide built-in accessible regions and helps developers to create common layouts easily.\n\n## Demo\n\n<demo-frame component=\"go-content-layout\" demo=\"go-content-layout\"></demo-frame>\n\n## With table of content\n\nSimply add the `toc` boolean attribute to generate a table of content on the fly.\n\nIf you need to target a different section or use different selectors, use `tocProps` (see [`go-toc`](/docs/components/go-toc) component)\n\nIf you have a sidebar slotted in, the position of the table of content navigation element is going to respect the sidebar's positioning ([see below](#sidebar-position)), if there is no sidebar, the table of content element is placed on top of the main content section.\n\n<demo-frame component=\"go-content-layout\" demo=\"toc\"></demo-frame>\n\n## With sidebar\n\nThe `sidebar` slot is provided to place any HTML elements besides the main content (stacked on mobile).\n\n### Sidebar position\n\nBy default the sidebar is positioned on the `start` side (left if ltr, right if rtl) and you can customise this by specify `start` or `end` in the `sidebarMobilePosition` and `sidebarDesktopPosition` attributes.\n\n<demo-frame component=\"go-content-layout\" demo=\"sidebar\"></demo-frame>\n",
      "docs": "---\ntitle: Content layout\ntags:\n  - Layout\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "intro - Hero section intro text"
        },
        {
          "name": "slot",
          "text": "main - Main section"
        }
      ],
      "usage": {
        "go-content-layout": "<go-content-layout\n  breadcrumbs=\"[\n {\n   label: 'Home',\n   url: '#',\n },\n {\n   label: 'Top level content page',\n   url: '#',\n },\n {\n   label: 'Parent page',\n   url: '#',\n }\n ]\"\n  pre-heading=\"Content template\"\n  page-heading=\"Example page\"\n  intro=\"This page's layout is managed by go-content-layout, the content below comes from the readme markdown file of this project.\"\n  id=\"layout\">\n  <go-md id=\"main\" sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">\n    <p>\n      Sorry the content of this page couldn't be loaded,\n      <a href=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\" target=\"_blank\">see the source here</a>.\n    </p>\n  </go-md>\n</go-content-layout>\n\n<script>\n  const main = document.querySelector('#main');\n  const layout = document.querySelector('#layout');\n  main.addEventListener('rendered', () => {\n    layout.initToc();\n  });\n</script>\n",
        "sidebar": "<go-content-layout\n  breadcrumbs=\"[\n {\n   label: 'Home',\n   url: '#',\n },\n {\n   label: 'Top level content page',\n   url: '#',\n },\n {\n   label: 'Parent page',\n   url: '#',\n }\n ]\"\n  pre-heading=\"Content template\"\n  page-heading=\"Example page\"\n  intro=\"This page's layout is managed by go-content-layout, the content below comes from the readme markdown file of this project.\"\n  toc\n  id=\"layout\"\n  sidebar-sticky\n  sidebar-mobile-position=\"start\"\n  sidebar-desktop-position=\"end\">\n<go-md id=\"main\" sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">\n\n<p>\nSorry the content of this page couldn't be loaded,\n<a href=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\" target=\"_blank\">see the source here</a>.\n</p>\n</go-md>\n\n  <div slot=\"sidebar\">\n    <go-card heading=\"Sidebar card\" sub-heading=\"Subtitle\">\n      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Atque natus autem veritatis architecto facilis\n\n      <div slot=\"footer\">\n        <go-button variant=\"primary\">Button</go-button>\n      </div>\n      <img src=\"//images.unsplash.com/photo-1512568400610-62da28bc8a13?auto=format&amp;fit=crop&amp;w=600&amp;h=600&amp;q=80\" alt=\"Photo\" slot=\"media\" />\n      <div slot=\"pre-heading\">Active 2 hours ago</div>\n    </go-card>\n\n  </div>\n</go-content-layout>\n",
        "toc": "<go-content-layout\n  breadcrumbs=\"[\n {\n   label: 'Home',\n   url: '#',\n },\n {\n   label: 'Top level content page',\n   url: '#',\n },\n {\n   label: 'Parent page',\n   url: '#',\n }\n ]\"\n  pre-heading=\"Content template\"\n  page-heading=\"Example page\"\n  intro=\"This page's layout is managed by go-content-layout, the content below comes from the readme markdown file of this project.\"\n  toc\n  id=\"layout\">\n  <go-md id=\"main\" sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">\n    <p>\n      Sorry the content of this page couldn't be loaded,\n      <a href=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\" target=\"_blank\">see the source here</a>.\n    </p>\n  </go-md>\n</go-content-layout>\n\n<script>\n  const main = document.querySelector('#main');\n  const layout = document.querySelector('#layout');\n  main.addEventListener('rendered', () => {\n    layout.initToc();\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "breadcrumbs",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "breadcrumbs",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "heroImgAlt",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hero-img-alt",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "heroImgSrc",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hero-img-src",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "intro",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "intro",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "noHero",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "no-hero",
          "reflectToAttr": false,
          "docs": "no hero banner",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "pageHeading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "page-heading",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "preHeading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "pre-heading",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "sidebarDesktopPosition",
          "type": "\"end\" | \"start\"",
          "complexType": {
            "original": "SidebarPosition",
            "resolved": "\"end\" | \"start\"",
            "references": {
              "SidebarPosition": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/patterns/go-content-layout/go-content-layout.tsx",
                "id": "src/patterns/go-content-layout/go-content-layout.tsx::SidebarPosition"
              }
            }
          },
          "mutable": false,
          "attr": "sidebar-desktop-position",
          "reflectToAttr": false,
          "docs": "sidebar position on desktop screens\npossible values are `start` and `end`",
          "docsTags": [],
          "default": "'start'",
          "values": [
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "sidebarMobilePosition",
          "type": "\"end\" | \"start\"",
          "complexType": {
            "original": "SidebarPosition",
            "resolved": "\"end\" | \"start\"",
            "references": {
              "SidebarPosition": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/patterns/go-content-layout/go-content-layout.tsx",
                "id": "src/patterns/go-content-layout/go-content-layout.tsx::SidebarPosition"
              }
            }
          },
          "mutable": false,
          "attr": "sidebar-mobile-position",
          "reflectToAttr": false,
          "docs": "sidebar position on mobile screens\npossible values are `start` and `end`",
          "docsTags": [],
          "default": "'start'",
          "values": [
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "sidebarSticky",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "sidebar-sticky",
          "reflectToAttr": false,
          "docs": "If sidebar should be sticky",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "toc",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "toc",
          "reflectToAttr": false,
          "docs": "If the \"On this page\" table of content section should be displayed",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "tocProps",
          "type": "TocProps",
          "complexType": {
            "original": "TocProps",
            "resolved": "TocProps",
            "references": {
              "TocProps": {
                "location": "import",
                "path": "../../components/go-toc/go-toc",
                "id": "src/components/go-toc/go-toc.tsx::TocProps"
              }
            }
          },
          "mutable": false,
          "reflectToAttr": false,
          "docs": "Props to pass into the table of content ([see `go-toc` props](/docs/components/go-toc#go-toc-props))",
          "docsTags": [],
          "values": [
            {
              "type": "TocProps"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "initToc",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "initToc() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [
        {
          "name": "intro",
          "docs": "Hero section intro text"
        },
        {
          "name": "main",
          "docs": "Main section"
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-toc",
        "go-hero"
      ],
      "dependencyGraph": {
        "go-content-layout": [
          "go-toc",
          "go-hero"
        ],
        "go-toc": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-hero": [
          "go-breadcrumbs"
        ],
        "go-breadcrumbs": [
          "go-nav-link"
        ]
      }
    },
    {
      "filePath": "src/components/go-dark-mode/go-dark-mode.tsx",
      "encapsulation": "none",
      "tag": "go-dark-mode",
      "readme": "---\ntitle: Dark mode\n---\n\n# Dark mode <span class=\"text-size-0\">`go-dark-mode`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Dark mode is a component in Go UI.\n</div>\n\n\n## Accessibility\n\n\n## Demo\n\n<demo-frame component=\"go-dark-mode\" demo=\"go-dark-mode\"></demo-frame>\n",
      "docs": "---\ntitle: Dark mode\n---",
      "docsTags": [],
      "usage": {
        "go-dark-mode": "<go-dark-mode id=\"themer\"></go-dark-mode>\n<go-center height=\"100vh\">\n<go-switch id=\"switcher\" label=\"Dark Mode\"></go-switch>\n</go-center>\n\n<script>\nconst themer = document.getElementById('themer');\nconst switcher = document.getElementById('switcher');\nthemer.addEventListener('themechange', (e) => {\n  switcher.setAttribute('checked', e.detail.theme === 'dark');\n});\nswitcher.addEventListener('change', (e) => {\n  themer.setTheme(e.target.checked ? 'dark' : 'light');\n});\n</script>\n"
      },
      "props": [
        {
          "name": "attribute",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "attribute",
          "reflectToAttr": false,
          "docs": "Attribute name on html element that will be used to store theme",
          "docsTags": [],
          "default": "'data-theme'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "getUserPreference",
          "returns": {
            "type": "Promise<Theme>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<Theme>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "Theme": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-dark-mode/go-dark-mode.tsx",
                "id": "src/components/go-dark-mode/go-dark-mode.tsx::Theme"
              }
            },
            "return": "Promise<Theme>"
          },
          "signature": "getUserPreference() => Promise<Theme>",
          "parameters": [],
          "docs": "get preferred theme,\n1. Check user settings:\n   - check if localstorage has user-theme key\n   - if so, check if value is either light or dark,\n   - if so, return value\n   - if value is neither light or dark, continue to next step\n2. Check system preference:\n   - check if prefers-color-scheme is dark, if so, return dark\n3. default to light",
          "docsTags": []
        },
        {
          "name": "setTheme",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(theme: Theme) => Promise<void>",
            "parameters": [
              {
                "name": "theme",
                "type": "\"light\" | \"dark\"",
                "docs": "theme to set"
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "Theme": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-dark-mode/go-dark-mode.tsx",
                "id": "src/components/go-dark-mode/go-dark-mode.tsx::Theme"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "setTheme(theme: Theme) => Promise<void>",
          "parameters": [
            {
              "name": "theme",
              "type": "\"light\" | \"dark\"",
              "docs": "theme to set"
            }
          ],
          "docs": "set the current theme and change the html attribute",
          "docsTags": [
            {
              "name": "param",
              "text": "theme theme to set"
            }
          ]
        }
      ],
      "events": [
        {
          "event": "themechange",
          "detail": "{ theme: Theme; }",
          "bubbles": true,
          "complexType": {
            "original": "{ theme: Theme }",
            "resolved": "{ theme: Theme; }",
            "references": {
              "Theme": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-dark-mode/go-dark-mode.tsx",
                "id": "src/components/go-dark-mode/go-dark-mode.tsx::Theme"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/form/go-datepicker/go-datepicker.tsx",
      "encapsulation": "none",
      "tag": "go-datepicker",
      "readme": "---\ntitle: Datepicker\n---\n\n# Datepicker <span class=\"text-size-0\">`go-datepicker`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Datepicker is a widget that enables users to select a date from a calendar display.\n</div>\n\nDatepickers are commonly used in forms that require users to select a date for a reservation, appointment, or event. They provide an intuitive and standardised way for users to input date information and prevent errors and confusion that can arise from manual entry.\n\n::: success\n\n`go-datepicker` uses [Duet Date Picker](https://github.com/duetds/date-picker) under the hood, the Duet team made a great component that handles a lot of the accessibility concerns. `go-datepicker` accepts an `options` attribute where you can pass `duet-date-picker` options as a JSON object with key-value pairs.\n\n:::\n\n## Accessibility\n\n- Datepicker widget screen reader support ([See Duet Date Picker](https://github.com/duetds/date-picker#screen-reader-support))\n\n## Demo\n\n<demo-frame component=\"go-datepicker\" demo=\"go-datepicker\"></demo-frame>\n\n::: info\n\n**Note:** the value of the datepicker component is the same as what's displayed in the input field. The format is by default the ISO format `yyyy-mm-dd` same as the native HTML `<input type=\"date\" ...>` element. The difference is when you provide a custom `format` prop, the displayed value **and** the form data value use the specified format to convert the internal Date object into the string.\n\n:::\n",
      "docs": "---\ntitle: Datepicker\n---",
      "docsTags": [],
      "usage": {
        "go-datepicker": "<go-datepicker id=\"test\" type=\"text\" label=\"Date picker\" hint=\"Please enter a date\"  value=\"2000-01-01\"></go-datepicker>\n<go-datepicker type=\"text\" label=\"Error state\" hint=\"Please enter a date\" error=\"This is an error\"></go-datepicker>\n<go-datepicker type=\"text\" label=\"Disabled state\" value=\"2000-01-01\" disabled></go-datepicker>\n<go-datepicker id=\"readonly-test\" type=\"text\" label=\"Readonly state\" value=\"2000-01-01\" readonly></go-datepicker>\n<go-datepicker type=\"text\" label=\"Custom icon\">\n<go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n<go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-datepicker>\n\n<go-datepicker type=\"text\" label=\"Prefix slot\">\n  <div slot=\"prefix\">https://go-ui.com/</div>\n\n<go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n<go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-datepicker>\n<go-datepicker type=\"text\" label=\"Suffix slot\">\n\n  <div slot=\"suffix\">.com.au</div>\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-datepicker>\n"
      },
      "props": [
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "string | boolean",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "format",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "format",
          "reflectToAttr": false,
          "docs": "Specify the expected date format\nSupported formats: https://day.js.org/docs/en/parse/string-format#list-of-all-available-parsing-tokens",
          "docsTags": [],
          "default": "ISO_DATE_FORMAT",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintFormat",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "hint-format",
          "reflectToAttr": false,
          "docs": "add date format into hint message",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "options",
          "type": "string | { name?: string; identifier?: string; disabled?: boolean; role?: string; direction?: DuetDatePickerDirection; required?: boolean; value?: string; min?: string; max?: string; firstDayOfWeek?: DaysOfWeek; localization?: DuetLocalizedText; dateAdapter?: DuetDateAdapter; isDateDisabled?: DateDisabledPredicate; }",
          "complexType": {
            "original": "string | Partial<DuetDatePickerProps>",
            "resolved": "string | { name?: string; identifier?: string; disabled?: boolean; role?: string; direction?: DuetDatePickerDirection; required?: boolean; value?: string; min?: string; max?: string; firstDayOfWeek?: DaysOfWeek; localization?: DuetLocalizedText; dateAdapter?: DuetDateAdapter; isDateDisabled?: DateDisabledPredicate; }",
            "references": {
              "Partial": {
                "location": "global",
                "id": "global::Partial"
              },
              "DuetDatePickerProps": {
                "location": "import",
                "path": "./duet-date-picker",
                "id": "src/components/form/go-datepicker/duet-date-picker.ts::DuetDatePickerProps"
              }
            }
          },
          "mutable": false,
          "attr": "options",
          "reflectToAttr": false,
          "docs": "Duet Date Picker options\nhttps://www.npmjs.com/package/@duetds/date-picker#properties",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            },
            {
              "type": "{ name?: string; identifier?: string; disabled?: boolean; role?: string; direction?: DuetDatePickerDirection; required?: boolean; value?: string; min?: string; max?: string; firstDayOfWeek?: DaysOfWeek; localization?: DuetLocalizedText; dateAdapter?: DuetDateAdapter; isDateDisabled?: DateDisabledPredicate; }"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "placeholder",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "placeholder",
          "reflectToAttr": false,
          "docs": "Placeholder text",
          "docsTags": [],
          "default": "''",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "prefixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "prefix-id",
          "reflectToAttr": false,
          "docs": "DOM id for prefix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "readonly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "readonly",
          "reflectToAttr": false,
          "docs": "If this input is read-only",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "suffixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "suffix-id",
          "reflectToAttr": false,
          "docs": "DOM id for suffix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "value",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "gochange",
          "detail": "GoChangeEventDetail<string>",
          "bubbles": true,
          "complexType": {
            "original": "GoChangeEventDetail<string>",
            "resolved": "GoChangeEventDetail<string>",
            "references": {
              "GoChangeEventDetail": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::GoChangeEventDetail"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-field",
        "duet-date-picker"
      ],
      "dependencyGraph": {
        "go-datepicker": [
          "go-field",
          "duet-date-picker"
        ]
      }
    },
    {
      "filePath": "src/components/go-dialog/go-dialog.tsx",
      "encapsulation": "none",
      "tag": "go-dialog",
      "readme": "---\ntitle: Dialog\n---\n\n# Dialog <span class=\"text-size-0\">`go-dialog`</span>\n\n<!-- Description -->\n<div class=\"text-size-1\">\n  Dialog (a.k.a <strong>modal</strong>) is a component in Go UI.\n</div>\n\n## Accessibility\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-dialog\" demo=\"go-dialog\"></demo-frame>\n",
      "docs": "---\ntitle: Dialog\n---",
      "docsTags": [],
      "usage": {
        "go-dialog": "<style>\n  .skeleton {\n    width: 100%;\n    height: 120vh;\n    background: var(--go-color-secondary-100);\n    margin: 2rem 0;\n  }\n</style>\n<div class=\"container\">\n  <p style=\"position: sticky; top: 0; background: var(--go-color-lightest)\">\n    <go-button block=\"mobile\" id=\"btn\" variant=\"primary\">Show dialog</go-button>\n    <br />\n    <go-button block=\"mobile\" id=\"btn-persistent\" variant=\"primary\">Show persistent dialog</go-button>\n  </p>\n  <p>A dialog should capture the keyboard focus.</p>\n  <p>A dialog should also prevent body from scrolling when active.</p>\n  <p>See <a href=\"https://www.w3.org/TR/wai-aria-practices/#dialog_modal\" target=\"_blank\" rel=\"nofollow noopener\">WAI Design Pattern</a> for more details.</p>\n\n  <a href=\"#\">Focus</a>\n  <a href=\"#\">Focus</a>\n  <a href=\"#\">Focus</a>\n  <a href=\"#\">Focus</a>\n  <a href=\"#\">Focus</a>\n\n  <div class=\"skeleton\"></div>\n</div>\n\n<!-- dismissible dialog -->\n<go-dialog id=\"normal\" heading=\"Dialog content\">\n  <p>\n    Lorem ipsum dolor sit amet consectetur adipisicing elit. A eos, quidem sint perferendis suscipit\n    <a href=\"#\">Focus</a>\n    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea, sapiente.\n    <a href=\"#\">Trapped</a>\n  </p>\n\n  <div>\n    <go-button id=\"close-btn\" block=\"mobile\">Close</go-button>\n  </div>\n</go-dialog>\n\n<!-- persistent dialog -->\n<go-dialog id=\"persistent\" persistent=\"true\" heading=\"Heading\">\n  <p>\n    Lorem ipsum dolor sit amet consectetur adipisicing elit. A eos, quidem sint perferendis suscipit\n    <a href=\"#\">Focus</a>\n    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea, sapiente.\n    <a href=\"#\">Focus Trapped</a>\n  </p>\n\n  <div>\n    <go-button id=\"close-persistent-btn\" block=\"mobile\">Close</go-button>\n  </div>\n</go-dialog>\n\n<script>\n  const dialog = document.querySelector('#normal');\n  const persistentDialog = document.querySelector('#persistent');\n\n  document.querySelector('#btn').addEventListener('click', () => {\n    console.log('clicked', dialog)\n    dialog.open();\n  });\n  document.querySelector('#btn-persistent').addEventListener('click', () => {\n    persistentDialog.open();\n  });\n  document.querySelector('#close-btn').addEventListener('click', () => {\n    dialog.close();\n  });\n  document.querySelector('#close-persistent-btn').addEventListener('click', () => {\n    persistentDialog.close();\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": true,
          "docs": "If this dialog is active",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading of the overlay content",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "headingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading-tag",
          "reflectToAttr": false,
          "docs": "HTML tag for the heading",
          "docsTags": [],
          "default": "'h2'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "persistent",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "persistent",
          "reflectToAttr": false,
          "docs": "If persistent, the overlay will not be closed when the user clicks outside of it or presses the escape key.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-overlay",
        "go-button"
      ],
      "dependencyGraph": {
        "go-dialog": [
          "go-overlay",
          "go-button"
        ],
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/go-dropdown/go-dropdown.tsx",
      "encapsulation": "none",
      "tag": "go-dropdown",
      "readme": "---\ntitle: Dropdown\n---\n\n# Dropdown <span class=\"text-size-0\">`go-dropdown`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Dropdown is a lower-level component that serves as a wrapper for presenting a popup widget in-place of the interaction.</div>\n\n## Usage\n\n\nThe main purpose of using the `go-dropdown` component is to solve these problems:\n1. open dropdown panel in place of interaction\n2. focus on first focusable element inside dropdown\n3. trap focus inside dropdown\n\nThe `go-dropdown` provides a generic dropdown mechanism that can be used by patterns like menu, select, multi-select etc.\n\n:::info Dropdown menu\n\n[`go-dropdown-menu`](go-dropdown-menu) provides an easy way to make accessible dropdown menus.\n\n:::\n\n## Accessibility\n\n- The trigger element will have `aria-haspopup` and `aria-expanded` attributes automatically applied.\n\nSee [menu button](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/) WAI-ARIA for details on recommended Roles, States, and Properties for menu button (button that opens a menu). \n\n## Demo\n\n<demo-frame component=\"go-dropdown\" demo=\"go-dropdown\"></demo-frame>\n\n",
      "docs": "---\ntitle: Dropdown\n---",
      "docsTags": [],
      "usage": {
        "go-dropdown": "<go-button id=\"test\">Toggle Dropdown</go-button>\n<go-dropdown id=\"dd\" trigger-selector=\"#test\">\n  <ul>\n    <li><a href=\"#1\">Focused on open</a></li>\n    <li><a href=\"#2\">Test 2</a></li>\n    <li><a href=\"#3\">Test 3</a></li>\n  </ul>\n</go-dropdown>"
      },
      "props": [
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "if set, dropdown cannot be opened",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "fullWidth",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "full-width",
          "reflectToAttr": false,
          "docs": "If set, dropdown will take full width of its parent.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "isActive",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "is-active",
          "reflectToAttr": true,
          "docs": "keep track of active state",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "noTriggerClickHandler",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "no-trigger-click-handler",
          "reflectToAttr": false,
          "docs": "If set, trigger click event will need to be handled manually.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "triggerSelector",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "trigger-selector",
          "reflectToAttr": false,
          "docs": "Query selector string for the trigger element.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "width",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "width",
          "reflectToAttr": false,
          "docs": "Width of the dropdown, any CSS width values can be used.",
          "docsTags": [],
          "default": "'auto'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(focusBackToTrigger?: boolean) => Promise<void>",
            "parameters": [
              {
                "name": "focusBackToTrigger",
                "type": "boolean",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close(focusBackToTrigger?: boolean) => Promise<void>",
          "parameters": [
            {
              "name": "focusBackToTrigger",
              "type": "boolean",
              "docs": ""
            }
          ],
          "docs": "closes dropdown",
          "docsTags": []
        },
        {
          "name": "init",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "Node": {
                "location": "global",
                "id": "global::Node"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "init() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "HTMLElement": {
                "location": "global",
                "id": "global::HTMLElement"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "opens dropdown",
          "docsTags": []
        },
        {
          "name": "toggle",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "toggle() => Promise<void>",
          "parameters": [],
          "docs": "toggles dropdown",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "closed",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when dropdown is opened",
          "docsTags": []
        },
        {
          "event": "opened",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when dropdown is opened",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--dropdown-bg-color",
          "annotation": "prop",
          "docs": "Dropdown background color - default: var(--go-color-lightest)"
        },
        {
          "name": "--dropdown-duration",
          "annotation": "prop",
          "docs": "Duration for dropdown open/close transition - default: var(--go-duration-fast)"
        },
        {
          "name": "--dropdown-radius",
          "annotation": "prop",
          "docs": "Border radius of dropdown - default: var(--radius-2)"
        },
        {
          "name": "--dropdown-shadow",
          "annotation": "prop",
          "docs": "Box shadow of dropdown - default: var(--shadow-3)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-dropdown-menu",
        "go-select"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-dropdown-menu": [
          "go-dropdown"
        ],
        "go-select": [
          "go-dropdown"
        ]
      }
    },
    {
      "filePath": "src/components/go-dropdown-menu/go-dropdown-item.tsx",
      "encapsulation": "none",
      "tag": "go-dropdown-item",
      "readme": "---\ntitle: Dropdown menu\n---\n\n# Dropdown menu <span class=\"text-size-0\">`go-dropdown-menu`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Dropdown menu allows users to choose from a predefined list of options in order to perform an action.\n</div>\n\n::: info\n\nFor a list of navigational items, please refer to the following components:\n\n- [Nav bar](/docs/components/navigation/go-nav-bar)\n- [Nav drawer](/docs/components/navigation/go-nav-drawer)\n\n:::\n\n## Trigger button\n\nA dropdown menu requires a trigger element, this can be set by using `trigger-selector` similar to [`go-dropdown`](go-dropdown).\n\n## Persistent\n\nA dropdown menu can be `persistent` in order to allow users to interact with the widget continuously.\n\n## Accessibility\n\nWAI [Menu button](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/) pattern aligns closely to the `go-dropdown-menu` component.\n\n### Menu button\n\n- Use a button element (`go-button`, `button` or `input type=\"button\"`) as the trigger element.\n- `aria-haspopup` will be set automatically on the trigger element to the id of the menu.\n- When the menu is displayed, the trigger element has `aria-expanded` set to true. When the menu is hidden, `aria-expanded` is removed. If `aria-expanded` is specified when the menu is hidden, it is set to false.\n- The trigger element has a value specified for `aria-controls` that refers to the element with role menu.\n\n#### Keyboard\n\nWhen trigger button has focus:\n\n- <kbd>Enter</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Space</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Down Arrow</kbd>: opens the menu and moves focus to the first menu item.\n- <kbd>Up Arrow</kbd>: opens the menu and moves focus to the last menu item.\n\nWhen focus is inside the dropdown menu:\n\n- <kbd>Down Arrow</kbd>: move focus to the next menu item, if current item is the last one, move focus to the first menu item.\n- <kbd>Up Arrow</kbd>: move focus to the previous menu item, if current item is the first one, move focus to the last menu item.\n- <kbd>Esc</kbd>: closes the menu.\n\n#### Tab sequence\n\nThe keyboard interaction of the menu follows the WAI guideline for [Keyboard navigation inside components](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within), which means <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> do not move focus between menu items, instead, they are only used to focus in and out of the dropdown menu.\n\n> the tab sequence should include only one focusable element of a composite UI component. Once a composite contains focus, keys other than <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> enable the user to move focus among its focusable elements\n>\n> - [Developing a Keyboard Interface](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within) by WAI APG\n\n## Demo\n\n<demo-frame component=\"go-dropdown-menu\" demo=\"go-dropdown-menu\"></demo-frame>\n",
      "docs": "---\ntitle: Dropdown menu\n---",
      "docsTags": [],
      "usage": {
        "go-dropdown-menu": "<div class=\"container\">\n  <go-button id=\"test\" variant=\"primary\">Toggle Dropdown</go-button>\n  <go-dropdown-menu id=\"dd\" trigger-selector=\"#test\">\n    <div slot=\"prefix\">\n      <strong>Prefix content</strong>\n    </div>\n    <div slot=\"suffix\">\n      <strong>Suffix content</strong>\n    </div>\n    <a href=\"#\" role=\"menuitem\">Custom menu item</a>\n    <go-dropdown-item>Item 1</go-dropdown-item>\n    <go-dropdown-item>Item 2</go-dropdown-item>\n    <go-dropdown-item disabled>Item disabled</go-dropdown-item>\n    <go-dropdown-separator></go-dropdown-separator>\n    <go-dropdown-item>Item 3</go-dropdown-item>\n  </go-dropdown-menu>\n  <div id=\"result\">Select a dropdown item</div>\n  <a href=\"#\">Another focusable element</a>\n</div>\n<script>\n  const menu = document.querySelector('#dd');\n  const result = document.querySelector('#result');\n  menu.addEventListener('selected', (e) => {\n    const text = e.detail.innerText;\n    result.innerHTML = `selected: ${text}`\n  })\n</script>\n"
      },
      "props": [
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": true,
          "docs": "if this item is disabled, according to the [menu pattern] https://www.w3.org/WAI/ARIA/apg/patterns/menu/#issue-container-generatedID-17 disabled menu item should be focusable but cannot be activated",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "width",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "width",
          "reflectToAttr": false,
          "docs": "customise width of the dropdown item",
          "docsTags": [],
          "default": "'100%'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "focusInControl",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "focusInControl() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "focusOutControl",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "focusOutControl() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "selected",
          "detail": "HTMLElement",
          "bubbles": true,
          "complexType": {
            "original": "HTMLElement",
            "resolved": "HTMLElement",
            "references": {
              "HTMLElement": {
                "location": "global",
                "id": "global::HTMLElement"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when a menu item is selected",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-dropdown-menu/go-dropdown-menu.tsx",
      "encapsulation": "none",
      "tag": "go-dropdown-menu",
      "readme": "---\ntitle: Dropdown menu\n---\n\n# Dropdown menu <span class=\"text-size-0\">`go-dropdown-menu`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Dropdown menu allows users to choose from a predefined list of options in order to perform an action.\n</div>\n\n::: info\n\nFor a list of navigational items, please refer to the following components:\n\n- [Nav bar](/docs/components/navigation/go-nav-bar)\n- [Nav drawer](/docs/components/navigation/go-nav-drawer)\n\n:::\n\n## Trigger button\n\nA dropdown menu requires a trigger element, this can be set by using `trigger-selector` similar to [`go-dropdown`](go-dropdown).\n\n## Persistent\n\nA dropdown menu can be `persistent` in order to allow users to interact with the widget continuously.\n\n## Accessibility\n\nWAI [Menu button](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/) pattern aligns closely to the `go-dropdown-menu` component.\n\n### Menu button\n\n- Use a button element (`go-button`, `button` or `input type=\"button\"`) as the trigger element.\n- `aria-haspopup` will be set automatically on the trigger element to the id of the menu.\n- When the menu is displayed, the trigger element has `aria-expanded` set to true. When the menu is hidden, `aria-expanded` is removed. If `aria-expanded` is specified when the menu is hidden, it is set to false.\n- The trigger element has a value specified for `aria-controls` that refers to the element with role menu.\n\n#### Keyboard\n\nWhen trigger button has focus:\n\n- <kbd>Enter</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Space</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Down Arrow</kbd>: opens the menu and moves focus to the first menu item.\n- <kbd>Up Arrow</kbd>: opens the menu and moves focus to the last menu item.\n\nWhen focus is inside the dropdown menu:\n\n- <kbd>Down Arrow</kbd>: move focus to the next menu item, if current item is the last one, move focus to the first menu item.\n- <kbd>Up Arrow</kbd>: move focus to the previous menu item, if current item is the first one, move focus to the last menu item.\n- <kbd>Esc</kbd>: closes the menu.\n\n#### Tab sequence\n\nThe keyboard interaction of the menu follows the WAI guideline for [Keyboard navigation inside components](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within), which means <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> do not move focus between menu items, instead, they are only used to focus in and out of the dropdown menu.\n\n> the tab sequence should include only one focusable element of a composite UI component. Once a composite contains focus, keys other than <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> enable the user to move focus among its focusable elements\n>\n> - [Developing a Keyboard Interface](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within) by WAI APG\n\n## Demo\n\n<demo-frame component=\"go-dropdown-menu\" demo=\"go-dropdown-menu\"></demo-frame>\n",
      "docs": "---\ntitle: Dropdown menu\n---",
      "docsTags": [],
      "usage": {
        "go-dropdown-menu": "<div class=\"container\">\n  <go-button id=\"test\" variant=\"primary\">Toggle Dropdown</go-button>\n  <go-dropdown-menu id=\"dd\" trigger-selector=\"#test\">\n    <div slot=\"prefix\">\n      <strong>Prefix content</strong>\n    </div>\n    <div slot=\"suffix\">\n      <strong>Suffix content</strong>\n    </div>\n    <a href=\"#\" role=\"menuitem\">Custom menu item</a>\n    <go-dropdown-item>Item 1</go-dropdown-item>\n    <go-dropdown-item>Item 2</go-dropdown-item>\n    <go-dropdown-item disabled>Item disabled</go-dropdown-item>\n    <go-dropdown-separator></go-dropdown-separator>\n    <go-dropdown-item>Item 3</go-dropdown-item>\n  </go-dropdown-menu>\n  <div id=\"result\">Select a dropdown item</div>\n  <a href=\"#\">Another focusable element</a>\n</div>\n<script>\n  const menu = document.querySelector('#dd');\n  const result = document.querySelector('#result');\n  menu.addEventListener('selected', (e) => {\n    const text = e.detail.innerText;\n    result.innerHTML = `selected: ${text}`\n  })\n</script>\n"
      },
      "props": [
        {
          "name": "isActive",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "is-active",
          "reflectToAttr": true,
          "docs": "keep track of active state",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "menuId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "menu-id",
          "reflectToAttr": false,
          "docs": "DOM id for menu",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "persistent",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "persistent",
          "reflectToAttr": false,
          "docs": "If persistent, the dropdown will not close by itself on interaction with elements inside the menu.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "triggerSelector",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "trigger-selector",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [
            {
              "name": "see",
              "text": "[go-dropdown](go-dropdown#props)"
            }
          ],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "width",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "width",
          "reflectToAttr": false,
          "docs": "customise width of dropdown menu",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(focusBackToTrigger?: boolean) => Promise<void>",
            "parameters": [
              {
                "name": "focusBackToTrigger",
                "type": "boolean",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close(focusBackToTrigger?: boolean) => Promise<void>",
          "parameters": [
            {
              "name": "focusBackToTrigger",
              "type": "boolean",
              "docs": ""
            }
          ],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "open menu",
          "docsTags": [
            {
              "name": "param",
              "text": "focusFirst if auto focus on first item"
            }
          ]
        }
      ],
      "events": [],
      "listeners": [
        {
          "event": "selected",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--dd-item-bg",
          "annotation": "prop",
          "docs": "Background of dropdown item - default: var(--dropdown-bg-color)"
        },
        {
          "name": "--dd-item-bg-disabled",
          "annotation": "prop",
          "docs": "Disabled background color - default: transparent"
        },
        {
          "name": "--dd-item-bg-hover",
          "annotation": "prop",
          "docs": "Hover background for dropdown item - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--dd-item-bg-selected",
          "annotation": "prop",
          "docs": "background for selected state - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--dd-item-fg",
          "annotation": "prop",
          "docs": "Foreground of dropdown item - default: var(--go-color-neutral-900)"
        },
        {
          "name": "--dd-item-fg-disabled",
          "annotation": "prop",
          "docs": "Disabled foreground color - default: var(--go-color-neutral-600)"
        },
        {
          "name": "--dd-item-fg-hover",
          "annotation": "prop",
          "docs": "Hover foreground of dropdown item - default: var(--go-color-darkest)"
        },
        {
          "name": "--dd-item-fg-selected",
          "annotation": "prop",
          "docs": "Selected state foreground - default: var(--go-color-darkest)"
        },
        {
          "name": "--dd-item-gap",
          "annotation": "prop",
          "docs": "Gap between dropdown items - default: 0"
        },
        {
          "name": "--dd-item-line-height",
          "annotation": "prop",
          "docs": "line height of item - default: 1.5em"
        },
        {
          "name": "--dd-item-padding",
          "annotation": "prop",
          "docs": "Padding for dropdown item - default: 0.5rem 1rem"
        },
        {
          "name": "--dd-item-radius",
          "annotation": "prop",
          "docs": "Border radius for dropdown item - default: var(--radius-1)"
        },
        {
          "name": "--dd-item-width",
          "annotation": "prop",
          "docs": "Width of dropdown item - default: 100%"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-dropdown"
      ],
      "dependencyGraph": {
        "go-dropdown-menu": [
          "go-dropdown"
        ]
      }
    },
    {
      "filePath": "src/components/go-dropdown-menu/go-dropdown-separator.tsx",
      "encapsulation": "none",
      "tag": "go-dropdown-separator",
      "readme": "---\ntitle: Dropdown menu\n---\n\n# Dropdown menu <span class=\"text-size-0\">`go-dropdown-menu`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Dropdown menu allows users to choose from a predefined list of options in order to perform an action.\n</div>\n\n::: info\n\nFor a list of navigational items, please refer to the following components:\n\n- [Nav bar](/docs/components/navigation/go-nav-bar)\n- [Nav drawer](/docs/components/navigation/go-nav-drawer)\n\n:::\n\n## Trigger button\n\nA dropdown menu requires a trigger element, this can be set by using `trigger-selector` similar to [`go-dropdown`](go-dropdown).\n\n## Persistent\n\nA dropdown menu can be `persistent` in order to allow users to interact with the widget continuously.\n\n## Accessibility\n\nWAI [Menu button](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/) pattern aligns closely to the `go-dropdown-menu` component.\n\n### Menu button\n\n- Use a button element (`go-button`, `button` or `input type=\"button\"`) as the trigger element.\n- `aria-haspopup` will be set automatically on the trigger element to the id of the menu.\n- When the menu is displayed, the trigger element has `aria-expanded` set to true. When the menu is hidden, `aria-expanded` is removed. If `aria-expanded` is specified when the menu is hidden, it is set to false.\n- The trigger element has a value specified for `aria-controls` that refers to the element with role menu.\n\n#### Keyboard\n\nWhen trigger button has focus:\n\n- <kbd>Enter</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Space</kbd>: opens the menu and places focus on the first menu item.\n- <kbd>Down Arrow</kbd>: opens the menu and moves focus to the first menu item.\n- <kbd>Up Arrow</kbd>: opens the menu and moves focus to the last menu item.\n\nWhen focus is inside the dropdown menu:\n\n- <kbd>Down Arrow</kbd>: move focus to the next menu item, if current item is the last one, move focus to the first menu item.\n- <kbd>Up Arrow</kbd>: move focus to the previous menu item, if current item is the first one, move focus to the last menu item.\n- <kbd>Esc</kbd>: closes the menu.\n\n#### Tab sequence\n\nThe keyboard interaction of the menu follows the WAI guideline for [Keyboard navigation inside components](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within), which means <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> do not move focus between menu items, instead, they are only used to focus in and out of the dropdown menu.\n\n> the tab sequence should include only one focusable element of a composite UI component. Once a composite contains focus, keys other than <kbd>Tab</kbd> and <kbd>Shift + Tab</kbd> enable the user to move focus among its focusable elements\n>\n> - [Developing a Keyboard Interface](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_general_within) by WAI APG\n\n## Demo\n\n<demo-frame component=\"go-dropdown-menu\" demo=\"go-dropdown-menu\"></demo-frame>\n",
      "docs": "---\ntitle: Dropdown menu\n---",
      "docsTags": [],
      "usage": {
        "go-dropdown-menu": "<div class=\"container\">\n  <go-button id=\"test\" variant=\"primary\">Toggle Dropdown</go-button>\n  <go-dropdown-menu id=\"dd\" trigger-selector=\"#test\">\n    <div slot=\"prefix\">\n      <strong>Prefix content</strong>\n    </div>\n    <div slot=\"suffix\">\n      <strong>Suffix content</strong>\n    </div>\n    <a href=\"#\" role=\"menuitem\">Custom menu item</a>\n    <go-dropdown-item>Item 1</go-dropdown-item>\n    <go-dropdown-item>Item 2</go-dropdown-item>\n    <go-dropdown-item disabled>Item disabled</go-dropdown-item>\n    <go-dropdown-separator></go-dropdown-separator>\n    <go-dropdown-item>Item 3</go-dropdown-item>\n  </go-dropdown-menu>\n  <div id=\"result\">Select a dropdown item</div>\n  <a href=\"#\">Another focusable element</a>\n</div>\n<script>\n  const menu = document.querySelector('#dd');\n  const result = document.querySelector('#result');\n  menu.addEventListener('selected', (e) => {\n    const text = e.detail.innerText;\n    result.innerHTML = `selected: ${text}`\n  })\n</script>\n"
      },
      "props": [],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--dd-separator-line-color",
          "annotation": "prop",
          "docs": "Separator line color - default: var(--go-color-neutral-300)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/form/go-field/go-field.tsx",
      "encapsulation": "none",
      "tag": "go-field",
      "readme": "---\ntitle: Field\n---\n\n# Field <span class=\"text-size-0\">`go-field`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Field is a component in Go UI.\n</div>\n\n\n## Accessibility\n\n\n## Demo\n\n<demo-frame component=\"go-field\" demo=\"go-field\"></demo-frame>\n",
      "docs": "---\ntitle: Field\n---",
      "docsTags": [],
      "usage": {},
      "props": [
        {
          "name": "controlElSelector",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "control-el-selector",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "'.control'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "controlId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "control-id",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "boolean | string",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hiddenInputName",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hidden-input-name",
          "reflectToAttr": false,
          "docs": "If specified, an input element with `type=\"hidden\"` will be generated\nand this hiddenName prop will be used as the `name` of the hidden input\n\nuse `hiddenInputValue` prop to set the value of that field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hiddenInputValue",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hidden-input-value",
          "reflectToAttr": false,
          "docs": "Sets the value of the hidden input created by `hiddenInputName`",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "idPrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "id-prefix",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "prefixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "prefix-id",
          "reflectToAttr": false,
          "docs": "DOM id for prefix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "readonly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "readonly",
          "reflectToAttr": false,
          "docs": "If this input is read-only",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "suffixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "suffix-id",
          "reflectToAttr": false,
          "docs": "DOM id for suffix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-datepicker",
        "go-input",
        "go-select",
        "go-textarea"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-datepicker": [
          "go-field"
        ],
        "go-input": [
          "go-field"
        ],
        "go-select": [
          "go-field"
        ],
        "go-textarea": [
          "go-field"
        ]
      }
    },
    {
      "filePath": "src/components/form/go-fieldset/go-fieldset.tsx",
      "encapsulation": "none",
      "tag": "go-fieldset",
      "readme": "---\ntitle: Fieldset\n---\n\n# Fieldset <span class=\"text-size-0\">`go-fieldset`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Fieldset is used to group form controls such as checkboxes and radio buttons. You can also use this to group relevant fields together in a semantically meaningful way.\n</div>\n\n\n## Accessibility\n- Fieldset is announced as a \"grouping\"\n- `label` prop is injected into the native `<legend>` tag to provide description\n- `hint` prop is inject into legend so it is announced when the group receives focus\n- `error` prop is announced (prefixed with \"Invalid: \") when the fieldset receives focus\n- Use `is-list` attribute to group checkboxes or radio buttons into a list so screen readers announce the semantic structure including number of options available.\n\nThis is what NVDA reads when the first item of the demo below receives focus:\n\n> What fruit do you like? Select one or more  grouping  list  with 3 items  Apple  check box  not checked  \n\n## Demo\n\n<demo-frame component=\"go-fieldset\" demo=\"go-fieldset\"></demo-frame>\n",
      "docs": "---\ntitle: Fieldset\n---",
      "docsTags": [],
      "usage": {
        "go-fieldset": "<go-fieldset label=\"What fruit do you like?\" hint=\"Select one or more\" is-list>\n  <go-checkbox name=\"fruit\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Banana\" value=\"banana\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Orange\" value=\"orange\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Kiwi\" value=\"kiwi\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Watermelon\" value=\"watermelon\"></go-checkbox>\n</go-fieldset>\n\n<p>Error state</p>\n<go-fieldset label=\"What fruit do you like?\" error=\"[This is an error message]\" hint=\"Select one or more\" is-list>\n  <go-checkbox name=\"fruit\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Banana\" value=\"banana\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Orange\" value=\"orange\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Kiwi\" value=\"kiwi\"></go-checkbox>\n  <go-checkbox name=\"fruit\" label=\"Watermelon\" value=\"watermelon\"></go-checkbox>\n</go-fieldset>"
      },
      "props": [
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "boolean | string",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "isList",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "is-list",
          "reflectToAttr": false,
          "docs": "Wrap direct DOM children in an unordered list so they are announced by screen readers, good for checkboxes and radio buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/patterns/go-footer/go-footer.tsx",
      "encapsulation": "none",
      "tag": "go-footer",
      "readme": "---\ntitle: Footer\ntags:\n  - Layout\n  - Navigation\n---\n\n# Footer <span class=\"text-size-0\">`go-footer`</span>\n\n<!-- Description -->\n\n::: info Self contained\n\n`go-footer` is a self-contained pattern, do not put it inside a `.container`\n\n:::\n\nFooter is located at the bottom of the page to provide supplementary information such as copyright, contact information and links to help users find what they need.\n\n## Accessibility\n\n`<footer>` landmark is used to help assistive technology to quickly identify and navigate to the appropriate section.\n\nEach page should only have one `<footer>` landmark hence only one `go-footer` element.\n\nhttps://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/contentinfo_role\n\n## Related components\n\n- [go-nav-list](../components/navigation/go-nav-list)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-footer\" demo=\"footer\"></demo-frame>\n\n## Dark variant\n\n`<go-footer>` not only self adjust based on the user's `prefer-color-scheme` setting, but also comes with a `dark` variant out of the box. This dark variant will _not_ change based on user's `prefer-color-scheme` setting.\n\n<demo-frame component=\"go-footer\" demo=\"dark\"></demo-frame>\n\n### Custom colours\n\nYou can customise the footer colours by overriding these CSS variables:\n\n(snippet below shows the default values.)\n\n```css\ngo-footer {\n  // colours\n  --footer-bg-color: var(--go-color-lightest);\n  --footer-text-color: var(--go-color-text);\n  --footer-link-color: var(--footer-text-color);\n  --footer-link-color-hover: var(--go-color-success-900);\n  --footer-link-bg-color-hover: transparent;\n}\n```\n\n## Custom slots\n\nYou can also custom build the entire footer html structure by omitting the `links` property and just write your own html inside the `<go-footer>` component.\n\n<demo-frame component=\"go-footer\" demo=\"custom\"></demo-frame>\n",
      "docs": "---\ntitle: Footer\ntags:\n  - Layout\n  - Navigation\n---",
      "docsTags": [],
      "usage": {
        "custom": "<go-footer>\n  <div class=\"container\" style=\"padding: var(--footer-section-padding)\">\n    <div class=\"row\">\n      <div class=\"col-tablet-6\">\n        <div class=\"footer-logo\">\n          <img src=\"https://via.placeholder.com/150\" alt=\"logo\" />\n        </div>\n        <h3>hello world</h3>\n      </div>\n      <div class=\"col-tablet-6\">\n        <ul>\n          <li>\n            <a href=\"#\">Privacy policies</a>\n          </li>\n          <li>\n            <a href=\"#\">Terms and conditions</a>\n          </li>\n          <li>\n            <a href=\"#\">Contact</a>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </div>\n\n  <div slot=\"copyright\">\n    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente sed dolorum nemo facere neque eveniet modi accusantium fuga placeat expedita. Eius minus\n    non vero id neque. Id a expedita atque.\n  </div>\n</go-footer>\n",
        "dark": "<!-- material icons -->\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<go-footer\n  dark\n  links=\"[\n{\nlabel: 'Features',\nurl: '#',\nicon: 'star',\nchildren: [\n  {\n    label: 'Home',\n    url: '#',\n    icon: 'home'\n  },\n  {\n    label: 'About',\n    url: '#',\n    icon: 'info'\n  },\n  {\n    label: 'Contact',\n    url: '#',\n    icon: 'contact_mail'\n  }\n]\n},\n{\nlabel: 'Get involved',\nurl: '#',\nchildren: [\n  {\n    label: 'Bug report',\n    url: '#',\n  },\n  {\n    label: 'Feature request',\n    url: '#',\n  },\n  {\n    label: 'Development guide',\n    url: '#',\n  },\n],\n},\n{\nlabel: 'Community',\nicon: 'people',\nchildren: [\n  {\n    label: 'Discord',\n    url: 'https://discord.gg/g7cuQAdPfS',\n    linkAttr: {\n      target: '_blank',\n      rel: 'noopener noreferrer'\n    }\n  },\n  {\n    label: 'Twitter',\n    url: 'https://twitter.com/go-components',\n    linkAttr: {\n      target: '_blank',\n      rel: 'noopener noreferrer'\n    }\n  },\n],\n},\n]\"\n>\n  <div slot=\"copyright\">\n    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente sed dolorum nemo facere neque eveniet modi accusantium fuga placeat expedita. Eius minus\n    non vero id neque. Id a expedita atque.\n  </div>\n\n  <div slot=\"footer-bottom\">\n    <style>\n      .link-list {\n        display: flex;\n        list-style: none;\n        padding: 0;\n        gap: 1rem;\n        font-size: var(--go-size--1);\n      }\n    </style>\n    <ul class=\"link-list\">\n      <li>\n        <a href=\"#\">Privacy policies</a>\n      </li>\n      <li>\n        <a href=\"#\">Terms and conditions</a>\n      </li>\n      <li>\n        <a href=\"#\">Contact</a>\n      </li>\n    </ul>\n  </div>\n</go-footer>\n",
        "footer": "<!-- material icons -->\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<go-footer\n  links=\"[\n{\n  label: 'Features',\n  url: '#',\n  icon: 'star',\n  children: [\n    {\n      label: 'Home',\n      url: '#',\n      icon: 'home'\n    },\n    {\n      label: 'About',\n      url: '#',\n      icon: 'info'\n    },\n    {\n      label: 'Contact',\n      url: '#',\n      icon: 'contact_mail'\n    }\n  ]\n},\n{\n  label: 'Get involved',\n  url: '#',\n  children: [\n    {\n      label: 'Bug report',\n      url: '#',\n    },\n    {\n      label: 'Feature request',\n      url: '#',\n    },\n    {\n      label: 'Development guide',\n      url: '#',\n    },\n  ],\n},\n{\n  label: 'Community',\n  icon: 'people',\n  children: [\n    {\n      label: 'Discord',\n      url: 'https://discord.gg/g7cuQAdPfS',\n      linkAttr: {\n        target: '_blank',\n        rel: 'noopener noreferrer'\n      }\n    },\n    {\n      label: 'Twitter',\n      url: 'https://twitter.com/go-components',\n      linkAttr: {\n        target: '_blank',\n        rel: 'noopener noreferrer'\n      }\n    },\n  ],\n},\n]\"\n>\n  <div slot=\"copyright\">\n    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente sed dolorum nemo facere neque eveniet modi accusantium fuga placeat expedita. Eius minus\n    non vero id neque. Id a expedita atque.\n  </div>\n\n  <div slot=\"footer-bottom\">\n    <style>\n      .link-list {\n        display: flex;\n        list-style: none;\n        padding: 0;\n        gap: 1rem;\n        font-size: var(--go-size--1);\n      }\n    </style>\n    <ul class=\"link-list\">\n      <li>\n        <a href=\"#\">Privacy policies</a>\n      </li>\n      <li>\n        <a href=\"#\">Terms and conditions</a>\n      </li>\n      <li>\n        <a href=\"#\">Contact</a>\n      </li>\n    </ul>\n  </div>\n</go-footer>\n"
      },
      "props": [
        {
          "name": "links",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "links",
          "reflectToAttr": false,
          "docs": "Navigation links to be displayed.",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "listHeadingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "list-heading-tag",
          "reflectToAttr": false,
          "docs": "Heading tag for nav list",
          "docsTags": [],
          "default": "'h4'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "navCols",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "nav-cols",
          "reflectToAttr": false,
          "docs": "Number of navigation columns",
          "docsTags": [],
          "default": "1",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "navColsDesktop",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "nav-cols-desktop",
          "reflectToAttr": false,
          "docs": "Number of navigation columns for desktop and up",
          "docsTags": [],
          "default": "4",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "navColsTablet",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "nav-cols-tablet",
          "reflectToAttr": false,
          "docs": "Number of navigation columns for tablet and up",
          "docsTags": [],
          "default": "3",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "navLabel",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "nav-label",
          "reflectToAttr": false,
          "docs": "Label for navigation",
          "docsTags": [],
          "default": "'Footer'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--footer-bg-color",
          "annotation": "prop",
          "docs": "Background color for the footer - default: var(--go-color-lightest)"
        },
        {
          "name": "--footer-bottom-section-padding",
          "annotation": "prop",
          "docs": "Padding for the bottom section - default: 2rem 0"
        },
        {
          "name": "--footer-copyright-section-padding",
          "annotation": "prop",
          "docs": "Padding for the copyright section - default: 2rem 0"
        },
        {
          "name": "--footer-nav-section-padding",
          "annotation": "prop",
          "docs": "Padding for the navigation section - default: 3rem 0"
        },
        {
          "name": "--footer-separator-color",
          "annotation": "prop",
          "docs": "Color for separator between sections - default: var(--go-color-neutral-300)"
        },
        {
          "name": "--footer-text-color",
          "annotation": "prop",
          "docs": "Text color for the footer - default: var(--go-color-text)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-nav-list",
        "go-nav-link"
      ],
      "dependencyGraph": {
        "go-footer": [
          "go-nav-list",
          "go-nav-link"
        ],
        "go-nav-list": [
          "go-nav-list",
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ]
      }
    },
    {
      "filePath": "src/patterns/go-gov-au-logo/go-gov-au-logo.tsx",
      "encapsulation": "none",
      "tag": "go-gov-au-logo",
      "readme": "---\ntitle: GovAU Logo\nhide_title: true\nhide_table_of_contents: true\ntags:\n  - Navigation\n  - Global styles\n---\n# GovAU Logo <span class=\"text-size-0\">`go-gov-au-logo`</span>\n\n<!-- Description -->\n\nAccording to the [DTA Branding guidelines](https://www.dta.gov.au/help-and-advice/guides-and-tools/requirements-australian-government-websites/branding), _Australian Government services must use common branding on their websites and print publications_.\n\nWe encapsulate this into a simple yet flexible component to help you comply with it in both light and dark colour schemes.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Usage\n\nThe `go-gov-au-logo` component comes with 3 slots for you to fill in with your own content, see the example below.\n\n<demo-frame component=\"go-gov-au-logo\" demo=\"go-gov-au-logo\"></demo-frame>\n",
      "docs": "---\ntitle: GovAU Logo\nhide_title: true\nhide_table_of_contents: true\ntags:\n  - Navigation\n  - Global styles\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "crest - This should be where you reference the Australian Government crest img resource (on light background)."
        },
        {
          "name": "slot",
          "text": "crest-on-dark - This should be where you reference the Australian Government crest img resource (on dark background)."
        },
        {
          "name": "slot",
          "text": "co-brand - Add co-branding agency logo / elements here."
        }
      ],
      "usage": {
        "go-gov-au-logo": "<div>\n  <div>\n    <go-gov-au-logo href=\"/\">\n      <img\n        slot=\"main-brand\"\n        src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-black_1f3cd3f7-26d5-3bec-a76c-a0dc0c4c5764.png\"\n        alt=\"Australian government\"\n      />\n      <img\n        slot=\"main-brand-on-dark\"\n        src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-white_2eb9cce7-dabd-3b4f-ba0f-d70d77e45427.png\"\n        alt=\"Australian government on dark background\"\n      />\n    </go-gov-au-logo>\n  </div>\n\n  <go-gov-au-logo>\n    <img\n      slot=\"main-brand\"\n      src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-black_1f3cd3f7-26d5-3bec-a76c-a0dc0c4c5764.png\"\n      alt=\"Australian government\"\n    />\n    <img\n      slot=\"main-brand-on-dark\"\n      src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-white_2eb9cce7-dabd-3b4f-ba0f-d70d77e45427.png\"\n      alt=\"Australian government on dark background\"\n    />\n    <div slot=\"co-brand\">Go UI</div>\n  </go-gov-au-logo>\n</div>\n<div>\n  <go-gov-au-logo href=\"/\">\n    <img\n      slot=\"main-brand\"\n      src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-black_1f3cd3f7-26d5-3bec-a76c-a0dc0c4c5764.png\"\n      alt=\"Australian government\"\n    />\n    <img\n      slot=\"main-brand-on-dark\"\n      src=\"https://www.dfat.gov.au/sites/default/files/australian-government-strip-white_2eb9cce7-dabd-3b4f-ba0f-d70d77e45427.png\"\n      alt=\"Australian government on dark background\"\n    />\n    <img slot=\"co-brand\" src=\"https://via.placeholder.com/100\" alt=\"Co brand\" />\n  </go-gov-au-logo>\n</div>\n"
      },
      "props": [
        {
          "name": "height",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "height",
          "reflectToAttr": false,
          "docs": "Set height of the logo group. Slots will be scaled to this height.\nWidth is set to auto to avoid image distortion.",
          "docsTags": [],
          "default": "'3rem'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "href",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "href",
          "reflectToAttr": false,
          "docs": "If href is provided, logo will be wrapped inside an anchor (`a`) tag. By default, all attributes except `class` and `style` are passed through to the anchor tag.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [
        {
          "name": "co-brand",
          "docs": "Add co-branding agency logo / elements here."
        },
        {
          "name": "crest",
          "docs": "This should be where you reference the Australian Government crest img resource (on light background)."
        },
        {
          "name": "crest-on-dark",
          "docs": "This should be where you reference the Australian Government crest img resource (on dark background)."
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/patterns/go-header-bar/go-header-bar.tsx",
      "encapsulation": "none",
      "tag": "go-header-bar",
      "readme": "---\ntitle: Header bar\ntags:\n  - Layout\n  - Navigation\n---\n\n# Header bar\n\n<!-- Description -->\n\nHeader bar provides a quick way to construct a site header with logo, main navigation and action slot.\n\n\n## Demo\n\n<demo-frame component=\"header-bar\" demo=\"header-bar\"></demo-frame>\n",
      "docs": "---\ntitle: Header bar\ntags:\n  - Layout\n  - Navigation\n---",
      "docsTags": [],
      "usage": {
        "header-bar": "<!-- material icons -->\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- vue 3 -->\n<script src=\"https://cdn.jsdelivr.net/npm/vue@3.2.26\"></script>\n\n<style>\n  .custom-search-form-container {\n    position: fixed;\n    top: 0;\n    left: 0;\n    display: grid;\n    place-items: center;\n    width: 100%;\n    height: 100%;\n  }\n  .custom-search-form {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .custom-search-form input {\n    background: transparent;\n    border: none;\n    padding: 0.5em 1em;\n    height: 2.5em;\n    border-bottom: 4px solid transparent;\n    border-right: none;\n    color: var(--go-text-bg);\n    width: 12rem;\n    border-radius: var(--radius-2);\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n    background: var(--go-color-bg);\n  }\n  .custom-search-form input:focus {\n    outline: none;\n    border-bottom-color: var(--go-color-primary-400);\n  }\n  .custom-search-form go-button .inner-button {\n    border-radius: 0;\n    border-top-right-radius: var(--radius-2);\n    border-bottom-right-radius: var(--radius-2);\n    border: 2px solid var(--go-color-bg);\n  }\n</style>\n\n<div id=\"app\"></div>\n\n<script>\n  const { createApp } = Vue;\n  const Root = {\n    data() {\n      return {\n        menuOpen: false,\n        items: [\n          {\n            label: 'Home',\n            url: '/',\n            icon: 'home',\n          },\n          {\n            label: 'Components',\n            url: '/components',\n            icon: 'view_module',\n          },\n          {\n            label: 'Styleguide',\n            url: '/styleguide',\n            icon: 'style',\n            isCurrent: true,\n            children: [\n              {\n                label: 'Colors',\n                url: '/styleguide/colors',\n                icon: 'color_lens',\n              },\n              {\n                label: 'Icons',\n                url: '/styleguide/icons',\n                icon: 'image',\n              },\n              {\n                label: 'Buttons',\n                url: '/styleguide/buttons',\n                icon: 'touch_app',\n              },\n            ],\n          },\n          {\n            label: 'About',\n            url: '/about',\n            icon: 'info',\n          },\n        ],\n      };\n    },\n    methods: {\n      handleClick() {\n        this.$refs.mobileMenu.open();\n      },\n    },\n    template: `\n      <go-nav-drawer ref=\"mobileMenu\" label=\"Menu\" .items=\"items\"></go-nav-drawer>\n\n      <go-header-bar breakpoint=\"tablet\">\n        <go-button slot=\"mobile-menu-trigger\" aria-labelledby=\"menu-label\" compact flat stack variant=\"text\" @click=\"handleClick\">\n          <go-icon name=\"menu\" slot=\"prefix\"></go-icon>\n          <span id=\"menu-label\">Menu</span>\n        </go-button>\n\n        <go-gov-au-logo href=\"/\" slot=\"logo\">\n          <img\n            slot=\"main-brand\"\n            src=\"https://www.dfat.gov.au/sites/default/files/australian-government-stacked-black_168791ec-96ad-3bcc-817b-27e71beb4522.png\"\n            alt=\"Australian government\"\n          />\n          <img\n            slot=\"main-brand-on-dark\"\n            src=\"https://www.dfat.gov.au/sites/default/files/australian-government-stacked-white_a422272d-3c74-31dc-8361-65d308194362.png\"\n            alt=\"Australian government on dark background\"\n          />\n          <div slot=\"co-brand\">\n            <div class=\"text-size-1\"><b>Go UI</b></div>\n            <div class=\"text-size-0\">A design system for everyone</div>\n          </div>\n        </go-gov-au-logo>\n\n        <go-search-bar slot=\"actions\">\n          <div class=\"custom-search-form-container\" slot=\"search-form\">\n            <div class=\"custom-search-form\">\n              <input type=\"search\" placeholder=\"Search\" />\n              <go-button flat variant=\"primary\" outline-fill icon ><go-icon name=\"search\" slot=\"start\"></go-icon></go-button>\n            </div>\n          </div>\n        </go-search-bar>\n\n        <go-nav-bar slot=\"nav-bar\" .items=\"items\"></go-nav-bar>\n\n      </go-header-bar>\n  `,\n  };\n\n  const app = createApp(Root);\n  app.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('go-');\n  app.mount('#app');\n</script>\n"
      },
      "props": [
        {
          "name": "breakpoint",
          "type": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
          "complexType": {
            "original": "Breakpoints",
            "resolved": "\"all\" | \"desktop\" | \"large\" | \"mobile\" | \"tablet\"",
            "references": {
              "Breakpoints": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::Breakpoints"
              }
            }
          },
          "mutable": false,
          "attr": "breakpoint",
          "reflectToAttr": false,
          "docs": "Controls at which breakpoint the mobile menu (go-nav-drawer) becomes main nav menu (go-nav-bar)",
          "docsTags": [],
          "default": "'desktop'",
          "values": [
            {
              "value": "all",
              "type": "string"
            },
            {
              "value": "desktop",
              "type": "string"
            },
            {
              "value": "large",
              "type": "string"
            },
            {
              "value": "mobile",
              "type": "string"
            },
            {
              "value": "tablet",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/patterns/go-heading-row/go-heading-row.tsx",
      "encapsulation": "none",
      "tag": "go-heading-row",
      "readme": "---\ntitle: Heading row\n---\n\n# Heading row <span class=\"text-size-0\">`go-heading-row`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  The heading row pattern provides a way to produce a heading row + view more link combo for a section of the page.\n</div>\n\n## Demo\n\n<demo-frame component=\"go-heading-row\" demo=\"go-heading-row\"></demo-frame>\n",
      "docs": "---\ntitle: Heading row\n---",
      "docsTags": [],
      "usage": {
        "go-heading-row": "<go-heading-row heading=\"Dog quotes\" more-link-href=\"#\" more-link-text=\"More quotes\"></go-heading-row>\n<go-heading-row heading=\"Dog quotes\" heading-tag=\"h3\" more-link-href=\"#\" more-link-text=\"More quotes\"></go-heading-row>\n"
      },
      "props": [
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Heading for this card row section",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "headingTag",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading-tag",
          "reflectToAttr": false,
          "docs": "HTML tag to use for heading",
          "docsTags": [],
          "default": "'h2'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "moreLinkHref",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "more-link-href",
          "reflectToAttr": false,
          "docs": "View more link href",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "moreLinkText",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "more-link-text",
          "reflectToAttr": false,
          "docs": "View more link text",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--heading-row-alignment",
          "annotation": "prop",
          "docs": "Flexbox alignment value for vertically align heading and view more link - default: center"
        },
        {
          "name": "--heading-row-gap-bottom",
          "annotation": "prop",
          "docs": "Bottom margin between heading row and the content follows - default: var(--go-size-1)"
        },
        {
          "name": "--heading-row-inner-gap",
          "annotation": "prop",
          "docs": "Padding for heading row - default: 0 var(--go-outer-gutter)"
        },
        {
          "name": "--heading-row-inner-gap-wide",
          "annotation": "prop",
          "docs": "Padding for heading row (for tablet and wider screens) - default: var(--heading-row-inner-gap)"
        },
        {
          "name": "--heading-row-justify",
          "annotation": "prop",
          "docs": "Flexbox horizontal (justify-content) value - default: space-between"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-card-row"
      ],
      "dependencies": [
        "go-nav-link"
      ],
      "dependencyGraph": {
        "go-heading-row": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-card-row": [
          "go-heading-row"
        ]
      }
    },
    {
      "filePath": "src/components/go-hero/go-hero.tsx",
      "encapsulation": "none",
      "tag": "go-hero",
      "readme": "---\ntitle: Hero\n---\n\n# Hero <span class=\"text-size-0\">`go-hero`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Hero is a prominent visual element, usually placed at the top of the page.</div>\n\n::: info Self contained\n\n`go-hero` is a self-contained element, do not put it inside an element with `.container` class.\n\n:::\n\n## Usage\n\n- To provide highlight of the page content\n- To suggest an action to the user\n\n## Accessibility\n\n- WCAG 2.0 level AA requires a contrast ratio of at least **4.5:1** for normal text and **3:1** for large text.\n- If `breadcrumbs` attribute is provided, the items are rendered through `go-breadcrumbs` component, hence accessibility benefits are inherited from there.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-hero\" demo=\"go-hero\"></demo-frame>\n",
      "docs": "---\ntitle: Hero\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "default - content below the main heading"
        }
      ],
      "usage": {
        "go-hero": "<go-hero\n  pre-heading=\"Go UI\"\n  heading=\"Hero heading with breadcrumbs\"\n  breadcrumbs=\"[\n  {\n    label: 'Home',\n    url: '#'\n  },\n  {\n    label: 'Components',\n    url: '#'\n  },\n  {\n    label: 'Hero',\n    url: '#'\n  }\n]\"\n  img-src=\"https://images.unsplash.com/photo-1649662231372-0ca430eb5b01?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80\"\n  img-alt=\"Beautiful mountain view\"\n>\n  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequuntur ad ab nisi, temporibus veritatis voluptates eum nulla dolor quae necessitatibus</p>\n</go-hero>\n\n\n<go-hero\npre-heading=\"Hide image on mobile\"\nheading=\"Hero heading\"\nimg-src=\"https://images.unsplash.com/photo-1649662231372-0ca430eb5b01?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&h=800&q=80\"\nimg-alt=\"Beautiful mountain view\"\nhide-img-on-mobile\n>\n<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequuntur ad ab nisi, temporibus veritatis voluptates eum nulla dolor quae necessitatibus</p>\n</go-hero>\n\n<go-hero\npre-heading=\"Go UI\"\nheading=\"With full-width-bg slot\"\n>\n<img src=\"https://images.unsplash.com/photo-1649662231372-0ca430eb5b01?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80\" alt=\"Mountain view\" slot=\"full-width-bg\">\n<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequuntur ad ab nisi, temporibus veritatis voluptates eum nulla dolor quae necessitatibus</p>\n</go-hero>\n"
      },
      "props": [
        {
          "name": "breadcrumbs",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "breadcrumbs",
          "reflectToAttr": false,
          "docs": "Breadcrumb navigation items",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "heading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "heading",
          "reflectToAttr": false,
          "docs": "Hero heading (h1)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "hideImgOnMobile",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "hide-img-on-mobile",
          "reflectToAttr": false,
          "docs": "if we should hide hero img on mobile(`full-width-bg` slot not affected)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "imgAlt",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "img-alt",
          "reflectToAttr": false,
          "docs": "hero image alt text\n(requires img-src attribute to be present to render)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "imgSrc",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "img-src",
          "reflectToAttr": false,
          "docs": "hero image src url\n(requires img-alt attribute to be present to render)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "preHeading",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "pre-heading",
          "reflectToAttr": false,
          "docs": "Pre heading text - use only when required",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--hero-bg-opacity-on-img",
          "annotation": "prop",
          "docs": "Opacity of background on hero text box when `full-width-bg` is slotted - default: 0.5"
        },
        {
          "name": "--hero-full-width-bg-padding",
          "annotation": "prop",
          "docs": "Padding for outer hero section (from go-hero top to text box top) when `full-width-bg` is slotted - default: 4rem 0"
        },
        {
          "name": "--hero-img-aspect-ratio",
          "annotation": "prop",
          "docs": "Aspect ratio of hero image (e.g. 16/9 or 4/3) - default: 4/3"
        },
        {
          "name": "--hero-img-fit",
          "annotation": "prop",
          "docs": "object-fit for image (e.g. cover/contain/etc) - default: cover"
        },
        {
          "name": "--hero-img-position",
          "annotation": "prop",
          "docs": "object-position for hero image - default: center"
        },
        {
          "name": "--hero-padding-bottom",
          "annotation": "prop",
          "docs": "Bottom padding of hero container - default: 0"
        },
        {
          "name": "--hero-padding-top",
          "annotation": "prop",
          "docs": "Top padding of hero container - default: 0"
        },
        {
          "name": "--hero-text-bg-blur-on-img",
          "annotation": "prop",
          "docs": "Blur effect for hero text when `full-width-bg` slot is used. - default: 10px"
        },
        {
          "name": "--hero-text-box-padding",
          "annotation": "prop",
          "docs": "Padding on hero text - default: 2rem"
        }
      ],
      "slots": [
        {
          "name": "default",
          "docs": "content below the main heading"
        }
      ],
      "parts": [],
      "dependents": [
        "go-content-layout"
      ],
      "dependencies": [
        "go-breadcrumbs"
      ],
      "dependencyGraph": {
        "go-hero": [
          "go-breadcrumbs"
        ],
        "go-breadcrumbs": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-content-layout": [
          "go-hero"
        ]
      }
    },
    {
      "filePath": "src/components/go-icon/go-icon.tsx",
      "encapsulation": "none",
      "tag": "go-icon",
      "readme": "---\ntitle: Icon\n---\n\n\n# Icon <span class=\"text-size-0\">`go-icon`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Icons serve multiple purposes in a UI, they can convey information (e.g. icon button, icon tab) or they can be used as a visual representation.\n</div>\n\n::: info Icon font CSS\n\nBefore using the `go-icon` component, you need to have the icon font CSS available in your application.\n\n**Go UI does not bundle any icon fonts**. This is to keep the bundle size small for cases when icons are not required.\n\nThis documentation site references the Material Icons (Filled) hosted via [Google Fonts](https://fonts.google.com/icons), which is the default icon set for `go-icon` component.\n\nThe demo contains example of how to include the icon font CSS in your application.\n\n:::\n\n## Accessibility\n\nThere are two types of icons and they should be used in different ways.\n\n- **Decorative icons** are purely for visual purposes, they should not be announced by screen readers, `go-icon` will add `aria-hidden` attribute to the by default.\n\n- **Semantic icons** are meant to convey information and should be announced by screen readers, provide a `label` attribute to the `go-icon` component and the appropriate aria attributes will be applied.\n\n## Supported icon sets\n\n### Material Icons\n\n[Official site](https://fonts.google.com/icons)\n\nThe following values can be used to render material icons:\n\n- `material-icons` (Filled)\n- `material-icons-outlined` (Outlined)\n- `material-icons-round` (Rounded)\n- `material-icons-sharp` (Sharp)\n\n### Font Awesome\n\n[Official site](https://fontawesome.com/v5.15/icons)\n\nThe following values can be used to render Font Awesome icons ([See official docs](https://fontawesome.com/v5.15/how-to-use/on-the-web/referencing-icons/basic-use)):\n\n- `fas`\n- `far`\n- `fal`\n- `fad`\n- `fab`\n\n### Boxicons\n\n[Official site](https://boxicons.com/)\n\nThe following values can be used to render Boxicons icons ([See official docs](https://boxicons.com/usage)):\n\n- `bx` (Regular)\n- `bxs` (Solid)\n- `bxl` (Logo)\n\n\n<!-- Demos, tips, variations, use cases -->\n\n## Usage\n\nThe following example shows how you can integrate and customise different supported icon sets.\n\n<demo-frame component=\"go-icon\" demo=\"go-icon\"></demo-frame>\n",
      "docs": "---\ntitle: Icon\n---",
      "docsTags": [],
      "usage": {
        "go-icon": "<!-- Include Material Icons -->\n<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n\n<!-- Include Font Awesome -->\n<link\n  rel=\"stylesheet\"\n  href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css\"\n  integrity=\"sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==\"\n  crossorigin=\"anonymous\"\n  referrerpolicy=\"no-referrer\"\n/>\n\n<!-- Include Boxicons -->\n<link href=\"https://unpkg.com/boxicons@2.1.1/css/boxicons.min.css\" rel=\"stylesheet\" />\n\n<div class=\"container\">\n  <h3>\n    <go-link href=\"https://fonts.google.com/icons\">Material Icons</go-link>\n  </h3>\n  <div>\n    <go-icon icon-set=\"material-icons\" name=\"favorite\" size=\"3rem\" color=\"var(--go-color-critical-500)\"></go-icon>\n    <go-icon icon-set=\"material-icons\" name=\"home\" label=\"Home\"></go-icon>\n  </div>\n\n  <h3>\n    <go-link href=\"https://fontawesome.com/\">Font Awesome</go-link>\n  </h3>\n  <div>\n    <go-icon icon-set=\"fas\" name=\"heart\" size=\"3rem\" color=\"var(--go-color-critical-500)\"></go-icon>\n    <go-icon icon-set=\"fas\" name=\"home\" label=\"Home\"></go-icon>\n  </div>\n\n  <h3>\n    <go-link href=\"https://boxicons.com/\">Boxicons</go-link>\n  </h3>\n  <div>\n    <go-icon icon-set=\"bxs\" name=\"heart\" size=\"3rem\" color=\"var(--go-color-critical-500)\"></go-icon>\n    <go-icon icon-set=\"bx\" name=\"home\" label=\"Home\"></go-icon>\n  </div>\n</div>\n"
      },
      "props": [
        {
          "name": "color",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "color",
          "reflectToAttr": false,
          "docs": "Color of the icon,  supports CSS units and variables.\nDefault: `currentColor`",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "iconSet",
          "type": "\"bx\" | \"bxl\" | \"bxs\" | \"fab\" | \"fad\" | \"fal\" | \"far\" | \"fas\" | \"material-icons\" | \"material-icons-outlined\" | \"material-icons-round\" | \"material-icons-sharp\"",
          "complexType": {
            "original": "MaterialIconVariants | FontAwesomeVariants | BoxiconVariants",
            "resolved": "\"bx\" | \"bxl\" | \"bxs\" | \"fab\" | \"fad\" | \"fal\" | \"far\" | \"fas\" | \"material-icons\" | \"material-icons-outlined\" | \"material-icons-round\" | \"material-icons-sharp\"",
            "references": {
              "MaterialIconVariants": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-icon/go-icon.tsx",
                "id": "src/components/go-icon/go-icon.tsx::MaterialIconVariants"
              },
              "FontAwesomeVariants": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-icon/go-icon.tsx",
                "id": "src/components/go-icon/go-icon.tsx::FontAwesomeVariants"
              },
              "BoxiconVariants": {
                "location": "local",
                "path": "/home/runner/work/go-ui/go-ui/packages/core/src/components/go-icon/go-icon.tsx",
                "id": "src/components/go-icon/go-icon.tsx::BoxiconVariants"
              }
            }
          },
          "mutable": false,
          "attr": "icon-set",
          "reflectToAttr": true,
          "docs": "Specify the icon set being referenced.\nIcon font CSS files must be included in the page.",
          "docsTags": [],
          "default": "'material-icons'",
          "values": [
            {
              "value": "bx",
              "type": "string"
            },
            {
              "value": "bxl",
              "type": "string"
            },
            {
              "value": "bxs",
              "type": "string"
            },
            {
              "value": "fab",
              "type": "string"
            },
            {
              "value": "fad",
              "type": "string"
            },
            {
              "value": "fal",
              "type": "string"
            },
            {
              "value": "far",
              "type": "string"
            },
            {
              "value": "fas",
              "type": "string"
            },
            {
              "value": "material-icons",
              "type": "string"
            },
            {
              "value": "material-icons-outlined",
              "type": "string"
            },
            {
              "value": "material-icons-round",
              "type": "string"
            },
            {
              "value": "material-icons-sharp",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "provide label for screen reader",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the icon",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "size",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "size",
          "reflectToAttr": false,
          "docs": "Size of the icon, supports CSS units and variables.\nDefault: 1.5em for material icons, 1em for other icon sets.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-nav-drawer",
        "go-nav-item",
        "go-nav-link"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-nav-drawer": [
          "go-icon"
        ],
        "go-nav-item": [
          "go-icon"
        ],
        "go-nav-link": [
          "go-icon"
        ]
      }
    },
    {
      "filePath": "src/components/form/go-input/go-input.tsx",
      "encapsulation": "none",
      "tag": "go-input",
      "readme": "---\ntitle: Input\n---\n\n\n# Input <span class=\"text-size-0\">`go-input`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Single-line input field for text, number, email, telephone, url.  \n</div>\n\n\n## Difference to the native HTML input\n\n`go-input` uses the html native input internally to rip the default accessibility benefits from the browser. However, not all `input` types are recommended to be used in `go-input` because a purposely built widget (think date picker, slider, range picker etc) has a much better UX than the widget that is built into the browser.\n\n### Recommended types\n\nThe recommended `type` attribute options to use are \n- `email`\n- `number`\n- `password` \n- `search` \n- `tel` \n- `text`\n\nYou'll notice all the types above are *single-line text inputs*, that's the rule of thumb.\n\n\n## Accessibility\n\ngo-input requires a `label` prop and automatically generates the necessary ids for the internal `<label>` tag and other elements such as the `prefix` and `suffix`. \n\n### Announcing context\nIt is important for users with screen readers to understand what the expected format of input is.\nThe label will be announced to the screen readers. The *prefix* and *suffix* elements will also be announced so people get the full context when they type into the box.\n\n\n\n## Demo\n<demo-frame component=\"go-input\" demo=\"go-input\"></demo-frame>\n\n",
      "docs": "---\ntitle: Input\n---",
      "docsTags": [],
      "usage": {
        "go-input": "<go-input id=\"test\" type=\"text\" label=\"Input field\" hint=\"Please enter some text\"></go-input>\n<go-input type=\"text\" label=\"Error state\" hint=\"Please enter some text\" error=\"This is an error\"></go-input>\n<go-input type=\"text\" label=\"Disabled state\" value=\"I'm not editable\" disabled></go-input>\n<go-input type=\"text\" label=\"Readonly state\" value=\"I'm not editable\" readonly></go-input>\n<go-input type=\"text\" label=\"Custom icon\">\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-input>\n\n<go-input type=\"text\" label=\"Prefix slot\">\n  <div slot=\"prefix\">https://go-ui.com/</div>\n\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-input>\n<go-input type=\"text\" label=\"Suffix slot\">\n  <div slot=\"suffix\">.com.au</div>\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-input>"
      },
      "props": [
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "boolean | string",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "prefixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "prefix-id",
          "reflectToAttr": false,
          "docs": "DOM id for prefix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "readonly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "readonly",
          "reflectToAttr": false,
          "docs": "If this input is read-only",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "suffixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "suffix-id",
          "reflectToAttr": false,
          "docs": "DOM id for suffix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "value",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-field"
      ],
      "dependencyGraph": {
        "go-input": [
          "go-field"
        ]
      }
    },
    {
      "filePath": "src/components/go-link/go-link.tsx",
      "encapsulation": "none",
      "tag": "go-link",
      "readme": "---\ntitle: Link\n---\n\n# Link <span class=\"text-size-0\">`go-link`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Link is a fundamental component of HTML, it is important to get this right.</div>\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-link\" demo=\"go-link\"></demo-frame>\n\n## Tabnabbing\n\nIt should be noted that [links to cross-origin destinations are unsafe](https://web.dev/external-anchors-use-rel-noopener/), this phishing technique is called [tabnabbing](https://en.wikipedia.org/wiki/Tabnabbing), so whenever you need to link to an external site, you should add `rel=\"noopener noreferrer\"` to the link, `go-link` will take care of this for you when it detects the link is external.\n\n::: info\n\nAll modern browsers now automatically apply the `noopener` behaviour to links with `target=\"_blank\"`.\nhttps://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/noopener\n\n:::\n\n## Accessibility\n\n### Keyboard accessible\n\nAll links must be keyboard accessible for users who navigate with keyboard only. `a` tags with empty `href` attribute are not keyboard accessible. If you need to trigger an action with the `a` tag, use a button instead (see [buttons vs links](./go-button#buttons-vs-links)).\n\n### Provide meaningful text\n\n> Links are more useful when they make sense out of context. Authors should avoid non-informative link phrases such as:\n>\n> - click here\n> - here\n> - more\n> - read more\n>\n> https://webaim.org/techniques/hypertext/link_text\n\n> Success Criterion 2.4.4 Link Purpose (In Context) (Level A): The purpose of each link can be determined from the link text alone or from the link text together with its programmatically determined link context, except where the purpose of the link would be ambiguous to users in general.\n> https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html\n\n### Open in new tab\n\nThe WCAG advises against opening new tabs in general, of course special cases apply for good reasons like the ones listed in [this article by Chris Coyier](https://css-tricks.com/use-target_blank/). Open link in new tab only for good reasons and provide sufficient warning to screen reader users.\n\n> In general, it is better not to open new windows and tabs since they can be disorienting for people, especially people who have difficulty perceiving visual content.\n> https://www.w3.org/TR/WCAG20-TECHS/G200.html\n\n## Internal vs External\n\nMany developers who believes that any link that points to a domain that's different to the current site should open a new tab. We agree with this pattern in that since you are not in control of the user's destination of a site, you should offer a \"clean start\". However it is important to let the users know they are about to open a new tab, so they can decide if they want to continue. `go-link` will automatically insert the screen-reader-only text \"Opens in new window/tab\".\n\n## References\n\n- https://web.dev/external-anchors-use-rel-noopener/\n- https://codersblock.com/blog/external-links-new-tabs-and-accessibility/\n- https://css-tricks.com/use-target_blank/\n- https://webaim.org/techniques/hypertext/link_text\n- https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html\n- https://www.w3.org/TR/WCAG20-TECHS/G200.html\n",
      "docs": "---\ntitle: Link\n---",
      "docsTags": [],
      "usage": {
        "go-link": "<wc-playground\n  tag=\"go-link\"\n  props=\"[\n    {name: 'href', value:'#', type: 'string'},\n    {name: 'target', value: null, type: 'select', options: ['_self','_blank']}\n  ]\"\n  slots='[\n  {\n    \"name\": \"default\",\n    \"docs\": \"Link content\"\n  }\n  ]'\n  code=\"<go-link href='#'>Almost before we knew it, we had left the ground.</go-link>\"\n>\n</wc-playground>\n"
      },
      "props": [
        {
          "name": "expandClickableArea",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "expand-clickable-area",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "href",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "href",
          "reflectToAttr": false,
          "docs": "The `href` of the link.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "target",
          "type": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
          "complexType": {
            "original": "'_blank' | '_self' | '_parent' | '_top'",
            "resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
            "references": {}
          },
          "mutable": false,
          "attr": "target",
          "reflectToAttr": false,
          "docs": "The `target` of the link.",
          "docsTags": [],
          "values": [
            {
              "value": "_blank",
              "type": "string"
            },
            {
              "value": "_parent",
              "type": "string"
            },
            {
              "value": "_self",
              "type": "string"
            },
            {
              "value": "_top",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-card",
        "go-nav-drawer"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-card": [
          "go-link"
        ],
        "go-nav-drawer": [
          "go-link"
        ]
      }
    },
    {
      "filePath": "src/components/go-md/go-md.tsx",
      "encapsulation": "none",
      "tag": "go-md",
      "readme": "---\ntitle: Markdown\n---\n\n# Markdown <span class=\"text-size-0\">`go-md`</span>\n\n<div class=\"text-size-1\">\n  Renders markdown into HTML, uses\n  <a href=\"https://github.com/markdown-it/markdown-it\" target=\"_blank\" rel=\"noopener noreferrer\">\n    markdown-it\n  </a>\n  under the hood.\n</div>\n\n## Demo\n\nSet the `content` prop to the markdown you want to render, and set `inline=\"true\"` to render the markdown inline.\n\n<demo-frame component=\"go-md\" demo=\"go-md\"></demo-frame>\n\n## Remote content\n\nLoad remote markdown file by passing the url to the `src` prop.\n\n::: info Rendering HTML\n\nIf your remote content uses html tags, you can add `md-options=\"{html: true}\"` to enable HTML rendering.\n\nIf you do not trust the author, but needing to enable HTML, you can also set `sanitize=\"true\"`, this uses [DOMPurify](https://github.com/cure53/DOMPurify) to sanitize the rendered output.\n\n:::\n\n### Security\n\n`go-md` uses [`markdown-it`](https://github.com/markdown-it/markdown-it) under the hood and the developers have [2 strategies for ensuring safe output](https://github.com/markdown-it/markdown-it/blob/master/docs/security.md)\n:\n\n- Don't enable html (default mode)\n- Enable html and sanitize output\n\n`go-md` ships with a `sanitize` prop to enable sanitize output (default to `false`).\n\n::: info Rule of thumb\n\nIf HTML enabled, add `sanitize=\"true\"`, otherwise it's not necessary\n\n:::\n\n<demo-frame component=\"go-md\" demo=\"remote-source\"></demo-frame>\n\n## Extendability\n\n`go-md` is extendable as it exposes the `markdown-it` object in the custom `init` event.\n\n<demo-frame component=\"go-md\" demo=\"extend\"></demo-frame>\n\n## Integrate with other Go UI components\n\nIf `use-go-ui` is set to `true`, `go-md` will render the markdown with extended support for Go UI components.\n\n<demo-frame component=\"go-md\" demo=\"use-go-ui\"></demo-frame>\n",
      "docs": "---\ntitle: Markdown\n---",
      "docsTags": [],
      "usage": {
        "extend": "<script\n  src=\"https://cdnjs.cloudflare.com/ajax/libs/markdown-it-emoji/2.0.2/markdown-it-emoji.min.js\"\n  integrity=\"sha512-tJ1QQaPYuPI8KC68gOLzHsp8l2hZB08FHzALKpjaGt+3I6x9ZaDzxdL67NKfliSg60yTq1dd7Kfor5rNjRbE0g==\"\n  crossorigin=\"anonymous\"\n  referrerpolicy=\"no-referrer\"\n></script>\n<go-md\n  id=\"test\"\n  content=\"\n  :tada::balloon: emoji supported with markdown-it-emoji plugin\n\"\n>\n</go-md>\n<script>\n  document.querySelector('#test').addEventListener('init', (e) => {\n    let md = e.detail;\n    md.use(window.markdownitEmoji);\n  });\n</script>\n",
        "go-md": "<div class=\"container\">\n  <go-md\n    content=\"\n[Basic markdown syntax](https://commonmark.org/help/)\n\n*Italic*\n\n**Bold**\n\n# Heading 1\n\n## Heading 2\n\n### Heading 3\n\n###### Heading 6\n\n[Link](http://a.com)\n\n![Image](https://picsum.photos/id/870/400/200)\n\n> Blockquote\n>\n> multiple lines\n>\n> This is a quoted text\n\n- List\n- List\n- List\n\n1. One\n1. Two\n1. Three\n\n---\n\n`Inline code` with backticks\n\n```\n# code block\nprint '3 backticks or'\nprint 'indent 4 spaces'\n```\n\"\n  ></go-md>\n</div>\n",
        "remote-source": "<div class=\"container\">\n  <go-md sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">Fallback content.</go-md>\n</div>\n",
        "use-go-ui": "<div class=\"container\">\n  <go-md\n    use-go-ui=\"true\"\n    content=\"\n[Basic markdown syntax](https://commonmark.org/help/)\n\n\n## Banners\n\n::: info hello world\n\nThis is an info [banner](/docs/components/go-banner).\n\n:::\n\n\n::: critical Error\n\nSomething went wrong.\n\n:::\n\n\n::: success Success\n\nOperation was successful.\n\n:::\n\n---\n\n## Links\n\nLinks are rendered with `go-link` component.\n\nhttps://google.com\n\nhttps://go-ui.com\n\nI'm a [link](#) to id\n\nThis is an [external link](https://www.google.com)\n\n---\n\n## Table\n\n| First Header  | Second Header |\n| ------------- | ------------- |\n| Content Cell  | Content Cell  |\n| Content Cell  | Content Cell  |\n\"\n  >\n  </go-md>\n</div>\n"
      },
      "props": [
        {
          "name": "content",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "content",
          "reflectToAttr": false,
          "docs": "Markdown content to be rendered",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "inline",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "inline",
          "reflectToAttr": false,
          "docs": "Render inline markdown",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "mdOptions",
          "type": "Options | string",
          "complexType": {
            "original": "Options | string",
            "resolved": "Options | string",
            "references": {
              "Options": {
                "location": "import",
                "path": "markdown-it",
                "id": "../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/index.d.ts::Options"
              }
            }
          },
          "mutable": false,
          "attr": "md-options",
          "reflectToAttr": false,
          "docs": "[markdown-it](https://github.com/markdown-it/markdown-it) options\n**Note**: if `use-go-ui` is set to true, these options will be overwritten",
          "docsTags": [],
          "values": [
            {
              "type": "Options"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "sanitise",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "sanitise",
          "reflectToAttr": false,
          "docs": "If set to true, `go-md` will use [DOMPurify](https://nodei.co/npm/dompurify/) to sanitise the output HTML before inserting it into the DOM",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "src",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "src",
          "reflectToAttr": false,
          "docs": "url to load remote markdown content\nif `src` is set, content in the `content` prop will be overwritten",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "useGoUi",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "use-go-ui",
          "reflectToAttr": false,
          "docs": "Use go-ui markdown renderer:\n- Only `typographer` is enabled in markdown-it options\n\n- linkify with [`go-link`](https://go-ui.com/docs/components/go-link)\n- [container](https://github.com/markdown-it/markdown-it-container) banners with [`go-banner`](https://go-ui.com/docs/components/go-banner)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "init",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        },
        {
          "event": "rendered",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/navigation/go-nav-bar/go-nav-bar.tsx",
      "encapsulation": "none",
      "tag": "go-nav-bar",
      "readme": "---\ntitle: Navigation bar\n---\n\n# Navigation bar <span class=\"text-size-0\">`go-nav-bar`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">The navigation bar helps users navigate the site's top level information architecture.</div>\n\n## Accessibility\n\n- Uses `<nav>` landmark\n- Ability to set nav label easily with the `label` attribute (defaults to \"Main\")\n\n## Related patterns\n\n<!-- Patterns that uses this component -->\n\n- [Header](../../patterns/header-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Data-driven navigation bar\n\nIf you use a CMS or an API to manage the source of the navigation menu structure, the easiest way to use the navigation bar is probably going to be data-driven.\n\n<demo-frame component=\"go-nav-bar\" demo=\"go-nav-bar\"></demo-frame>\n\nIn the example above, the `items` prop of the `go-nav-bar` component gets parsed (JSON5 format) and rendered automatically, as a developer, you need to pass the menu structure in the following format:\n\n```ts\nexport interface INavItem {\n  label: string;\n  url?: string;\n  icon?: IIcon; // see go-icon\n  description?: string;\n  children?: INavItem[];\n  columns?: number;\n  isCurrent?: boolean;\n}\n```\n\n## Composable navigation bar\n\nYou can also compose the navigation bar in a more traditional way, which gives you more control over what goes into the slots of the compoents.\n\n<demo-frame component=\"go-nav-bar\" demo=\"composable\"></demo-frame>\n",
      "docs": "---\ntitle: Navigation bar\n---",
      "docsTags": [],
      "usage": {
        "composable": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- composable nav bar -->\n<go-nav-bar>\n  <go-nav-item>\n    <go-nav-link block url=\"#home\" label=\"Home\" icon=\"{name: 'home'}\"></go-nav-link>\n  </go-nav-item>\n  <go-nav-item>\n    <go-nav-submenu-trigger controls=\"submenu\">\n      <go-icon name=\"view_module\"></go-icon>\n      Components\n    </go-nav-submenu-trigger>\n    <go-nav-submenu id=\"submenu\" columns=\"3\">\n      <h2 class=\"h6\" slot=\"submenu-header\">This is the heading of this submenu</h2>\n      <go-nav-list>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 1\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 2\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n      </go-nav-list>\n      <go-nav-link block url=\"#item\" label=\"Item 3\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 4\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 5\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n    </go-nav-submenu>\n  </go-nav-item>\n</go-nav-bar>\n",
        "go-nav-bar": "<go-nav-bar id=\"navbar1\"></go-nav-bar>\n\n<script>\n  const navItems = [\n    {\n      label: 'Home',\n      url: '#home',\n      icon: 'home',\n    },\n    {\n      label: 'Components',\n      url: '#components',\n      icon: 'view_module',\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      columns: 2,\n      children: [\n        {\n          label: 'Sub menu 1',\n          url: '#submenu1',\n          icon: 'text_fields',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Colors',\n          url: '#colors',\n          icon: 'color_lens',\n        },\n        {\n          label: 'Icons',\n          url: '#icons',\n          icon: 'image',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons',\n          icon: 'touch_app',\n        },\n      ],\n    },\n    {\n      label: 'Styleguide',\n      url: '#styleguide',\n      icon: 'style',\n      columns: 3,\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      children: [\n        {\n          label: 'Typography',\n          url: '#typography',\n          icon: 'text_fields',\n          children: [\n            {\n              label: 'Headings',\n              url: '#headings',\n              icon: 'text_fields',\n              children: [\n                {\n                  label: 'Heading 1',\n                  url: '#h1',\n                },\n                {\n                  label: 'Heading 2',\n                  url: '#h2',\n                },\n              ],\n            },\n            {\n              label: 'Paragraphs',\n              url: '#paragraphs',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Lists',\n              url: '#lists',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Code',\n              url: '#code',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Tables',\n              url: '#tables',\n              icon: 'text_fields',\n            },\n          ],\n        },\n        {\n          label: 'Colors',\n          url: '#colors2',\n          icon: 'color_lens',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n          children: [\n            {\n              label: 'Primary',\n              url: '#primary',\n              icon: 'color_lens',\n            },\n          ],\n        },\n        {\n          label: 'Icons',\n          url: '#icons2',\n          icon: 'image',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons2',\n          icon: 'touch_app',\n        },\n        {\n          label: 'Forms',\n          url: '#forms',\n          icon: 'text_fields',\n        },\n      ],\n    },\n    {\n      label: 'About',\n      url: '#about',\n      icon: 'info',\n    },\n  ];\n  navbar1.items = navItems;\n\n  const setCurrentItem = (item, newCurrent) => {\n    if (item.label === 'Colors') {\n      console.log({ item, newCurrent });\n    }\n    let isCurrent = undefined;\n    if (item.url === newCurrent.url) {\n      console.log('item === newCurrent', item, newCurrent);\n      isCurrent = true;\n    }\n    const children = item?.children?.map((child) => setCurrentItem(child, newCurrent));\n    return {\n      ...item,\n      isCurrent,\n      children,\n    };\n  };\n\n  navbar1.addEventListener('navigate', (e) => {\n    console.log('nav event', e.detail);\n    const newCurrent = e.detail?.item;\n    if (!newCurrent) {\n      return;\n    }\n    navbar1.items = navItems.map((item) => setCurrentItem(item, newCurrent));\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "items",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "items",
          "reflectToAttr": false,
          "docs": "Navigation items to be rendered\nif provided, slot content will not be rendered.",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label for the navigation.\nThis helps screen reader users to quickly navigate to teh correct nav landmark",
          "docsTags": [],
          "default": "'Main'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "loadNavItems",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(newItems: INavItem[] | string) => Promise<void>",
            "parameters": [
              {
                "name": "newItems",
                "type": "string | INavItem[]",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "loadNavItems(newItems: INavItem[] | string) => Promise<void>",
          "parameters": [
            {
              "name": "newItems",
              "type": "string | INavItem[]",
              "docs": ""
            }
          ],
          "docs": "Load nav items",
          "docsTags": [
            {
              "name": "param",
              "text": "items menu items to be rendered"
            }
          ]
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--nav-bg-color",
          "annotation": "prop",
          "docs": "background of nav container - default: transparent"
        },
        {
          "name": "--nav-border-bottom",
          "annotation": "prop",
          "docs": "avigation barbottom border - default: 1px solid var(--go-color-neutral-200)"
        },
        {
          "name": "--nav-border-top",
          "annotation": "prop",
          "docs": "Navigation bar top border - default: 1px solid var(--go-color-neutral-200)"
        },
        {
          "name": "--nav-item-active-bg-color",
          "annotation": "prop",
          "docs": "background color of nav items when active - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--nav-item-active-text-color",
          "annotation": "prop",
          "docs": "text color of nav items when active - default: var(--go-color-darkest)"
        },
        {
          "name": "--nav-item-bg-color",
          "annotation": "prop",
          "docs": "background color of nav items - default: var(--nav-bg-color) (transparent)"
        },
        {
          "name": "--nav-item-current-bg-color",
          "annotation": "prop",
          "docs": "background color of nav items when current (highlighted) - default: var(--go-color-neutral-900)"
        },
        {
          "name": "--nav-item-current-border-color",
          "annotation": "prop",
          "docs": "Border color of nav items when current (highlighted) - default: var(--go-color-primary-600)"
        },
        {
          "name": "--nav-item-current-border-width",
          "annotation": "prop",
          "docs": "Border width of nav items when current (highlighted) - default: 2px"
        },
        {
          "name": "--nav-item-current-fw",
          "annotation": "prop",
          "docs": "font-weight of nav items when current (highlighted) - default: 700"
        },
        {
          "name": "--nav-item-current-text-color",
          "annotation": "prop",
          "docs": "text color of nav items when current (highlighted) - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--nav-item-fw",
          "annotation": "prop",
          "docs": "nav item font weight - default: 500"
        },
        {
          "name": "--nav-item-gap",
          "annotation": "prop",
          "docs": "Gap between nav items - default: 0.5rem"
        },
        {
          "name": "--nav-item-hover-bg-color",
          "annotation": "prop",
          "docs": "background color of nav items on hover - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--nav-item-hover-text-color",
          "annotation": "prop",
          "docs": "text color of nav items on hover - default: var(--go-color-darkest)"
        },
        {
          "name": "--nav-item-icon-gap",
          "annotation": "prop",
          "docs": "Gap between icon and text in nav items - default: 0.5rem"
        },
        {
          "name": "--nav-item-open-bg-color",
          "annotation": "prop",
          "docs": "background color of nav items when submenu is open - default: var(--go-color-neutral-900)"
        },
        {
          "name": "--nav-item-open-text-color",
          "annotation": "prop",
          "docs": "text color of nav items when submenu is open - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--nav-item-padding",
          "annotation": "prop",
          "docs": "Padding of nav items - default: 0.25em 0.5em"
        },
        {
          "name": "--nav-item-radius",
          "annotation": "prop",
          "docs": "Radius of nav items - default: 0.25em"
        },
        {
          "name": "--nav-item-text-color",
          "annotation": "prop",
          "docs": "text color of nav items - default: var(--go-color-neutral-800)"
        },
        {
          "name": "--nav-outer-padding",
          "annotation": "prop",
          "docs": "Outer padding between container and nav items - default: 0.5rem"
        },
        {
          "name": "--nav-shadow",
          "annotation": "prop",
          "docs": "shadow of nav container - default: var(--shadow-2)"
        },
        {
          "name": "--submenu-bg-color",
          "annotation": "prop",
          "docs": "Background color of submenu - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--submenu-border-color",
          "annotation": "prop",
          "docs": "Border color of submenu - default: var(--go-color-neutral-500)"
        },
        {
          "name": "--submenu-border-radius",
          "annotation": "prop",
          "docs": "Border radius of submenu - default: var(--radius-2)"
        },
        {
          "name": "--submenu-border-width",
          "annotation": "prop",
          "docs": "Border width of submenu - default: 2px"
        },
        {
          "name": "--submenu-columns",
          "annotation": "prop",
          "docs": "number of columns in submenu list - default: 1"
        },
        {
          "name": "--submenu-link-padding",
          "annotation": "prop",
          "docs": "padding of submenu links (applied to top/bottom only) - default: 8px"
        },
        {
          "name": "--submenu-list-gap",
          "annotation": "prop",
          "docs": "gap between submenu lists - default: 1rem"
        },
        {
          "name": "--submenu-list-indent",
          "annotation": "prop",
          "docs": "submenu indent - default: 1rem"
        },
        {
          "name": "--submenu-padding-x",
          "annotation": "prop",
          "docs": "horizontal padding of submenu links - default: var(--go-size-1)"
        },
        {
          "name": "--submenu-padding-y",
          "annotation": "prop",
          "docs": "vertical padding of submenu links - default: var(--go-size-0)"
        },
        {
          "name": "--submenu-separator-color",
          "annotation": "prop",
          "docs": "border color separator between submenu header and list - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--submenu-tail-offset-x",
          "annotation": "prop",
          "docs": "set the horizontal offset from the tail to left edge of parent menu - default: 1rem"
        },
        {
          "name": "--submenu-tail-size",
          "annotation": "prop",
          "docs": "submenu tail size - default: 1em"
        },
        {
          "name": "--submenu-width",
          "annotation": "prop",
          "docs": "width of submenu - default: auto"
        },
        {
          "name": "--submenu-z-index",
          "annotation": "prop",
          "docs": "submenu z-index - default: var(--layer-important)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-nav-item"
      ],
      "dependencyGraph": {
        "go-nav-bar": [
          "go-nav-item"
        ],
        "go-nav-item": [
          "go-nav-link",
          "go-nav-submenu-trigger",
          "go-nav-submenu",
          "go-icon"
        ],
        "go-nav-link": [
          "go-icon"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-drawer/go-nav-drawer.tsx",
      "encapsulation": "none",
      "tag": "go-nav-drawer",
      "readme": "---\ntitle: Nav drawer\n---\n\n# Nav drawer <span class=\"text-size-0\">`go-nav-drawer`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Nav drawer is a component commonly used to present complex navigation structure on smaller screens.</div>\n\n## Accessibility\n\nThis component combines the [w3c dialog](https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal) and the [fly-out menu](https://www.w3.org/WAI/tutorials/menus/flyout/) design patterns. The keyboard focus will be trapped inside the menu when drawer is open, similarly focus will be trapped in submenu when a submenu is open.\n\n## Related patterns\n\n<!-- Patterns that uses this component -->\n\n- [Navigation bar](../../patterns/go-nav-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-nav-drawer\" demo=\"go-nav-drawer\"></demo-frame>\n",
      "docs": "---\ntitle: Nav drawer\n---",
      "docsTags": [],
      "usage": {
        "go-nav-drawer": "<!-- material icons -->\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- vue 3 -->\n<script src=\"https://cdn.jsdelivr.net/npm/vue@3.2.26\"></script>\n\n<div id=\"app\" style=\"height: 500px\"></div>\n\n<script>\n  const { createApp } = Vue;\n  const Root = {\n    data() {\n      return {\n        leftOpen: false,\n        rightOpen: false,\n        customOpen: false,\n        items: [\n          {\n            label: 'Home',\n            url: '/',\n            icon: 'home',\n          },\n          {\n            label: 'Components',\n            url: '/components',\n            icon: 'view_module',\n            isCurrent: true,\n          },\n          {\n            label: 'Styleguide',\n            url: '/styleguide',\n            icon: 'style',\n            children: [\n              {\n                label: 'Typography',\n                url: '/styleguide/typography',\n                icon: 'text_fields',\n                children: [\n                  {\n                    label: 'Headings',\n                    url: '/styleguide/typography/headings',\n                    icon: 'text_fields',\n                    children: [\n                      {\n                        label: 'Heading 1',\n                        url: '/styleguide/typography/headings/heading-1',\n                      },\n                      {\n                        label: 'Heading 2',\n                        url: '/styleguide/typography/headings/heading-2',\n                      },\n                    ],\n                  },\n                  {\n                    label: 'Paragraphs',\n                    url: '/styleguide/typography/paragraphs',\n                    icon: 'text_fields',\n                  },\n                  {\n                    label: 'Lists',\n                    url: '/styleguide/typography/lists',\n                    icon: 'text_fields',\n                  },\n                ],\n              },\n              {\n                label: 'Colors',\n                url: '/styleguide/colors',\n                icon: 'color_lens',\n              },\n              {\n                label: 'Icons',\n                url: '/styleguide/icons',\n                icon: 'image',\n              },\n              {\n                label: 'Buttons',\n                url: '/styleguide/buttons',\n                icon: 'touch_app',\n              },\n            ],\n          },\n          {\n            label: 'About',\n            url: '/about',\n            icon: 'info',\n          },\n        ],\n        items2: [\n          {\n            label: 'Home',\n            url: '/',\n          },\n          {\n            label: 'Components',\n            url: '/components',\n            isCurrent: true,\n          },\n          {\n            label: 'Styleguide',\n            url: '/styleguide',\n            children: [\n              {\n                label: 'Typography',\n                url: '/styleguide/typography',\n                children: [\n                  {\n                    label: 'Headings',\n                    url: '/styleguide/typography/headings',\n                    children: [\n                      {\n                        label: 'Heading 1',\n                        url: '/styleguide/typography/headings/heading-1',\n                      },\n                      {\n                        label: 'Heading 2',\n                        url: '/styleguide/typography/headings/heading-2',\n                      },\n                    ],\n                  },\n                  {\n                    label: 'Paragraphs',\n                    url: '/styleguide/typography/paragraphs',\n                  },\n                  {\n                    label: 'Lists',\n                    url: '/styleguide/typography/lists',\n                  },\n                ],\n              },\n              {\n                label: 'Colors',\n                url: '/styleguide/colors',\n              },\n              {\n                label: 'Icons',\n                url: '/styleguide/icons',\n              },\n              {\n                label: 'Buttons',\n                url: '/styleguide/buttons',\n              },\n            ],\n          },\n          {\n            label: 'About',\n            url: '/about',\n          },\n        ],\n      };\n    },\n    methods: {\n      handleClick() {\n        this.$refs.leftMenu.open();\n      },\n      handleClick2() {\n        this.rightOpen = !this.rightOpen;\n      },\n      handleClick3() {\n        this.customOpen = !this.customOpen;\n      },\n    },\n    template: `\n  <div class=\"container\">\n    <go-button block class=\"mb-2\" @click=\"handleClick\">Open left menu (via component method)</go-button>\n    <go-nav-drawer\n      ref=\"leftMenu\"\n      label=\"Left menu\"\n      :items.prop=\"items\"></go-nav-drawer>\n    <br />\n    <go-button block class=\"mb-2\" @click=\"handleClick2\">\n      Open right menu (via reactive prop change)\n    </go-button>\n    <go-nav-drawer\n      :active=\"rightOpen\"\n      label=\"Right menu\"\n      position=\"right\"\n      :items.prop=\"items2\"\n      @close=\"rightOpen = false\"></go-nav-drawer>\n    <br />\n    <go-button block class=\"mb-2\" @click=\"handleClick3\">\n      Open custom menu\n    </go-button>\n    <go-nav-drawer\n      :active=\"customOpen\"\n      label=\"Custom menu\"\n      @close=\"customOpen = false\">\n      <h2>Custom menu</h2>\n      <go-button @click=\"customOpen = false\">Close</go-button>\n      <p>Esc keypress still works.</p></go-nav-drawer>\n  </div>\n  `,\n  };\n\n  const app = createApp(Root);\n  app.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('go-');\n  app.mount('#app');\n</script>\n"
      },
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": true,
          "docs": "keep track of open state of drawer",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "autoClose",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-close",
          "reflectToAttr": false,
          "docs": "if true, clicking on nav item will close the drawer automatically",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "items",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "items",
          "reflectToAttr": false,
          "docs": "Navigation items to be rendered",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "label for screen readers",
          "docsTags": [],
          "default": "'Drawer'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "position",
          "type": "\"left\" | \"right\"",
          "complexType": {
            "original": "'left' | 'right'",
            "resolved": "\"left\" | \"right\"",
            "references": {}
          },
          "mutable": false,
          "attr": "position",
          "reflectToAttr": true,
          "docs": "Position where the navigation should appear from",
          "docsTags": [],
          "default": "'left'",
          "values": [
            {
              "value": "left",
              "type": "string"
            },
            {
              "value": "right",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "init",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(newItems: INavItem[] | string) => Promise<void>",
            "parameters": [
              {
                "name": "newItems",
                "type": "string | INavItem[]",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "init(newItems: INavItem[] | string) => Promise<void>",
          "parameters": [
            {
              "name": "newItems",
              "type": "string | INavItem[]",
              "docs": ""
            }
          ],
          "docs": "Initialise the menu",
          "docsTags": [
            {
              "name": "param",
              "text": "items menu items to be rendered"
            }
          ]
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "toggle",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "toggle() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "close",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the nav drawer is closed",
          "docsTags": []
        },
        {
          "event": "navItemClick",
          "detail": "INavItem",
          "bubbles": true,
          "complexType": {
            "original": "INavItem",
            "resolved": "INavItem",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the nav item is clicked",
          "docsTags": []
        },
        {
          "event": "open",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the nav drawer is opened",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-button",
        "go-link",
        "go-overlay",
        "go-icon"
      ],
      "dependencyGraph": {
        "go-nav-drawer": [
          "go-button",
          "go-link",
          "go-overlay",
          "go-icon"
        ],
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-bar/go-nav-item.tsx",
      "encapsulation": "none",
      "tag": "go-nav-item",
      "readme": "---\ntitle: Navigation bar\n---\n\n# Navigation bar <span class=\"text-size-0\">`go-nav-bar`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">The navigation bar helps users navigate the site's top level information architecture.</div>\n\n## Accessibility\n\n- Uses `<nav>` landmark\n- Ability to set nav label easily with the `label` attribute (defaults to \"Main\")\n\n## Related patterns\n\n<!-- Patterns that uses this component -->\n\n- [Header](../../patterns/header-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Data-driven navigation bar\n\nIf you use a CMS or an API to manage the source of the navigation menu structure, the easiest way to use the navigation bar is probably going to be data-driven.\n\n<demo-frame component=\"go-nav-bar\" demo=\"go-nav-bar\"></demo-frame>\n\nIn the example above, the `items` prop of the `go-nav-bar` component gets parsed (JSON5 format) and rendered automatically, as a developer, you need to pass the menu structure in the following format:\n\n```ts\nexport interface INavItem {\n  label: string;\n  url?: string;\n  icon?: IIcon; // see go-icon\n  description?: string;\n  children?: INavItem[];\n  columns?: number;\n  isCurrent?: boolean;\n}\n```\n\n## Composable navigation bar\n\nYou can also compose the navigation bar in a more traditional way, which gives you more control over what goes into the slots of the compoents.\n\n<demo-frame component=\"go-nav-bar\" demo=\"composable\"></demo-frame>\n",
      "docs": "---\ntitle: Navigation bar\n---",
      "docsTags": [],
      "usage": {
        "composable": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- composable nav bar -->\n<go-nav-bar>\n  <go-nav-item>\n    <go-nav-link block url=\"#home\" label=\"Home\" icon=\"{name: 'home'}\"></go-nav-link>\n  </go-nav-item>\n  <go-nav-item>\n    <go-nav-submenu-trigger controls=\"submenu\">\n      <go-icon name=\"view_module\"></go-icon>\n      Components\n    </go-nav-submenu-trigger>\n    <go-nav-submenu id=\"submenu\" columns=\"3\">\n      <h2 class=\"h6\" slot=\"submenu-header\">This is the heading of this submenu</h2>\n      <go-nav-list>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 1\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 2\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n      </go-nav-list>\n      <go-nav-link block url=\"#item\" label=\"Item 3\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 4\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 5\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n    </go-nav-submenu>\n  </go-nav-item>\n</go-nav-bar>\n",
        "go-nav-bar": "<go-nav-bar id=\"navbar1\"></go-nav-bar>\n\n<script>\n  const navItems = [\n    {\n      label: 'Home',\n      url: '#home',\n      icon: 'home',\n    },\n    {\n      label: 'Components',\n      url: '#components',\n      icon: 'view_module',\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      columns: 2,\n      children: [\n        {\n          label: 'Sub menu 1',\n          url: '#submenu1',\n          icon: 'text_fields',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Colors',\n          url: '#colors',\n          icon: 'color_lens',\n        },\n        {\n          label: 'Icons',\n          url: '#icons',\n          icon: 'image',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons',\n          icon: 'touch_app',\n        },\n      ],\n    },\n    {\n      label: 'Styleguide',\n      url: '#styleguide',\n      icon: 'style',\n      columns: 3,\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      children: [\n        {\n          label: 'Typography',\n          url: '#typography',\n          icon: 'text_fields',\n          children: [\n            {\n              label: 'Headings',\n              url: '#headings',\n              icon: 'text_fields',\n              children: [\n                {\n                  label: 'Heading 1',\n                  url: '#h1',\n                },\n                {\n                  label: 'Heading 2',\n                  url: '#h2',\n                },\n              ],\n            },\n            {\n              label: 'Paragraphs',\n              url: '#paragraphs',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Lists',\n              url: '#lists',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Code',\n              url: '#code',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Tables',\n              url: '#tables',\n              icon: 'text_fields',\n            },\n          ],\n        },\n        {\n          label: 'Colors',\n          url: '#colors2',\n          icon: 'color_lens',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n          children: [\n            {\n              label: 'Primary',\n              url: '#primary',\n              icon: 'color_lens',\n            },\n          ],\n        },\n        {\n          label: 'Icons',\n          url: '#icons2',\n          icon: 'image',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons2',\n          icon: 'touch_app',\n        },\n        {\n          label: 'Forms',\n          url: '#forms',\n          icon: 'text_fields',\n        },\n      ],\n    },\n    {\n      label: 'About',\n      url: '#about',\n      icon: 'info',\n    },\n  ];\n  navbar1.items = navItems;\n\n  const setCurrentItem = (item, newCurrent) => {\n    if (item.label === 'Colors') {\n      console.log({ item, newCurrent });\n    }\n    let isCurrent = undefined;\n    if (item.url === newCurrent.url) {\n      console.log('item === newCurrent', item, newCurrent);\n      isCurrent = true;\n    }\n    const children = item?.children?.map((child) => setCurrentItem(child, newCurrent));\n    return {\n      ...item,\n      isCurrent,\n      children,\n    };\n  };\n\n  navbar1.addEventListener('navigate', (e) => {\n    console.log('nav event', e.detail);\n    const newCurrent = e.detail?.item;\n    if (!newCurrent) {\n      return;\n    }\n    navbar1.items = navItems.map((item) => setCurrentItem(item, newCurrent));\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "item",
          "type": "INavItem | string",
          "complexType": {
            "original": "INavItem | string",
            "resolved": "INavItem | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "@/interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "item",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem"
            },
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "navigate",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        },
        {
          "event": "submenutoggle",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-nav-bar"
      ],
      "dependencies": [
        "go-nav-link",
        "go-nav-submenu-trigger",
        "go-nav-submenu",
        "go-icon"
      ],
      "dependencyGraph": {
        "go-nav-item": [
          "go-nav-link",
          "go-nav-submenu-trigger",
          "go-nav-submenu",
          "go-icon"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-nav-bar": [
          "go-nav-item"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-link/go-nav-link.tsx",
      "encapsulation": "none",
      "tag": "go-nav-link",
      "readme": "---\ntitle: Nav link\n---\n\n# Nav link <span class=\"text-size-0\">`go-nav-link`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Nav link is a link component used in navigation patterns.</div>\n\n`go-nav-link` provides a data-driven interface for defining navigation links. It is used in the following components:\n\n- [Nav list](./go-nav-list)\n- [Nav drawer](./go-nav-drawer)\n- [Nav bar](./go-nav-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-nav-link\" demo=\"go-nav-link\"></demo-frame>\n",
      "docs": "---\ntitle: Nav link\n---",
      "docsTags": [],
      "usage": {
        "go-nav-link": "<link href=\"https://unpkg.com/boxicons@2.1.1/css/boxicons.min.css\" rel=\"stylesheet\" />\n<wc-playground\n  tag=\"go-nav-link\"\n  props=\"[\n  {\n    name: 'item',\n    type: 'object',\n    value: {\n      label: 'Link',\n      url: '#',\n      icon: {\n        iconSet: 'bx',\n        name: 'star',\n        size: '1.5em'\n      },\n      linkAttrs: {\n        title: 'Link title text'\n      },\n    },\n  },\n  {name: 'showArrow', type: 'boolean', value: false},\n]\"\ncode=\"<go-nav-link></go-nav-link>\"\n>\n</wc-playground>\n"
      },
      "props": [
        {
          "name": "block",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "block",
          "reflectToAttr": true,
          "docs": "full width",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "description",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "description",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "icon",
          "type": "IconProps | string",
          "complexType": {
            "original": "IIcon | string",
            "resolved": "IconProps | string",
            "references": {
              "IIcon": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::IIcon"
              }
            }
          },
          "mutable": false,
          "attr": "icon",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "IconProps"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "isCurrent",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "is-current",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "item",
          "type": "INavItem | string",
          "complexType": {
            "original": "INavItem | string",
            "resolved": "INavItem | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "item",
          "reflectToAttr": false,
          "docs": "navigation item",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "linkAttrs",
          "type": "string | { [key: string]: unknown; }",
          "complexType": {
            "original": "UnknownObject | string",
            "resolved": "string | { [key: string]: unknown; }",
            "references": {
              "UnknownObject": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::UnknownObject"
              }
            }
          },
          "mutable": false,
          "attr": "link-attrs",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            },
            {
              "type": "{ [key: string]: unknown; }"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "showArrow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-arrow",
          "reflectToAttr": false,
          "docs": "show arrow at the end of the link",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "url",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "url",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "navigate",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--nav-link-align-y",
          "annotation": "prop",
          "docs": "vertical alignment of icon and text - default: flex-start"
        },
        {
          "name": "--nav-link-arrow-color",
          "annotation": "prop",
          "docs": "icon color on nav link - default: currentColor"
        },
        {
          "name": "--nav-link-arrow-color-hover",
          "annotation": "prop",
          "docs": "icon color on hover - default: currentColor"
        },
        {
          "name": "--nav-link-arrow-gap",
          "annotation": "prop",
          "docs": "gap between arrow icon and link text - default: var(--go-base-spacing)"
        },
        {
          "name": "--nav-link-bg-color",
          "annotation": "prop",
          "docs": "background color of nav link - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--nav-link-current-bar-color",
          "annotation": "prop",
          "docs": "color of underline on current nav link - default: currentColor"
        },
        {
          "name": "--nav-link-current-bar-width",
          "annotation": "prop",
          "docs": "width of underline on current nav link - default: 2px"
        },
        {
          "name": "--nav-link-description-color",
          "annotation": "prop",
          "docs": "color of description - default: var(--go-color-neutral-800)"
        },
        {
          "name": "--nav-link-description-fs",
          "annotation": "prop",
          "docs": "font size of description - default: 0.85em"
        },
        {
          "name": "--nav-link-description-fw",
          "annotation": "prop",
          "docs": "font weight of description - default: normal"
        },
        {
          "name": "--nav-link-hover-bg-color",
          "annotation": "prop",
          "docs": "background color on hover - default: var(--go-color-link-hover-bg)"
        },
        {
          "name": "--nav-link-hover-fg-color",
          "annotation": "prop",
          "docs": "text color on hover - default: var(--go-color-link-hover)"
        },
        {
          "name": "--nav-link-padding",
          "annotation": "prop",
          "docs": "padding on nav link - default: 0.25em 0"
        },
        {
          "name": "--nav-link-radius",
          "annotation": "prop",
          "docs": "border radius of nav link - default: var(--radius-2)"
        },
        {
          "name": "--nav-link-text-color",
          "annotation": "prop",
          "docs": "text color of nav link - default: var(--go-color-darkest)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-breadcrumbs",
        "go-footer",
        "go-heading-row",
        "go-nav-item",
        "go-nav-list",
        "go-toc"
      ],
      "dependencies": [
        "go-icon"
      ],
      "dependencyGraph": {
        "go-nav-link": [
          "go-icon"
        ],
        "go-breadcrumbs": [
          "go-nav-link"
        ],
        "go-footer": [
          "go-nav-link"
        ],
        "go-heading-row": [
          "go-nav-link"
        ],
        "go-nav-item": [
          "go-nav-link"
        ],
        "go-nav-list": [
          "go-nav-link"
        ],
        "go-toc": [
          "go-nav-link"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-list/go-nav-list.tsx",
      "encapsulation": "none",
      "tag": "go-nav-list",
      "readme": "---\ntitle: Nav list\n---\n\n# Nav list <span class=\"text-size-0\">`go-nav-list`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Navigation list is a group of nav links in the native nav landmark.</div>\n\nA navigation list can have multiple groups inside.\n\n## Accessibility\n\n`go-nav-list` will render the native `nav` element which tells assistive technologies that it has a aria role of `navigation`.\n\n::: info\nIt is important to distinguish each navigation list by providing a unique label for each list.\n:::\n\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-nav-list\" demo=\"go-nav-list\"></demo-frame>\n",
      "docs": "---\ntitle: Nav list\n---",
      "docsTags": [],
      "usage": {
        "go-nav-list": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<div class=\"container\">\n  <h3>List with heading link</h3>\n  <go-nav-list\n    heading-item=\"{\n    label: 'List heading',\n  }\"\n    items=\"[\n          {\n            label: 'Dashboard',\n            url: '#',\n            icon: 'dashboard',\n          },\n          {\n            label: 'Forms',\n            url: '#',\n            icon: 'text_fields',\n          },\n          {\n            label: 'Tables',\n            url: '#',\n            icon: 'grid_on',\n          },\n          {\n            label: 'Charts',\n            url: '#',\n            icon: 'insert_chart',\n          },\n          {\n            label: 'User profile',\n            url: '#',\n            icon: 'person',\n          },\n        ]\"\n  ></go-nav-list>\n</div>\n",
        "go-nav-list-js": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n\n<div class=\"container\">\n  <h3>List with heading text</h3>\n  <go-nav-list class=\"js-items\" heading=\"List heading\"></go-nav-list>\n  <h3>List with custom heading slot</h3>\n  <go-nav-list class=\"js-items\">\n    <h2 slot=\"heading\">List heading</h2>\n  </go-nav-list>\n  <h3>No heading</h3>\n  <go-nav-list class=\"js-items\"></go-nav-list>\n  <h3>Full width list</h3>\n  <go-nav-list class=\"js-items js-heading-item\" block></go-nav-list>\n</div>\n\n<script>\n  const headingLink = {\n    label: 'Navigation',\n    url: '#',\n    icon: 'navigation',\n  };\n\n  const items = [\n    {\n      label: 'Dashboard',\n      url: '#',\n      icon: 'dashboard',\n    },\n    {\n      label: 'Forms',\n      url: '#',\n      icon: 'text_fields',\n    },\n    {\n      label: 'Tables',\n      url: '#',\n      icon: 'grid_on',\n    },\n    {\n      label: 'Charts',\n      url: '#',\n      icon: 'insert_chart',\n    },\n    {\n      label: 'User profile',\n      url: '#',\n      icon: 'person',\n    },\n  ];\n  const lists = document.querySelectorAll('.js-items');\n  lists.forEach((list) => {\n    list.items = items;\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "block",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "block",
          "reflectToAttr": true,
          "docs": "Make the list full width",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "items",
          "type": "INavItem[] | string",
          "complexType": {
            "original": "INavItem[] | string",
            "resolved": "INavItem[] | string",
            "references": {
              "INavItem": {
                "location": "import",
                "path": "../../../interfaces",
                "id": "src/interfaces/index.ts::INavItem"
              }
            }
          },
          "mutable": false,
          "attr": "items",
          "reflectToAttr": false,
          "docs": "list of navigation items to be displayed uuuuuu",
          "docsTags": [],
          "values": [
            {
              "type": "INavItem[]"
            },
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--nav-list-header-fs",
          "annotation": "prop",
          "docs": "Font size of nav list header - default: 1rem"
        },
        {
          "name": "--nav-list-header-fw",
          "annotation": "prop",
          "docs": "Font weight of nav list header - default: 500"
        },
        {
          "name": "--nav-list-header-gap",
          "annotation": "prop",
          "docs": "Gap between nav list header and list items - default: 1em"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-footer",
        "go-nav-list"
      ],
      "dependencies": [
        "go-nav-list",
        "go-nav-link"
      ],
      "dependencyGraph": {
        "go-nav-list": [
          "go-nav-list"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-footer": [
          "go-nav-list"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-bar/go-nav-submenu.tsx",
      "encapsulation": "none",
      "tag": "go-nav-submenu",
      "readme": "---\ntitle: Navigation bar\n---\n\n# Navigation bar <span class=\"text-size-0\">`go-nav-bar`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">The navigation bar helps users navigate the site's top level information architecture.</div>\n\n## Accessibility\n\n- Uses `<nav>` landmark\n- Ability to set nav label easily with the `label` attribute (defaults to \"Main\")\n\n## Related patterns\n\n<!-- Patterns that uses this component -->\n\n- [Header](../../patterns/header-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Data-driven navigation bar\n\nIf you use a CMS or an API to manage the source of the navigation menu structure, the easiest way to use the navigation bar is probably going to be data-driven.\n\n<demo-frame component=\"go-nav-bar\" demo=\"go-nav-bar\"></demo-frame>\n\nIn the example above, the `items` prop of the `go-nav-bar` component gets parsed (JSON5 format) and rendered automatically, as a developer, you need to pass the menu structure in the following format:\n\n```ts\nexport interface INavItem {\n  label: string;\n  url?: string;\n  icon?: IIcon; // see go-icon\n  description?: string;\n  children?: INavItem[];\n  columns?: number;\n  isCurrent?: boolean;\n}\n```\n\n## Composable navigation bar\n\nYou can also compose the navigation bar in a more traditional way, which gives you more control over what goes into the slots of the compoents.\n\n<demo-frame component=\"go-nav-bar\" demo=\"composable\"></demo-frame>\n",
      "docs": "---\ntitle: Navigation bar\n---",
      "docsTags": [],
      "usage": {
        "composable": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- composable nav bar -->\n<go-nav-bar>\n  <go-nav-item>\n    <go-nav-link block url=\"#home\" label=\"Home\" icon=\"{name: 'home'}\"></go-nav-link>\n  </go-nav-item>\n  <go-nav-item>\n    <go-nav-submenu-trigger controls=\"submenu\">\n      <go-icon name=\"view_module\"></go-icon>\n      Components\n    </go-nav-submenu-trigger>\n    <go-nav-submenu id=\"submenu\" columns=\"3\">\n      <h2 class=\"h6\" slot=\"submenu-header\">This is the heading of this submenu</h2>\n      <go-nav-list>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 1\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 2\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n      </go-nav-list>\n      <go-nav-link block url=\"#item\" label=\"Item 3\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 4\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 5\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n    </go-nav-submenu>\n  </go-nav-item>\n</go-nav-bar>\n",
        "go-nav-bar": "<go-nav-bar id=\"navbar1\"></go-nav-bar>\n\n<script>\n  const navItems = [\n    {\n      label: 'Home',\n      url: '#home',\n      icon: 'home',\n    },\n    {\n      label: 'Components',\n      url: '#components',\n      icon: 'view_module',\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      columns: 2,\n      children: [\n        {\n          label: 'Sub menu 1',\n          url: '#submenu1',\n          icon: 'text_fields',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Colors',\n          url: '#colors',\n          icon: 'color_lens',\n        },\n        {\n          label: 'Icons',\n          url: '#icons',\n          icon: 'image',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons',\n          icon: 'touch_app',\n        },\n      ],\n    },\n    {\n      label: 'Styleguide',\n      url: '#styleguide',\n      icon: 'style',\n      columns: 3,\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      children: [\n        {\n          label: 'Typography',\n          url: '#typography',\n          icon: 'text_fields',\n          children: [\n            {\n              label: 'Headings',\n              url: '#headings',\n              icon: 'text_fields',\n              children: [\n                {\n                  label: 'Heading 1',\n                  url: '#h1',\n                },\n                {\n                  label: 'Heading 2',\n                  url: '#h2',\n                },\n              ],\n            },\n            {\n              label: 'Paragraphs',\n              url: '#paragraphs',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Lists',\n              url: '#lists',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Code',\n              url: '#code',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Tables',\n              url: '#tables',\n              icon: 'text_fields',\n            },\n          ],\n        },\n        {\n          label: 'Colors',\n          url: '#colors2',\n          icon: 'color_lens',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n          children: [\n            {\n              label: 'Primary',\n              url: '#primary',\n              icon: 'color_lens',\n            },\n          ],\n        },\n        {\n          label: 'Icons',\n          url: '#icons2',\n          icon: 'image',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons2',\n          icon: 'touch_app',\n        },\n        {\n          label: 'Forms',\n          url: '#forms',\n          icon: 'text_fields',\n        },\n      ],\n    },\n    {\n      label: 'About',\n      url: '#about',\n      icon: 'info',\n    },\n  ];\n  navbar1.items = navItems;\n\n  const setCurrentItem = (item, newCurrent) => {\n    if (item.label === 'Colors') {\n      console.log({ item, newCurrent });\n    }\n    let isCurrent = undefined;\n    if (item.url === newCurrent.url) {\n      console.log('item === newCurrent', item, newCurrent);\n      isCurrent = true;\n    }\n    const children = item?.children?.map((child) => setCurrentItem(child, newCurrent));\n    return {\n      ...item,\n      isCurrent,\n      children,\n    };\n  };\n\n  navbar1.addEventListener('navigate', (e) => {\n    console.log('nav event', e.detail);\n    const newCurrent = e.detail?.item;\n    if (!newCurrent) {\n      return;\n    }\n    navbar1.items = navItems.map((item) => setCurrentItem(item, newCurrent));\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "columns",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "columns",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "1",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "toggle",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "toggle() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "toggle",
          "detail": "any",
          "bubbles": true,
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-nav-item"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-nav-item": [
          "go-nav-submenu"
        ]
      }
    },
    {
      "filePath": "src/components/navigation/go-nav-bar/go-nav-submenu-trigger.tsx",
      "encapsulation": "none",
      "tag": "go-nav-submenu-trigger",
      "readme": "---\ntitle: Navigation bar\n---\n\n# Navigation bar <span class=\"text-size-0\">`go-nav-bar`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">The navigation bar helps users navigate the site's top level information architecture.</div>\n\n## Accessibility\n\n- Uses `<nav>` landmark\n- Ability to set nav label easily with the `label` attribute (defaults to \"Main\")\n\n## Related patterns\n\n<!-- Patterns that uses this component -->\n\n- [Header](../../patterns/header-bar)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Data-driven navigation bar\n\nIf you use a CMS or an API to manage the source of the navigation menu structure, the easiest way to use the navigation bar is probably going to be data-driven.\n\n<demo-frame component=\"go-nav-bar\" demo=\"go-nav-bar\"></demo-frame>\n\nIn the example above, the `items` prop of the `go-nav-bar` component gets parsed (JSON5 format) and rendered automatically, as a developer, you need to pass the menu structure in the following format:\n\n```ts\nexport interface INavItem {\n  label: string;\n  url?: string;\n  icon?: IIcon; // see go-icon\n  description?: string;\n  children?: INavItem[];\n  columns?: number;\n  isCurrent?: boolean;\n}\n```\n\n## Composable navigation bar\n\nYou can also compose the navigation bar in a more traditional way, which gives you more control over what goes into the slots of the compoents.\n\n<demo-frame component=\"go-nav-bar\" demo=\"composable\"></demo-frame>\n",
      "docs": "---\ntitle: Navigation bar\n---",
      "docsTags": [],
      "usage": {
        "composable": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n<!-- composable nav bar -->\n<go-nav-bar>\n  <go-nav-item>\n    <go-nav-link block url=\"#home\" label=\"Home\" icon=\"{name: 'home'}\"></go-nav-link>\n  </go-nav-item>\n  <go-nav-item>\n    <go-nav-submenu-trigger controls=\"submenu\">\n      <go-icon name=\"view_module\"></go-icon>\n      Components\n    </go-nav-submenu-trigger>\n    <go-nav-submenu id=\"submenu\" columns=\"3\">\n      <h2 class=\"h6\" slot=\"submenu-header\">This is the heading of this submenu</h2>\n      <go-nav-list>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 1\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n        <go-nav-link\n          block\n          url=\"#item\"\n          label=\"List item 2\"\n          icon=\"{name: 'star'}\"\n          description=\"lorem ipsum\"></go-nav-link>\n      </go-nav-list>\n      <go-nav-link block url=\"#item\" label=\"Item 3\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 4\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n      <go-nav-link block url=\"#item\" label=\"Item 5\" icon=\"{name: 'star'}\" description=\"lorem ipsum\"></go-nav-link>\n    </go-nav-submenu>\n  </go-nav-item>\n</go-nav-bar>\n",
        "go-nav-bar": "<go-nav-bar id=\"navbar1\"></go-nav-bar>\n\n<script>\n  const navItems = [\n    {\n      label: 'Home',\n      url: '#home',\n      icon: 'home',\n    },\n    {\n      label: 'Components',\n      url: '#components',\n      icon: 'view_module',\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      columns: 2,\n      children: [\n        {\n          label: 'Sub menu 1',\n          url: '#submenu1',\n          icon: 'text_fields',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Colors',\n          url: '#colors',\n          icon: 'color_lens',\n        },\n        {\n          label: 'Icons',\n          url: '#icons',\n          icon: 'image',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons',\n          icon: 'touch_app',\n        },\n      ],\n    },\n    {\n      label: 'Styleguide',\n      url: '#styleguide',\n      icon: 'style',\n      columns: 3,\n      description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n      children: [\n        {\n          label: 'Typography',\n          url: '#typography',\n          icon: 'text_fields',\n          children: [\n            {\n              label: 'Headings',\n              url: '#headings',\n              icon: 'text_fields',\n              children: [\n                {\n                  label: 'Heading 1',\n                  url: '#h1',\n                },\n                {\n                  label: 'Heading 2',\n                  url: '#h2',\n                },\n              ],\n            },\n            {\n              label: 'Paragraphs',\n              url: '#paragraphs',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Lists',\n              url: '#lists',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Code',\n              url: '#code',\n              icon: 'text_fields',\n            },\n            {\n              label: 'Tables',\n              url: '#tables',\n              icon: 'text_fields',\n            },\n          ],\n        },\n        {\n          label: 'Colors',\n          url: '#colors2',\n          icon: 'color_lens',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n          children: [\n            {\n              label: 'Primary',\n              url: '#primary',\n              icon: 'color_lens',\n            },\n          ],\n        },\n        {\n          label: 'Icons',\n          url: '#icons2',\n          icon: 'image',\n          description: 'lorem ipsum dolor sit amet consectetur adipisicing elit',\n        },\n        {\n          label: 'Buttons',\n          url: '#buttons2',\n          icon: 'touch_app',\n        },\n        {\n          label: 'Forms',\n          url: '#forms',\n          icon: 'text_fields',\n        },\n      ],\n    },\n    {\n      label: 'About',\n      url: '#about',\n      icon: 'info',\n    },\n  ];\n  navbar1.items = navItems;\n\n  const setCurrentItem = (item, newCurrent) => {\n    if (item.label === 'Colors') {\n      console.log({ item, newCurrent });\n    }\n    let isCurrent = undefined;\n    if (item.url === newCurrent.url) {\n      console.log('item === newCurrent', item, newCurrent);\n      isCurrent = true;\n    }\n    const children = item?.children?.map((child) => setCurrentItem(child, newCurrent));\n    return {\n      ...item,\n      isCurrent,\n      children,\n    };\n  };\n\n  navbar1.addEventListener('navigate', (e) => {\n    console.log('nav event', e.detail);\n    const newCurrent = e.detail?.item;\n    if (!newCurrent) {\n      return;\n    }\n    navbar1.items = navItems.map((item) => setCurrentItem(item, newCurrent));\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "controls",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "controls",
          "reflectToAttr": true,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-nav-item"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-nav-item": [
          "go-nav-submenu-trigger"
        ]
      }
    },
    {
      "filePath": "src/components/go-overlay/go-overlay.tsx",
      "encapsulation": "none",
      "tag": "go-overlay",
      "readme": "---\ntitle: Overlay\n---\n\n# Overlay <span class=\"text-size-0\">`go-overlay`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Overlay is a \"lower level\" component that can be used to assist the display of a dialog.</div>\n\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-overlay\" demo=\"go-overlay\"></demo-frame>\n\n",
      "docs": "---\ntitle: Overlay\n---",
      "docsTags": [],
      "usage": {
        "go-overlay": "<style>\n  .skeleton {\n    width: 100%;\n    height: 120vh;\n    background: var(--go-color-secondary-100);\n    margin: 2rem 0;\n  }\n</style>\n\n<go-overlay id=\"overlay\">\n  <div style=\"background: var(--go-color-lightest); text-align: center; padding: 5vw\">\n    <div>\n      <a href=\"#123\">123</a>\n      <go-button variant=\"primary\" id=\"close-btn\" block=\"mobile\">Close overlay (via method)</go-button>\n      <go-button variant=\"primary\" id=\"close-btn-attr\" block=\"mobile\">Close overlay (via updating attribute)</go-button>\n    </div>\n  </div>\n</go-overlay>\n\n<div class=\"container\">\n  <div class=\"container\">\n    <p style=\"position: sticky; top: 0; background: var(--go-color-lightest)\">\n      <go-button id=\"btn\">Show overlay</go-button>\n    </p>\n    <p>Overlay should capture the keyboard focus.</p>\n    <p>Overlay should also prevent body from scrolling when active.</p>\n    <p>See <a href=\"https://www.w3.org/TR/wai-aria-practices/#dialog_modal\" target=\"_blank\" rel=\"nofollow noopener\">WAI Design Pattern</a> for more details.</p>\n\n    <a href=\"#\">Focus</a>\n    <a href=\"#\">Focus</a>\n    <a href=\"#\">Focus</a>\n    <a href=\"#\">Focus</a>\n    <a href=\"#\">Focus</a>\n\n    <div class=\"skeleton\"></div>\n  </div>\n</div>\n\n<script>\n  const overlay = document.querySelector('#overlay');\n\n  document.querySelector('#btn').addEventListener('click', () => {\n    overlay.open();\n  });\n  document.querySelector('#close-btn').addEventListener('click', () => {\n    overlay.close();\n  });\n  document.querySelector('#close-btn-attr').addEventListener('click', () => {\n    overlay.removeAttribute('active');\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": true,
          "docs": "",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "persistent",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "persistent",
          "reflectToAttr": false,
          "docs": "If persistent, the overlay will not be closed when the user clicks outside of it or presses the escape key.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "close",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "close() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "open",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "HTMLElement": {
                "location": "global",
                "id": "global::HTMLElement"
              },
              "KeyboardEvent": {
                "location": "global",
                "id": "global::KeyboardEvent"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "open() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "overlayClose",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the overlay is closed",
          "docsTags": []
        },
        {
          "event": "overlayOpen",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the overlay is opened",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-dialog",
        "go-nav-drawer",
        "go-search-bar"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-dialog": [
          "go-overlay"
        ],
        "go-nav-drawer": [
          "go-overlay"
        ],
        "go-search-bar": [
          "go-overlay"
        ]
      }
    },
    {
      "filePath": "src/components/go-progress/go-progress.tsx",
      "encapsulation": "none",
      "tag": "go-progress",
      "readme": "---\ntitle: Progress\n---\n\n# Progress <span class=\"text-size-0\">`go-progress`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Progress bar indicates the progress status for a tasks that might take a long time, this can be determinate or indeterminate.</div>\n\n## Accessibility\n\nThe `go-progress` component implements the [ARIA Progress Bar](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role) role.\n\n- The `label` attribute will be used for `aria-label` value applied to the progress bar element.\n- Similarly the `labelledby` attribute will be passed on to fill the `aria-labelledby` attribute on the progress bar element.\n- `aria-valuemin` is automatically filled with the value of `min` attribute, defaults to `0` if not provided.\n- `aria-valuemax` is automatically filled with the value of `max` attribute, defaults to `100` if not provided.\n- `aria-valuenow` is automatically filled with the value of `value` attribute, if not provided, progress bar will become [indeterminate](#determinate-vs-indeterminate)\n\n### Why not use the `progress` element?\n\nAlthough the native `progress` element provide a nice wrapper for the accessibility concerns above, it is difficult to style consistently cross browsers, the effort required to work through the various browser styles with vendor prefixes is more than implementing the custom element with `role=\"progressbar\"`.\n\n## Determinate vs Indeterminate\n\nThe `go-progress` component is determinate if:\n\n1. `indeterminate` attribute is not set or set to `false` **AND**\n2. `value` attribute is set to a valid value (number between `min` and `max`).\n\nOtherwise, the progress bar will be _indeterminate_, which plays a looping animation.\n\n::: info\n\nFor [`prefers-reduced-motion`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) users, we provide a different animation. 💖\n\n:::\n\nOpen the source code of the demo to see how it works.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-progress\" demo=\"go-progress\"></demo-frame>\n",
      "docs": "---\ntitle: Progress\n---",
      "docsTags": [],
      "usage": {
        "go-progress": "<div class=\"container\" style=\"padding-right: 4rem\">\n  <h3>Determinate</h3>\n  <go-progress class=\"determinate-progress\" label=\"Determinate progress bar\" value=\"10\" max=\"100\" label=\"10%\"></go-progress>\n\n  <p id=\"progress-2-label\">Progress bar that shows percentage</p>\n  <go-progress class=\"determinate-progress\" labelledby=\"progress-2-label\" value=\"10\" max=\"100\" label=\"10%\" show-percentage></go-progress>\n  <go-button-group class=\"center\" connected>\n    <go-button variant=\"primary\" round type=\"button\" id=\"add-btn\">+10%</go-button>\n    <go-button variant=\"primary\" round outline-fill type=\"button\" id=\"remove-btn\">-10%</go-button>\n  </go-button-group>\n\n  <h3>Indeterminate</h3>\n  <p>Neither <code>value</code> nor <code>indeterminate</code> is set</p>\n  <go-progress></go-progress>\n  <p>Both <code>value</code> nor <code>indeterminate</code> are set (with <code>indeterminate</code> set to true)</p>\n  <go-progress label=\"Loading\" value=\"10\" max=\"100\" indeterminate=\"true\"></go-progress>\n  <p>With <code>indeterminate</code> set to false</p>\n  <go-progress max=\"100\" indeterminate=\"false\"></go-progress>\n</div>\n<script>\n  document.getElementById('add-btn').addEventListener('click', function () {\n    var progresses = document.querySelectorAll('.determinate-progress');\n    progresses.forEach(function (progress) {\n      const newVal = progress.value + 10;\n      progress.setAttribute('value', newVal);\n      progress.setAttribute('label', newVal + '%');\n    });\n  });\n  // remove 10%\n  document.getElementById('remove-btn').addEventListener('click', function () {\n    var progresses = document.querySelectorAll('.determinate-progress');\n    progresses.forEach(function (progress) {\n      const newVal = progress.value - 10;\n      progress.setAttribute('value', newVal);\n      progress.setAttribute('label', newVal + '%');\n    });\n  });\n</script>\n<style>\n  .center {\n    display: flex;\n    justify-content: center;\n  }\n</style>\n"
      },
      "props": [
        {
          "name": "indeterminate",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "indeterminate",
          "reflectToAttr": false,
          "docs": "Set progress to indeterminate state",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Descriptive label for screen readers to identify the progress bar",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "labelledby",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "labelledby",
          "reflectToAttr": false,
          "docs": "Id of the label element for the progress bar",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "max",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "max",
          "reflectToAttr": false,
          "docs": "Total amount of work required for progress to complete",
          "docsTags": [],
          "default": "100",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "min",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "min",
          "reflectToAttr": false,
          "docs": "min value of the progress bar",
          "docsTags": [],
          "default": "0",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "showPercentage",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-percentage",
          "reflectToAttr": false,
          "docs": "Display percentage of completion",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "value",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": true,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "How much of the task that has been completed",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/form/go-radio/go-radio.tsx",
      "encapsulation": "none",
      "tag": "go-radio",
      "readme": "---\ntitle: Radio button\n---\n\n# Radio <span class=\"text-size-0\">`go-radio`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Radio buttons allow users to select a single item from a list.\n</div>\n\n::: info Note\n\nOnce a radio button is selected, it cannot be deselected. So for optional fields, it is good practice to include a \"none\" option and have it selected by default.\n\n:::\n\n\n## Accessibility\n- `label` announced by screen readers along with the \"checked\" or \"not checked\" state\n- `hint` prop or slot are announced by screen readers if present\n- `error` prop is announced by screen readers if present\n### Keyboard navigation\n- `Up` or `Down` arrow keys - select the previous/next option when the one of the option has focus\n- `Space` key - select an option when it has focus\n- `Tab` key - navigate to next focusable element outside of the current radio button group\n## Demo\n\n<demo-frame component=\"go-radio\" demo=\"go-radio\"></demo-frame>\n\n### Usage in fieldset\n\n<demo-frame component=\"go-radio\" demo=\"radio-fieldset\"></demo-frame>\n",
      "docs": "---\ntitle: Radio button\n---",
      "docsTags": [],
      "usage": {
        "go-radio": "<go-radio label=\"radio\" hint=\"This is a hint message\"></go-radio>\n<go-radio label=\"Checked\" checked></go-radio>\n<go-radio id=\"cb\" label=\"Checked\" checked>\n  <div slot=\"hint\">This is a <go-link href=\"/\">slotted</go-link> hint</div>\n</go-radio>\n<go-radio label=\"Disabled\" disabled></go-radio>\n<go-radio label=\"Disabled checked\" checked disabled></go-radio>\n<go-radio label=\"Error\" hint=\"This is a hint message\" error=\"This is an error\"></go-radio>\n<go-radio label=\"Error checked\" error=\"This is an error\" checked></go-radio>\n<go-radio label=\"Error disabled\" error=\"This is an error\" disabled></go-radio>\n",
        "radio-fieldset": "<go-fieldset label=\"What fruit do you like?\" hint=\"Select one\">\n  <go-radio name=\"fruit\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-radio>\n  <go-radio name=\"fruit\" label=\"Banana\" value=\"banana\"></go-radio>\n  <go-radio name=\"fruit\" label=\"Orange\" value=\"orange\"></go-radio>\n  <go-radio name=\"fruit\" label=\"Kiwi\" value=\"kiwi\"></go-radio>\n  <go-radio name=\"fruit\" label=\"Watermelon\" value=\"watermelon\"></go-radio>\n</go-fieldset>\n\n<p>Error state</p>\n<go-fieldset label=\"What fruit do you like?\" error=\"[This is an error message]\" hint=\"Select one\">\n  <go-radio name=\"fruit2\" label=\"Apple\" value=\"apple\" hint=\"Not the company\"></go-radio>\n  <go-radio name=\"fruit2\" label=\"Banana\" value=\"banana\"></go-radio>\n  <go-radio name=\"fruit2\" label=\"Orange\" value=\"orange\"></go-radio>\n  <go-radio name=\"fruit2\" label=\"Kiwi\" value=\"kiwi\"></go-radio>\n  <go-radio name=\"fruit2\" label=\"Watermelon\" value=\"watermelon\"></go-radio>\n</go-fieldset>\n"
      },
      "props": [
        {
          "name": "checked",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "checked",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "controlId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "control-id",
          "reflectToAttr": false,
          "docs": "DOM id for native input control, default auto generated unique id",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": true,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "indeterminate",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "indeterminate",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "value",
          "type": "any",
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "mutable": false,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "any"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--radio-border",
          "annotation": "prop",
          "docs": "radio default border - default: var(--radio-border-width) solid var(--radio-border-color)"
        },
        {
          "name": "--radio-border-color",
          "annotation": "prop",
          "docs": "Default border color - default: var(--input-border-color)"
        },
        {
          "name": "--radio-border-color-hover",
          "annotation": "prop",
          "docs": "radio hover state color - default: var(--go-color-neutral-700)"
        },
        {
          "name": "--radio-border-width",
          "annotation": "prop",
          "docs": "Default border width - default: 2px"
        },
        {
          "name": "--radio-checked-bg",
          "annotation": "prop",
          "docs": "radio button background color when checked - default: var(--control-selected-bg-color)"
        },
        {
          "name": "--radio-checked-fg",
          "annotation": "prop",
          "docs": "radio button foreground color when checked - default: var(--control-selected-fg-color)"
        },
        {
          "name": "--radio-dot-size",
          "annotation": "prop",
          "docs": "inside circle size - default: 0.7em"
        },
        {
          "name": "--radio-mark-shadow-inner",
          "annotation": "prop",
          "docs": "drop shadow for selected mark - default: var(--shadow-2)"
        },
        {
          "name": "--radio-size",
          "annotation": "prop",
          "docs": "Size of radio - default: 1.5em"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-search-bar/go-search-bar.tsx",
      "encapsulation": "none",
      "tag": "go-search-bar",
      "readme": "---\ntitle: Search bar\n---\n\n# Search bar <span class=\"text-size-0\">`go-search-bar`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">In progress</div>\n",
      "docs": "---\ntitle: Search bar\n---",
      "docsTags": [],
      "usage": {
        "go-search-bar": "\n<go-search-bar></go-search-bar>\n"
      },
      "props": [],
      "methods": [
        {
          "name": "closeSearchForm",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "closeSearchForm() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        },
        {
          "name": "openSearchForm",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "openSearchForm() => Promise<void>",
          "parameters": [],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-overlay",
        "go-button"
      ],
      "dependencyGraph": {
        "go-search-bar": [
          "go-overlay",
          "go-button"
        ],
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/form/go-select/go-select.tsx",
      "encapsulation": "none",
      "tag": "go-select",
      "readme": "---\ntitle: Select\n---\n\n# Select <span class=\"text-size-0\">`go-select`</span>\n\n:::info\n\n`go-select` and `go-combobox` components are heavily inspired by the amazing work by [smhigley](https://github.com/smhigley). Read the article [&lt;select&gt; your poison](https://www.24a11y.com/2019/select-your-poison/)\n\n:::\n\n## Demo\n\n<demo-frame component=\"go-select\" demo=\"go-select\"></demo-frame>\n",
      "docs": "---\ntitle: Select\n---",
      "docsTags": [],
      "usage": {
        "go-select": "\n<go-select name=\"select-1\" label=\"Select\" hint=\"This is a hint message\" value=\"Banana\" options=\"['Apple', 'Banana', 'Blueberry', 'Boysenberry', 'Cherry', 'Durian', 'Eggplant', 'Fig', 'Grape', 'Guava', 'Huckleberry']\">\n</go-select>\n\n<go-select name=\"select-2\" label=\"Set options via script\" id=\"js-options-select\">\n</go-select>\n<script>\n  window.select = document.querySelector('#js-options-select');\n  window.select.options = ['', 'Apple', 'Banana', 'Blueberry Boysenberry Cherry Durian Eggplant'];\n  window.select.addEventListener('goChange', ({detail}) => {\n    if(detail.value === ''){\n      window.select.error = 'Ahh'\n    }else {\n      window.select.error = false\n    }\n  })\n</script>\n\n<go-select name=\"select-4\" label=\"Prefix slot\" options=\"['Apple', 'Banana', 'Blueberry', 'Boysenberry', 'Cherry', 'Durian', 'Eggplant', 'Fig', 'Grape', 'Guava', 'Huckleberry']\">\n  <div slot=\"prefix\">https://go-ui.com/</div>\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-select>\n<go-select name=\"select-3\" label=\"Suffix slot\" options=\"['Apple', 'Banana', 'Blueberry', 'Boysenberry', 'Cherry', 'Durian', 'Eggplant', 'Fig', 'Grape', 'Guava', 'Huckleberry']\">\n  <div slot=\"suffix\">.com.au</div>\n\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-select>\n"
      },
      "props": [
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "string | boolean",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "options",
          "type": "SelectOption[] | string | string[]",
          "complexType": {
            "original": "SelectOption[] | string[] | string",
            "resolved": "SelectOption[] | string | string[]",
            "references": {
              "SelectOption": {
                "location": "import",
                "path": "@/interfaces",
                "id": "src/interfaces/index.ts::SelectOption"
              }
            }
          },
          "mutable": false,
          "attr": "options",
          "reflectToAttr": false,
          "docs": "Array of options.\nNote:\nSometimes frameworks may incorrectly pass the result of Array.toString() into this prop,\n`go-select` tries to obsorb this issue by trying to do a `split(',')` on the options prop\nif a string is passed in.\nThis means the accepted formats include:\n1. array of objects of type `{label: string, value: string}`\n2. array of strings (e.g. ['Apple', 'Orange', 'Banana'])\n3. string, toString() result of format 2 (i.e. 'Apple,Orange,Banana')\n4. string, option 1 or 2 passed in as string that can be parsed by [JSON5](https://json5.org/)",
          "docsTags": [],
          "values": [
            {
              "type": "SelectOption[]"
            },
            {
              "type": "string"
            },
            {
              "type": "string[]"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "readonly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "readonly",
          "reflectToAttr": false,
          "docs": "If this input is read-only",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "suffixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "suffix-id",
          "reflectToAttr": false,
          "docs": "DOM id for suffix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "value",
          "type": "string",
          "complexType": {
            "original": "FieldValue",
            "resolved": "string",
            "references": {
              "FieldValue": {
                "location": "import",
                "path": "@/interfaces",
                "id": "src/interfaces/index.ts::FieldValue"
              }
            }
          },
          "mutable": true,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "gochange",
          "detail": "GoChangeEventDetail<string>",
          "bubbles": true,
          "complexType": {
            "original": "GoChangeEventDetail<string>",
            "resolved": "GoChangeEventDetail<string>",
            "references": {
              "GoChangeEventDetail": {
                "location": "import",
                "path": "@/interfaces",
                "id": "src/interfaces/index.ts::GoChangeEventDetail"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emit custom event with selected value",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--dd-item-bg",
          "annotation": "prop",
          "docs": "Background of dropdown item - default: var(--dropdown-bg-color)"
        },
        {
          "name": "--dd-item-bg-disabled",
          "annotation": "prop",
          "docs": "Disabled background color - default: transparent"
        },
        {
          "name": "--dd-item-bg-hover",
          "annotation": "prop",
          "docs": "Hover background for dropdown item - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--dd-item-bg-selected",
          "annotation": "prop",
          "docs": "background for selected state - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--dd-item-fg",
          "annotation": "prop",
          "docs": "Foreground of dropdown item - default: var(--go-color-neutral-900)"
        },
        {
          "name": "--dd-item-fg-disabled",
          "annotation": "prop",
          "docs": "Disabled foreground color - default: var(--go-color-neutral-600)"
        },
        {
          "name": "--dd-item-fg-hover",
          "annotation": "prop",
          "docs": "Hover foreground of dropdown item - default: var(--go-color-darkest)"
        },
        {
          "name": "--dd-item-fg-selected",
          "annotation": "prop",
          "docs": "Selected state foreground - default: var(--go-color-darkest)"
        },
        {
          "name": "--dd-item-line-height",
          "annotation": "prop",
          "docs": "line height of item - default: 1.5em"
        },
        {
          "name": "--dd-item-padding",
          "annotation": "prop",
          "docs": "Padding for dropdown item - default: 0.5rem 1rem"
        },
        {
          "name": "--dd-item-radius",
          "annotation": "prop",
          "docs": "Border radius for dropdown item - default: var(--radius-1)"
        },
        {
          "name": "--dd-item-width",
          "annotation": "prop",
          "docs": "Width of dropdown item - default: 100%"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-field",
        "go-dropdown"
      ],
      "dependencyGraph": {
        "go-select": [
          "go-field",
          "go-dropdown"
        ]
      }
    },
    {
      "filePath": "src/components/go-skip-link/go-skip-link.tsx",
      "encapsulation": "none",
      "tag": "go-skip-link",
      "readme": "---\ntitle: Skip link\n---\n\n\n# Skip link <span class=\"text-size-0\">`go-skip-link`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Skip link is a control that helps keyboard and screen-reader users to navigate to the main content of the page quickly.</div>\n\n## Accessibility\n\nKeyboard and screen-reader users may have difficulties navigating through a long list of links, skip link helps them to quickly jump to the main content of the page. Skip link is visually hidden until it receives focus.\n\n:::info\nThe target element specified in `go-skip-link` will receive a `tabindex=\"-1\"` in order to receive the tab focus programmatically.\n:::\n\n### References\n\n- [Skip Navigation Links](https://webaim.org/techniques/skipnav/)\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-skip-link\" demo=\"go-skip-link\"></demo-frame>\n",
      "docs": "---\ntitle: Skip link\n---",
      "docsTags": [],
      "usage": {
        "go-skip-link": "<go-skip-link target=\"[data-example='target']\">Skip to target</go-skip-link>\n\n<ul>\n  <li><a href=\"#\">Link to skip</a></li>\n  <li><a href=\"#\">Link to skip</a></li>\n  <li><a href=\"#\">Link to skip</a></li>\n  <li><a href=\"#\">Link to skip</a></li>\n</ul>\n\n<div data-example=\"target\">\n  <p>This is a <a href=\"#\">test</a></p>\n</div>\n"
      },
      "props": [
        {
          "name": "target",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "target",
          "reflectToAttr": false,
          "docs": "Tell skip link which element to focus (supports any query selector)",
          "docsTags": [],
          "default": "'main'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--skip-link-bg-color",
          "annotation": "prop",
          "docs": "Background color for the skip link focusable area - default: var(--go-color-secondary-700)"
        },
        {
          "name": "--skip-link-padding",
          "annotation": "prop",
          "docs": "Padding to apply to the skip link focusable area - default: 1rem 2rem"
        },
        {
          "name": "--skip-link-text-color",
          "annotation": "prop",
          "docs": "Text color for the skip link focusable area - default: var(--go-color-lightest)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-spinner/go-spinner.tsx",
      "encapsulation": "none",
      "tag": "go-spinner",
      "readme": "---\ntitle: Spinner\n---\n\n# Spinner <span class=\"text-size-0\">`go-spinner`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">A spinner is a visual indication that a background process is running.</div>\n\n::: info Always in DOM\n\nIn order to have assistive technologies pick up the loading state changes, `go-spinner` should be in the DOM from the beginning.\nYou can set the `loading` property to either `true` or `false` to control the visibility of the spinner.\n\n:::\n\n## Accessibility\n\n- The component will render with `role=\"status\"`, this triggers the screen reader to announce the loading state as it changes.\n- If slot has content, the content will be displayed as the loading label, the slot content will be announced by the screen reader.\n- If slot has no content, the default \"Loading\" label will be announced by the screen reader.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-spinner\" demo=\"go-spinner\"></demo-frame>\n",
      "docs": "---\ntitle: Spinner\n---",
      "docsTags": [],
      "usage": {
        "go-spinner": "<go-card heading=\"Spinner\">\n  <p>Click the button below to toggle loading states.</p>\n  <go-spinner></go-spinner>\n  <br />\n  <go-spinner style=\"--spinner-size: 2rem; --spinner-ring-color: var(--go-color-success-500); --spinner-ring-width: 0.5rem\">Making doughnut</go-spinner>\n  <br />\n  <go-spinner stacked=\"true\" style=\"--spinner-size: 4rem; --spinner-ring-color: var(--go-color-secondary-600)\">Stacked label</go-spinner>\n\n  <go-button slot=\"footer\" type=\"button\" id=\"toggle-btn\">\n    <go-spinner></go-spinner>\n    Toggle loading state\n  </go-button>\n</go-card>\n<script>\n  const spinners = document.querySelectorAll('go-spinner');\n  const toggleBtn = document.getElementById('toggle-btn');\n  toggleBtn.addEventListener('click', function () {\n    // toggle loading state\n    for (let i = 0; i < spinners.length; i++) {\n      spinners[i].loading = !spinners[i].loading;\n    }\n  });\n</script>\n"
      },
      "props": [
        {
          "name": "baseColor",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "base-color",
          "reflectToAttr": false,
          "docs": "Set the base color of the spinner.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "duration",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "duration",
          "reflectToAttr": false,
          "docs": "Set how long it should take to complete one full rotation in milliseconds.",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "loading",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "loading",
          "reflectToAttr": true,
          "docs": "set the loading state",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "loadingAnnouncement",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "loading-announcement",
          "reflectToAttr": false,
          "docs": "screen reader announcement when loading",
          "docsTags": [],
          "default": "'Loading'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "ringColor",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "ring-color",
          "reflectToAttr": false,
          "docs": "Set the ring color of the spinner.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "ringWidth",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "ring-width",
          "reflectToAttr": false,
          "docs": "Set the width of the spinner ring",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "size",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "size",
          "reflectToAttr": false,
          "docs": "Set the width and height of the spinner.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "stacked",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "stacked",
          "reflectToAttr": false,
          "docs": "If true, spinner and label will be stacked.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-button"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/form/go-switch/go-switch.tsx",
      "encapsulation": "none",
      "tag": "go-switch",
      "readme": "---\ntitle: Switch\n---\n\n\n# Switch <span class=\"text-size-0\">`go-switch`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Switch is a widget that allows users to quickly choose between \"on\" and \"off\" values. Switch does not provide indeterminate state.\n</div>\n\n## Accessibility\n\nFollowing checkpoints come from W3C's [ARIA Authoring Practice Guide](https://www.w3.org/WAI/ARIA/apg/patterns/switch/):\n\n> - [x] The switch has role switch.\n> - [x] The switch has an accessible label provided by one of the following:\n>   - Visible text content contained within the element with role switch.\n>   - A visible label referenced by the value of aria-labelledby set on the element with role switch.\n>   - aria-label set on the element with role switch.\n> - [x] If the switch element is an HTML input[type=\"checkbox\"], it uses the HTML checked attribute instead of the aria-checked property.\n\n**_To be implemented with fieldset_**\n\n> - [ ] If a set of switches is presented as a logical group with a visible label, either:\n>   - The switches are included in an element with role group that has the property aria-labelledby set to the ID of the element containing the group label.\n>   - The set is contained in an HTML fieldset and the label for the set is contained in an HTML legend element.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-switch\" demo=\"go-switch\"></demo-frame>\n",
      "docs": "---\ntitle: Switch\n---",
      "docsTags": [],
      "usage": {
        "go-switch": "<div class=\"container\">\n  <go-switch checked name=\"switch1\" label=\"Switch\"></go-switch>\n  <br />\n  <go-switch checked name=\"switch2\" label=\"Stacked switch\" stack></go-switch>\n  <br />\n  <go-switch checked name=\"switch3\" label=\"Full-width switch\" full-width></go-switch>\n  <br />\n  <go-switch checked name=\"switch4\" label=\"On off switch\" show-on-off></go-switch>\n  <br />\n  <go-switch checked name=\"switch5\" label=\"Yes no switch\" show-on-off active-label=\"Yes\" inactive-label=\"No\"></go-switch>\n  <br />\n  <go-switch checked name=\"switch5\" label=\"On off outside switch\" show-on-off-outside active-label=\"Yes\" inactive-label=\"No\"></go-switch>\n</div>\n"
      },
      "props": [
        {
          "name": "activeLabel",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "active-label",
          "reflectToAttr": false,
          "docs": "\"on\" label to show when `showOnOff*` is set to true",
          "docsTags": [],
          "default": "'On'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "checked",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "checked",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "fullWidth",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "full-width",
          "reflectToAttr": false,
          "docs": "make this field full width",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "inactiveLabel",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "inactive-label",
          "reflectToAttr": false,
          "docs": "\"off\" label to show when `showOnOff*` is set to true",
          "docsTags": [],
          "default": "'Off'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "showOnOff",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-on-off",
          "reflectToAttr": false,
          "docs": "show on/off text in switch toggle",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "showOnOffOutside",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-on-off-outside",
          "reflectToAttr": false,
          "docs": "show on/off text next to the switch toggle",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "stack",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "stack",
          "reflectToAttr": false,
          "docs": "Display label on top of switch",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "value",
          "type": "any",
          "complexType": {
            "original": "any",
            "resolved": "any",
            "references": {}
          },
          "mutable": false,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "any"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--switch-bg-color",
          "annotation": "prop",
          "docs": "default background color of switch control - default: var(--go-color-neutral-500)"
        },
        {
          "name": "--switch-bg-color-checked",
          "annotation": "prop",
          "docs": "background color of switch control when checked - default: var(--go-color-primary-600)"
        },
        {
          "name": "--switch-handle-color",
          "annotation": "prop",
          "docs": "color of the switch handle - default: #fff"
        },
        {
          "name": "--switch-handle-gap",
          "annotation": "prop",
          "docs": "gap between handle circle and the edge of the switch - default: 4px"
        },
        {
          "name": "--switch-handle-shadow",
          "annotation": "prop",
          "docs": "box shadow for the handle circle - default: var(--shadow-2)"
        },
        {
          "name": "--switch-height",
          "annotation": "prop",
          "docs": "height of switch control - default: 2rem"
        },
        {
          "name": "--switch-label-gap",
          "annotation": "prop",
          "docs": "gap between label and switch control - default: 1rem"
        },
        {
          "name": "--switch-radius",
          "annotation": "prop",
          "docs": "border radius of switch control - default: var(--radius-round)"
        },
        {
          "name": "--switch-shadow",
          "annotation": "prop",
          "docs": "shadow on the switch track - default: var(--inner-shadow-1)"
        },
        {
          "name": "--switch-text-color",
          "annotation": "prop",
          "docs": "Text color for on off label - default: #fff"
        },
        {
          "name": "--switch-text-size",
          "annotation": "prop",
          "docs": "Inner text size of switch - default: max(calc(var(--switch-handle-size) / 2), 14px)"
        },
        {
          "name": "--switch-width",
          "annotation": "prop",
          "docs": "width of switch control - default: 4rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-tabs/go-tab.tsx",
      "encapsulation": "none",
      "tag": "go-tab",
      "readme": "---\ntitle: Tabs\n---\n\n# Tabs <span class=\"text-size-0\">`go-tabs`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Tabs are used commonly to organise related content and switch between different views.</div>\n\n## When to use\n\nTabs are a great way to organize content and make it easy for users to move between related sections or views at the same level of hierarchy. Tabs facilitate user interaction with specific content while maintaining a clear understanding of the overall context of the screen.\n\nReferences:\n\n- [Tabs](https://digitalnsw.github.io/nsw-design-system/components/tabs/index.html) - NSW Digital Design System\n- [Tabs, Used Right](https://www.nngroup.com/articles/tabs-used-right/) - Nielsen Norman Group\n\n## Accessibility\n\n- `go-tabs` and `go-tab` components are built based on the [W3C tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel).\n- By default, the [Tabs With Automatic Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html) pattern is used, where a tab is automatically activated and its associated panel is displayed when the tab receives focus.\n- If the panel content cannot be displayed instantly, add `manual=\"true\"` attribute to adopt the [Tabs With Manual Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html) pattern.\n\nReferences:\n\n- [Tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel) - WAI-ARIA\n\n## Demo\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs\"></demo-frame>\n\n## Vertical tabs\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-vertical\"></demo-frame>\n\n## Auto activation\n\nBy default, the tabs require user interaction (by clicking or pressing the `Enter` or `Space` key) to be activated.\n\nBy adding the `auto` attribute to `go-tabs`, tabs are automatically activated upon receiving focus.\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-auto-activate\"></demo-frame>\n",
      "docs": "---\ntitle: Tabs\n---",
      "docsTags": [
        {
          "name": "slot",
          "text": "icon - Slot for the tab icon (only 1 element allowed)"
        },
        {
          "name": "slot",
          "text": "icon-active - Slot for the tab icon (only 1 element allowed)"
        }
      ],
      "usage": {
        "go-tabs": "<div class=\"container\">\n  <go-tabs id=\"tabs\">\n    <go-tab label=\"First tab\">Loading...</go-tab>\n    <go-tab label=\"Second tab\">Loading...</go-tab>\n    <go-tab label=\"Third tab\">Loading...</go-tab>\n  </go-tabs>\n</div>\n<script>\n  document.addEventListener('DOMContentLoaded', function () {\n    var tabs = document.querySelector('#tabs');\n    tabs.addEventListener('tabactivated', function (e) {\n      const { index, tabEl, panelEl } = e.detail;\n      console.log(`Tab ${index + 1} activated.`);\n      panelEl.innerHTML = `Loading...`;\n      setTimeout(() => {\n        panelEl.innerHTML = 'Dynamic tab ' + (index + 1) + ' content ';\n      }, 1500);\n    });\n  });\n</script>\n",
        "go-tabs-auto-activate": "<div class=\"container\">\n  <go-tabs auto>\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n",
        "go-tabs-fill-icon": "<go-tabs fill>\n  <go-tab label=\"Icon tab\" icon-position=\"before\">\n    <go-icon name=\"home\" slot=\"icon\"></go-icon>\n    <p>\n      You can use <code>slot=\"icon\"</code> to add an icon to tab (by default, icon is placed before the label\n      text)\n    </p>\n  </go-tab>\n  <go-tab label=\"Icon tab\" icon-position=\"after\">\n    <go-icon name=\"star\" slot=\"icon-active\"></go-icon>\n    <p>\n      <code>icon-position=\"after\"</code> puts icon after the label, you can use <code>slot=\"icon-active\"</code> to\n      specify the icon that will be shown when the tab is active\n    </p>\n  </go-tab>\n  <go-tab label=\"Third tab\">\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon\" viewBox=\"0 0 500 500\">\n      <path\n        d=\"M302.5 131.9c-29.3-28.1-69.1-45.3-112.9-45.3-90.3 0-163.4 73.1-163.4 163.4s73.2 163.4 163.4 163.4c43.8 0 83.6-17.2 112.9-45.3L184.1 250l118.4-118.1zm-171.2 24.6c0-20.8 16.9-37.7 37.7-37.7s37.7 16.9 37.7 37.7c0 20.8-16.9 37.7-37.7 37.7s-37.7-16.8-37.7-37.7z\" />\n      <path\n        d=\"M141.3 156.5c.2-11.4 7-21.8 17.8-25.9 11.2-4.3 24.2-.7 31.7 8.7 15.5 19.5-2 49-26.6 44.6-13.3-2.4-22.7-14-22.9-27.4-.2-12.9-20.2-12.9-20 0 .4 20.3 12.8 38 31.9 45 18.4 6.7 40.3.6 52.5-14.6 12.4-15.4 14.6-37.2 4.5-54.5-10.3-17.6-30.8-26.3-50.6-22.7-22.3 4.1-37.9 24.6-38.3 46.7-.3 13 19.7 13 20 .1z\" />\n      <path\n        d=\"M309.6 124.8c-42.2-40-102.1-56.7-158.9-43.8-48.1 10.9-90.4 43.3-113.7 86.7C12.8 212.6 9.4 267.8 28.8 315c19.1 46.3 57.1 82.5 104.4 99 53.1 18.5 114.6 9.1 159.6-24.8 5.8-4.4 11.4-9 16.7-14 3.9-3.7 3.7-10.4 0-14.1-34.5-34.6-69.1-69.1-103.8-103.6-4.9-4.8-9.7-9.7-14.6-14.5v14.1c34.6-34.5 69.2-69.1 103.8-103.6 4.9-4.8 9.7-9.7 14.6-14.5 9.1-9.1-5-23.2-14.1-14.1-34.6 34.5-69.2 69.1-103.8 103.6-4.9 4.8-9.7 9.7-14.6 14.5-3.8 3.8-3.8 10.3 0 14.1 34.6 34.5 69.2 69.1 103.8 103.6 4.9 4.8 9.7 9.7 14.6 14.5v-14.1c-37.1 35.1-90.2 50-140.1 38.5-43.1-9.9-80.2-38.4-101.1-77.3-21.5-39.9-23.6-88.2-6.8-130.2 16-40.2 50.4-72.7 91.2-86.9C186.5 88.5 240 96.7 281 126.6c5.1 3.7 9.9 7.9 14.5 12.3 9.3 8.9 23.5-5.2 14.1-14.1z\" />\n      <circle cx=\"290.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M303.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"375.1\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M387.7 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.3-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"457.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M470.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n    </svg>\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon-active\" viewBox=\"0 0 100 100\">\n      <path\n        d=\"M38.917 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208zM61.084 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208z\" />\n      <path\n        d=\"M50 8.25c-14.98 0-27.125 12.145-27.125 27.125v47.126a8.75 8.75 0 0 0 8.75 8.75c3.219 0 6.021-1.744 7.538-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.01c1.518 2.59 4.319 4.334 7.538 4.334 3.218 0 6.021-1.744 7.537-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.011c1.517 2.59 4.319 4.334 7.537 4.334a8.75 8.75 0 0 0 8.75-8.75c0-3.523.083-47.126.083-47.126C77.125 20.395 64.98 8.25 50 8.25zM30.667 34.167a8.25 8.25 0 1 1 16.5 0 8.25 8.25 0 0 1-8.25 8.25 8.25 8.25 0 0 1-8.25-8.25zM50 56.667c-6.269 0-11.453-4.637-12.316-10.667h24.633C61.453 52.03 56.27 56.667 50 56.667zm11.084-14.25a8.25 8.25 0 1 1 0-16.5c4.557 0 8.249 3.694 8.249 8.25s-3.692 8.25-8.249 8.25z\" />\n    </svg>\n    <p>You can use <code>slot=\"icon\"</code> and <code>slot=\"icon-active\"</code> together!</p>\n  </go-tab>\n</go-tabs>\n",
        "go-tabs-vertical": "<div class=\"container\">\n  <go-tabs vertical=\"true\">\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n"
      },
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": false,
          "docs": "If this tab is currently active\nif multiple `go-tab` are active in the same `go-tabs`, first one is active.",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "iconOnly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "icon-only",
          "reflectToAttr": false,
          "docs": "Only show `icon` and `icon-active` slot content\n\"Label\" prop is still required for screen reader announcement, but will not be shown visually",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "iconPosition",
          "type": "\"after\" | \"before\"",
          "complexType": {
            "original": "TabIconPosition",
            "resolved": "\"after\" | \"before\"",
            "references": {
              "TabIconPosition": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::TabIconPosition"
              }
            }
          },
          "mutable": false,
          "attr": "icon-position",
          "reflectToAttr": false,
          "docs": "Position of the icon, either 'before' or 'after'",
          "docsTags": [],
          "default": "'before'",
          "values": [
            {
              "value": "after",
              "type": "string"
            },
            {
              "value": "before",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label displayed on the tab",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "panelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "panel-id",
          "reflectToAttr": false,
          "docs": "id for the tab panel element\nIf not provided, a unique id will be generated.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "tabId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "tab-id",
          "reflectToAttr": false,
          "docs": "`id` for the tab button element.\nIf not provided, a unique id will be generated.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "setActive",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(active: boolean) => Promise<void>",
            "parameters": [
              {
                "name": "active",
                "type": "boolean",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "setActive(active: boolean) => Promise<void>",
          "parameters": [
            {
              "name": "active",
              "type": "boolean",
              "docs": ""
            }
          ],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [
        {
          "name": "icon",
          "docs": "Slot for the tab icon (only 1 element allowed)"
        },
        {
          "name": "icon-active",
          "docs": "Slot for the tab icon (only 1 element allowed)"
        }
      ],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-table-wrapper/go-table-wrapper.tsx",
      "encapsulation": "none",
      "tag": "go-table-wrapper",
      "readme": "---\ntitle: Table\n---\n\n# Table <span class=\"text-size-0\">`go-table-wrapper`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Table component displays tabular data.</div>\n\n## Usage\n\nThe usage of this component is just wrapping the `go-table-wrapper` tag around the normal use of the `table` element.\n\nWhy do a `go-table-wrapper` rather than a `go-table` component that replaces/enhances the HTML `table` element?\n\nDue to the [HTML table standards](https://html.spec.whatwg.org/multipage/tables.html#the-table-element) the table elements such as `tbody` `thead` `tr` `td` `th` are meant to be used together and if used in a `table` equivalent custom element with the use of slots, the browsers will simply refuse to treat it as valid HTML.\n\n## Accessibility\n\n## Demo\n\n<demo-frame component=\"go-table-wrapper\" demo=\"go-table-wrapper\"></demo-frame>\n",
      "docs": "---\ntitle: Table\n---",
      "docsTags": [],
      "usage": {
        "go-table-wrapper": "<div class=\"container\">\n<go-table-wrapper striped hoverable bordered>\n  <table>\n    <thead>\n      <tr>\n        <th>#</th>\n        <th>name</th>\n        <th>email</th>\n        <th>region</th>\n        <th>country</th>\n        <th>address</th>\n      </tr>\n    </thead>\n      <tr>\n        <th scope=\"row\">1</th>\n        <td>Lewis Walters</td>\n        <td>ut.semper@icloud.ca</td>\n        <td>North Island</td>\n        <td>Norway</td>\n        <td>703-5421 Massa. St.</td>\n      </tr>\n      <tr>\n        <th scope=\"row\">2</th>\n        <td>Damon Guthrie</td>\n        <td>vitae.mauris@hotmail.ca</td>\n        <td>Antofagasta</td>\n        <td>Poland</td>\n        <td>119-9093 Phasellus Rd.</td>\n      </tr>\n      <tr>\n        <th scope=\"row\">3</th>\n        <td>Harriet Hicks</td>\n        <td>sagittis.augue.eu@yahoo.couk</td>\n        <td>Minas Gerais</td>\n        <td>Nigeria</td>\n        <td>264-7272 Facilisis, Rd.</td>\n      </tr>\n      <tr>\n        <th scope=\"row\">4</th>\n        <td>Shay Hill</td>\n        <td>ultricies@outlook.org</td>\n        <td>Cajamarca</td>\n        <td>Australia</td>\n        <td>193-3393 Duis Street</td>\n      </tr>\n      <tr>\n        <th scope=\"row\">5</th>\n        <td>Richard Gay</td>\n        <td>sed@protonmail.org</td>\n        <td colspan=\"2\">Gyeonggi Peru</td>\n        <td>Ap #542-9534 Mauris Avenue</td>\n      </tr>\n    </tbody>\n  </table>\n</go-table-wrapper>\n</div>\n"
      },
      "props": [
        {
          "name": "bordered",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "bordered",
          "reflectToAttr": false,
          "docs": "Bordered table",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "hoverable",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "hoverable",
          "reflectToAttr": false,
          "docs": "Hoverable rows",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "striped",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "striped",
          "reflectToAttr": false,
          "docs": "Striped rows",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [],
      "dependencyGraph": {}
    },
    {
      "filePath": "src/components/go-tabs/go-tablist.tsx",
      "encapsulation": "none",
      "tag": "go-tablist",
      "readme": "---\ntitle: Tabs\n---\n\n# Tabs <span class=\"text-size-0\">`go-tabs`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Tabs are used commonly to organise related content and switch between different views.</div>\n\n## When to use\n\nTabs are a great way to organize content and make it easy for users to move between related sections or views at the same level of hierarchy. Tabs facilitate user interaction with specific content while maintaining a clear understanding of the overall context of the screen.\n\nReferences:\n\n- [Tabs](https://digitalnsw.github.io/nsw-design-system/components/tabs/index.html) - NSW Digital Design System\n- [Tabs, Used Right](https://www.nngroup.com/articles/tabs-used-right/) - Nielsen Norman Group\n\n## Accessibility\n\n- `go-tabs` and `go-tab` components are built based on the [W3C tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel).\n- By default, the [Tabs With Automatic Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html) pattern is used, where a tab is automatically activated and its associated panel is displayed when the tab receives focus.\n- If the panel content cannot be displayed instantly, add `manual=\"true\"` attribute to adopt the [Tabs With Manual Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html) pattern.\n\nReferences:\n\n- [Tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel) - WAI-ARIA\n\n## Demo\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs\"></demo-frame>\n\n## Vertical tabs\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-vertical\"></demo-frame>\n\n## Auto activation\n\nBy default, the tabs require user interaction (by clicking or pressing the `Enter` or `Space` key) to be activated.\n\nBy adding the `auto` attribute to `go-tabs`, tabs are automatically activated upon receiving focus.\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-auto-activate\"></demo-frame>\n",
      "docs": "---\ntitle: Tabs\n---",
      "docsTags": [],
      "usage": {
        "go-tabs": "<div class=\"container\">\n  <go-tabs id=\"tabs\">\n    <go-tab label=\"First tab\">Loading...</go-tab>\n    <go-tab label=\"Second tab\">Loading...</go-tab>\n    <go-tab label=\"Third tab\">Loading...</go-tab>\n  </go-tabs>\n</div>\n<script>\n  document.addEventListener('DOMContentLoaded', function () {\n    var tabs = document.querySelector('#tabs');\n    tabs.addEventListener('tabactivated', function (e) {\n      const { index, tabEl, panelEl } = e.detail;\n      console.log(`Tab ${index + 1} activated.`);\n      panelEl.innerHTML = `Loading...`;\n      setTimeout(() => {\n        panelEl.innerHTML = 'Dynamic tab ' + (index + 1) + ' content ';\n      }, 1500);\n    });\n  });\n</script>\n",
        "go-tabs-auto-activate": "<div class=\"container\">\n  <go-tabs auto>\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n",
        "go-tabs-fill-icon": "<go-tabs fill>\n  <go-tab label=\"Icon tab\" icon-position=\"before\">\n    <go-icon name=\"home\" slot=\"icon\"></go-icon>\n    <p>\n      You can use <code>slot=\"icon\"</code> to add an icon to tab (by default, icon is placed before the label\n      text)\n    </p>\n  </go-tab>\n  <go-tab label=\"Icon tab\" icon-position=\"after\">\n    <go-icon name=\"star\" slot=\"icon-active\"></go-icon>\n    <p>\n      <code>icon-position=\"after\"</code> puts icon after the label, you can use <code>slot=\"icon-active\"</code> to\n      specify the icon that will be shown when the tab is active\n    </p>\n  </go-tab>\n  <go-tab label=\"Third tab\">\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon\" viewBox=\"0 0 500 500\">\n      <path\n        d=\"M302.5 131.9c-29.3-28.1-69.1-45.3-112.9-45.3-90.3 0-163.4 73.1-163.4 163.4s73.2 163.4 163.4 163.4c43.8 0 83.6-17.2 112.9-45.3L184.1 250l118.4-118.1zm-171.2 24.6c0-20.8 16.9-37.7 37.7-37.7s37.7 16.9 37.7 37.7c0 20.8-16.9 37.7-37.7 37.7s-37.7-16.8-37.7-37.7z\" />\n      <path\n        d=\"M141.3 156.5c.2-11.4 7-21.8 17.8-25.9 11.2-4.3 24.2-.7 31.7 8.7 15.5 19.5-2 49-26.6 44.6-13.3-2.4-22.7-14-22.9-27.4-.2-12.9-20.2-12.9-20 0 .4 20.3 12.8 38 31.9 45 18.4 6.7 40.3.6 52.5-14.6 12.4-15.4 14.6-37.2 4.5-54.5-10.3-17.6-30.8-26.3-50.6-22.7-22.3 4.1-37.9 24.6-38.3 46.7-.3 13 19.7 13 20 .1z\" />\n      <path\n        d=\"M309.6 124.8c-42.2-40-102.1-56.7-158.9-43.8-48.1 10.9-90.4 43.3-113.7 86.7C12.8 212.6 9.4 267.8 28.8 315c19.1 46.3 57.1 82.5 104.4 99 53.1 18.5 114.6 9.1 159.6-24.8 5.8-4.4 11.4-9 16.7-14 3.9-3.7 3.7-10.4 0-14.1-34.5-34.6-69.1-69.1-103.8-103.6-4.9-4.8-9.7-9.7-14.6-14.5v14.1c34.6-34.5 69.2-69.1 103.8-103.6 4.9-4.8 9.7-9.7 14.6-14.5 9.1-9.1-5-23.2-14.1-14.1-34.6 34.5-69.2 69.1-103.8 103.6-4.9 4.8-9.7 9.7-14.6 14.5-3.8 3.8-3.8 10.3 0 14.1 34.6 34.5 69.2 69.1 103.8 103.6 4.9 4.8 9.7 9.7 14.6 14.5v-14.1c-37.1 35.1-90.2 50-140.1 38.5-43.1-9.9-80.2-38.4-101.1-77.3-21.5-39.9-23.6-88.2-6.8-130.2 16-40.2 50.4-72.7 91.2-86.9C186.5 88.5 240 96.7 281 126.6c5.1 3.7 9.9 7.9 14.5 12.3 9.3 8.9 23.5-5.2 14.1-14.1z\" />\n      <circle cx=\"290.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M303.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"375.1\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M387.7 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.3-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"457.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M470.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n    </svg>\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon-active\" viewBox=\"0 0 100 100\">\n      <path\n        d=\"M38.917 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208zM61.084 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208z\" />\n      <path\n        d=\"M50 8.25c-14.98 0-27.125 12.145-27.125 27.125v47.126a8.75 8.75 0 0 0 8.75 8.75c3.219 0 6.021-1.744 7.538-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.01c1.518 2.59 4.319 4.334 7.538 4.334 3.218 0 6.021-1.744 7.537-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.011c1.517 2.59 4.319 4.334 7.537 4.334a8.75 8.75 0 0 0 8.75-8.75c0-3.523.083-47.126.083-47.126C77.125 20.395 64.98 8.25 50 8.25zM30.667 34.167a8.25 8.25 0 1 1 16.5 0 8.25 8.25 0 0 1-8.25 8.25 8.25 8.25 0 0 1-8.25-8.25zM50 56.667c-6.269 0-11.453-4.637-12.316-10.667h24.633C61.453 52.03 56.27 56.667 50 56.667zm11.084-14.25a8.25 8.25 0 1 1 0-16.5c4.557 0 8.249 3.694 8.249 8.25s-3.692 8.25-8.249 8.25z\" />\n    </svg>\n    <p>You can use <code>slot=\"icon\"</code> and <code>slot=\"icon-active\"</code> together!</p>\n  </go-tab>\n</go-tabs>\n",
        "go-tabs-vertical": "<div class=\"container\">\n  <go-tabs vertical=\"true\">\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n"
      },
      "props": [
        {
          "name": "auto",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto",
          "reflectToAttr": false,
          "docs": "By default, tabs require user interaction (by clicking or pressing the `Enter` or `Space` key) to be activated.\nif `auto` is true, tabs are automatically activated when they receive focus.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "bottom",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "bottom",
          "reflectToAttr": false,
          "docs": "Fix tabs control to the bottom of screen",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "fill",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "fill",
          "reflectToAttr": false,
          "docs": "fill available width\nnot applicable for vertical tabs",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "items",
          "type": "TabItem[]",
          "complexType": {
            "original": "TabItem[]",
            "resolved": "TabItem[]",
            "references": {
              "TabItem": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::TabItem"
              }
            }
          },
          "mutable": false,
          "reflectToAttr": false,
          "docs": "tab items array",
          "docsTags": [],
          "values": [
            {
              "type": "TabItem[]"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "justify",
          "type": "\"around\" | \"between\" | \"center\" | \"end\" | \"evenly\" | \"normal\" | \"start\" | \"stretch\"",
          "complexType": {
            "original": "JustifyOption",
            "resolved": "\"around\" | \"between\" | \"center\" | \"end\" | \"evenly\" | \"normal\" | \"start\" | \"stretch\"",
            "references": {
              "JustifyOption": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::JustifyOption"
              }
            }
          },
          "mutable": false,
          "attr": "justify",
          "reflectToAttr": false,
          "docs": "applies justify-content property to tablist\nie. `justify=\"between\"` applies `justify-content: space-between`",
          "docsTags": [],
          "default": "'normal'",
          "values": [
            {
              "value": "around",
              "type": "string"
            },
            {
              "value": "between",
              "type": "string"
            },
            {
              "value": "center",
              "type": "string"
            },
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "evenly",
              "type": "string"
            },
            {
              "value": "normal",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            },
            {
              "value": "stretch",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Provides a label that describes the purpose of the set of tabs.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "vertical",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "vertical",
          "reflectToAttr": false,
          "docs": "Set tabs orientation to vertical",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "activateTab",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "(tabEl: HTMLElement, setFocus?: boolean, isOnload?: boolean) => Promise<void>",
            "parameters": [
              {
                "name": "tabEl",
                "type": "HTMLElement",
                "docs": ""
              },
              {
                "name": "setFocus",
                "type": "boolean",
                "docs": ""
              },
              {
                "name": "isOnload",
                "type": "boolean",
                "docs": ""
              }
            ],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              },
              "HTMLElement": {
                "location": "global",
                "id": "global::HTMLElement"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "activateTab(tabEl: HTMLElement, setFocus?: boolean, isOnload?: boolean) => Promise<void>",
          "parameters": [
            {
              "name": "tabEl",
              "type": "HTMLElement",
              "docs": ""
            },
            {
              "name": "setFocus",
              "type": "boolean",
              "docs": ""
            },
            {
              "name": "isOnload",
              "type": "boolean",
              "docs": ""
            }
          ],
          "docs": "",
          "docsTags": []
        }
      ],
      "events": [
        {
          "event": "activated",
          "detail": "ActiveTab",
          "bubbles": true,
          "complexType": {
            "original": "ActiveTab",
            "resolved": "ActiveTab",
            "references": {
              "ActiveTab": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::ActiveTab"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Tab activated event",
          "docsTags": [
            {
              "name": "param",
              "text": "ActiveTab , tabEl} currently active tab"
            }
          ]
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--tab-active-bg-color",
          "annotation": "prop",
          "docs": "Background color for active tab - default: transparent"
        },
        {
          "name": "--tab-active-color",
          "annotation": "prop",
          "docs": "Text color for active tab - default: var(--go-color-primary-600)"
        },
        {
          "name": "--tab-active-indicator-color",
          "annotation": "prop",
          "docs": "Color of the active tab indicator - default: var(--tab-active-color)"
        },
        {
          "name": "--tab-bg-color",
          "annotation": "prop",
          "docs": "Background color for tabs - default: transparent"
        },
        {
          "name": "--tab-border-width",
          "annotation": "prop",
          "docs": "Border width for tabs - default: 0.2em"
        },
        {
          "name": "--tab-focus-color",
          "annotation": "prop",
          "docs": "Focus outline color for tabs - default: var(--go-color-primary-600)"
        },
        {
          "name": "--tab-hover-bg-color",
          "annotation": "prop",
          "docs": "Background color for tabs on hover - default: var(--go-color-neutral-200)"
        },
        {
          "name": "--tab-hover-text-color",
          "annotation": "prop",
          "docs": "Text color for tabs on hover - default: var(--go-color-neutral-900)"
        },
        {
          "name": "--tab-icon-gap",
          "annotation": "prop",
          "docs": "Gap between tab icons - default: 0.5rem"
        },
        {
          "name": "--tab-padding",
          "annotation": "prop",
          "docs": "Padding for tabs - default: 0.75rem 1.25rem"
        },
        {
          "name": "--tab-text-color",
          "annotation": "prop",
          "docs": "Text color for tabs - default: var(--go-color-neutral-800)"
        },
        {
          "name": "--tabs-active-indicator-color",
          "annotation": "prop",
          "docs": "Color of the active tab indicator - default: var(--tab-active-color)"
        },
        {
          "name": "--tabs-active-indicator-height",
          "annotation": "prop",
          "docs": "Height of the active tab indicator - default: 0.2em"
        },
        {
          "name": "--tabs-active-indicator-width",
          "annotation": "prop",
          "docs": "Width of the active tab indicator - default: 0"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-tabs"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-tabs": [
          "go-tablist"
        ]
      }
    },
    {
      "filePath": "src/components/go-tabs/go-tabs.tsx",
      "encapsulation": "none",
      "tag": "go-tabs",
      "readme": "---\ntitle: Tabs\n---\n\n# Tabs <span class=\"text-size-0\">`go-tabs`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">Tabs are used commonly to organise related content and switch between different views.</div>\n\n## When to use\n\nTabs are a great way to organize content and make it easy for users to move between related sections or views at the same level of hierarchy. Tabs facilitate user interaction with specific content while maintaining a clear understanding of the overall context of the screen.\n\nReferences:\n\n- [Tabs](https://digitalnsw.github.io/nsw-design-system/components/tabs/index.html) - NSW Digital Design System\n- [Tabs, Used Right](https://www.nngroup.com/articles/tabs-used-right/) - Nielsen Norman Group\n\n## Accessibility\n\n- `go-tabs` and `go-tab` components are built based on the [W3C tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel).\n- By default, the [Tabs With Automatic Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html) pattern is used, where a tab is automatically activated and its associated panel is displayed when the tab receives focus.\n- If the panel content cannot be displayed instantly, add `manual=\"true\"` attribute to adopt the [Tabs With Manual Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html) pattern.\n\nReferences:\n\n- [Tabs design pattern](https://www.w3.org/TR/wai-aria-practices/#tabpanel) - WAI-ARIA\n\n## Demo\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs\"></demo-frame>\n\n## Vertical tabs\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-vertical\"></demo-frame>\n\n## Auto activation\n\nBy default, the tabs require user interaction (by clicking or pressing the `Enter` or `Space` key) to be activated.\n\nBy adding the `auto` attribute to `go-tabs`, tabs are automatically activated upon receiving focus.\n\n<demo-frame component=\"go-tabs\" demo=\"go-tabs-auto-activate\"></demo-frame>\n",
      "docs": "---\ntitle: Tabs\n---",
      "docsTags": [],
      "usage": {
        "go-tabs": "<div class=\"container\">\n  <go-tabs id=\"tabs\">\n    <go-tab label=\"First tab\">Loading...</go-tab>\n    <go-tab label=\"Second tab\">Loading...</go-tab>\n    <go-tab label=\"Third tab\">Loading...</go-tab>\n  </go-tabs>\n</div>\n<script>\n  document.addEventListener('DOMContentLoaded', function () {\n    var tabs = document.querySelector('#tabs');\n    tabs.addEventListener('tabactivated', function (e) {\n      const { index, tabEl, panelEl } = e.detail;\n      console.log(`Tab ${index + 1} activated.`);\n      panelEl.innerHTML = `Loading...`;\n      setTimeout(() => {\n        panelEl.innerHTML = 'Dynamic tab ' + (index + 1) + ' content ';\n      }, 1500);\n    });\n  });\n</script>\n",
        "go-tabs-auto-activate": "<div class=\"container\">\n  <go-tabs auto>\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n",
        "go-tabs-fill-icon": "<go-tabs fill>\n  <go-tab label=\"Icon tab\" icon-position=\"before\">\n    <go-icon name=\"home\" slot=\"icon\"></go-icon>\n    <p>\n      You can use <code>slot=\"icon\"</code> to add an icon to tab (by default, icon is placed before the label\n      text)\n    </p>\n  </go-tab>\n  <go-tab label=\"Icon tab\" icon-position=\"after\">\n    <go-icon name=\"star\" slot=\"icon-active\"></go-icon>\n    <p>\n      <code>icon-position=\"after\"</code> puts icon after the label, you can use <code>slot=\"icon-active\"</code> to\n      specify the icon that will be shown when the tab is active\n    </p>\n  </go-tab>\n  <go-tab label=\"Third tab\">\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon\" viewBox=\"0 0 500 500\">\n      <path\n        d=\"M302.5 131.9c-29.3-28.1-69.1-45.3-112.9-45.3-90.3 0-163.4 73.1-163.4 163.4s73.2 163.4 163.4 163.4c43.8 0 83.6-17.2 112.9-45.3L184.1 250l118.4-118.1zm-171.2 24.6c0-20.8 16.9-37.7 37.7-37.7s37.7 16.9 37.7 37.7c0 20.8-16.9 37.7-37.7 37.7s-37.7-16.8-37.7-37.7z\" />\n      <path\n        d=\"M141.3 156.5c.2-11.4 7-21.8 17.8-25.9 11.2-4.3 24.2-.7 31.7 8.7 15.5 19.5-2 49-26.6 44.6-13.3-2.4-22.7-14-22.9-27.4-.2-12.9-20.2-12.9-20 0 .4 20.3 12.8 38 31.9 45 18.4 6.7 40.3.6 52.5-14.6 12.4-15.4 14.6-37.2 4.5-54.5-10.3-17.6-30.8-26.3-50.6-22.7-22.3 4.1-37.9 24.6-38.3 46.7-.3 13 19.7 13 20 .1z\" />\n      <path\n        d=\"M309.6 124.8c-42.2-40-102.1-56.7-158.9-43.8-48.1 10.9-90.4 43.3-113.7 86.7C12.8 212.6 9.4 267.8 28.8 315c19.1 46.3 57.1 82.5 104.4 99 53.1 18.5 114.6 9.1 159.6-24.8 5.8-4.4 11.4-9 16.7-14 3.9-3.7 3.7-10.4 0-14.1-34.5-34.6-69.1-69.1-103.8-103.6-4.9-4.8-9.7-9.7-14.6-14.5v14.1c34.6-34.5 69.2-69.1 103.8-103.6 4.9-4.8 9.7-9.7 14.6-14.5 9.1-9.1-5-23.2-14.1-14.1-34.6 34.5-69.2 69.1-103.8 103.6-4.9 4.8-9.7 9.7-14.6 14.5-3.8 3.8-3.8 10.3 0 14.1 34.6 34.5 69.2 69.1 103.8 103.6 4.9 4.8 9.7 9.7 14.6 14.5v-14.1c-37.1 35.1-90.2 50-140.1 38.5-43.1-9.9-80.2-38.4-101.1-77.3-21.5-39.9-23.6-88.2-6.8-130.2 16-40.2 50.4-72.7 91.2-86.9C186.5 88.5 240 96.7 281 126.6c5.1 3.7 9.9 7.9 14.5 12.3 9.3 8.9 23.5-5.2 14.1-14.1z\" />\n      <circle cx=\"290.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M303.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"375.1\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M387.7 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.3-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n      <circle cx=\"457.7\" cy=\"250\" r=\"22.6\" />\n      <path\n        d=\"M470.3 250c-.2 6.9-5.5 12.6-12.6 12.6-6.9 0-12.6-5.7-12.6-12.6 0-6.7 5.3-12.2 11.9-12.6 7.4-.4 13.1 5.5 13.3 12.6.4 12.8 20.4 12.9 20 0-.4-13.7-8.5-25.8-21.5-30.6-12.6-4.7-27.3-.8-35.9 9.5-8.8 10.5-10.4 25.7-3.4 37.6 7 12 20.7 17.8 34.2 15.5 15.5-2.6 26.1-16.7 26.6-32 .4-12.9-19.6-12.9-20 0z\" />\n    </svg>\n    <svg fill=\"currentColor\" width=\"2rem\" height=\"2rem\" slot=\"icon-active\" viewBox=\"0 0 100 100\">\n      <path\n        d=\"M38.917 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208zM61.084 34.167v-4.538a4.538 4.538 0 1 0 3.209 1.33l-3.209 3.208z\" />\n      <path\n        d=\"M50 8.25c-14.98 0-27.125 12.145-27.125 27.125v47.126a8.75 8.75 0 0 0 8.75 8.75c3.219 0 6.021-1.744 7.538-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.01c1.518 2.59 4.319 4.334 7.538 4.334 3.218 0 6.021-1.744 7.537-4.334h.01c.363-.503.951-.834 1.619-.834s1.256.331 1.619.834h.011c1.517 2.59 4.319 4.334 7.537 4.334a8.75 8.75 0 0 0 8.75-8.75c0-3.523.083-47.126.083-47.126C77.125 20.395 64.98 8.25 50 8.25zM30.667 34.167a8.25 8.25 0 1 1 16.5 0 8.25 8.25 0 0 1-8.25 8.25 8.25 8.25 0 0 1-8.25-8.25zM50 56.667c-6.269 0-11.453-4.637-12.316-10.667h24.633C61.453 52.03 56.27 56.667 50 56.667zm11.084-14.25a8.25 8.25 0 1 1 0-16.5c4.557 0 8.249 3.694 8.249 8.25s-3.692 8.25-8.249 8.25z\" />\n    </svg>\n    <p>You can use <code>slot=\"icon\"</code> and <code>slot=\"icon-active\"</code> together!</p>\n  </go-tab>\n</go-tabs>\n",
        "go-tabs-vertical": "<div class=\"container\">\n  <go-tabs vertical=\"true\">\n    <go-tab label=\"First tab\">\n      <p>Tab 1 content</p>\n    </go-tab>\n    <go-tab label=\"Second tab\">\n      <p>\n        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, esse laboriosam tempore vel, deserunt nulla, corporis eaque dolore ad laudantium\n        animi minima reprehenderit aliquam voluptate minus dolorem nobis fugiat molestiae.\n      </p>\n    </go-tab>\n    <go-tab label=\"Third tab\">\n      <p>Tab 3 content</p>\n    </go-tab>\n  </go-tabs>\n</div>\n"
      },
      "props": [
        {
          "name": "auto",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto",
          "reflectToAttr": false,
          "docs": "By default, tabs require user interaction (by clicking or pressing the `Enter` or `Space` key) to be activated.\nif `auto` is true, tabs are automatically activated when they receive focus.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "fill",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "fill",
          "reflectToAttr": false,
          "docs": "fill available space (horizontal only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "justify",
          "type": "\"around\" | \"between\" | \"center\" | \"end\" | \"evenly\" | \"normal\" | \"start\" | \"stretch\"",
          "complexType": {
            "original": "JustifyOption",
            "resolved": "\"around\" | \"between\" | \"center\" | \"end\" | \"evenly\" | \"normal\" | \"start\" | \"stretch\"",
            "references": {
              "JustifyOption": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::JustifyOption"
              }
            }
          },
          "mutable": false,
          "attr": "justify",
          "reflectToAttr": false,
          "docs": "Applies justify-content property to tablist (horizontal only)\nie. `justify=\"between\"` applies `justify-content: space-between`",
          "docsTags": [],
          "default": "'normal'",
          "values": [
            {
              "value": "around",
              "type": "string"
            },
            {
              "value": "between",
              "type": "string"
            },
            {
              "value": "center",
              "type": "string"
            },
            {
              "value": "end",
              "type": "string"
            },
            {
              "value": "evenly",
              "type": "string"
            },
            {
              "value": "normal",
              "type": "string"
            },
            {
              "value": "start",
              "type": "string"
            },
            {
              "value": "stretch",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "tabGroupLabel",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "tab-group-label",
          "reflectToAttr": false,
          "docs": "Provides a label that describes the purpose of the set of tabs.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "vertical",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "vertical",
          "reflectToAttr": false,
          "docs": "Set tabs orientation to vertical",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "tabactivated",
          "detail": "ActiveTabWithPanel",
          "bubbles": true,
          "complexType": {
            "original": "ActiveTabWithPanel",
            "resolved": "ActiveTabWithPanel",
            "references": {
              "ActiveTabWithPanel": {
                "location": "import",
                "path": "./tabs.type",
                "id": "src/components/go-tabs/tabs.type.ts::ActiveTabWithPanel"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Tab activated event",
          "docsTags": [
            {
              "name": "param",
              "text": "ActivatedTab , tabEl, panelEl}"
            }
          ]
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-tablist"
      ],
      "dependencyGraph": {
        "go-tabs": [
          "go-tablist"
        ]
      }
    },
    {
      "filePath": "src/components/form/go-textarea/go-textarea.tsx",
      "encapsulation": "none",
      "tag": "go-textarea",
      "readme": "---\ntitle: Textarea\n---\n\n# Textarea <span class=\"text-size-0\">`go-textarea`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Textarea is a form control used for multi-line text input.\n</div>\n\n\n## Accessibility\n- Focus visually\n- Error message announced upon focus\n- When `maxlength` is set, screen-reader-only announcement available when user reaches character limit.\n\n## Demo\n\n<demo-frame component=\"go-textarea\" demo=\"go-textarea\"></demo-frame>\n",
      "docs": "---\ntitle: Textarea\n---",
      "docsTags": [],
      "usage": {
        "go-textarea": "<go-textarea id=\"txt-1\" auto-grow label=\"Textarea\" hint=\"This is a textarea field\" maxlength=\"1000\"></go-textarea>\n<go-textarea label=\"Error state\" hint=\"Please enter some text\" error=\"This is an error\" maxlength=\"1000\"></go-textarea>\n<go-textarea label=\"Disabled state\" value=\"I'm not editable\" disabled></go-textarea>\n<go-textarea label=\"Readonly state\" value=\"I'm not editable\" readonly></go-textarea>\n<go-textarea label=\"Custom icon\">\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-textarea>\n\n<go-textarea label=\"Prefix slot\">\n  <div slot=\"prefix\">https://go-ui.com/</div>\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-textarea>\n<go-textarea label=\"Suffix slot\">\n  <div slot=\"suffix\">.com.au</div>\n  <go-icon icon-set=\"material-icons\" name=\"search\" slot=\"icon-before\"></go-icon>\n  <go-icon icon-set=\"material-icons\" name=\"star_outline\" slot=\"icon-after\"></go-icon>\n</go-textarea>\n"
      },
      "props": [
        {
          "name": "autoGrow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-grow",
          "reflectToAttr": false,
          "docs": "If set, grow textarea based on its content",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "If the input is disabled",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "error",
          "type": "boolean | string",
          "complexType": {
            "original": "boolean | string",
            "resolved": "boolean | string",
            "references": {}
          },
          "mutable": false,
          "attr": "error",
          "reflectToAttr": false,
          "docs": "Error state of input, text provided will be shown as error message",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "errorId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "error-id",
          "reflectToAttr": false,
          "docs": "DOM id for error",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hint",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint",
          "reflectToAttr": false,
          "docs": "Hint message for the input",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "hintId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "hint-id",
          "reflectToAttr": false,
          "docs": "DOM id for hint message",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "labelId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label-id",
          "reflectToAttr": false,
          "docs": "DOM id for label",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "name",
          "reflectToAttr": false,
          "docs": "Name of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "prefixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "prefix-id",
          "reflectToAttr": false,
          "docs": "DOM id for prefix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "readonly",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "readonly",
          "reflectToAttr": false,
          "docs": "If this input is read-only",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "suffixId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "suffix-id",
          "reflectToAttr": false,
          "docs": "DOM id for suffix",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "value",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": true,
          "attr": "value",
          "reflectToAttr": false,
          "docs": "Value of the input field",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--control-selected-bg-color",
          "annotation": "prop",
          "docs": "Background color of checkbox or radio button when selected - default: var(--go-color-primary-600)"
        },
        {
          "name": "--control-selected-fg-color",
          "annotation": "prop",
          "docs": "Foreground color of checkbox or radio button when selected - default: rgb(var(--go-token-lightest))"
        },
        {
          "name": "--field-icon-button-size",
          "annotation": "prop",
          "docs": "Size of icon button within go-field - default: 2.25rem"
        },
        {
          "name": "--input-bg",
          "annotation": "prop",
          "docs": "Background of form field - default: var(--go-color-lightest)"
        },
        {
          "name": "--input-bg-disabled-color",
          "annotation": "prop",
          "docs": "Background color for disabled input control - default: rgba(var(--go-token-neutral-200), 0.4)"
        },
        {
          "name": "--input-bg-readonly-color",
          "annotation": "prop",
          "docs": "Background color for readonly input control - default: rgba(var(--go-token-neutral-200), 0.3)"
        },
        {
          "name": "--input-border",
          "annotation": "prop",
          "docs": "Border style of input control - default: 1px solid var(--input-border-color)"
        },
        {
          "name": "--input-border-color",
          "annotation": "prop",
          "docs": "border color of the input - default: var(--go-color-neutral-400)"
        },
        {
          "name": "--input-control-padding",
          "annotation": "prop",
          "docs": "Padding for input control - default: 0.75rem 0.5rem"
        },
        {
          "name": "--input-error-color",
          "annotation": "prop",
          "docs": "Error state color - default: var(--go-color-critical-600)"
        },
        {
          "name": "--input-fg",
          "annotation": "prop",
          "docs": "Foreground (text) color of form field - default: var(--go-color-darkest)"
        },
        {
          "name": "--input-focus-shadow",
          "annotation": "prop",
          "docs": "Shadow on focus - default: var(--inner-shadow-2)"
        },
        {
          "name": "--input-gap-inner",
          "annotation": "prop",
          "docs": "Inner immediately above and below input control - default: 0.5rem"
        },
        {
          "name": "--input-gap-outer",
          "annotation": "prop",
          "docs": "Outer margin of form field - default: 1rem 0"
        },
        {
          "name": "--input-hint-color",
          "annotation": "prop",
          "docs": "Hint text color - default: var(--go-color-neutral-800)"
        },
        {
          "name": "--input-hint-font-size",
          "annotation": "prop",
          "docs": "Font size of hint text - default: var(--go-size--1)"
        },
        {
          "name": "--input-icon-size",
          "annotation": "prop",
          "docs": "Icon size for input control - default: 1.5rem"
        },
        {
          "name": "--input-label-font-size",
          "annotation": "prop",
          "docs": "Font size of label - default: 1rem"
        },
        {
          "name": "--input-label-font-weight",
          "annotation": "prop",
          "docs": "Font weight of label - default: 700"
        },
        {
          "name": "--input-padding-x",
          "annotation": "prop",
          "docs": "Horizontal padding of input control - default: 0.5rem"
        },
        {
          "name": "--input-padding-y",
          "annotation": "prop",
          "docs": "Vertical padding of input control - default: 0.5rem"
        },
        {
          "name": "--input-presuf-bg",
          "annotation": "prop",
          "docs": "Background for prefix/suffix area - default: var(--go-color-neutral-100)"
        },
        {
          "name": "--input-presuf-padding",
          "annotation": "prop",
          "docs": "Padding for prefix/suffix area - default: var(--input-control-padding)"
        },
        {
          "name": "--input-presuf-text-color",
          "annotation": "prop",
          "docs": "Text color on prefix/suffix area - default: var(--go-color-neutral-800)"
        },
        {
          "name": "--input-radius",
          "annotation": "prop",
          "docs": "Border radius for the control - default: var(--radius-2)"
        },
        {
          "name": "--input-text-disabled-color",
          "annotation": "prop",
          "docs": "Text color for disabled - default: var(--go-color-neutral-700)"
        },
        {
          "name": "--input-text-readonly-color",
          "annotation": "prop",
          "docs": "Text color for readonly input - default: var(--go-color-neutral-700)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-field"
      ],
      "dependencyGraph": {
        "go-textarea": [
          "go-field"
        ]
      }
    },
    {
      "filePath": "src/components/go-to-top/go-to-top.tsx",
      "encapsulation": "none",
      "tag": "go-to-top",
      "readme": "---\ntitle: Back to top\n---\n\n# Back to top <span class=\"text-size-0\">`go-to-top`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">A button that allows users to quickly scroll back to top of the page.</div>\n\n## Usage\n\n- Fixed at the bottom right corner of the page where people expect it to be.\n- Appears when the user scrolls down to a certain distance (customisable, defaults to `200px`) from the top of the page.\n- Disappears when the user scrolls back to the top of the page.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-to-top\" demo=\"go-to-top\"></demo-frame>\n",
      "docs": "---\ntitle: Back to top\n---",
      "docsTags": [],
      "usage": {
        "go-to-top": "<div class=\"container\" style=\"height: 400px\">\n  <go-md sanitise=\"true\" md-options=\"{html: true}\" src=\"//raw.githubusercontent.com/getgoui/go-ui/main/README.md\">Fallback content.</go-md>\n\n  <go-to-top></go-to-top>\n</div>\n"
      },
      "props": [
        {
          "name": "offset",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "offset",
          "reflectToAttr": false,
          "docs": "how far from the top of the page the button should be shown (in px)",
          "docsTags": [],
          "default": "200",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--go-to-top-bottom",
          "annotation": "prop",
          "docs": "Bottom position of the button. - default: 2rem"
        },
        {
          "name": "--go-to-top-right",
          "annotation": "prop",
          "docs": "Right position of the button. - default: 2rem"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [],
      "dependencies": [
        "go-button",
        "go-tooltip"
      ],
      "dependencyGraph": {
        "go-to-top": [
          "go-button",
          "go-tooltip"
        ],
        "go-button": [
          "go-spinner"
        ]
      }
    },
    {
      "filePath": "src/components/go-toc/go-toc.tsx",
      "encapsulation": "none",
      "tag": "go-toc",
      "readme": "---\ntitle: Table of contents\n---\n\n# Table of contents <span class=\"text-size-0\">`go-toc`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Table of contents (or in page navigation) is a component that sits on top of the content area and helps users to jump to specific section in the content area quickly.\n</div>\n\n## When to use\n\n- Use at the start of main content area so users can quickly glance the information available on the page.\n\n## Accessibility\n\n- Semantic `nav` landmark is used to indicate the table of contents.\n- `aria-labelledby` with id of the label element, this way screen readers will not announce the word \"heading\", which might confuse users.\n- Linked elements will receive focus upon table of content item selection.\n\n<!-- Demos, tips, variations, use cases -->\n\n## Demo\n\n<demo-frame component=\"go-toc\" demo=\"go-toc\"></demo-frame>\n\n",
      "docs": "---\ntitle: Table of contents\n---",
      "docsTags": [],
      "usage": {
        "go-toc": "<main class=\"container\">\n  <go-toc></go-toc>\n\n  <h1>h1 HTML5 Kitchen Sink</h1>\n  <h2>h2 Back in my quaint <a href=\"#\">garden</a></h2>\n  <h3>h3 Jaunty <a href=\"#\">zinnias</a> vie with flaunting phlox</h3>\n  <h4>h4 Five or six big jet planes zoomed quickly by the new tower.</h4>\n  <p>\n    Lorem ipsum dolor sit, amet consectetur adipisicing elit. Id facere a perspiciatis rerum culpa repellendus dolorum tempora vero, dolor magnam deserunt! Quia\n    deleniti nemo repellat consectetur accusamus ab necessitatibus perferendis.\n  </p>\n  <ul>\n    <li><a href=\"#\">Home</a></li>\n    <li><a href=\"#\">About</a></li>\n    <li><a href=\"#\">Contact</a></li>\n  </ul>\n  <p>\n    Lorem ipsum dolor sit, amet consectetur adipisicing elit. Id facere a perspiciatis rerum culpa repellendus dolorum tempora vero, dolor magnam deserunt! Quia\n    deleniti nemo repellat consectetur accusamus ab necessitatibus perferendis.\n  </p>\n\n  <h2>Cumque, ducimus libero.</h2>\n  <p>\n    Lorem ipsum dolor sit amet consectetur, adipisicing elit. Pariatur iste eligendi laboriosam porro dolorum temporibus nesciunt quidem, cumque soluta nobis\n    commodi vitae eveniet, earum voluptas ullam perspiciatis id adipisci cum!\n  </p>\n  <h2>Modi, ullam rerum?</h2>\n  <p>Lorem ipsum dolor sit amet.</p>\n\n  <h3>h3. Lorem ipsum dolor sit.</h3>\n  <p>Lorem ipsum dolor sit.</p>\n\n  <h3>h3. Lorem ipsum dolor sit.</h3>\n  <p>Lorem ipsum dolor sit.</p>\n\n  <h2>Soluta, vero error!</h2>\n  <p>\n    Lorem ipsum, dolor sit amet consectetur adipisicing elit. Explicabo non iste nemo similique aut. Fugit perferendis reiciendis dolores numquam adipisci\n    possimus consequatur obcaecati at est ipsam autem, consectetur, suscipit soluta.\n  </p>\n</main>\n"
      },
      "props": [
        {
          "name": "label",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label",
          "reflectToAttr": false,
          "docs": "Label for the TOC",
          "docsTags": [],
          "default": "'On this page'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "labelClass",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "label-class",
          "reflectToAttr": false,
          "docs": "Custom classes to be applied to the label",
          "docsTags": [],
          "default": "''",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        },
        {
          "name": "selector",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "selector",
          "reflectToAttr": false,
          "docs": "Selector for the TOC items",
          "docsTags": [],
          "default": "'h2'",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "init",
          "returns": {
            "type": "Promise<void>",
            "docs": "void"
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "init() => Promise<void>",
          "parameters": [],
          "docs": "Query the DOM and generate TOC\nIf content in scope is dynamically loaded, it may not be available when this toc component loads.\ncall this `init` method and have the toc regenerate the links",
          "docsTags": [
            {
              "name": "returns",
              "text": "void"
            }
          ]
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-content-layout"
      ],
      "dependencies": [
        "go-nav-link"
      ],
      "dependencyGraph": {
        "go-toc": [
          "go-nav-link"
        ],
        "go-nav-link": [
          "go-icon"
        ],
        "go-content-layout": [
          "go-toc"
        ]
      }
    },
    {
      "filePath": "src/components/go-tooltip/go-tooltip.tsx",
      "encapsulation": "none",
      "tag": "go-tooltip",
      "readme": "---\ntitle: Tooltip\n---\n\n# Tooltip <span class=\"text-size-0\">`go-tooltip`</span>\n\n<!-- Description -->\n\n<div class=\"text-size-1\">\n  Tooltip is a popup that displays additional information related to an element when the element receives focus or hovered over.\n</div>\n\n## Accessibility\n\n> ### Best practices summary\n>\n> - Tooltips should directly describe the UI control that triggers them (i.e. do not create a control purely to trigger a tooltip) ✓\n> - Use aria-describedby or aria-labelledby to associate the UI control with the tooltip. Avoid aria-haspopup and aria-live ✓\n> - Provide a means to dismiss the tooltip with both keyboard and pointer ✓\n> - Allow the mouse to easily move over the tooltip without dismissing it ✓\n> - Do not use a timeout to hide the tooltip ✓\n> - Only interactive elements should trigger tooltips\n> - Do not use the title attribute to create a tooltip\n> - Do not put essential information in tooltips\n>\n> [Tooltips in the time of WCAG 2.1](https://sarahmhigley.com/writing/tooltips-in-wcag-21/) by [Sarah Higley](https://sarahmhigley.com/)\n\n✓ _handled by `go-tooltip` out of the box._\n\n## Demo\n\n<demo-frame component=\"go-tooltip\" demo=\"go-tooltip\"></demo-frame>\n",
      "docs": "---\ntitle: Tooltip\n---",
      "docsTags": [],
      "usage": {
        "go-tooltip": "<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />\n\n<div class=\"container\">\n  <div>Scrollable area</div>\n  <div style=\"overflow: hidden\">\n    <div style=\"height: 16rem; overflow: auto; padding-top: 4rem; border: 2px dashed currentColor; text-align: center\">\n      <section>\n        <h2>Basic tooltip</h2>\n        <go-button variant=\"primary\" id=\"tooltip-trigger\" type=\"button\">Hover me</go-button>\n      </section>\n      <section>\n        <h2>Arrow tooltip</h2>\n        <go-button variant=\"primary\" id=\"arrow-trigger\" type=\"button\" icon=\"true\" round=\"true\" aria-label=\"Help button\">\n          <go-icon name=\"live_help\"></go-icon>\n        </go-button>\n      </section>\n      <section>\n        <h2>Inline tooltip</h2>\n        <p>\n          Lorem ipsum dolor sit amet consectetur adipisicing elit. <a href=\"#\" id=\"inline-trigger\">Eius aliquam cumqu minus iste tempora quo fuga laborume</a>\n          placeat consectetur enim consequuntur veniam. Dicta cumque minima ipsam, quae temporibus quidem esse. Lorem ipsum dolor sit amet consectetur\n          adipisicing elit. Recusandae ipsa nobis nemo maxime deleniti soluta et odit, maiores accusamus fugiat totam consequatur illum impedit architecto ea,\n          iste nostrum, quaerat cumque?\n        </p>\n      </section>\n      <section>\n        <h2>Placement</h2>\n        <go-button variant=\"primary\" id=\"placement-trigger\" type=\"button\">Hover me</go-button>\n      </section>\n    </div>\n  </div>\n  <go-tooltip trigger-id=\"tooltip-trigger\">Lorem ipsum dolor sit amet consectetur adipisicing </go-tooltip>\n  <go-tooltip inline=\"true\" trigger-id=\"inline-trigger\">Hello world</go-tooltip>\n  <go-tooltip inline=\"true\" arrow=\"true\" trigger-id=\"arrow-trigger\">Hello world</go-tooltip>\n  <go-tooltip arrow=\"true\" trigger-id=\"placement-trigger\">Top (default)</go-tooltip>\n  <go-tooltip placement=\"bottom\" arrow=\"true\" trigger-id=\"placement-trigger\">Bottom</go-tooltip>\n  <go-tooltip placement=\"left\" arrow=\"true\" trigger-id=\"placement-trigger\">Left</go-tooltip>\n  <go-tooltip placement=\"right\" arrow=\"true\" trigger-id=\"placement-trigger\">Right</go-tooltip>\n</div>\n"
      },
      "props": [
        {
          "name": "arrow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "arrow",
          "reflectToAttr": false,
          "docs": "Add arrow to the tooltip",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "inline",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "inline",
          "reflectToAttr": false,
          "docs": "Improve positioning for inline trigger elements that span over multiple lines.\nReference: https://floating-ui.com/docs/inline",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "placement",
          "type": "\"bottom\" | \"left\" | \"right\" | \"top\"",
          "complexType": {
            "original": "'top' | 'bottom' | 'left' | 'right'",
            "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"",
            "references": {}
          },
          "mutable": false,
          "attr": "placement",
          "reflectToAttr": false,
          "docs": "placement of tooltip relative to the trigger element",
          "docsTags": [],
          "default": "'top'",
          "values": [
            {
              "value": "bottom",
              "type": "string"
            },
            {
              "value": "left",
              "type": "string"
            },
            {
              "value": "right",
              "type": "string"
            },
            {
              "value": "top",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        },
        {
          "name": "triggerId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "trigger-id",
          "reflectToAttr": false,
          "docs": "Query selector string for the trigger element",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false
        }
      ],
      "methods": [
        {
          "name": "hide",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "hide() => Promise<void>",
          "parameters": [],
          "docs": "hide tooltip",
          "docsTags": []
        },
        {
          "name": "show",
          "returns": {
            "type": "Promise<void>",
            "docs": ""
          },
          "complexType": {
            "signature": "() => Promise<void>",
            "parameters": [],
            "references": {
              "Promise": {
                "location": "global",
                "id": "global::Promise"
              }
            },
            "return": "Promise<void>"
          },
          "signature": "show() => Promise<void>",
          "parameters": [],
          "docs": "show tooltip",
          "docsTags": []
        }
      ],
      "events": [],
      "listeners": [],
      "styles": [
        {
          "name": "--tooltip-bg-color",
          "annotation": "prop",
          "docs": "Background color of the tooltip. - default: var(--go-color-primary-800)"
        },
        {
          "name": "--tooltip-fg-color",
          "annotation": "prop",
          "docs": "Text color of the tooltip. - default: var(--go-color-lightest)"
        },
        {
          "name": "--tooltip-padding",
          "annotation": "prop",
          "docs": "Padding around tooltip - default: 0.5rem"
        },
        {
          "name": "--tooltip-radius",
          "annotation": "prop",
          "docs": "Border radius of tooltip - default: var(--radius-2)"
        }
      ],
      "slots": [],
      "parts": [],
      "dependents": [
        "go-to-top"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "go-to-top": [
          "go-tooltip"
        ]
      }
    }
  ],
  "typeLibrary": {
    "src/interfaces/index.ts::INavItem": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/components/go-toc/go-toc.tsx::TocProps": {
      "declaration": "export interface TocProps {\n  label?: string;\n  selector?: string;\n  labelClass?: string;\n}",
      "docstring": "",
      "path": "src/components/go-toc/go-toc.tsx"
    },
    "src/patterns/go-content-layout/go-content-layout.tsx::SidebarPosition": {
      "declaration": "export type SidebarPosition = 'start' | 'end';",
      "docstring": "",
      "path": "src/patterns/go-content-layout/go-content-layout.tsx"
    },
    "src/components/go-dark-mode/go-dark-mode.tsx::Theme": {
      "declaration": "export type Theme = 'light' | 'dark';",
      "docstring": "",
      "path": "src/components/go-dark-mode/go-dark-mode.tsx"
    },
    "src/components/go-icon/go-icon.tsx::MaterialIconVariants": {
      "declaration": "export type MaterialIconVariants =\n  | `material-icons`\n  | `material-icons-outlined`\n  | `material-icons-round`\n  | `material-icons-sharp`;",
      "docstring": "",
      "path": "src/components/go-icon/go-icon.tsx"
    },
    "src/components/go-icon/go-icon.tsx::FontAwesomeVariants": {
      "declaration": "export type FontAwesomeVariants = 'fas' | 'far' | 'fal' | 'fad' | 'fab';",
      "docstring": "",
      "path": "src/components/go-icon/go-icon.tsx"
    },
    "src/components/go-icon/go-icon.tsx::BoxiconVariants": {
      "declaration": "export type BoxiconVariants = 'bx' | 'bxs' | 'bxl';",
      "docstring": "",
      "path": "src/components/go-icon/go-icon.tsx"
    },
    "src/components/form/go-datepicker/duet-date-picker.ts::DuetDatePickerProps": {
      "declaration": "export interface DuetDatePickerProps {\n  /**\n   * Name of the date picker input.\n   */\n  name: string;\n\n  /**\n   * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\n   */\n  identifier: string;\n\n  /**\n   * Makes the date picker input component disabled. This prevents users from being able to\n   * interact with the input, and conveys its inactive state to assistive technologies.\n   */\n  disabled: boolean;\n\n  /**\n   * Defines a specific role attribute for the date picker input.\n   */\n  role: string;\n\n  /**\n   * Forces the opening direction of the calendar modal to be always left or right.\n   * This setting can be useful when the input is smaller than the opening date picker\n   * would be as by default the picker always opens towards right.\n   */\n  direction: DuetDatePickerDirection;\n\n  /**\n   * Should the input be marked as required?\n   */\n  required: boolean;\n\n  /**\n   * Date value. Must be in IS0-8601 format: YYYY-MM-DD.\n   */\n  value: string;\n\n  /**\n   * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n   * This setting can be used alone or together with the max property.\n   */\n  min: string;\n\n  /**\n   * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n   * This setting can be used alone or together with the min property.\n   */\n  max: string;\n\n  /**\n   * Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\n   * Default is Monday.\n   */\n  firstDayOfWeek: DaysOfWeek;\n\n  /**\n   * Button labels, day names, month names, etc, used for localization.\n   * Default is English.\n   */\n  localization: DuetLocalizedText;\n\n  /**\n   * Date adapter, for custom parsing/formatting.\n   * Must be object with a `parse` function which accepts a `string` and returns a `Date`,\n   * and a `format` function which accepts a `Date` and returns a `string`.\n   * Default is IS0-8601 parsing and formatting.\n   */\n  dateAdapter: DuetDateAdapter;\n\n  /**\n   * Controls which days are disabled and therefore disallowed.\n   * For example, this can be used to disallow selection of weekends.\n   */\n  isDateDisabled: DateDisabledPredicate;\n}",
      "docstring": "",
      "path": "src/components/form/go-datepicker/duet-date-picker.ts"
    },
    "src/interfaces/index.ts::GoChangeEventDetail": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::FieldValue": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::SelectOption": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::BannerVariants": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::ColorVariants": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::Breakpoints": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/variants.ts::ChipVariants": {
      "declaration": "export type ColorVariants = 'neutral' | 'primary' | 'secondary' | 'success' | 'critical';",
      "docstring": "",
      "path": "src/interfaces/variants.ts"
    },
    "../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/index.d.ts::Options": {
      "declaration": "any",
      "docstring": "",
      "path": "../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/index.d.ts"
    },
    "src/components/go-tabs/tabs.type.ts::TabIconPosition": {
      "declaration": "export type TabIconPosition = 'before' | 'after';",
      "docstring": "",
      "path": "src/components/go-tabs/tabs.type.ts"
    },
    "src/components/go-tabs/tabs.type.ts::TabItem": {
      "declaration": "export interface TabItem {\n  tabId: string;\n  panelId: string;\n  label: string;\n  active: boolean;\n  iconSlot?: Element;\n  iconActiveSlot?: Element;\n  iconPosition?: TabIconPosition;\n  iconOnly?: boolean;\n}",
      "docstring": "",
      "path": "src/components/go-tabs/tabs.type.ts"
    },
    "src/components/go-tabs/tabs.type.ts::JustifyOption": {
      "declaration": "export type JustifyOption = 'normal' | 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly' | 'stretch';",
      "docstring": "",
      "path": "src/components/go-tabs/tabs.type.ts"
    },
    "src/components/go-tabs/tabs.type.ts::ActiveTab": {
      "declaration": "export interface ActiveTab {\n  index: number;\n  tabEl: HTMLElement;\n}",
      "docstring": "",
      "path": "src/components/go-tabs/tabs.type.ts"
    },
    "src/components/go-tabs/tabs.type.ts::ActiveTabWithPanel": {
      "declaration": "export interface ActiveTabWithPanel {\n  index: number;\n  tabEl: HTMLElement;\n  panelEl: HTMLElement;\n}",
      "docstring": "",
      "path": "src/components/go-tabs/tabs.type.ts"
    },
    "src/interfaces/index.ts::IIcon": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::UnknownObject": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    }
  }
}