{
  "$schema": "http://json.schemastore.org/web-types",
  "name": "@jeysonj2/circular",
  "version": "1.7.0",
  "description-markup": "markdown",
  "framework-config": {
    "enable-when": {
      "node-packages": [
        "@jeysonj2/circular"
      ]
    }
  },
  "contributions": {
    "html": {
      "elements": [
        {
          "name": "o-alert",
          "description": "",
          "doc-url": "https://circular.decodeit.co/alert",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "autoHideTimeout",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "toastElement",
                "value": {
                  "type": "OAlert | undefined"
                }
              },
              {
                "name": "base",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the alert's open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "closable",
                "description": "Enables a close button that allows the user to dismiss the alert.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "variant",
                "description": "The alert's theme variant.",
                "value": {
                  "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
                }
              },
              {
                "name": "duration",
                "description": "The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\nthe alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\nthe alert will not close on its own.",
                "value": {}
              },
              {
                "name": "openToast",
                "description": "Indicates whether or not the alert should open using toast function. You can toggle this attribute to show the\nalert as toast, or you can use the `toast()` method and this attribute will reflect the alert's open-toast state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "restartAutoHide",
                "value": {}
              },
              {
                "name": "handleCloseClick",
                "value": {}
              },
              {
                "name": "handleMouseMove",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "handleDurationChange",
                "value": {}
              },
              {
                "name": "handleOpenToastChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the alert.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the alert",
                "value": {}
              },
              {
                "name": "toastClone",
                "value": {}
              },
              {
                "name": "setToastElement",
                "value": {}
              },
              {
                "name": "getToastElement",
                "value": {}
              },
              {
                "name": "isToast",
                "value": {}
              },
              {
                "name": "toast",
                "description": "Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\ndismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\ncalling this method again. The returned promise will resolve after the alert is hidden.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the alert opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the alert opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the alert closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the alert closes and all animations are complete."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the alert's open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "closable",
              "description": "Enables a close button that allows the user to dismiss the alert.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "variant",
              "description": "The alert's theme variant.",
              "value": {
                "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
              }
            },
            {
              "name": "duration",
              "description": "The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\nthe alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\nthe alert will not close on its own.",
              "value": {}
            },
            {
              "name": "open-toast",
              "description": "Indicates whether or not the alert should open using toast function. You can toggle this attribute to show the\nalert as toast, or you can use the `toast()` method and this attribute will reflect the alert's open-toast state.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-animated-image",
          "description": "",
          "doc-url": "https://circular.decodeit.co/animated-image",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "animatedImage",
                "value": {
                  "type": "HTMLImageElement"
                }
              },
              {
                "name": "frozenFrame",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "isLoaded",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "src",
                "description": "The path to the image to load.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "alt",
                "description": "A description of the image used by assistive devices.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "play",
                "description": "Plays the animation. When this attribute is remove, the animation will pause.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleLoad",
                "value": {}
              },
              {
                "name": "handleError",
                "value": {}
              },
              {
                "name": "handlePlayChange",
                "value": {}
              },
              {
                "name": "handleSrcChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-load",
                "description": "Emitted when the image loads successfully."
              },
              {
                "name": "o-error",
                "description": "Emitted when the image fails to load."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "src",
              "description": "The path to the image to load.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "alt",
              "description": "A description of the image used by assistive devices.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "play",
              "description": "Plays the animation. When this attribute is remove, the animation will pause.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-animation",
          "description": "",
          "doc-url": "https://circular.decodeit.co/animation",
          "js": {
            "properties": [
              {
                "name": "animation",
                "value": {
                  "type": "Animation | undefined"
                }
              },
              {
                "name": "hasStarted",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "Promise<HTMLSlotElement>"
                }
              },
              {
                "name": "name",
                "description": "The name of the built-in animation to use. For custom animations, use the `keyframes` prop.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "play",
                "description": "Plays the animation. When omitted, the animation will be paused. This attribute will be automatically removed when\nthe animation finishes or gets canceled.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "delay",
                "description": "The number of milliseconds to delay the start of the animation.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "direction",
                "description": "Determines the direction of playback as well as the behavior when reaching the end of an iteration.\n[Learn more](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction)",
                "value": {
                  "type": "PlaybackDirection"
                }
              },
              {
                "name": "duration",
                "description": "The number of milliseconds each iteration of the animation takes to complete.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "easing",
                "description": "The easing function to use for the animation. This can be a Shoelace easing function or a custom easing function\nsuch as `cubic-bezier(0, 1, .76, 1.14)`.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "endDelay",
                "description": "The number of milliseconds to delay after the active period of an animation sequence.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "fill",
                "description": "Sets how the animation applies styles to its target before and after its execution.",
                "value": {
                  "type": "FillMode"
                }
              },
              {
                "name": "iterations",
                "description": "The number of iterations to run before the animation completes. Defaults to `Infinity`, which loops.",
                "value": {}
              },
              {
                "name": "iterationStart",
                "description": "The offset at which to start the animation, usually between 0 (start) and 1 (end).",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "keyframes",
                "description": "The keyframes to use for the animation. If this is set, `name` will be ignored.",
                "value": {
                  "type": "Keyframe[] | undefined"
                }
              },
              {
                "name": "playbackRate",
                "description": "Sets the animation's playback rate. The default is `1`, which plays the animation at a normal speed. Setting this\nto `2`, for example, will double the animation's speed. A negative value can be used to reverse the animation. This\nvalue can be changed without causing the animation to restart.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "currentTime",
                "description": "Gets and sets the current animation time.",
                "value": {
                  "type": "CSSNumberish"
                }
              },
              {
                "name": "handleAnimationFinish",
                "value": {}
              },
              {
                "name": "handleAnimationCancel",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "createAnimation",
                "value": {}
              },
              {
                "name": "destroyAnimation",
                "value": {}
              },
              {
                "name": "handleAnimationChange",
                "value": {}
              },
              {
                "name": "handlePlayChange",
                "value": {}
              },
              {
                "name": "handlePlaybackRateChange",
                "value": {}
              },
              {
                "name": "cancel",
                "description": "Clears all keyframe effects caused by this animation and aborts its playback.",
                "value": {}
              },
              {
                "name": "finish",
                "description": "Sets the playback time to the end of the animation corresponding to the current playback direction.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-cancel",
                "description": "Emitted when the animation is canceled."
              },
              {
                "name": "o-finish",
                "description": "Emitted when the animation finishes."
              },
              {
                "name": "o-start",
                "description": "Emitted when the animation starts or restarts."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "name",
              "description": "The name of the built-in animation to use. For custom animations, use the `keyframes` prop.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "play",
              "description": "Plays the animation. When omitted, the animation will be paused. This attribute will be automatically removed when\nthe animation finishes or gets canceled.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "delay",
              "description": "The number of milliseconds to delay the start of the animation.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "direction",
              "description": "Determines the direction of playback as well as the behavior when reaching the end of an iteration.\n[Learn more](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction)",
              "value": {
                "type": "PlaybackDirection"
              }
            },
            {
              "name": "duration",
              "description": "The number of milliseconds each iteration of the animation takes to complete.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "easing",
              "description": "The easing function to use for the animation. This can be a Shoelace easing function or a custom easing function\nsuch as `cubic-bezier(0, 1, .76, 1.14)`.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "end-delay",
              "description": "The number of milliseconds to delay after the active period of an animation sequence.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "fill",
              "description": "Sets how the animation applies styles to its target before and after its execution.",
              "value": {
                "type": "FillMode"
              }
            },
            {
              "name": "iterations",
              "description": "The number of iterations to run before the animation completes. Defaults to `Infinity`, which loops.",
              "value": {}
            },
            {
              "name": "iteration-start",
              "description": "The offset at which to start the animation, usually between 0 (start) and 1 (end).",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "playback-rate",
              "description": "Sets the animation's playback rate. The default is `1`, which plays the animation at a normal speed. Setting this\nto `2`, for example, will double the animation's speed. A negative value can be used to reverse the animation. This\nvalue can be changed without causing the animation to restart.",
              "value": {
                "type": "number"
              }
            }
          ]
        },
        {
          "name": "o-avatar",
          "description": "",
          "doc-url": "https://circular.decodeit.co/avatar",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "hasError",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "image",
                "description": "The image source to use for the avatar.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "label",
                "description": "A label to use to describe the avatar to assistive devices.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "initials",
                "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "loading",
                "description": "Indicates how the browser should load the image.",
                "value": {
                  "type": "'eager' | 'lazy'"
                }
              },
              {
                "name": "shape",
                "description": "The shape of the avatar.",
                "value": {
                  "type": "'circle' | 'square' | 'rounded'"
                }
              },
              {
                "name": "handleImageChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "image",
              "description": "The image source to use for the avatar.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "label",
              "description": "A label to use to describe the avatar to assistive devices.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "initials",
              "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "loading",
              "description": "Indicates how the browser should load the image.",
              "value": {
                "type": "'eager' | 'lazy'"
              }
            },
            {
              "name": "shape",
              "description": "The shape of the avatar.",
              "value": {
                "type": "'circle' | 'square' | 'rounded'"
              }
            }
          ]
        },
        {
          "name": "o-badge",
          "description": "",
          "doc-url": "https://circular.decodeit.co/badge",
          "js": {
            "properties": [
              {
                "name": "variant",
                "description": "The badge's theme variant.",
                "value": {
                  "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
                }
              },
              {
                "name": "pill",
                "description": "Draws a pill-style badge with rounded edges.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "pulse",
                "description": "Makes the badge pulsate to draw attention.",
                "value": {
                  "type": "boolean"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "variant",
              "description": "The badge's theme variant.",
              "value": {
                "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style badge with rounded edges.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "pulse",
              "description": "Makes the badge pulsate to draw attention.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-breadcrumb",
          "description": "",
          "doc-url": "https://circular.decodeit.co/breadcrumb",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "separatorDir",
                "value": {}
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "separatorSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "label",
                "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "getSeparator",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "label",
              "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-breadcrumb-item",
          "description": "",
          "doc-url": "https://circular.decodeit.co/breadcrumb-item",
          "js": {
            "properties": [
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "href",
                "description": "Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered\ninternally. When unset, a button will be rendered instead.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "target",
                "description": "Tells the browser where to open the link. Only used when `href` is set.",
                "value": {
                  "type": "'_blank' | '_parent' | '_self' | '_top' | undefined"
                }
              },
              {
                "name": "rel",
                "description": "The `rel` attribute to use on the link. Only used when `href` is set.",
                "value": {
                  "type": "string"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "href",
              "description": "Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered\ninternally. When unset, a button will be rendered instead.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "target",
              "description": "Tells the browser where to open the link. Only used when `href` is set.",
              "value": {
                "type": "'_blank' | '_parent' | '_self' | '_top' | undefined"
              }
            },
            {
              "name": "rel",
              "description": "The `rel` attribute to use on the link. Only used when `href` is set.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-button",
          "description": "",
          "doc-url": "https://circular.decodeit.co/button",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "button",
                "value": {
                  "type": "HTMLButtonElement | HTMLLinkElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "invalid",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "variant",
                "description": "The button's theme variant.",
                "value": {
                  "type": "'default' | 'primary' | 'success' | 'neutral' | 'warning' | 'danger' | 'text'"
                }
              },
              {
                "name": "size",
                "description": "The button's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "caret",
                "description": "Draws the button with a caret. Used to indicate that the button triggers a dropdown menu or similar behavior.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "loading",
                "description": "Draws the button in a loading state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "outline",
                "description": "Draws an outlined button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "square",
                "description": "Draws a square button with rounded borders.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "circle",
                "description": "Draws a circular icon button. When this attribute is present, the button expects a single `<o-icon>` in the\ndefault slot.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "type",
                "description": "The type of button. Note that the default value is `button` instead of `submit`, which is opposite of how native\n`<button>` elements behave. When the type is `submit`, the button will submit the surrounding form.",
                "value": {
                  "type": "'button' | 'submit' | 'reset'"
                }
              },
              {
                "name": "name",
                "description": "The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.\nThis attribute is ignored when `href` is present.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The value of the button, submitted as a pair with the button's name as part of the form data, but only when this\nbutton is the submitter. This attribute is ignored when `href` is present.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "href",
                "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "target",
                "description": "Tells the browser where to open the link. Only used when `href` is present.",
                "value": {
                  "type": "'_blank' | '_parent' | '_self' | '_top'"
                }
              },
              {
                "name": "rel",
                "description": "When using `href`, this attribute will map to the underlying link's `rel` attribute. Unlike regular links, the\ndefault is `noreferrer noopener` to prevent security exploits. However, if you're using `target` to point to a\nspecific tab/window, this will prevent that from working correctly. You can remove or change the default value by\nsetting the attribute to an empty string or a value of your choice, respectively.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "download",
                "description": "Tells the browser to download the linked file as this filename. Only used when `href` is present.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "form",
                "description": "The \"form owner\" to associate the button with. If omitted, the closest containing form will be used instead. The\nvalue of this attribute must be an id of a form in the same document or shadow root as the button.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "formAction",
                "description": "Used to override the form owner's `action` attribute.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "formEnctype",
                "description": "Used to override the form owner's `enctype` attribute.",
                "value": {
                  "type": "'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'"
                }
              },
              {
                "name": "formMethod",
                "description": "Used to override the form owner's `method` attribute.",
                "value": {
                  "type": "'post' | 'get'"
                }
              },
              {
                "name": "formNoValidate",
                "description": "Used to override the form owner's `novalidate` attribute.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "formTarget",
                "description": "Used to override the form owner's `target` attribute.",
                "value": {
                  "type": "'_self' | '_blank' | '_parent' | '_top' | string"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "isButton",
                "value": {}
              },
              {
                "name": "isLink",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "click",
                "description": "Simulates a click on the button.",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the button.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the button.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the button loses focus."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the button gains focus."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "variant",
              "description": "The button's theme variant.",
              "value": {
                "type": "'default' | 'primary' | 'success' | 'neutral' | 'warning' | 'danger' | 'text'"
              }
            },
            {
              "name": "size",
              "description": "The button's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "caret",
              "description": "Draws the button with a caret. Used to indicate that the button triggers a dropdown menu or similar behavior.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the button.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "loading",
              "description": "Draws the button in a loading state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "outline",
              "description": "Draws an outlined button.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "square",
              "description": "Draws a square button with rounded borders.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "circle",
              "description": "Draws a circular icon button. When this attribute is present, the button expects a single `<o-icon>` in the\ndefault slot.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "type",
              "description": "The type of button. Note that the default value is `button` instead of `submit`, which is opposite of how native\n`<button>` elements behave. When the type is `submit`, the button will submit the surrounding form.",
              "value": {
                "type": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "name": "name",
              "description": "The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.\nThis attribute is ignored when `href` is present.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The value of the button, submitted as a pair with the button's name as part of the form data, but only when this\nbutton is the submitter. This attribute is ignored when `href` is present.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "href",
              "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "target",
              "description": "Tells the browser where to open the link. Only used when `href` is present.",
              "value": {
                "type": "'_blank' | '_parent' | '_self' | '_top'"
              }
            },
            {
              "name": "rel",
              "description": "When using `href`, this attribute will map to the underlying link's `rel` attribute. Unlike regular links, the\ndefault is `noreferrer noopener` to prevent security exploits. However, if you're using `target` to point to a\nspecific tab/window, this will prevent that from working correctly. You can remove or change the default value by\nsetting the attribute to an empty string or a value of your choice, respectively.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "download",
              "description": "Tells the browser to download the linked file as this filename. Only used when `href` is present.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "form",
              "description": "The \"form owner\" to associate the button with. If omitted, the closest containing form will be used instead. The\nvalue of this attribute must be an id of a form in the same document or shadow root as the button.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "formaction",
              "description": "Used to override the form owner's `action` attribute.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "formenctype",
              "description": "Used to override the form owner's `enctype` attribute.",
              "value": {
                "type": "'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'"
              }
            },
            {
              "name": "formmethod",
              "description": "Used to override the form owner's `method` attribute.",
              "value": {
                "type": "'post' | 'get'"
              }
            },
            {
              "name": "formnovalidate",
              "description": "Used to override the form owner's `novalidate` attribute.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "formtarget",
              "description": "Used to override the form owner's `target` attribute.",
              "value": {
                "type": "'_self' | '_blank' | '_parent' | '_top' | string"
              }
            }
          ]
        },
        {
          "name": "o-button-group",
          "description": "",
          "doc-url": "https://circular.decodeit.co/button-group",
          "js": {
            "properties": [
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "disableRole",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleMouseOver",
                "value": {}
              },
              {
                "name": "handleMouseOut",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "label",
              "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-card",
          "description": "",
          "doc-url": "https://circular.decodeit.co/card",
          "js": {
            "properties": [
              {
                "name": "hasSlotController",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        },
        {
          "name": "o-carousel",
          "description": "",
          "doc-url": "https://circular.decodeit.co/carousel",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "loop",
                "description": "When set, allows the user to navigate the carousel in the same direction indefinitely.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "navigation",
                "description": "When set, show the carousel's navigation.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "pagination",
                "description": "When set, show the carousel's pagination indicators.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "autoplay",
                "description": "When set, the slides will scroll automatically when the user is not interacting with them.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "autoplayInterval",
                "description": "Specifies the amount of time, in milliseconds, between each automatic scroll.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "slidesPerPage",
                "description": "Specifies how many slides should be shown at a given time.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "slidesPerMove",
                "description": "Specifies the number of slides the carousel will advance when scrolling, useful when specifying a `slides-per-page`\ngreater than one.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "orientation",
                "description": "Specifies the orientation in which the carousel will lay out.",
                "value": {
                  "type": "'horizontal' | 'vertical'"
                }
              },
              {
                "name": "mouseDragging",
                "description": "When set, it is possible to scroll through the slides by dragging them with the mouse.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "scrollContainer",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "paginationContainer",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "activeSlide",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "autoplayController",
                "value": {}
              },
              {
                "name": "scrollController",
                "value": {}
              },
              {
                "name": "slides",
                "value": {}
              },
              {
                "name": "intersectionObserver",
                "value": {
                  "type": "IntersectionObserver"
                }
              },
              {
                "name": "intersectionObserverEntries",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "mutationObserver",
                "value": {
                  "type": "MutationObserver"
                }
              },
              {
                "name": "getPageCount",
                "value": {}
              },
              {
                "name": "getCurrentPage",
                "value": {}
              },
              {
                "name": "getSlides",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleScrollEnd",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "initializeSlides",
                "value": {}
              },
              {
                "name": "handelSlideChange",
                "value": {}
              },
              {
                "name": "handleSlidesPerMoveChange",
                "value": {}
              },
              {
                "name": "handleAutoplayChange",
                "value": {}
              },
              {
                "name": "handleMouseDraggingChange",
                "value": {}
              },
              {
                "name": "previous",
                "description": "Move the carousel backward by `slides-per-move` slides.",
                "value": {}
              },
              {
                "name": "next",
                "description": "Move the carousel forward by `slides-per-move` slides.",
                "value": {}
              },
              {
                "name": "goToSlide",
                "description": "Scrolls the carousel to the slide specified by `index`.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-slide-change",
                "description": "Emitted when the active slide changes."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "loop",
              "description": "When set, allows the user to navigate the carousel in the same direction indefinitely.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "navigation",
              "description": "When set, show the carousel's navigation.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "pagination",
              "description": "When set, show the carousel's pagination indicators.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "autoplay",
              "description": "When set, the slides will scroll automatically when the user is not interacting with them.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "autoplay-interval",
              "description": "Specifies the amount of time, in milliseconds, between each automatic scroll.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "slides-per-page",
              "description": "Specifies how many slides should be shown at a given time.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "slides-per-move",
              "description": "Specifies the number of slides the carousel will advance when scrolling, useful when specifying a `slides-per-page`\ngreater than one.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "orientation",
              "description": "Specifies the orientation in which the carousel will lay out.",
              "value": {
                "type": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "mouse-dragging",
              "description": "When set, it is possible to scroll through the slides by dragging them with the mouse.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-carousel-item",
          "description": "",
          "doc-url": "https://circular.decodeit.co/carousel-item",
          "js": {
            "properties": [
              {
                "name": "isCarouselItem",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        },
        {
          "name": "o-checkbox",
          "description": "",
          "doc-url": "https://circular.decodeit.co/checkbox",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "name",
                "description": "The name of the checkbox, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The checkbox's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the checkbox.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "checked",
                "description": "Draws the checkbox in a checked state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "indeterminate",
                "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "defaultChecked",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Makes the checkbox a required field.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleInput",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleStateChange",
                "value": {}
              },
              {
                "name": "click",
                "description": "Simulates a click on the checkbox.",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the checkbox.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the checkbox.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the checkbox loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when the checked state changes."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the checkbox gains focus."
              },
              {
                "name": "o-input",
                "description": "Emitted when the checkbox receives input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "name",
              "description": "The name of the checkbox, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The checkbox's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the checkbox.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "checked",
              "description": "Draws the checkbox in a checked state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "indeterminate",
              "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Makes the checkbox a required field.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-color-picker",
          "description": "",
          "doc-url": "https://circular.decodeit.co/color-picker",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "isSafeValue",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "base",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "input",
                "value": {
                  "type": "OInput"
                }
              },
              {
                "name": "dropdown",
                "value": {
                  "type": "ODropdown"
                }
              },
              {
                "name": "previewButton",
                "value": {
                  "type": "HTMLButtonElement"
                }
              },
              {
                "name": "trigger",
                "value": {
                  "type": "HTMLButtonElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "isDraggingGridHandle",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "isEmpty",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "inputValue",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "hue",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "saturation",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "brightness",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "alpha",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "value",
                "description": "The current value of the color picker. The value's format will vary based the `format` attribute. To get the value\nin a specific format, use the `getFormattedValue()` method. The value is submitted as a name/value pair with form\ndata.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "label",
                "description": "The color picker's label. This will not be displayed, but it will be announced by assistive devices. If you need to\ndisplay HTML, you can use the `label` slot` instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "format",
                "description": "The format to use. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA respectively. The color\npicker will accept user input in any format (including CSS color names) and convert it to the desired format.",
                "value": {
                  "type": "'hex' | 'rgb' | 'hsl' | 'hsv'"
                }
              },
              {
                "name": "inline",
                "description": "Renders the color picker inline rather than in a dropdown.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "size",
                "description": "Determines the size of the color picker's trigger. This has no effect on inline color pickers.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "noFormatToggle",
                "description": "Removes the button that lets users toggle between format.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "name",
                "description": "The name of the form control, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the color picker.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "opacity",
                "description": "Shows the opacity slider. Enabling this will cause the formatted value to be HEXA, RGBA, or HSLA.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "uppercase",
                "description": "By default, values are lowercase. With this attribute, values will be uppercase instead.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "swatches",
                "description": "One or more predefined color swatches to display as presets in the color picker. Can include any format the color\npicker can parse, including HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names. Each color must be separated by a\nsemicolon (`;`). Alternatively, you can pass an array of color values to this property using JavaScript.",
                "value": {
                  "type": "string | string[]"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Makes the color picker a required field.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleCopy",
                "value": {}
              },
              {
                "name": "handleFocusIn",
                "value": {}
              },
              {
                "name": "handleFocusOut",
                "value": {}
              },
              {
                "name": "handleFormatToggle",
                "value": {}
              },
              {
                "name": "handleAlphaDrag",
                "value": {}
              },
              {
                "name": "handleHueDrag",
                "value": {}
              },
              {
                "name": "handleGridDrag",
                "value": {}
              },
              {
                "name": "handleAlphaKeyDown",
                "value": {}
              },
              {
                "name": "handleHueKeyDown",
                "value": {}
              },
              {
                "name": "handleGridKeyDown",
                "value": {}
              },
              {
                "name": "handleInputChange",
                "value": {}
              },
              {
                "name": "handleInputInput",
                "value": {}
              },
              {
                "name": "handleInputKeyDown",
                "value": {}
              },
              {
                "name": "handleInputInvalid",
                "value": {}
              },
              {
                "name": "handleTouchMove",
                "value": {}
              },
              {
                "name": "parseColor",
                "value": {}
              },
              {
                "name": "setColor",
                "value": {}
              },
              {
                "name": "setLetterCase",
                "value": {}
              },
              {
                "name": "syncValues",
                "value": {}
              },
              {
                "name": "handleAfterHide",
                "value": {}
              },
              {
                "name": "handleEyeDropper",
                "value": {}
              },
              {
                "name": "selectSwatch",
                "value": {}
              },
              {
                "name": "getHexString",
                "description": "Generates a hex string from HSV values. Hue must be 0-360. All other arguments must be 0-100.",
                "value": {}
              },
              {
                "name": "stopNestedEventPropagation",
                "value": {}
              },
              {
                "name": "handleFormatChange",
                "value": {}
              },
              {
                "name": "handleOpacityChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the color picker.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the color picker.",
                "value": {}
              },
              {
                "name": "getFormattedValue",
                "description": "Returns the current value as a string in the specified format.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the color picker loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when the color picker's value changes."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the color picker receives focus."
              },
              {
                "name": "o-input",
                "description": "Emitted when the color picker receives input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The current value of the color picker. The value's format will vary based the `format` attribute. To get the value\nin a specific format, use the `getFormattedValue()` method. The value is submitted as a name/value pair with form\ndata.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "label",
              "description": "The color picker's label. This will not be displayed, but it will be announced by assistive devices. If you need to\ndisplay HTML, you can use the `label` slot` instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "format",
              "description": "The format to use. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA respectively. The color\npicker will accept user input in any format (including CSS color names) and convert it to the desired format.",
              "value": {
                "type": "'hex' | 'rgb' | 'hsl' | 'hsv'"
              }
            },
            {
              "name": "inline",
              "description": "Renders the color picker inline rather than in a dropdown.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "size",
              "description": "Determines the size of the color picker's trigger. This has no effect on inline color pickers.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "no-format-toggle",
              "description": "Removes the button that lets users toggle between format.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "name",
              "description": "The name of the form control, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the color picker.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "opacity",
              "description": "Shows the opacity slider. Enabling this will cause the formatted value to be HEXA, RGBA, or HSLA.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "uppercase",
              "description": "By default, values are lowercase. With this attribute, values will be uppercase instead.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "swatches",
              "description": "One or more predefined color swatches to display as presets in the color picker. Can include any format the color\npicker can parse, including HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names. Each color must be separated by a\nsemicolon (`;`). Alternatively, you can pass an array of color values to this property using JavaScript.",
              "value": {
                "type": "string | string[]"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Makes the color picker a required field.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-details",
          "description": "",
          "doc-url": "https://circular.decodeit.co/details",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "details",
                "value": {
                  "type": "HTMLDetailsElement"
                }
              },
              {
                "name": "header",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "body",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "expandIconSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "detailsObserver",
                "value": {
                  "type": "MutationObserver"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the details is open. You can toggle this attribute to show and hide the details, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the details' open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "summary",
                "description": "The summary to show in the header. If you need to display HTML, use the `summary` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the details so it can't be toggled.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleSummaryClick",
                "value": {}
              },
              {
                "name": "handleSummaryKeyDown",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the details.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the details",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the details opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the details opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the details closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the details closes and all animations are complete."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the details is open. You can toggle this attribute to show and hide the details, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the details' open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "summary",
              "description": "The summary to show in the header. If you need to display HTML, use the `summary` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the details so it can't be toggled.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-dialog",
          "description": "",
          "doc-url": "https://circular.decodeit.co/dialog",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "modal",
                "value": {}
              },
              {
                "name": "originalTrigger",
                "value": {
                  "type": "HTMLElement | null"
                }
              },
              {
                "name": "dialog",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "panel",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "overlay",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the dialog is open. You can toggle this attribute to show and hide the dialog, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the dialog's open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "noHeader",
                "description": "Disables the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the dialog.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "requestClose",
                "value": {}
              },
              {
                "name": "addOpenListeners",
                "value": {}
              },
              {
                "name": "removeOpenListeners",
                "value": {}
              },
              {
                "name": "handleDocumentKeyDown",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the dialog.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the dialog",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the dialog opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the dialog opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the dialog closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the dialog closes and all animations are complete."
              },
              {
                "name": "o-initial-focus",
                "description": "Emitted when the dialog opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input."
              },
              {
                "name": "o-request-close",
                "description": "Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the dialog is open. You can toggle this attribute to show and hide the dialog, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the dialog's open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "no-header",
              "description": "Disables the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the dialog.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-divider",
          "description": "",
          "doc-url": "https://circular.decodeit.co/divider",
          "js": {
            "properties": [
              {
                "name": "vertical",
                "description": "Draws the divider in a vertical orientation.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleVerticalChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "vertical",
              "description": "Draws the divider in a vertical orientation.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-drawer",
          "description": "",
          "doc-url": "https://circular.decodeit.co/drawer",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "modal",
                "value": {}
              },
              {
                "name": "originalTrigger",
                "value": {
                  "type": "HTMLElement | null"
                }
              },
              {
                "name": "drawer",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "panel",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "overlay",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "The drawer's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "placement",
                "description": "The direction from which the drawer will open.",
                "value": {
                  "type": "'top' | 'end' | 'bottom' | 'start'"
                }
              },
              {
                "name": "contained",
                "description": "By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\nits parent element, set this attribute and add `position: relative` to the parent.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "noHeader",
                "description": "Removes the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the drawer.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "requestClose",
                "value": {}
              },
              {
                "name": "addOpenListeners",
                "value": {}
              },
              {
                "name": "removeOpenListeners",
                "value": {}
              },
              {
                "name": "handleDocumentKeyDown",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "handleNoModalChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the drawer.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the drawer",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the drawer opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the drawer opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the drawer closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the drawer closes and all animations are complete."
              },
              {
                "name": "o-initial-focus",
                "description": "Emitted when the drawer opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input."
              },
              {
                "name": "o-request-close",
                "description": "Emitted when the user attempts to close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in destructive behavior such as data loss."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The drawer's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "placement",
              "description": "The direction from which the drawer will open.",
              "value": {
                "type": "'top' | 'end' | 'bottom' | 'start'"
              }
            },
            {
              "name": "contained",
              "description": "By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\nits parent element, set this attribute and add `position: relative` to the parent.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "no-header",
              "description": "Removes the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the drawer.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-dropdown",
          "description": "",
          "doc-url": "https://circular.decodeit.co/dropdown",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "popup",
                "value": {
                  "type": "OPopup"
                }
              },
              {
                "name": "trigger",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "panel",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "open",
                "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "placement",
                "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
                "value": {
                  "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the dropdown so the panel will not open.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "stayOpenOnSelect",
                "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "containingElement",
                "description": "The dropdown will close when the user interacts outside of this element (e.g. clicking). Useful for composing other\ncomponents that use a dropdown internally.",
                "value": {
                  "type": "HTMLElement | undefined"
                }
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the panel away from its trigger.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the panel along its trigger.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "focusOnTrigger",
                "value": {}
              },
              {
                "name": "getMenu",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleDocumentKeyDown",
                "value": {}
              },
              {
                "name": "handleDocumentMouseDown",
                "value": {}
              },
              {
                "name": "handlePanelSelect",
                "value": {}
              },
              {
                "name": "handleTriggerClick",
                "value": {}
              },
              {
                "name": "handleTriggerKeyDown",
                "value": {}
              },
              {
                "name": "handleTriggerKeyUp",
                "value": {}
              },
              {
                "name": "handleTriggerSlotChange",
                "value": {}
              },
              {
                "name": "updateAccessibleTrigger",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the dropdown panel.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the dropdown panel",
                "value": {}
              },
              {
                "name": "reposition",
                "description": "Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\nis activated.",
                "value": {}
              },
              {
                "name": "addOpenListeners",
                "value": {}
              },
              {
                "name": "removeOpenListeners",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the dropdown opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the dropdown opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the dropdown closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the dropdown closes and all animations are complete."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "open",
              "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
              "value": {
                "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the dropdown so the panel will not open.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "stay-open-on-select",
              "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the panel away from its trigger.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the panel along its trigger.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-filters",
          "description": "",
          "doc-url": "https://circular.decodeit.co/filters",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "filters",
                "description": "Filters configuration in JSON format.",
                "value": {
                  "type": "Filters | undefined"
                }
              },
              {
                "name": "hideClearAll",
                "description": "Sets whetter the clear all button has to be shown or not",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "filtersConfigs",
                "value": {
                  "type": "RowFilter | undefined"
                }
              },
              {
                "name": "typesPluginsMap",
                "value": {
                  "type": "{\n    [filterType: string]: {\n      render: (filter: Filter) => typeof nothing | TemplateResult | LibraryBaseElement | HTMLElement;\n      instance: AbstractTypePlugin;\n    };\n  }"
                }
              },
              {
                "name": "filtersData",
                "value": {
                  "type": "{ [key: string]: any }"
                }
              },
              {
                "name": "filtersMasterMap",
                "value": {
                  "type": "{ [key: string]: FilterMasterData }"
                }
              },
              {
                "name": "lastFocusedFilterName",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "clearAllContainer",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "filtersConfigUpdated",
                "value": {}
              },
              {
                "name": "isFiltersConfigValid",
                "value": {}
              },
              {
                "name": "initConfig",
                "value": {}
              },
              {
                "name": "getTypePluginMap",
                "value": {}
              },
              {
                "name": "getTypePluginInstance",
                "value": {}
              },
              {
                "name": "getTypePluginFunction",
                "value": {}
              },
              {
                "name": "getValidPropsFromFilterConfig",
                "value": {}
              },
              {
                "name": "isPropMandatory",
                "value": {}
              },
              {
                "name": "checkFilterConfigValidity",
                "value": {}
              },
              {
                "name": "checkCustomElementDefinition",
                "value": {}
              },
              {
                "name": "setPropsToElement",
                "value": {}
              },
              {
                "name": "getFiltersConfigGroupByName",
                "description": "Loop over all the filters and internal items (RowFilter) and return an object with the filter name as a key and the filter config as the value",
                "value": {}
              },
              {
                "name": "setDefaultFilterEvents",
                "value": {}
              },
              {
                "name": "setFiltersMasterMap",
                "value": {}
              },
              {
                "name": "getFilterMasterMap",
                "value": {}
              },
              {
                "name": "updateFilterMasterMap",
                "value": {}
              },
              {
                "name": "focusFilterControlAfterConnectedEvent",
                "description": "Focus a filter control, it is useful when the filters config is updated and a filter control was already focused, so, it keeps the focus",
                "value": {}
              },
              {
                "name": "renderClearAllButton",
                "value": {}
              },
              {
                "name": "shouldRenderClearAllButton",
                "value": {}
              },
              {
                "name": "showClearAllButtonIfNecessary",
                "value": {}
              },
              {
                "name": "setFilterDataByFilterConfig",
                "value": {}
              },
              {
                "name": "getLastFocusedFilterName",
                "value": {}
              },
              {
                "name": "setLastFocusedFilterName",
                "value": {}
              },
              {
                "name": "registerTypePlugin",
                "description": "Adds a new type instance which can be used to extend the filters types support",
                "value": {}
              },
              {
                "name": "registerTypePluginRequestUpdateTimerId",
                "value": {
                  "type": "NodeJS.Timeout | undefined"
                }
              },
              {
                "name": "registerType",
                "description": "Register a new type plugin",
                "value": {}
              },
              {
                "name": "setFilterValue",
                "description": "Sets a filter value by name",
                "value": {}
              },
              {
                "name": "setFilterValueByFilterConfig",
                "description": "Sets a filter value by filter config",
                "value": {}
              },
              {
                "name": "getFilterValue",
                "description": "Gets a filter value by name",
                "value": {}
              },
              {
                "name": "getFiltersData",
                "description": "Gets all filters data",
                "value": {}
              },
              {
                "name": "showFilter",
                "description": "Shows a filter by name, if the `show` param is `false`, the filter will be `hidden`",
                "value": {}
              },
              {
                "name": "hideFilter",
                "description": "Hides a filter by name, the of the filter value is set to `undefined`",
                "value": {}
              },
              {
                "name": "getFilterConfigByName",
                "description": "Gets a filter config by name",
                "value": {}
              },
              {
                "name": "getFilterControlByName",
                "description": "Gets a filter control (Circular element reference) by name",
                "value": {}
              },
              {
                "name": "clearAll",
                "description": "Clear all the filters, sets every value to `undefined`",
                "value": {}
              },
              {
                "name": "createFilterElement",
                "value": {}
              },
              {
                "name": "renderFilters",
                "value": {}
              },
              {
                "name": "name",
                "value": {
                  "type": "string"
                }
              }
            ],
            "events": [
              {
                "name": "o-filter-change",
                "description": "Emitted when an alteration to a filter's value is committed by the user."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "filters",
              "description": "Filters configuration in JSON format.",
              "value": {
                "type": "Filters | undefined"
              }
            },
            {
              "name": "hide-clear-all",
              "description": "Sets whetter the clear all button has to be shown or not",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-format-bytes",
          "description": "",
          "doc-url": "https://circular.decodeit.co/format-bytes",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "value",
                "description": "The number to format in bytes.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "unit",
                "description": "The type of unit to display.",
                "value": {
                  "type": "'byte' | 'bit'"
                }
              },
              {
                "name": "display",
                "description": "Determines how to display the result, e.g. \"100 bytes\", \"100 b\", or \"100b\".",
                "value": {
                  "type": "'long' | 'short' | 'narrow'"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The number to format in bytes.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "unit",
              "description": "The type of unit to display.",
              "value": {
                "type": "'byte' | 'bit'"
              }
            },
            {
              "name": "display",
              "description": "Determines how to display the result, e.g. \"100 bytes\", \"100 b\", or \"100b\".",
              "value": {
                "type": "'long' | 'short' | 'narrow'"
              }
            }
          ]
        },
        {
          "name": "o-format-date",
          "description": "",
          "doc-url": "https://circular.decodeit.co/format-date",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "date",
                "description": "The date/time to format. If not set, the current date and time will be used. When passing a string, it's strongly\nrecommended to use the ISO 8601 format to ensure timezones are handled correctly. To convert a date to this format\nin JavaScript, use [`date.toISOString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).",
                "value": {
                  "type": "Date | string"
                }
              },
              {
                "name": "weekday",
                "description": "The format for displaying the weekday.",
                "value": {
                  "type": "'narrow' | 'short' | 'long'"
                }
              },
              {
                "name": "era",
                "description": "The format for displaying the era.",
                "value": {
                  "type": "'narrow' | 'short' | 'long'"
                }
              },
              {
                "name": "year",
                "description": "The format for displaying the year.",
                "value": {
                  "type": "'numeric' | '2-digit'"
                }
              },
              {
                "name": "month",
                "description": "The format for displaying the month.",
                "value": {
                  "type": "'numeric' | '2-digit' | 'narrow' | 'short' | 'long'"
                }
              },
              {
                "name": "day",
                "description": "The format for displaying the day.",
                "value": {
                  "type": "'numeric' | '2-digit'"
                }
              },
              {
                "name": "hour",
                "description": "The format for displaying the hour.",
                "value": {
                  "type": "'numeric' | '2-digit'"
                }
              },
              {
                "name": "minute",
                "description": "The format for displaying the minute.",
                "value": {
                  "type": "'numeric' | '2-digit'"
                }
              },
              {
                "name": "second",
                "description": "The format for displaying the second.",
                "value": {
                  "type": "'numeric' | '2-digit'"
                }
              },
              {
                "name": "timeZoneName",
                "description": "The format for displaying the time.",
                "value": {
                  "type": "'short' | 'long'"
                }
              },
              {
                "name": "timeZone",
                "description": "The time zone to express the time in.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "hourFormat",
                "description": "The format for displaying the hour.",
                "value": {
                  "type": "'auto' | '12' | '24'"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "date",
              "description": "The date/time to format. If not set, the current date and time will be used. When passing a string, it's strongly\nrecommended to use the ISO 8601 format to ensure timezones are handled correctly. To convert a date to this format\nin JavaScript, use [`date.toISOString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).",
              "value": {
                "type": "Date | string"
              }
            },
            {
              "name": "weekday",
              "description": "The format for displaying the weekday.",
              "value": {
                "type": "'narrow' | 'short' | 'long'"
              }
            },
            {
              "name": "era",
              "description": "The format for displaying the era.",
              "value": {
                "type": "'narrow' | 'short' | 'long'"
              }
            },
            {
              "name": "year",
              "description": "The format for displaying the year.",
              "value": {
                "type": "'numeric' | '2-digit'"
              }
            },
            {
              "name": "month",
              "description": "The format for displaying the month.",
              "value": {
                "type": "'numeric' | '2-digit' | 'narrow' | 'short' | 'long'"
              }
            },
            {
              "name": "day",
              "description": "The format for displaying the day.",
              "value": {
                "type": "'numeric' | '2-digit'"
              }
            },
            {
              "name": "hour",
              "description": "The format for displaying the hour.",
              "value": {
                "type": "'numeric' | '2-digit'"
              }
            },
            {
              "name": "minute",
              "description": "The format for displaying the minute.",
              "value": {
                "type": "'numeric' | '2-digit'"
              }
            },
            {
              "name": "second",
              "description": "The format for displaying the second.",
              "value": {
                "type": "'numeric' | '2-digit'"
              }
            },
            {
              "name": "time-zone-name",
              "description": "The format for displaying the time.",
              "value": {
                "type": "'short' | 'long'"
              }
            },
            {
              "name": "time-zone",
              "description": "The time zone to express the time in.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "hour-format",
              "description": "The format for displaying the hour.",
              "value": {
                "type": "'auto' | '12' | '24'"
              }
            }
          ]
        },
        {
          "name": "o-format-number",
          "description": "",
          "doc-url": "https://circular.decodeit.co/format-number",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "value",
                "description": "The number to format.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "type",
                "description": "The formatting style to use.",
                "value": {
                  "type": "'currency' | 'decimal' | 'percent'"
                }
              },
              {
                "name": "noGrouping",
                "description": "Turns off grouping separators.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "currency",
                "description": "The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code to use when formatting.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "currencyDisplay",
                "description": "How to display the currency.",
                "value": {
                  "type": "'symbol' | 'narrowSymbol' | 'code' | 'name'"
                }
              },
              {
                "name": "minimumIntegerDigits",
                "description": "The minimum number of integer digits to use. Possible values are 1-21.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "minimumFractionDigits",
                "description": "The minimum number of fraction digits to use. Possible values are 0-20.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "maximumFractionDigits",
                "description": "The maximum number of fraction digits to use. Possible values are 0-0.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "minimumSignificantDigits",
                "description": "The minimum number of significant digits to use. Possible values are 1-21.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "maximumSignificantDigits",
                "description": "The maximum number of significant digits to use,. Possible values are 1-21.",
                "value": {
                  "type": "number"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The number to format.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "type",
              "description": "The formatting style to use.",
              "value": {
                "type": "'currency' | 'decimal' | 'percent'"
              }
            },
            {
              "name": "no-grouping",
              "description": "Turns off grouping separators.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "currency",
              "description": "The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code to use when formatting.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "currency-display",
              "description": "How to display the currency.",
              "value": {
                "type": "'symbol' | 'narrowSymbol' | 'code' | 'name'"
              }
            },
            {
              "name": "minimum-integer-digits",
              "description": "The minimum number of integer digits to use. Possible values are 1-21.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "minimum-fraction-digits",
              "description": "The minimum number of fraction digits to use. Possible values are 0-20.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "maximum-fraction-digits",
              "description": "The maximum number of fraction digits to use. Possible values are 0-0.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "minimum-significant-digits",
              "description": "The minimum number of significant digits to use. Possible values are 1-21.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "maximum-significant-digits",
              "description": "The maximum number of significant digits to use,. Possible values are 1-21.",
              "value": {
                "type": "number"
              }
            }
          ]
        },
        {
          "name": "o-grid",
          "description": "",
          "doc-url": "https://circular.decodeit.co/grid",
          "js": {
            "properties": [
              {
                "name": "gridContainer",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "options",
                "description": "Grid options",
                "value": {
                  "type": "GridOptions | undefined"
                }
              },
              {
                "name": "layout",
                "description": "Grid options",
                "value": {
                  "type": "GridLayoutType"
                }
              },
              {
                "name": "customStyles",
                "description": "Custom styles",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "gridInstance",
                "value": {
                  "type": "Grid | undefined"
                }
              },
              {
                "name": "gridInitTimerId",
                "value": {
                  "type": "number | undefined"
                }
              },
              {
                "name": "grid",
                "value": {}
              },
              {
                "name": "gridInit",
                "value": {}
              },
              {
                "name": "gridDestroy",
                "value": {}
              },
              {
                "name": "luxon",
                "value": {
                  "type": "object"
                }
              }
            ],
            "events": [
              {
                "name": "o-grid-init",
                "description": "Emitted after the grid has been initialized. The event detail contains the grid instance and the grid full options used to initialize the Grid."
              },
              {
                "name": "o-grid-destroy",
                "description": "Emitted after the grid has been destroyed."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "options",
              "description": "Grid options",
              "value": {
                "type": "GridOptions | undefined"
              }
            },
            {
              "name": "layout",
              "description": "Grid options",
              "value": {
                "type": "GridLayoutType"
              }
            },
            {
              "name": "custom-styles",
              "description": "Custom styles",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-icon",
          "description": "",
          "doc-url": "https://circular.decodeit.co/icon",
          "js": {
            "properties": [
              {
                "name": "initialRender",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "resolveIcon",
                "description": "Given a URL, this function returns the resulting SVG element or an appropriate error symbol.",
                "value": {}
              },
              {
                "name": "svg",
                "value": {
                  "type": "SVGElement | HTMLTemplateResult | null"
                }
              },
              {
                "name": "name",
                "description": "The name of the icon to draw. Available names depend on the icon library being used.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "src",
                "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "label",
                "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "library",
                "description": "The name of a registered custom icon library.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "getUrl",
                "value": {}
              },
              {
                "name": "handleLabelChange",
                "value": {}
              },
              {
                "name": "setIcon",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-load",
                "description": "Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit."
              },
              {
                "name": "o-error",
                "description": "Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "name",
              "description": "The name of the icon to draw. Available names depend on the icon library being used.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "src",
              "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "label",
              "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "library",
              "description": "The name of a registered custom icon library.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-icon-button",
          "description": "",
          "doc-url": "https://circular.decodeit.co/icon-button",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "button",
                "value": {
                  "type": "HTMLButtonElement | HTMLLinkElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "name",
                "description": "The name of the icon to draw. Available names depend on the icon library being used.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "library",
                "description": "The name of a registered custom icon library.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "src",
                "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "href",
                "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "target",
                "description": "Tells the browser where to open the link. Only used when `href` is set.",
                "value": {
                  "type": "'_blank' | '_parent' | '_self' | '_top' | undefined"
                }
              },
              {
                "name": "download",
                "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "label",
                "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "click",
                "description": "Simulates a click on the icon button.",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the icon button.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the icon button.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the icon button loses focus."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the icon button gains focus."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "name",
              "description": "The name of the icon to draw. Available names depend on the icon library being used.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "library",
              "description": "The name of a registered custom icon library.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "src",
              "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "href",
              "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "target",
              "description": "Tells the browser where to open the link. Only used when `href` is set.",
              "value": {
                "type": "'_blank' | '_parent' | '_self' | '_top' | undefined"
              }
            },
            {
              "name": "download",
              "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "label",
              "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the button.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-image-comparer",
          "description": "",
          "doc-url": "https://circular.decodeit.co/image-comparer",
          "js": {
            "properties": [
              {
                "name": "scopedElement",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "base",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "handle",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "position",
                "description": "The position of the divider as a percentage.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "handleDrag",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handlePositionChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-change",
                "description": "Emitted when the position changes."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "position",
              "description": "The position of the divider as a percentage.",
              "value": {
                "type": "number"
              }
            }
          ]
        },
        {
          "name": "o-include",
          "description": "",
          "doc-url": "https://circular.decodeit.co/include",
          "js": {
            "properties": [
              {
                "name": "src",
                "description": "The location of the HTML file to include. Be sure you trust the content you are including as it will be executed as\ncode and can result in XSS attacks.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "mode",
                "description": "The fetch mode to use.",
                "value": {
                  "type": "'cors' | 'no-cors' | 'same-origin'"
                }
              },
              {
                "name": "allowScripts",
                "description": "Allows included scripts to be executed. Be sure you trust the content you are including as it will be executed as\ncode and can result in XSS attacks.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "executeScript",
                "value": {}
              },
              {
                "name": "handleSrcChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-load",
                "description": "Emitted when the included file is loaded."
              },
              {
                "name": "o-error",
                "description": "Emitted when the included file fails to load due to an error."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "src",
              "description": "The location of the HTML file to include. Be sure you trust the content you are including as it will be executed as\ncode and can result in XSS attacks.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "mode",
              "description": "The fetch mode to use.",
              "value": {
                "type": "'cors' | 'no-cors' | 'same-origin'"
              }
            },
            {
              "name": "allow-scripts",
              "description": "Allows included scripts to be executed. Be sure you trust the content you are including as it will be executed as\ncode and can result in XSS attacks.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-input",
          "description": "",
          "doc-url": "https://circular.decodeit.co/input",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "inputId",
                "value": {}
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "__numberInput",
                "value": {}
              },
              {
                "name": "__dateInput",
                "value": {}
              },
              {
                "name": "type",
                "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
                "value": {
                  "type": "| 'date'\n    | 'datetime-local'\n    | 'email'\n    | 'number'\n    | 'password'\n    | 'search'\n    | 'tel'\n    | 'text'\n    | 'time'\n    | 'url'"
                }
              },
              {
                "name": "name",
                "description": "The name of the input, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the input, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The input's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "filled",
                "description": "Draws a filled input.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "pill",
                "description": "Draws a pill-style input with rounded edges.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "helpText",
                "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "clearable",
                "description": "Adds a clear button when the input is not empty.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the input.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "placeholder",
                "description": "Placeholder text to show as a hint when the input is empty.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "readonly",
                "description": "Makes the input readonly.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "passwordToggle",
                "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "passwordVisible",
                "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "noSpinButtons",
                "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Makes the input a required field.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "pattern",
                "description": "A regular expression pattern to validate input against.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "minlength",
                "description": "The minimum length of input that will be considered valid.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "maxlength",
                "description": "The maximum length of input that will be considered valid.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "min",
                "description": "The input's minimum value. Only applies to date and number input types.",
                "value": {
                  "type": "number | string"
                }
              },
              {
                "name": "max",
                "description": "The input's maximum value. Only applies to date and number input types.",
                "value": {
                  "type": "number | string"
                }
              },
              {
                "name": "step",
                "description": "Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value. Only applies to date and number input types.",
                "value": {
                  "type": "number | 'any'"
                }
              },
              {
                "name": "autocapitalize",
                "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
                "value": {
                  "type": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
                }
              },
              {
                "name": "autocorrect",
                "description": "Indicates whether the browser's autocorrect feature is on or off.",
                "value": {
                  "type": "'off' | 'on'"
                }
              },
              {
                "name": "autocomplete",
                "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "autofocus",
                "description": "Indicates that the input should receive focus on page load.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "enterkeyhint",
                "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
                "value": {
                  "type": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
                }
              },
              {
                "name": "spellcheck",
                "description": "Enables spell checking on the input.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "inputmode",
                "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
                "value": {
                  "type": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
                }
              },
              {
                "name": "valueAsDate",
                "description": "Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. This will use the native `<input type=\"{{type}}\">` implementation and may result in an error.",
                "value": {}
              },
              {
                "name": "valueAsNumber",
                "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted.",
                "value": {}
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleChange",
                "value": {}
              },
              {
                "name": "handleClearClick",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleInput",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handlePasswordToggle",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleStepChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the input.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the input.",
                "value": {}
              },
              {
                "name": "select",
                "description": "Selects all the text in the input.",
                "value": {}
              },
              {
                "name": "setSelectionRange",
                "description": "Sets the start and end positions of the text selection (0-based).",
                "value": {}
              },
              {
                "name": "setRangeText",
                "description": "Replaces a range of text with a new string.",
                "value": {}
              },
              {
                "name": "showPicker",
                "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type).",
                "value": {}
              },
              {
                "name": "stepUp",
                "description": "Increments the value of a numeric input type by the value of the step attribute.",
                "value": {}
              },
              {
                "name": "stepDown",
                "description": "Decrements the value of a numeric input type by the value of the step attribute.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when an alteration to the control's value is committed by the user."
              },
              {
                "name": "o-clear",
                "description": "Emitted when the clear button is activated."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "type",
              "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
              "value": {
                "type": "| 'date'\n    | 'datetime-local'\n    | 'email'\n    | 'number'\n    | 'password'\n    | 'search'\n    | 'tel'\n    | 'text'\n    | 'time'\n    | 'url'"
              }
            },
            {
              "name": "name",
              "description": "The name of the input, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the input, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The input's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "filled",
              "description": "Draws a filled input.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style input with rounded edges.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "help-text",
              "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "clearable",
              "description": "Adds a clear button when the input is not empty.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the input.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "placeholder",
              "description": "Placeholder text to show as a hint when the input is empty.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "readonly",
              "description": "Makes the input readonly.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "password-toggle",
              "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "password-visible",
              "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "no-spin-buttons",
              "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Makes the input a required field.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "pattern",
              "description": "A regular expression pattern to validate input against.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "minlength",
              "description": "The minimum length of input that will be considered valid.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "maxlength",
              "description": "The maximum length of input that will be considered valid.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "min",
              "description": "The input's minimum value. Only applies to date and number input types.",
              "value": {
                "type": "number | string"
              }
            },
            {
              "name": "max",
              "description": "The input's maximum value. Only applies to date and number input types.",
              "value": {
                "type": "number | string"
              }
            },
            {
              "name": "step",
              "description": "Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value. Only applies to date and number input types.",
              "value": {
                "type": "number | 'any'"
              }
            },
            {
              "name": "autocapitalize",
              "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
              "value": {
                "type": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
              }
            },
            {
              "name": "autocorrect",
              "description": "Indicates whether the browser's autocorrect feature is on or off.",
              "value": {
                "type": "'off' | 'on'"
              }
            },
            {
              "name": "autocomplete",
              "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "autofocus",
              "description": "Indicates that the input should receive focus on page load.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "enterkeyhint",
              "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
              "value": {
                "type": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
              }
            },
            {
              "name": "spellcheck",
              "description": "Enables spell checking on the input.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "inputmode",
              "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
              "value": {
                "type": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
              }
            }
          ]
        },
        {
          "name": "o-menu",
          "description": "",
          "doc-url": "https://circular.decodeit.co/menu",
          "js": {
            "properties": [
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleMouseDown",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "isMenuItem",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-select",
                "description": "Emitted when a menu item is selected."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        },
        {
          "name": "o-menu-item",
          "description": "",
          "doc-url": "https://circular.decodeit.co/menu-item",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "cachedTextLabel",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "menuItem",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "type",
                "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
                "value": {
                  "type": "'normal' | 'checkbox'"
                }
              },
              {
                "name": "checked",
                "description": "Draws the item in a checked state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "value",
                "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Draws the menu item in a disabled state, preventing selection.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleDefaultSlotChange",
                "value": {}
              },
              {
                "name": "handleCheckedChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleTypeChange",
                "value": {}
              },
              {
                "name": "getTextLabel",
                "description": "Returns a text label based on the contents of the menu item's default slot.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "type",
              "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
              "value": {
                "type": "'normal' | 'checkbox'"
              }
            },
            {
              "name": "checked",
              "description": "Draws the item in a checked state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "value",
              "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Draws the menu item in a disabled state, preventing selection.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-menu-label",
          "description": "",
          "doc-url": "https://circular.decodeit.co/menu-label",
          "js": {
            "properties": [],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        },
        {
          "name": "o-mutation-observer",
          "description": "",
          "doc-url": "https://circular.decodeit.co/mutation-observer",
          "js": {
            "properties": [
              {
                "name": "mutationObserver",
                "value": {
                  "type": "MutationObserver"
                }
              },
              {
                "name": "attr",
                "description": "Watches for changes to attributes. To watch only specific attributes, separate them by a space, e.g.\n`attr=\"class id title\"`. To watch all attributes, use `*`.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "attrOldValue",
                "description": "Indicates whether or not the attribute's previous value should be recorded when monitoring changes.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "charData",
                "description": "Watches for changes to the character data contained within the node.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "charDataOldValue",
                "description": "Indicates whether or not the previous value of the node's text should be recorded.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "childList",
                "description": "Watches for the addition or removal of new child nodes.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the observer.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleMutation",
                "value": {}
              },
              {
                "name": "startObserver",
                "value": {}
              },
              {
                "name": "stopObserver",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-mutation",
                "description": "Emitted when a mutation occurs."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "attr",
              "description": "Watches for changes to attributes. To watch only specific attributes, separate them by a space, e.g.\n`attr=\"class id title\"`. To watch all attributes, use `*`.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "attr-old-value",
              "description": "Indicates whether or not the attribute's previous value should be recorded when monitoring changes.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "char-data",
              "description": "Watches for changes to the character data contained within the node.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "char-data-old-value",
              "description": "Indicates whether or not the previous value of the node's text should be recorded.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "child-list",
              "description": "Watches for the addition or removal of new child nodes.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the observer.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-navbar",
          "description": "",
          "doc-url": "https://circular.decodeit.co/navbar",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "mode",
                "value": {
                  "type": "Mode"
                }
              },
              {
                "name": "noHamburger",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "selected",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "boxTemplateElement",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "items",
                "value": {
                  "type": "ONavbarItem[]"
                }
              },
              {
                "name": "currentSelected",
                "value": {
                  "type": "ONavbarItem | undefined"
                }
              },
              {
                "name": "currentAncestorSelected",
                "value": {
                  "type": "ONavbarItem | undefined"
                }
              },
              {
                "name": "updateSelected",
                "value": {}
              },
              {
                "name": "handleHamburgerClick",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "handleItemSelect",
                "value": {}
              },
              {
                "name": "handleAncestorSelect",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-select",
                "description": "{ id: string } of selected navbar-item"
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "mode",
              "value": {
                "type": "Mode"
              }
            },
            {
              "name": "no-hamburger",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "selected",
              "value": {
                "type": "string | undefined"
              }
            }
          ]
        },
        {
          "name": "o-navbar-item",
          "description": "",
          "doc-url": "https://circular.decodeit.co/navbar-item",
          "js": {
            "properties": [
              {
                "name": "text",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "count",
                "value": {
                  "type": "number | undefined"
                }
              },
              {
                "name": "isParent",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "accordionOpen",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "accordionElement",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "onAccordionOpenUpdate",
                "value": {}
              },
              {
                "name": "subitems",
                "value": {
                  "type": "ONavbarItem[]"
                }
              },
              {
                "name": "currentSubItemSelected",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "deselect",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "handleReachedMax",
                "value": {}
              },
              {
                "name": "handleChildSelect",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "text",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "count",
              "value": {
                "type": "number | undefined"
              }
            },
            {
              "name": "is-parent",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "accordion-open",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-option",
          "description": "",
          "doc-url": "https://circular.decodeit.co/option",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "cachedTextLabel",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "current",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "selected",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "hasHover",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "value",
                "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Draws the option in a disabled state, preventing selection.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleDefaultSlotChange",
                "value": {}
              },
              {
                "name": "handleMouseEnter",
                "value": {}
              },
              {
                "name": "handleMouseLeave",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleSelectedChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "getTextLabel",
                "description": "Returns a plain text label based on the option's content.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Draws the option in a disabled state, preventing selection.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-popup",
          "description": "",
          "doc-url": "https://circular.decodeit.co/popup",
          "js": {
            "properties": [
              {
                "name": "anchorEl",
                "value": {
                  "type": "Element | VirtualElement | null"
                }
              },
              {
                "name": "cleanup",
                "value": {
                  "type": "ReturnType<typeof autoUpdate> | undefined"
                }
              },
              {
                "name": "popup",
                "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript.",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "arrowEl",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "anchor",
                "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
                "value": {
                  "type": "Element | string | VirtualElement"
                }
              },
              {
                "name": "active",
                "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "placement",
                "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
                "value": {
                  "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
                }
              },
              {
                "name": "strategy",
                "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
                "value": {
                  "type": "'absolute' | 'fixed'"
                }
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the panel away from its anchor.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the panel along its anchor.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "arrow",
                "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "arrowPlacement",
                "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
                "value": {
                  "type": "'start' | 'end' | 'center' | 'anchor'"
                }
              },
              {
                "name": "arrowPadding",
                "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "flip",
                "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "flipFallbackPlacements",
                "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "flipFallbackStrategy",
                "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
                "value": {
                  "type": "'best-fit' | 'initial'"
                }
              },
              {
                "name": "flipBoundary",
                "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "value": {
                  "type": "Element | Element[]"
                }
              },
              {
                "name": "flipPadding",
                "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "shift",
                "description": "Moves the popup along the axis to keep it in view when clipped.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "shiftBoundary",
                "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "value": {
                  "type": "Element | Element[]"
                }
              },
              {
                "name": "shiftPadding",
                "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "autoSize",
                "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
                "value": {
                  "type": "'horizontal' | 'vertical' | 'both'"
                }
              },
              {
                "name": "sync",
                "description": "Syncs the popup's width or height to that of the anchor element.",
                "value": {
                  "type": "'width' | 'height' | 'both'"
                }
              },
              {
                "name": "autoSizeBoundary",
                "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
                "value": {
                  "type": "Element | Element[]"
                }
              },
              {
                "name": "autoSizePadding",
                "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "handleAnchorChange",
                "value": {}
              },
              {
                "name": "start",
                "value": {}
              },
              {
                "name": "stop",
                "value": {}
              },
              {
                "name": "reposition",
                "description": "Forces the popup to recalculate and reposition itself.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-reposition",
                "description": "Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "anchor",
              "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
              "value": {
                "type": "Element | string | VirtualElement"
              }
            },
            {
              "name": "active",
              "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
              "value": {
                "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
              }
            },
            {
              "name": "strategy",
              "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
              "value": {
                "type": "'absolute' | 'fixed'"
              }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the panel away from its anchor.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the panel along its anchor.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "arrow",
              "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "arrow-placement",
              "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
              "value": {
                "type": "'start' | 'end' | 'center' | 'anchor'"
              }
            },
            {
              "name": "arrow-padding",
              "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "flip",
              "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "flip-fallback-placements",
              "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "flip-fallback-strategy",
              "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
              "value": {
                "type": "'best-fit' | 'initial'"
              }
            },
            {
              "name": "flipBoundary",
              "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": {
                "type": "Element | Element[]"
              }
            },
            {
              "name": "flip-padding",
              "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "shift",
              "description": "Moves the popup along the axis to keep it in view when clipped.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "shiftBoundary",
              "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": {
                "type": "Element | Element[]"
              }
            },
            {
              "name": "shift-padding",
              "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "auto-size",
              "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
              "value": {
                "type": "'horizontal' | 'vertical' | 'both'"
              }
            },
            {
              "name": "sync",
              "description": "Syncs the popup's width or height to that of the anchor element.",
              "value": {
                "type": "'width' | 'height' | 'both'"
              }
            },
            {
              "name": "autoSizeBoundary",
              "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
              "value": {
                "type": "Element | Element[]"
              }
            },
            {
              "name": "auto-size-padding",
              "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
              "value": {
                "type": "number"
              }
            }
          ]
        },
        {
          "name": "o-progress-bar",
          "description": "",
          "doc-url": "https://circular.decodeit.co/progress-bar",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "value",
                "description": "The current progress as a percentage, 0 to 100.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "indeterminate",
                "description": "When true, percentage is ignored, the label is hidden, and the progress bar is drawn in an indeterminate state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "A custom label for assistive devices.",
                "value": {
                  "type": "string"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The current progress as a percentage, 0 to 100.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "indeterminate",
              "description": "When true, percentage is ignored, the label is hidden, and the progress bar is drawn in an indeterminate state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "A custom label for assistive devices.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-progress-ring",
          "description": "",
          "doc-url": "https://circular.decodeit.co/progress-ring",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "indicator",
                "value": {
                  "type": "SVGCircleElement"
                }
              },
              {
                "name": "indicatorOffset",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current progress as a percentage, 0 to 100.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "label",
                "description": "A custom label for assistive devices.",
                "value": {
                  "type": "string"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The current progress as a percentage, 0 to 100.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "label",
              "description": "A custom label for assistive devices.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-qr-code",
          "description": "",
          "doc-url": "https://circular.decodeit.co/qr-code",
          "js": {
            "properties": [
              {
                "name": "canvas",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "value",
                "description": "The QR code's value.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "label",
                "description": "The label for assistive devices to announce. If unspecified, the value will be used instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The size of the QR code, in pixels.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "fill",
                "description": "The fill color. This can be any valid CSS color, but not a CSS custom property.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "background",
                "description": "The background color. This can be any valid CSS color or `transparent`. It cannot be a CSS custom property.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "radius",
                "description": "The edge radius of each module. Must be between 0 and 0.5.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "errorCorrection",
                "description": "The level of error correction to use. [Learn more](https://www.qrcode.com/en/about/error_correction.html)",
                "value": {
                  "type": "'L' | 'M' | 'Q' | 'H'"
                }
              },
              {
                "name": "generate",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The QR code's value.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "label",
              "description": "The label for assistive devices to announce. If unspecified, the value will be used instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The size of the QR code, in pixels.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "fill",
              "description": "The fill color. This can be any valid CSS color, but not a CSS custom property.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "background",
              "description": "The background color. This can be any valid CSS color or `transparent`. It cannot be a CSS custom property.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "radius",
              "description": "The edge radius of each module. Must be between 0 and 0.5.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "error-correction",
              "description": "The level of error correction to use. [Learn more](https://www.qrcode.com/en/about/error_correction.html)",
              "value": {
                "type": "'L' | 'M' | 'Q' | 'H'"
              }
            }
          ]
        },
        {
          "name": "o-radio",
          "description": "",
          "doc-url": "https://circular.decodeit.co/radio",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "checked",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "value",
                "description": "The radio's value. When selected, the radio group will receive this value.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the radio.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "setInitialAttributes",
                "value": {}
              },
              {
                "name": "handleCheckedChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The radio's value. When selected, the radio group will receive this value.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the radio.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-radio-button",
          "description": "",
          "doc-url": "https://circular.decodeit.co/radio-button",
          "js": {
            "properties": [
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hiddenInput",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "value",
                "description": "The radio's value. When selected, the radio group will receive this value.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the radio button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "size",
                "description": "The radio button's size. When used inside a radio group, the size will be determined by the radio group's size so\nthis attribute can typically be omitted.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "pill",
                "description": "Draws a pill-style radio button with rounded edges.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the radio button.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the radio button.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the button loses focus."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the button gains focus."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "value",
              "description": "The radio's value. When selected, the radio group will receive this value.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the radio button.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "size",
              "description": "The radio button's size. When used inside a radio group, the size will be determined by the radio group's size so\nthis attribute can typically be omitted.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style radio button with rounded edges.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-radio-group",
          "description": "",
          "doc-url": "https://circular.decodeit.co/radio-group",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "customValidityMessage",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "validationTimeout",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "validationInput",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hasButtonGroup",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "errorMessage",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "defaultValue",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "label",
                "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "helpText",
                "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "name",
                "description": "The name of the radio group, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the radio group, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Ensures a child radio is checked before allowing the containing form to submit.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "getAllRadios",
                "value": {}
              },
              {
                "name": "handleRadioClick",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleLabelClick",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "syncRadioElements",
                "value": {}
              },
              {
                "name": "syncRadios",
                "value": {}
              },
              {
                "name": "updateCheckedRadio",
                "value": {}
              },
              {
                "name": "handleSizeChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-change",
                "description": "Emitted when the radio group's selected value changes."
              },
              {
                "name": "o-input",
                "description": "Emitted when the radio group receives user input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "label",
              "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "help-text",
              "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "name",
              "description": "The name of the radio group, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the radio group, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Ensures a child radio is checked before allowing the containing form to submit.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-range",
          "description": "",
          "doc-url": "https://circular.decodeit.co/range",
          "js": {
            "properties": [
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "resizeObserver",
                "value": {
                  "type": "ResizeObserver"
                }
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "output",
                "value": {
                  "type": "HTMLOutputElement | null"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "hasTooltip",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "name",
                "description": "The name of the range, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the range, submitted as a name/value pair with form data.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "label",
                "description": "The range's label. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "helpText",
                "description": "The range's help text. If you need to display HTML, use the help-text slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the range.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "min",
                "description": "The minimum acceptable value of the range.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "max",
                "description": "The maximum acceptable value of the range.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "step",
                "description": "The interval at which the range will increase and decrease.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "tooltip",
                "description": "The preferred placement of the range's tooltip.",
                "value": {
                  "type": "'top' | 'bottom' | 'none'"
                }
              },
              {
                "name": "tooltipFormatter",
                "description": "A function used to format the tooltip's value. The range's value is passed as the first and only argument. The\nfunction should return a string to display in the tooltip.",
                "value": {
                  "type": "(value: number) => string"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleChange",
                "value": {}
              },
              {
                "name": "handleInput",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleThumbDragStart",
                "value": {}
              },
              {
                "name": "handleThumbDragEnd",
                "value": {}
              },
              {
                "name": "syncProgress",
                "value": {}
              },
              {
                "name": "syncTooltip",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "syncRange",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the range.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the range.",
                "value": {}
              },
              {
                "name": "stepUp",
                "description": "Increments the value of the range by the value of the step attribute.",
                "value": {}
              },
              {
                "name": "stepDown",
                "description": "Decrements the value of the range by the value of the step attribute.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when an alteration to the control's value is committed by the user."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "name",
              "description": "The name of the range, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the range, submitted as a name/value pair with form data.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "label",
              "description": "The range's label. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "help-text",
              "description": "The range's help text. If you need to display HTML, use the help-text slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the range.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "min",
              "description": "The minimum acceptable value of the range.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "max",
              "description": "The maximum acceptable value of the range.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "step",
              "description": "The interval at which the range will increase and decrease.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "tooltip",
              "description": "The preferred placement of the range's tooltip.",
              "value": {
                "type": "'top' | 'bottom' | 'none'"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            }
          ]
        },
        {
          "name": "o-rating",
          "description": "",
          "doc-url": "https://circular.decodeit.co/rating",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "rating",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "hoverValue",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "isHovering",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "A label that describes the rating to assistive devices.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current rating.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "max",
                "description": "The highest rating to show.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "precision",
                "description": "The precision at which the rating will increase and decrease. For example, to allow half-star ratings, set this\nattribute to `0.5`.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "readonly",
                "description": "Makes the rating readonly.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the rating.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "getSymbol",
                "description": "A function that customizes the symbol to be rendered. The first and only argument is the rating's current value.\nThe function should return a string containing trusted HTML of the symbol to render at the specified value. Works\nwell with `<o-icon>` elements.",
                "value": {
                  "type": "(value: number) => string"
                }
              },
              {
                "name": "getValueFromMousePosition",
                "value": {}
              },
              {
                "name": "getValueFromTouchPosition",
                "value": {}
              },
              {
                "name": "getValueFromXCoordinate",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "setValue",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleMouseEnter",
                "value": {}
              },
              {
                "name": "handleMouseMove",
                "value": {}
              },
              {
                "name": "handleMouseLeave",
                "value": {}
              },
              {
                "name": "handleTouchStart",
                "value": {}
              },
              {
                "name": "handleTouchMove",
                "value": {}
              },
              {
                "name": "handleTouchEnd",
                "value": {}
              },
              {
                "name": "roundToPrecision",
                "value": {}
              },
              {
                "name": "handleHoverValueChange",
                "value": {}
              },
              {
                "name": "handleIsHoveringChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the rating.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the rating.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-change",
                "description": "Emitted when the rating's value changes."
              },
              {
                "name": "o-hover",
                "description": "Emitted when the user hovers over a value. The `phase` property indicates when hovering starts, moves to a new value, or ends. The `value` property tells what the rating's value would be if the user were to commit to the hovered value."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "label",
              "description": "A label that describes the rating to assistive devices.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current rating.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "max",
              "description": "The highest rating to show.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "precision",
              "description": "The precision at which the rating will increase and decrease. For example, to allow half-star ratings, set this\nattribute to `0.5`.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "readonly",
              "description": "Makes the rating readonly.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the rating.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "getSymbol",
              "description": "A function that customizes the symbol to be rendered. The first and only argument is the rating's current value.\nThe function should return a string containing trusted HTML of the symbol to render at the specified value. Works\nwell with `<o-icon>` elements.",
              "value": {
                "type": "(value: number) => string"
              }
            }
          ]
        },
        {
          "name": "o-relative-time",
          "description": "",
          "doc-url": "https://circular.decodeit.co/relative-time",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "updateTimeout",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "isoTime",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "relativeTime",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "titleTime",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "date",
                "description": "The date from which to calculate time from. If not set, the current date and time will be used. When passing a\nstring, it's strongly recommended to use the ISO 8601 format to ensure timezones are handled correctly. To convert\na date to this format in JavaScript, use [`date.toISOString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).",
                "value": {
                  "type": "Date | string"
                }
              },
              {
                "name": "format",
                "description": "The formatting style to use.",
                "value": {
                  "type": "'long' | 'short' | 'narrow'"
                }
              },
              {
                "name": "numeric",
                "description": "When `auto`, values such as \"yesterday\" and \"tomorrow\" will be shown when possible. When `always`, values such as\n\"1 day ago\" and \"in 1 day\" will be shown.",
                "value": {
                  "type": "'always' | 'auto'"
                }
              },
              {
                "name": "sync",
                "description": "Keep the displayed value up to date as time passes.",
                "value": {
                  "type": "boolean"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "date",
              "description": "The date from which to calculate time from. If not set, the current date and time will be used. When passing a\nstring, it's strongly recommended to use the ISO 8601 format to ensure timezones are handled correctly. To convert\na date to this format in JavaScript, use [`date.toISOString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).",
              "value": {
                "type": "Date | string"
              }
            },
            {
              "name": "format",
              "description": "The formatting style to use.",
              "value": {
                "type": "'long' | 'short' | 'narrow'"
              }
            },
            {
              "name": "numeric",
              "description": "When `auto`, values such as \"yesterday\" and \"tomorrow\" will be shown when possible. When `always`, values such as\n\"1 day ago\" and \"in 1 day\" will be shown.",
              "value": {
                "type": "'always' | 'auto'"
              }
            },
            {
              "name": "sync",
              "description": "Keep the displayed value up to date as time passes.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-resize-observer",
          "description": "",
          "doc-url": "https://circular.decodeit.co/resize-observer",
          "js": {
            "properties": [
              {
                "name": "resizeObserver",
                "value": {
                  "type": "ResizeObserver"
                }
              },
              {
                "name": "observedElements",
                "value": {
                  "type": "HTMLElement[]"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the observer.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "startObserver",
                "value": {}
              },
              {
                "name": "stopObserver",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-resize",
                "description": "Emitted when the element is resized."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "disabled",
              "description": "Disables the observer.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-select",
          "description": "",
          "doc-url": "https://circular.decodeit.co/select",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "typeToSelectString",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "typeToSelectTimeout",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "popup",
                "value": {
                  "type": "OPopup"
                }
              },
              {
                "name": "combobox",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "displayInput",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "valueInput",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "listbox",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "autocompleteInput",
                "value": {
                  "type": "OInput"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "displayLabel",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "currentOption",
                "value": {
                  "type": "OOption"
                }
              },
              {
                "name": "selectedOptions",
                "value": {
                  "type": "OOption[]"
                }
              },
              {
                "name": "name",
                "description": "The name of the select, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.",
                "value": {
                  "type": "string | string[]"
                }
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "string | string[]"
                }
              },
              {
                "name": "size",
                "description": "The select's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "placeholder",
                "description": "Placeholder text to show as a hint when the select is empty.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "multiple",
                "description": "Allows more than one option to be selected.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "maxOptionsVisible",
                "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the select control.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "clearable",
                "description": "Adds a clear button when the select is not empty.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "filled",
                "description": "Draws a filled select.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "pill",
                "description": "Draws a pill-style select with rounded edges.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "placement",
                "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
                "value": {
                  "type": "'top' | 'bottom'"
                }
              },
              {
                "name": "helpText",
                "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "The select's required attribute.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "autocomplete",
                "description": "Shows an input on top of the options list, it helps the user to filter the options while typing",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "autocompleteExternal",
                "description": "When autocomplete and autocomplete-external are set, the options filtering has to be done externally, out of the component context",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "addOpenListeners",
                "value": {}
              },
              {
                "name": "removeOpenListeners",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleDocumentFocusIn",
                "value": {}
              },
              {
                "name": "handleDocumentKeyDown",
                "value": {}
              },
              {
                "name": "handleDocumentMouseDown",
                "value": {}
              },
              {
                "name": "handleLabelClick",
                "value": {}
              },
              {
                "name": "handleComboboxMouseDown",
                "value": {}
              },
              {
                "name": "handleComboboxKeyDown",
                "value": {}
              },
              {
                "name": "handleClearClick",
                "value": {}
              },
              {
                "name": "handleClearMouseDown",
                "value": {}
              },
              {
                "name": "handleOptionClick",
                "value": {}
              },
              {
                "name": "handleDefaultSlotChange",
                "value": {}
              },
              {
                "name": "handleTagRemove",
                "value": {}
              },
              {
                "name": "getOptionsInSlot",
                "value": {}
              },
              {
                "name": "getAllOptions",
                "value": {}
              },
              {
                "name": "getFirstOption",
                "value": {}
              },
              {
                "name": "setCurrentOption",
                "value": {}
              },
              {
                "name": "setSelectedOptions",
                "value": {}
              },
              {
                "name": "toggleOptionSelection",
                "value": {}
              },
              {
                "name": "selectionChanged",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "handleAutocompleteInput",
                "value": {}
              },
              {
                "name": "autocompleteInputEventTimer",
                "value": {
                  "type": "number | null"
                }
              },
              {
                "name": "dispatchAutocompleteInputEvent",
                "value": {}
              },
              {
                "name": "autocompleteExternalSelectOption",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the listbox.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the listbox.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the control.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the control.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-change",
                "description": "Emitted when the control's value changes."
              },
              {
                "name": "o-clear",
                "description": "Emitted when the control's value is cleared."
              },
              {
                "name": "o-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-show",
                "description": "Emitted when the select's menu opens."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the select's menu opens and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the select's menu closes."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the select's menu closes and all animations are complete."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-autocomplete-input",
                "description": "Emitted when the autocomplete control receives input."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "name",
              "description": "The name of the select, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.",
              "value": {
                "type": "string | string[]"
              }
            },
            {
              "name": "size",
              "description": "The select's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "placeholder",
              "description": "Placeholder text to show as a hint when the select is empty.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "multiple",
              "description": "Allows more than one option to be selected.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "max-options-visible",
              "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the select control.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "clearable",
              "description": "Adds a clear button when the select is not empty.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "open",
              "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "filled",
              "description": "Draws a filled select.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style select with rounded edges.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
              "value": {
                "type": "'top' | 'bottom'"
              }
            },
            {
              "name": "help-text",
              "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "The select's required attribute.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "autocomplete",
              "description": "Shows an input on top of the options list, it helps the user to filter the options while typing",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "autocomplete-external",
              "description": "When autocomplete and autocomplete-external are set, the options filtering has to be done externally, out of the component context",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-skeleton",
          "description": "",
          "doc-url": "https://circular.decodeit.co/skeleton",
          "js": {
            "properties": [
              {
                "name": "effect",
                "description": "Determines which effect the skeleton will use.",
                "value": {
                  "type": "'pulse' | 'sheen' | 'none'"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "effect",
              "description": "Determines which effect the skeleton will use.",
              "value": {
                "type": "'pulse' | 'sheen' | 'none'"
              }
            }
          ]
        },
        {
          "name": "o-spinner",
          "description": "",
          "doc-url": "https://circular.decodeit.co/spinner",
          "js": {
            "properties": [
              {
                "name": "localize",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        },
        {
          "name": "o-split-panel",
          "description": "",
          "doc-url": "https://circular.decodeit.co/split-panel",
          "js": {
            "properties": [
              {
                "name": "cachedPositionInPixels",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "resizeObserver",
                "value": {
                  "type": "ResizeObserver"
                }
              },
              {
                "name": "size",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "divider",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "position",
                "description": "The current position of the divider from the primary panel's edge as a percentage 0-100. Defaults to 50% of the\ncontainer's initial size.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "positionInPixels",
                "description": "The current position of the divider from the primary panel's edge in pixels.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "vertical",
                "description": "Draws the split panel in a vertical orientation with the start and end panels stacked.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables resizing. Note that the position may still change as a result of resizing the host element.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "primary",
                "description": "If no primary panel is designated, both panels will resize proportionally when the host element is resized. If a\nprimary panel is designated, it will maintain its size and the other panel will grow or shrink as needed when the\nhost element is resized.",
                "value": {
                  "type": "'start' | 'end' | undefined"
                }
              },
              {
                "name": "snap",
                "description": "One or more space-separated values at which the divider should snap. Values can be in pixels or percentages, e.g.\n`\"100px 50%\"`.",
                "value": {
                  "type": "string | undefined"
                }
              },
              {
                "name": "snapThreshold",
                "description": "How close the divider must be to a snap point until snapping occurs.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "detectSize",
                "value": {}
              },
              {
                "name": "percentageToPixels",
                "value": {}
              },
              {
                "name": "pixelsToPercentage",
                "value": {}
              },
              {
                "name": "handleDrag",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleResize",
                "value": {}
              },
              {
                "name": "handlePositionChange",
                "value": {}
              },
              {
                "name": "handlePositionInPixelsChange",
                "value": {}
              },
              {
                "name": "handleVerticalChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-reposition",
                "description": "Emitted when the divider's position changes."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "position",
              "description": "The current position of the divider from the primary panel's edge as a percentage 0-100. Defaults to 50% of the\ncontainer's initial size.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "position-in-pixels",
              "description": "The current position of the divider from the primary panel's edge in pixels.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "vertical",
              "description": "Draws the split panel in a vertical orientation with the start and end panels stacked.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables resizing. Note that the position may still change as a result of resizing the host element.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "primary",
              "description": "If no primary panel is designated, both panels will resize proportionally when the host element is resized. If a\nprimary panel is designated, it will maintain its size and the other panel will grow or shrink as needed when the\nhost element is resized.",
              "value": {
                "type": "'start' | 'end' | undefined"
              }
            },
            {
              "name": "snap",
              "description": "One or more space-separated values at which the divider should snap. Values can be in pixels or percentages, e.g.\n`\"100px 50%\"`.",
              "value": {
                "type": "string | undefined"
              }
            },
            {
              "name": "snap-threshold",
              "description": "How close the divider must be to a snap point until snapping occurs.",
              "value": {
                "type": "number"
              }
            }
          ]
        },
        {
          "name": "o-switch",
          "description": "",
          "doc-url": "https://circular.decodeit.co/switch",
          "js": {
            "properties": [
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLInputElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "name",
                "description": "The name of the switch, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the switch, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The switch's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the switch.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "checked",
                "description": "Draws the switch in a checked state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "defaultChecked",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Makes the switch a required field.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleInput",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleCheckedChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "click",
                "description": "Simulates a click on the switch.",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the switch.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the switch.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when the control's checked state changes."
              },
              {
                "name": "o-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "name",
              "description": "The name of the switch, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the switch, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The switch's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the switch.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "checked",
              "description": "Draws the switch in a checked state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Makes the switch a required field.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-tab",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tab",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "attrId",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "componentId",
                "value": {}
              },
              {
                "name": "tab",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "panel",
                "description": "The name of the tab panel this tab is associated with. The panel must be located in the same tab group.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "active",
                "description": "Draws the tab in an active state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "closable",
                "description": "Makes the tab closable and shows a close button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the tab and prevents selection.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleCloseClick",
                "value": {}
              },
              {
                "name": "handleActiveChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus to the tab.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the tab.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-close",
                "description": "Emitted when the tab is closable and the close button is activated."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "panel",
              "description": "The name of the tab panel this tab is associated with. The panel must be located in the same tab group.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "active",
              "description": "Draws the tab in an active state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "closable",
              "description": "Makes the tab closable and shows a close button.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the tab and prevents selection.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-tab-group",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tab-group",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "activeTab",
                "value": {
                  "type": "OTab | undefined"
                }
              },
              {
                "name": "mutationObserver",
                "value": {
                  "type": "MutationObserver"
                }
              },
              {
                "name": "resizeObserver",
                "value": {
                  "type": "ResizeObserver"
                }
              },
              {
                "name": "tabs",
                "value": {
                  "type": "OTab[]"
                }
              },
              {
                "name": "panels",
                "value": {
                  "type": "OTabPanel[]"
                }
              },
              {
                "name": "tabGroup",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "body",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "nav",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "indicator",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "hasScrollControls",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "placement",
                "description": "The placement of the tabs.",
                "value": {
                  "type": "'top' | 'bottom' | 'start' | 'end'"
                }
              },
              {
                "name": "activation",
                "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
                "value": {
                  "type": "'auto' | 'manual'"
                }
              },
              {
                "name": "noScrollControls",
                "description": "Disables the scroll arrows that appear when tabs overflow.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "getAllTabs",
                "value": {}
              },
              {
                "name": "getAllPanels",
                "value": {}
              },
              {
                "name": "getActiveTab",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleScrollToStart",
                "value": {}
              },
              {
                "name": "handleScrollToEnd",
                "value": {}
              },
              {
                "name": "setActiveTab",
                "value": {}
              },
              {
                "name": "setAriaLabels",
                "value": {}
              },
              {
                "name": "repositionIndicator",
                "value": {}
              },
              {
                "name": "syncTabsAndPanels",
                "value": {}
              },
              {
                "name": "updateScrollControls",
                "value": {}
              },
              {
                "name": "syncIndicator",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the specified tab panel.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-tab-show",
                "description": "Emitted when a tab is shown."
              },
              {
                "name": "o-tab-hide",
                "description": "Emitted when a tab is hidden."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "placement",
              "description": "The placement of the tabs.",
              "value": {
                "type": "'top' | 'bottom' | 'start' | 'end'"
              }
            },
            {
              "name": "activation",
              "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
              "value": {
                "type": "'auto' | 'manual'"
              }
            },
            {
              "name": "no-scroll-controls",
              "description": "Disables the scroll arrows that appear when tabs overflow.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-tab-panel",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tab-panel",
          "js": {
            "properties": [
              {
                "name": "attrId",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "componentId",
                "value": {}
              },
              {
                "name": "name",
                "description": "The tab panel's name.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "active",
                "description": "When true, the tab panel will be shown.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleActiveChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "name",
              "description": "The tab panel's name.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "active",
              "description": "When true, the tab panel will be shown.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-tag",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tag",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "variant",
                "description": "The tag's theme variant.",
                "value": {
                  "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger' | 'text'"
                }
              },
              {
                "name": "size",
                "description": "The tag's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "pill",
                "description": "Draws a pill-style tag with rounded edges.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "removable",
                "description": "Makes the tag removable and shows a remove button.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleRemoveClick",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-remove",
                "description": "Emitted when the remove button is activated."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "variant",
              "description": "The tag's theme variant.",
              "value": {
                "type": "'primary' | 'success' | 'neutral' | 'warning' | 'danger' | 'text'"
              }
            },
            {
              "name": "size",
              "description": "The tag's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "pill",
              "description": "Draws a pill-style tag with rounded edges.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "removable",
              "description": "Makes the tag removable and shows a remove button.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-textarea",
          "description": "",
          "doc-url": "https://circular.decodeit.co/textarea",
          "js": {
            "properties": [
              {
                "name": "formControlController",
                "value": {}
              },
              {
                "name": "hasSlotController",
                "value": {}
              },
              {
                "name": "resizeObserver",
                "value": {
                  "type": "ResizeObserver"
                }
              },
              {
                "name": "textareaId",
                "value": {}
              },
              {
                "name": "input",
                "value": {
                  "type": "HTMLTextAreaElement"
                }
              },
              {
                "name": "hasFocus",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "title",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "name",
                "description": "The name of the textarea, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "value",
                "description": "The current value of the textarea, submitted as a name/value pair with form data.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "size",
                "description": "The textarea's size.",
                "value": {
                  "type": "'small' | 'medium' | 'large'"
                }
              },
              {
                "name": "filled",
                "description": "Draws a filled textarea.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "label",
                "description": "The textarea's label. If you need to display HTML, use the `label` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "helpText",
                "description": "The textarea's help text. If you need to display HTML, use the `help-text` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "placeholder",
                "description": "Placeholder text to show as a hint when the input is empty.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "rows",
                "description": "The number of rows to display by default.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "resize",
                "description": "Controls how the textarea can be resized.",
                "value": {
                  "type": "'none' | 'vertical' | 'auto'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the textarea.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "readonly",
                "description": "Makes the textarea readonly.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "form",
                "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "required",
                "description": "Makes the textarea a required field.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "minlength",
                "description": "The minimum length of input that will be considered valid.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "maxlength",
                "description": "The maximum length of input that will be considered valid.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "autocapitalize",
                "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
                "value": {
                  "type": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
                }
              },
              {
                "name": "autocorrect",
                "description": "Indicates whether the browser's autocorrect feature is on or off.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "autocomplete",
                "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "autofocus",
                "description": "Indicates that the input should receive focus on page load.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "enterkeyhint",
                "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
                "value": {
                  "type": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
                }
              },
              {
                "name": "spellcheck",
                "description": "Enables spell checking on the textarea.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "inputmode",
                "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
                "value": {
                  "type": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
                }
              },
              {
                "name": "defaultValue",
                "description": "The default value of the form control. Primarily used for resetting the form control.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "validity",
                "description": "Gets the validity state object",
                "value": {}
              },
              {
                "name": "validationMessage",
                "description": "Gets the validation message",
                "value": {}
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleChange",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleInput",
                "value": {}
              },
              {
                "name": "handleInvalid",
                "value": {}
              },
              {
                "name": "setTextareaHeight",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleRowsChange",
                "value": {}
              },
              {
                "name": "handleValueChange",
                "value": {}
              },
              {
                "name": "focus",
                "description": "Sets focus on the textarea.",
                "value": {}
              },
              {
                "name": "blur",
                "description": "Removes focus from the textarea.",
                "value": {}
              },
              {
                "name": "select",
                "description": "Selects all the text in the textarea.",
                "value": {}
              },
              {
                "name": "scrollPosition",
                "description": "Gets or sets the textarea's scroll position.",
                "value": {}
              },
              {
                "name": "setSelectionRange",
                "description": "Sets the start and end positions of the text selection (0-based).",
                "value": {}
              },
              {
                "name": "setRangeText",
                "description": "Replaces a range of text with a new string.",
                "value": {}
              },
              {
                "name": "checkValidity",
                "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.",
                "value": {}
              },
              {
                "name": "getForm",
                "description": "Gets the associated form, if one exists.",
                "value": {}
              },
              {
                "name": "reportValidity",
                "description": "Checks for validity and shows the browser's validation message if the control is invalid.",
                "value": {}
              },
              {
                "name": "setCustomValidity",
                "description": "Sets a custom validation message. Pass an empty string to restore validity.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-blur",
                "description": "Emitted when the control loses focus."
              },
              {
                "name": "o-change",
                "description": "Emitted when an alteration to the control's value is committed by the user."
              },
              {
                "name": "o-focus",
                "description": "Emitted when the control gains focus."
              },
              {
                "name": "o-input",
                "description": "Emitted when the control receives input."
              },
              {
                "name": "o-invalid",
                "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "title",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "name",
              "description": "The name of the textarea, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "value",
              "description": "The current value of the textarea, submitted as a name/value pair with form data.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "size",
              "description": "The textarea's size.",
              "value": {
                "type": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "filled",
              "description": "Draws a filled textarea.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "label",
              "description": "The textarea's label. If you need to display HTML, use the `label` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "help-text",
              "description": "The textarea's help text. If you need to display HTML, use the `help-text` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "placeholder",
              "description": "Placeholder text to show as a hint when the input is empty.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "rows",
              "description": "The number of rows to display by default.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "resize",
              "description": "Controls how the textarea can be resized.",
              "value": {
                "type": "'none' | 'vertical' | 'auto'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the textarea.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "readonly",
              "description": "Makes the textarea readonly.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "form",
              "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "required",
              "description": "Makes the textarea a required field.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "minlength",
              "description": "The minimum length of input that will be considered valid.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "maxlength",
              "description": "The maximum length of input that will be considered valid.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "autocapitalize",
              "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
              "value": {
                "type": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
              }
            },
            {
              "name": "autocorrect",
              "description": "Indicates whether the browser's autocorrect feature is on or off.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "autocomplete",
              "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "autofocus",
              "description": "Indicates that the input should receive focus on page load.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "enterkeyhint",
              "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
              "value": {
                "type": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
              }
            },
            {
              "name": "spellcheck",
              "description": "Enables spell checking on the textarea.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "inputmode",
              "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
              "value": {
                "type": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
              }
            }
          ]
        },
        {
          "name": "o-tooltip",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tooltip",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "hoverTimeout",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "body",
                "value": {
                  "type": "HTMLElement"
                }
              },
              {
                "name": "popup",
                "value": {
                  "type": "OPopup"
                }
              },
              {
                "name": "content",
                "description": "The tooltip's content. If you need to display HTML, use the `content` slot instead.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "placement",
                "description": "The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\ninside of the viewport.",
                "value": {
                  "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the tooltip so it won't show when triggered.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "distance",
                "description": "The distance in pixels from which to offset the tooltip away from its target.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "open",
                "description": "Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "skidding",
                "description": "The distance in pixels from which to offset the tooltip along its target.",
                "value": {
                  "type": "number"
                }
              },
              {
                "name": "trigger",
                "description": "Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\noptions can be passed by separating them with a space. When manual is used, the tooltip must be activated\nprogrammatically.",
                "value": {
                  "type": "string"
                }
              },
              {
                "name": "hoist",
                "description": "Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n`overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\nscenarios.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "handleBlur",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleFocus",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleMouseOver",
                "value": {}
              },
              {
                "name": "handleMouseOut",
                "value": {}
              },
              {
                "name": "hasTrigger",
                "value": {}
              },
              {
                "name": "handleOpenChange",
                "value": {}
              },
              {
                "name": "handleOptionsChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "show",
                "description": "Shows the tooltip.",
                "value": {}
              },
              {
                "name": "hide",
                "description": "Hides the tooltip",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-show",
                "description": "Emitted when the tooltip begins to show."
              },
              {
                "name": "o-after-show",
                "description": "Emitted after the tooltip has shown and all animations are complete."
              },
              {
                "name": "o-hide",
                "description": "Emitted when the tooltip begins to hide."
              },
              {
                "name": "o-after-hide",
                "description": "Emitted after the tooltip has hidden and all animations are complete."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "content",
              "description": "The tooltip's content. If you need to display HTML, use the `content` slot instead.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "placement",
              "description": "The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\ninside of the viewport.",
              "value": {
                "type": "| 'top'\n    | 'top-start'\n    | 'top-end'\n    | 'right'\n    | 'right-start'\n    | 'right-end'\n    | 'bottom'\n    | 'bottom-start'\n    | 'bottom-end'\n    | 'left'\n    | 'left-start'\n    | 'left-end'"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the tooltip so it won't show when triggered.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "distance",
              "description": "The distance in pixels from which to offset the tooltip away from its target.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "open",
              "description": "Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "skidding",
              "description": "The distance in pixels from which to offset the tooltip along its target.",
              "value": {
                "type": "number"
              }
            },
            {
              "name": "trigger",
              "description": "Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\noptions can be passed by separating them with a space. When manual is used, the tooltip must be activated\nprogrammatically.",
              "value": {
                "type": "string"
              }
            },
            {
              "name": "hoist",
              "description": "Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n`overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\nscenarios.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-tree",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tree",
          "js": {
            "properties": [
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "expandedIconSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "collapsedIconSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "selection",
                "description": "The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\ndisplays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.",
                "value": {
                  "type": "'single' | 'multiple' | 'leaf'"
                }
              },
              {
                "name": "lastFocusedItem",
                "value": {
                  "type": "OTreeItem | null"
                }
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "mutationObserver",
                "value": {
                  "type": "MutationObserver"
                }
              },
              {
                "name": "clickTarget",
                "value": {
                  "type": "OTreeItem | null"
                }
              },
              {
                "name": "getExpandButtonIcon",
                "value": {}
              },
              {
                "name": "initTreeItem",
                "value": {}
              },
              {
                "name": "handleTreeChanged",
                "value": {}
              },
              {
                "name": "syncTreeItems",
                "value": {}
              },
              {
                "name": "selectItem",
                "value": {}
              },
              {
                "name": "getAllTreeItems",
                "value": {}
              },
              {
                "name": "focusItem",
                "value": {}
              },
              {
                "name": "handleKeyDown",
                "value": {}
              },
              {
                "name": "handleClick",
                "value": {}
              },
              {
                "name": "handleMouseDown",
                "value": {}
              },
              {
                "name": "handleFocusOut",
                "value": {}
              },
              {
                "name": "handleFocusIn",
                "value": {}
              },
              {
                "name": "handleSlotChange",
                "value": {}
              },
              {
                "name": "handleSelectionChange",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-selection-change",
                "description": "Emitted when a tree item is selected or deselected."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "selection",
              "description": "The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\ndisplays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.",
              "value": {
                "type": "'single' | 'multiple' | 'leaf'"
              }
            }
          ]
        },
        {
          "name": "o-tree-item",
          "description": "",
          "doc-url": "https://circular.decodeit.co/tree-item",
          "js": {
            "properties": [
              {
                "name": "dependencies",
                "value": {
                  "type": "object"
                }
              },
              {
                "name": "isTreeItem",
                "value": {}
              },
              {
                "name": "localize",
                "value": {}
              },
              {
                "name": "indeterminate",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "isLeaf",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "loading",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "selectable",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "expanded",
                "description": "Expands the tree item.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "selected",
                "description": "Draws the tree item in a selected state.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "disabled",
                "description": "Disables the tree item.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "lazy",
                "description": "Enables lazy loading behavior.",
                "value": {
                  "type": "boolean"
                }
              },
              {
                "name": "defaultSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "childrenSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "itemElement",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "childrenContainer",
                "value": {
                  "type": "HTMLDivElement"
                }
              },
              {
                "name": "expandButtonSlot",
                "value": {
                  "type": "HTMLSlotElement"
                }
              },
              {
                "name": "animateCollapse",
                "value": {}
              },
              {
                "name": "isNestedItem",
                "value": {}
              },
              {
                "name": "handleChildrenSlotChange",
                "value": {}
              },
              {
                "name": "animateExpand",
                "value": {}
              },
              {
                "name": "handleLoadingChange",
                "value": {}
              },
              {
                "name": "handleDisabledChange",
                "value": {}
              },
              {
                "name": "handleSelectedChange",
                "value": {}
              },
              {
                "name": "handleExpandedChange",
                "value": {}
              },
              {
                "name": "handleExpandAnimation",
                "value": {}
              },
              {
                "name": "handleLazyChange",
                "value": {}
              },
              {
                "name": "getChildrenItems",
                "description": "Gets all the nested tree items in this node.",
                "value": {}
              }
            ],
            "events": [
              {
                "name": "o-expand",
                "description": "Emitted when the tree item expands."
              },
              {
                "name": "o-after-expand",
                "description": "Emitted after the tree item expands and all animations are complete."
              },
              {
                "name": "o-collapse",
                "description": "Emitted when the tree item collapses."
              },
              {
                "name": "o-after-collapse",
                "description": "Emitted after the tree item collapses and all animations are complete."
              },
              {
                "name": "o-lazy-change",
                "description": "Emitted when the tree item's lazy state changes."
              },
              {
                "name": "o-lazy-load",
                "description": "Emitted when a lazy item is selected. Use this event to asynchronously load data and append items to the tree before expanding. After appending new items, remove the `lazy` attribute to remove the loading state and update the tree."
              },
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "expanded",
              "description": "Expands the tree item.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "selected",
              "description": "Draws the tree item in a selected state.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "disabled",
              "description": "Disables the tree item.",
              "value": {
                "type": "boolean"
              }
            },
            {
              "name": "lazy",
              "description": "Enables lazy loading behavior.",
              "value": {
                "type": "boolean"
              }
            }
          ]
        },
        {
          "name": "o-typography",
          "description": "",
          "doc-url": "https://circular.decodeit.co/typography",
          "js": {
            "properties": [
              {
                "name": "variant",
                "value": {
                  "type": "Variant"
                }
              }
            ],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": [
            {
              "name": "variant",
              "value": {
                "type": "Variant"
              }
            }
          ]
        },
        {
          "name": "o-visually-hidden",
          "description": "",
          "doc-url": "https://circular.decodeit.co/visually-hidden",
          "js": {
            "properties": [],
            "events": [
              {
                "name": "o-connected",
                "description": "Fired when the component is added to the document's DOM."
              },
              {
                "name": "o-disconnected",
                "description": "Fired when the component is removed from the document's DOM."
              }
            ]
          },
          "attributes": []
        }
      ]
    }
  }
}