{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "src/address-autocomplete.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Form-associated text input with a suggestion dropdown. Works as a\ndrop-in replacement for a plain `<input name=\"address\">`: consumers keep\nreading `new FormData(form).get(\"address\")` and calling `form.reset()`\nunchanged.\n\nSupports two suggestion sources:\n- **API** (default): fetches from `endpoint`, a Mapbox Geocoding v6-shaped\n  forward-geocode URL, debounced as the user types.\n- **Local array**: set `suggestions` to a fixed `AddressSuggestion[]` and\n  the component filters it client-side instead of making any network\n  request. Useful for small/fixed address lists, offline use, or tests.\n  Takes priority over `endpoint` whenever it's non-null.",
          "name": "AddressAutocomplete",
          "members": [
            {
              "kind": "field",
              "name": "formAssociated",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "true"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current input value; also the form-associated value submitted with the form.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Placeholder text shown when the input is empty.",
              "attribute": "placeholder"
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the input as required for native form validation.",
              "attribute": "required"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the input and closes its suggestion popup.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "types",
              "type": {
                "text": "string"
              },
              "default": "\"address\"",
              "description": "Mapbox `types` param, e.g. \"address\" or \"address,poi\".",
              "attribute": "types"
            },
            {
              "kind": "field",
              "name": "endpoint",
              "type": {
                "text": "string"
              },
              "default": "\"https://api.mapbox.com/search/geocode/v6/forward\"",
              "description": "Geocoding endpoint URL. Defaults to the Mapbox Geocoding v6 forward URL.",
              "attribute": "endpoint"
            },
            {
              "kind": "field",
              "name": "accessToken",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Mapbox access token. Required for requests to succeed.",
              "attribute": "access-token"
            },
            {
              "kind": "field",
              "name": "bbox",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Optional bounding box bias, comma-separated `west,south,east,north`.",
              "attribute": "bbox"
            },
            {
              "kind": "field",
              "name": "proximity",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Optional proximity bias, comma-separated `lng,lat`.",
              "attribute": "proximity"
            },
            {
              "kind": "field",
              "name": "debounce",
              "type": {
                "text": "number"
              },
              "default": "300",
              "description": "Debounce delay (ms) before firing a geocode request after typing.",
              "attribute": "debounce"
            },
            {
              "kind": "field",
              "name": "minLength",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Minimum query length before suggestions are fetched.",
              "attribute": "min-length"
            },
            {
              "kind": "field",
              "name": "suggestions",
              "type": {
                "text": "AddressSuggestion[] | null"
              },
              "default": "null",
              "description": "Fixed candidate list to filter locally instead of fetching from\n`endpoint`. When set (non-null), no network request is ever made —\nthis takes priority over the API mode."
            },
            {
              "kind": "field",
              "name": "_suggestions",
              "type": {
                "text": "AddressSuggestion[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_open",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_activeIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "_formDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#internals",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "#lastPicked",
              "privacy": "private",
              "type": {
                "text": "AddressSuggestion | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#debounceTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#abortController",
              "privacy": "private",
              "type": {
                "text": "AbortController | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#isComposing",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionJustEnded",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionEndTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#listboxId",
              "privacy": "private",
              "readonly": true,
              "default": "`address-autocomplete-listbox-${++instanceCount}`"
            },
            {
              "kind": "field",
              "name": "#isDisabled",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the host or an ancestor fieldset currently disables the control.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "selectedSuggestion",
              "type": {
                "text": "AddressSuggestion | null"
              },
              "description": "Last-picked suggestion, or null once the input diverges from it.",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "formResetCallback",
              "description": "Resets to empty on `form.reset()`, per the form-associated custom element contract."
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Mirrors ancestor fieldset disabled state onto the native input."
            },
            {
              "kind": "method",
              "name": "onInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "InputEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#scheduleFetch",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#filterLocalSuggestions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Filters the locally-supplied `suggestions` list for `query`, case-insensitively."
            },
            {
              "kind": "method",
              "name": "#fetchSuggestions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Fetches suggestions for `query`, cancelling any request still in flight."
            },
            {
              "kind": "method",
              "name": "#buildUrl",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#moveActive",
              "privacy": "private",
              "parameters": [
                {
                  "name": "delta",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#handleEnter",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#handleEscape",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onBlur",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onCompositionStart",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "onCompositionEnd",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#resetComposition",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears composition state when the control can no longer receive keys."
            },
            {
              "kind": "method",
              "name": "#selectSuggestion",
              "privacy": "private",
              "parameters": [
                {
                  "name": "s",
                  "type": {
                    "text": "AddressSuggestion"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSuggestionMousedown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                },
                {
                  "name": "s",
                  "type": {
                    "text": "AddressSuggestion"
                  }
                }
              ],
              "description": "Selects on mousedown (not click) so it wins over the input's blur, which closes the list."
            },
            {
              "kind": "method",
              "name": "renderSuggestions",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "address-select",
              "type": {
                "text": "CustomEvent"
              },
              "description": "A suggestion was picked; detail: AddressSuggestion."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current input value; also the form-associated value submitted with the form.",
              "fieldName": "value"
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Placeholder text shown when the input is empty.",
              "fieldName": "placeholder"
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the input as required for native form validation.",
              "fieldName": "required"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the input and closes its suggestion popup.",
              "fieldName": "disabled"
            },
            {
              "name": "types",
              "type": {
                "text": "string"
              },
              "default": "\"address\"",
              "description": "Mapbox `types` param, e.g. \"address\" or \"address,poi\".",
              "fieldName": "types"
            },
            {
              "name": "endpoint",
              "type": {
                "text": "string"
              },
              "default": "\"https://api.mapbox.com/search/geocode/v6/forward\"",
              "description": "Geocoding endpoint URL. Defaults to the Mapbox Geocoding v6 forward URL.",
              "fieldName": "endpoint"
            },
            {
              "name": "access-token",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Mapbox access token. Required for requests to succeed.",
              "fieldName": "accessToken"
            },
            {
              "name": "bbox",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Optional bounding box bias, comma-separated `west,south,east,north`.",
              "fieldName": "bbox"
            },
            {
              "name": "proximity",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Optional proximity bias, comma-separated `lng,lat`.",
              "fieldName": "proximity"
            },
            {
              "name": "debounce",
              "type": {
                "text": "number"
              },
              "default": "300",
              "description": "Debounce delay (ms) before firing a geocode request after typing.",
              "fieldName": "debounce"
            },
            {
              "name": "min-length",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Minimum query length before suggestions are fetched.",
              "fieldName": "minLength"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "address-autocomplete",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AddressAutocomplete",
          "declaration": {
            "name": "AddressAutocomplete",
            "module": "src/address-autocomplete.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "address-autocomplete",
          "declaration": {
            "name": "AddressAutocomplete",
            "module": "src/address-autocomplete.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/animate-confetti.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Fullscreen confetti animation overlay, rendered on a fixed-position canvas.\nStarts automatically on first render and stops after `duration` ms.",
          "name": "AnimateConfetti",
          "members": [
            {
              "kind": "field",
              "name": "duration",
              "type": {
                "text": "number"
              },
              "default": "6000",
              "description": "How long the confetti streams before stopping, in ms.",
              "attribute": "duration"
            },
            {
              "kind": "field",
              "name": "maxParticleCount",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "150"
            },
            {
              "kind": "field",
              "name": "particleSpeed",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "2"
            },
            {
              "kind": "field",
              "name": "particles",
              "type": {
                "text": "Particle[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "streamingConfetti",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "colors",
              "type": {
                "text": "array"
              },
              "privacy": "private",
              "default": "[ \"DodgerBlue\", \"OliveDrab\", \"Gold\", \"Pink\", \"SlateBlue\", \"LightBlue\", \"Violet\", \"PaleGreen\", \"SteelBlue\", \"SandyBrown\", \"Chocolate\", \"Crimson\", ]"
            },
            {
              "kind": "field",
              "name": "waveAngle",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0.0"
            },
            {
              "kind": "field",
              "name": "animationTimer",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "stopTimer",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupTimer",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_canvas",
              "type": {
                "text": "HTMLCanvasElement"
              },
              "privacy": "private",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_handleResize",
              "privacy": "private",
              "description": "Resize canvas to browser size."
            },
            {
              "kind": "method",
              "name": "startConfetti",
              "privacy": "private",
              "description": "Creates particles and starts the animation frame loop."
            },
            {
              "kind": "field",
              "name": "runAnimation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "stopConfetti",
              "privacy": "private",
              "description": "Stop confetti and clean up after reasonable time."
            },
            {
              "kind": "field",
              "name": "_cleanup",
              "privacy": "private",
              "readonly": true,
              "description": "Removes particle data and stops the animation frame loop."
            },
            {
              "kind": "method",
              "name": "_clearTimersAndParticles",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Cancels all pending work when the component leaves the document."
            },
            {
              "kind": "method",
              "name": "updateParticles",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "drawParticles",
              "privacy": "private",
              "parameters": [
                {
                  "name": "context",
                  "type": {
                    "text": "CanvasRenderingContext2D | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "resetParticle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Particle"
                }
              },
              "parameters": [
                {
                  "name": "particle",
                  "type": {
                    "text": "Particle"
                  }
                },
                {
                  "name": "width",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "height",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            }
          ],
          "attributes": [
            {
              "name": "duration",
              "type": {
                "text": "number"
              },
              "default": "6000",
              "description": "How long the confetti streams before stopping, in ms.",
              "fieldName": "duration"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "animate-confetti",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AnimateConfetti",
          "declaration": {
            "name": "AnimateConfetti",
            "module": "src/animate-confetti.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "animate-confetti",
          "declaration": {
            "name": "AnimateConfetti",
            "module": "src/animate-confetti.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/autocomplete-input.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Generic form-associated text input with a suggestion dropdown, for any\n\"type to filter a list of `{key, value}` options\" use case. Works as a\ndrop-in replacement for a plain `<input>` inside a `<form>`: set `name` on\nthe element itself and consumers keep reading\n`new FormData(form).get(name)` and calling `form.reset()` unchanged — the\nsubmitted value is the picked option's `value`, while `key` is available\nvia the `option-select` event and the `selectedOption` getter for cases\nthat need the underlying id rather than the display text.\n\nSupports two suggestion sources:\n- **API**: set `endpoint` to a URL that, given a `?<query-param>=<text>`\n  query string, responds with a JSON array of `{key, value}` objects.\n  Requests are debounced as the user types.\n- **Local array**: set `options` to a fixed `AutocompleteOption[]` and the\n  component filters it client-side instead of making any network\n  request. Useful for small/fixed lists, offline use, or tests. Takes\n  priority over `endpoint` whenever it's non-null.",
          "name": "AutocompleteInput",
          "members": [
            {
              "kind": "field",
              "name": "formAssociated",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "true"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current input value; also the form-associated value submitted with the form.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Placeholder text shown when the input is empty.",
              "attribute": "placeholder"
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the input as required for native form validation.",
              "attribute": "required"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the input and closes its suggestion popup.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "endpoint",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "API endpoint queried in API mode. Ignored when `options` is set.",
              "attribute": "endpoint"
            },
            {
              "kind": "field",
              "name": "queryParam",
              "type": {
                "text": "string"
              },
              "default": "\"q\"",
              "description": "Query string parameter name the current input text is sent under.",
              "attribute": "query-param"
            },
            {
              "kind": "field",
              "name": "debounce",
              "type": {
                "text": "number"
              },
              "default": "300",
              "description": "Debounce delay (ms) before firing a request/filter after typing.",
              "attribute": "debounce"
            },
            {
              "kind": "field",
              "name": "minLength",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Minimum query length before suggestions are shown.",
              "attribute": "min-length"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "AutocompleteOption[] | null"
              },
              "default": "null",
              "description": "Fixed candidate list to filter locally instead of fetching from\n`endpoint`. When set (non-null), no network request is ever made —\nthis takes priority over the API mode."
            },
            {
              "kind": "field",
              "name": "_suggestions",
              "type": {
                "text": "AutocompleteOption[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_open",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_activeIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "_formDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#internals",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "#lastPicked",
              "privacy": "private",
              "type": {
                "text": "AutocompleteOption | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#debounceTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#abortController",
              "privacy": "private",
              "type": {
                "text": "AbortController | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#isComposing",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionJustEnded",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionEndTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#listboxId",
              "privacy": "private",
              "readonly": true,
              "default": "`autocomplete-input-listbox-${++instanceCount}`"
            },
            {
              "kind": "field",
              "name": "#isDisabled",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the host or an ancestor fieldset currently disables the control.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "selectedOption",
              "type": {
                "text": "AutocompleteOption | null"
              },
              "description": "Last-picked option, or null once the input diverges from it.",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "formResetCallback",
              "description": "Resets to empty on `form.reset()`, per the form-associated custom element contract."
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Mirrors ancestor fieldset disabled state onto the native input."
            },
            {
              "kind": "method",
              "name": "onInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "InputEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#scheduleFetch",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#filterLocalOptions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Filters the locally-supplied `options` list for `query`, case-insensitively."
            },
            {
              "kind": "method",
              "name": "#fetchOptions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Fetches options for `query` from `endpoint`, cancelling any request still in flight."
            },
            {
              "kind": "method",
              "name": "#buildUrl",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#moveActive",
              "privacy": "private",
              "parameters": [
                {
                  "name": "delta",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#handleEnter",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#handleEscape",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onBlur",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onCompositionStart",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "onCompositionEnd",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#resetComposition",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears composition state when the control can no longer receive keys."
            },
            {
              "kind": "method",
              "name": "#selectOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "o",
                  "type": {
                    "text": "AutocompleteOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSuggestionMousedown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                },
                {
                  "name": "o",
                  "type": {
                    "text": "AutocompleteOption"
                  }
                }
              ],
              "description": "Selects on mousedown (not click) so it wins over the input's blur, which closes the list."
            },
            {
              "kind": "method",
              "name": "renderSuggestions",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "option-select",
              "type": {
                "text": "CustomEvent"
              },
              "description": "An option was picked; detail: AutocompleteOption."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current input value; also the form-associated value submitted with the form.",
              "fieldName": "value"
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Placeholder text shown when the input is empty.",
              "fieldName": "placeholder"
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the input as required for native form validation.",
              "fieldName": "required"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the input and closes its suggestion popup.",
              "fieldName": "disabled"
            },
            {
              "name": "endpoint",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "API endpoint queried in API mode. Ignored when `options` is set.",
              "fieldName": "endpoint"
            },
            {
              "name": "query-param",
              "type": {
                "text": "string"
              },
              "default": "\"q\"",
              "description": "Query string parameter name the current input text is sent under.",
              "fieldName": "queryParam"
            },
            {
              "name": "debounce",
              "type": {
                "text": "number"
              },
              "default": "300",
              "description": "Debounce delay (ms) before firing a request/filter after typing.",
              "fieldName": "debounce"
            },
            {
              "name": "min-length",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Minimum query length before suggestions are shown.",
              "fieldName": "minLength"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "autocomplete-input",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AutocompleteInput",
          "declaration": {
            "name": "AutocompleteInput",
            "module": "src/autocomplete-input.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "autocomplete-input",
          "declaration": {
            "name": "AutocompleteInput",
            "module": "src/autocomplete-input.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar-entry.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Declarative metadata for one calendar event, consumed by a parent\n`calendar-month` or `calendar-year`. Read-only/non-interactive; renders\nnothing itself.",
          "name": "CalendarEntry",
          "slots": [
            {
              "description": "Plain-text title shown instead of the `label` fallback.",
              "name": "title"
            },
            {
              "description": "Repeatable plain-text details rendered inside the shared body spanning all remaining days.",
              "name": "detail"
            },
            {
              "description": "Plain-text ending note pinned to the bottom of the shared body.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "start",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Inclusive start date, `\"YYYY-MM-DD\"`.",
              "attribute": "start",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "end",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Inclusive end date, `\"YYYY-MM-DD\"`. Falls back to `start` when unset (single-day entry).",
              "attribute": "end",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Fallback title used when no `title` slot is provided.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "StatusPillColor"
              },
              "default": "\"neutral\"",
              "description": "Color variant, reusing `status-pill`'s palette.",
              "attribute": "color",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional link target; the parent renders the entry as an `<a>` when set.",
              "attribute": "href",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "start",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Inclusive start date, `\"YYYY-MM-DD\"`.",
              "fieldName": "start"
            },
            {
              "name": "end",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Inclusive end date, `\"YYYY-MM-DD\"`. Falls back to `start` when unset (single-day entry).",
              "fieldName": "end"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Fallback title used when no `title` slot is provided.",
              "fieldName": "label"
            },
            {
              "name": "color",
              "type": {
                "text": "StatusPillColor"
              },
              "default": "\"neutral\"",
              "description": "Color variant, reusing `status-pill`'s palette.",
              "fieldName": "color"
            },
            {
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional link target; the parent renders the entry as an `<a>` when set.",
              "fieldName": "href"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "calendar-entry",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CalendarEntry",
          "declaration": {
            "name": "CalendarEntry",
            "module": "src/calendar-entry.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "calendar-entry",
          "declaration": {
            "name": "CalendarEntry",
            "module": "src/calendar-entry.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar-month.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "One month rendered as a top-to-bottom list of days — weekends and today\nhighlighted, with declarative `calendar-entry` children shown as colored\nbars spanning the days they cover. An entry's title uses its first visible\nday; every remaining visible day becomes one shared body for wrapped\ndetails and an optional ending footer. Overlapping entries stack into\nside-by-side lanes rather than being layered/hidden. Read-only.\n\nLanes are computed independently per instance, from only the entries\noverlapping this month — an entry spanning a month boundary may therefore\nland in a different lane index in the adjacent month's `calendar-month`.\nThis is an accepted v1 limitation: cross-month lane continuity would\nrequire a shared parent (`calendar-year`) to assign lanes globally.\n\nEntry attributes and slotted title/detail text are observed, so a\nstandalone month re-renders when consumers update declarative metadata.",
          "name": "CalendarMonth",
          "slots": [
            {
              "description": "Declarative `calendar-entry` elements to render for this month.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "year",
              "type": {
                "text": "number"
              },
              "description": "Calendar year, e.g. `2026`.",
              "attribute": "year",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "month",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Calendar month, 1-12 (January = 1).",
              "attribute": "month",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_entryElements",
              "type": {
                "text": "CalendarEntry[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_entriesVersion",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Bumped when entry elements, attributes, or slotted text change to force a re-render."
            },
            {
              "kind": "field",
              "name": "_entriesObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_handleSlotChange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Re-renders when declarative `calendar-entry` children are added or removed."
            },
            {
              "kind": "method",
              "name": "_entryFor",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "LanedEntry | undefined"
                }
              },
              "parameters": [
                {
                  "name": "laned",
                  "type": {
                    "text": "LanedEntry[]"
                  }
                },
                {
                  "name": "lane",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "date",
                  "type": {
                    "text": "Date"
                  }
                }
              ],
              "description": "Finds the laned entry (if any) covering `date` in a given lane."
            },
            {
              "kind": "method",
              "name": "_segmentClass",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                },
                {
                  "name": "date",
                  "type": {
                    "text": "Date"
                  }
                }
              ],
              "description": "Classifies one day of an entry so only the outer endpoints are rounded."
            },
            {
              "kind": "method",
              "name": "_entryKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                }
              ],
              "description": "Current render key shared by an entry's title and body cells."
            },
            {
              "kind": "method",
              "name": "_setEntryInteraction",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "entryKey",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "className",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "active",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Toggles one interaction class on every rendered cell belonging to an entry."
            },
            {
              "kind": "method",
              "name": "_syncEntryInteractions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Reconciles classes against the links actually hovered or focused after a render."
            },
            {
              "kind": "method",
              "name": "_renderEntryLink",
              "privacy": "private",
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                },
                {
                  "name": "accessibleText",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Renders a transparent full-cell link without wrapping the visible text."
            },
            {
              "kind": "method",
              "name": "_entryBodyText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                },
                {
                  "name": "showFooter",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Joins the event title, details, and visible footer for tooltips and accessible link names."
            },
            {
              "kind": "method",
              "name": "_renderEntryBody",
              "privacy": "private",
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                },
                {
                  "name": "showFooter",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "detailLineClamp",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "showTitleFallback",
                  "default": "false"
                }
              ],
              "description": "Renders the shared details body, with the footer reserved at its bottom edge."
            },
            {
              "kind": "method",
              "name": "_renderEntryBodyCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "entry",
                  "type": {
                    "text": "LanedEntry"
                  }
                },
                {
                  "name": "bodyRows",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "reachesEventEnd",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "showTitleFallback",
                  "default": "false"
                }
              ],
              "description": "Renders a row-spanning body cell with whole-line detail and footer budgets."
            },
            {
              "kind": "method",
              "name": "_renderLaneCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "laned",
                  "type": {
                    "text": "LanedEntry[]"
                  }
                },
                {
                  "name": "lane",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "date",
                  "type": {
                    "text": "Date"
                  }
                },
                {
                  "name": "monthStart",
                  "type": {
                    "text": "Date"
                  }
                },
                {
                  "name": "monthEnd",
                  "type": {
                    "text": "Date"
                  }
                }
              ],
              "description": "Renders a lane's title/body cell, skips rows covered by a body rowspan, or emits an empty spacer."
            }
          ],
          "attributes": [
            {
              "name": "year",
              "type": {
                "text": "number"
              },
              "description": "Calendar year, e.g. `2026`.",
              "fieldName": "year"
            },
            {
              "name": "month",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Calendar month, 1-12 (January = 1).",
              "fieldName": "month"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "calendar-month",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CalendarMonth",
          "declaration": {
            "name": "CalendarMonth",
            "module": "src/calendar-month.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "calendar-month",
          "declaration": {
            "name": "CalendarMonth",
            "module": "src/calendar-month.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar-year.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A full year of `calendar-month` blocks, generated from declarative\n`calendar-entry` children. Each entry is re-projected into the\n`calendar-month` blocks it overlaps as a freshly-created `calendar-entry`\nelement — the original elements stay slotted here and are never moved,\nsince a DOM node can only have one parent. Read-only.",
          "name": "CalendarYear",
          "slots": [
            {
              "description": "Declarative `calendar-entry` elements spanning the displayed year.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "year",
              "type": {
                "text": "number"
              },
              "description": "Calendar year to render all 12 months for, e.g. `2026`.",
              "attribute": "year",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_entryElements",
              "type": {
                "text": "CalendarEntry[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_entriesVersion",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Bumped whenever entry elements, attributes, or slotted text change to force a re-render."
            },
            {
              "kind": "field",
              "name": "_entriesObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_entryKeys",
              "privacy": "private",
              "readonly": true,
              "default": "new WeakMap<CalendarEntry, string>()"
            },
            {
              "kind": "field",
              "name": "_nextEntryKey",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "_handleSlotChange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Re-renders when declarative `calendar-entry` children are added or removed."
            },
            {
              "kind": "method",
              "name": "_entryKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "CalendarEntry"
                  }
                }
              ],
              "description": "Returns an immutable identity for each original slotted entry."
            }
          ],
          "attributes": [
            {
              "name": "year",
              "type": {
                "text": "number"
              },
              "description": "Calendar year to render all 12 months for, e.g. `2026`.",
              "fieldName": "year"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "calendar-year",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CalendarYear",
          "declaration": {
            "name": "CalendarYear",
            "module": "src/calendar-year.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "calendar-year",
          "declaration": {
            "name": "CalendarYear",
            "module": "src/calendar-year.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/chat-message.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "One conversation entry in a chat-style activity feed. Tool calls and\n\"thinking\" traces are variants of this component rather than separate\nones — they share the same header, collapse behavior, and body card as a\nnormal message, just dimmed and collapsible with an always-visible summary.",
          "name": "ChatMessage",
          "slots": [
            {
              "description": "Message body (consumers slot in already-rendered content, e.g. sanitized markdown HTML).",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "role",
              "type": {
                "text": "ChatMessageRole"
              },
              "default": "\"agent\"",
              "description": "Whose message this is; drives the card background/border.",
              "attribute": "role",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "ChatMessageVariant"
              },
              "default": "\"normal\"",
              "description": "`tool`/`thinking` render dimmed and smaller, with `tool` using monospace for its body.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "author",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Header label, e.g. \"Freddy\" or \"Architect\".",
              "attribute": "author"
            },
            {
              "kind": "field",
              "name": "timestamp",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "ISO-8601 timestamp, rendered via `relative-time` in the header.",
              "attribute": "timestamp"
            },
            {
              "kind": "field",
              "name": "summary",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Always-visible one-liner for `tool`/`thinking` variants (e.g. a truncated args preview).",
              "attribute": "summary"
            },
            {
              "kind": "field",
              "name": "collapsible",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether clicking the header/summary toggles the body slot.",
              "attribute": "collapsible"
            },
            {
              "kind": "field",
              "name": "collapsed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Current collapse state (reflected as an attribute).",
              "attribute": "collapsed",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "_toggle",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "toggle",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired with `{ collapsed: boolean }` when the header/summary is clicked in collapsible mode."
            }
          ],
          "attributes": [
            {
              "name": "role",
              "type": {
                "text": "ChatMessageRole"
              },
              "default": "\"agent\"",
              "description": "Whose message this is; drives the card background/border.",
              "fieldName": "role"
            },
            {
              "name": "variant",
              "type": {
                "text": "ChatMessageVariant"
              },
              "default": "\"normal\"",
              "description": "`tool`/`thinking` render dimmed and smaller, with `tool` using monospace for its body.",
              "fieldName": "variant"
            },
            {
              "name": "author",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Header label, e.g. \"Freddy\" or \"Architect\".",
              "fieldName": "author"
            },
            {
              "name": "timestamp",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "ISO-8601 timestamp, rendered via `relative-time` in the header.",
              "fieldName": "timestamp"
            },
            {
              "name": "summary",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Always-visible one-liner for `tool`/`thinking` variants (e.g. a truncated args preview).",
              "fieldName": "summary"
            },
            {
              "name": "collapsible",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether clicking the header/summary toggles the body slot.",
              "fieldName": "collapsible"
            },
            {
              "name": "collapsed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Current collapse state (reflected as an attribute).",
              "fieldName": "collapsed"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "chat-message",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChatMessage",
          "declaration": {
            "name": "ChatMessage",
            "module": "src/chat-message.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "chat-message",
          "declaration": {
            "name": "ChatMessage",
            "module": "src/chat-message.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/confirm-dialog.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Reusable confirmation dialog: overlay + centered card with a slotted body,\nan optional error line, and Cancel/Confirm actions. Instant `display:none`\n→ `display:flex` toggle (no transitions). Fires `confirm`/`cancel`\n(bubbling, composed) instead of owning any deletion logic itself —\ncallers stay in charge of the request.",
          "name": "ConfirmDialog",
          "members": [
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the dialog is visible.",
              "attribute": "open"
            },
            {
              "kind": "field",
              "name": "confirmLabel",
              "type": {
                "text": "string"
              },
              "default": "\"Delete\"",
              "description": "Label for the confirm button.",
              "attribute": "confirm-label"
            },
            {
              "kind": "field",
              "name": "cancelLabel",
              "type": {
                "text": "string"
              },
              "default": "\"Cancel\"",
              "description": "Label for the cancel button.",
              "attribute": "cancel-label"
            },
            {
              "kind": "field",
              "name": "danger",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Danger (red) vs. primary (indigo) styling for the confirm button.",
              "attribute": "danger"
            },
            {
              "kind": "field",
              "name": "busy",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Shows a spinner and disables both buttons while a request is in flight.",
              "attribute": "busy"
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Inline error line shown below the body, or null for none.",
              "attribute": "error"
            },
            {
              "kind": "field",
              "name": "_previousFocus",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "_confirm",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_cancel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_getFocusableElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "_focusInitial",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "_onDocumentFocusIn",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_onWindowKeydown",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "confirm",
              "type": {
                "text": "CustomEvent"
              },
              "description": "User clicked the confirm button."
            },
            {
              "name": "cancel",
              "type": {
                "text": "CustomEvent"
              },
              "description": "User clicked the cancel button."
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the dialog is visible.",
              "fieldName": "open"
            },
            {
              "name": "confirm-label",
              "type": {
                "text": "string"
              },
              "default": "\"Delete\"",
              "description": "Label for the confirm button.",
              "fieldName": "confirmLabel"
            },
            {
              "name": "cancel-label",
              "type": {
                "text": "string"
              },
              "default": "\"Cancel\"",
              "description": "Label for the cancel button.",
              "fieldName": "cancelLabel"
            },
            {
              "name": "danger",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Danger (red) vs. primary (indigo) styling for the confirm button.",
              "fieldName": "danger"
            },
            {
              "name": "busy",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Shows a spinner and disables both buttons while a request is in flight.",
              "fieldName": "busy"
            },
            {
              "name": "error",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Inline error line shown below the body, or null for none.",
              "fieldName": "error"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "confirm-dialog",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ConfirmDialog",
          "declaration": {
            "name": "ConfirmDialog",
            "module": "src/confirm-dialog.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "confirm-dialog",
          "declaration": {
            "name": "ConfirmDialog",
            "module": "src/confirm-dialog.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/copy-link-button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Small icon button that copies `value` to the clipboard and shows a toast\non success/failure (if a `<toast-notification>` element is present), and\nalways dispatches a `copy-success`/`copy-error` CustomEvent so consumers\nwithout a toast element can react. Defaults to the current page URL if\n`value` is unset.",
          "name": "CopyLinkButton",
          "members": [
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text to copy. Defaults to `window.location.href` at click time.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"Copy link\"",
              "description": "Accessible label / tooltip text.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables clipboard copying.",
              "attribute": "disabled"
            },
            {
              "kind": "method",
              "name": "_onClick",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "copy-success",
              "type": {
                "text": "CustomEvent"
              },
              "description": "The value was copied to the clipboard."
            },
            {
              "name": "copy-error",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Copying to the clipboard failed."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text to copy. Defaults to `window.location.href` at click time.",
              "fieldName": "value"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"Copy link\"",
              "description": "Accessible label / tooltip text.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables clipboard copying.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "copy-link-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CopyLinkButton",
          "declaration": {
            "name": "CopyLinkButton",
            "module": "src/copy-link-button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "copy-link-button",
          "declaration": {
            "name": "CopyLinkButton",
            "module": "src/copy-link-button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/data-table.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A generic, presentational table shell: renders a `<thead>` from `columns`\nand one `<tr>` per entry in `rows`, with each cell's content produced by\n`renderCell` (default: plain property lookup on the row object). Knows\nnothing about what a \"row\" means — callers own the data shape entirely.\n\nOptional `rowHref` makes whole rows clickable (navigating via `location.hash`),\nwithout hijacking clicks on nested interactive elements (links/buttons) a\ncell's rendered content might contain.",
          "name": "DataTable",
          "members": [
            {
              "kind": "field",
              "name": "columns",
              "type": {
                "text": "DataTableColumn[]"
              },
              "default": "[]",
              "description": "Column headers, in display order."
            },
            {
              "kind": "field",
              "name": "rows",
              "type": {
                "text": "unknown[]"
              },
              "default": "[]",
              "description": "Row data; opaque to this component beyond what `renderCell` does with it."
            },
            {
              "kind": "field",
              "name": "rowKey",
              "type": {
                "text": "(row: unknown, index: number) => string | number"
              },
              "description": "Stable identity for `rows[i]`, used as the repeat-directive key. Defaults to the row's index."
            },
            {
              "kind": "field",
              "name": "renderCell",
              "type": {
                "text": "(row: unknown, key: string) => unknown"
              },
              "description": "Produces a cell's rendered content for `row`/`column.key`. Default: `row[key]`."
            },
            {
              "kind": "field",
              "name": "rowHref",
              "type": {
                "text": "((row: unknown) => string | null) | null"
              },
              "default": "null",
              "description": "When set, clicking a row (outside any nested link/button) navigates to this hash."
            },
            {
              "kind": "field",
              "name": "rowLabel",
              "type": {
                "text": "((row: unknown) => string) | null"
              },
              "default": "null",
              "description": "Accessible label for a row's keyboard link; defaults to primitive cell values."
            },
            {
              "kind": "method",
              "name": "#onRowClick",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "row",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#isNestedInteractive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "path",
                  "type": {
                    "text": "EventTarget[]"
                  }
                },
                {
                  "name": "row",
                  "type": {
                    "text": "EventTarget | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#rowLinkLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "row",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "data-table",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DataTable",
          "declaration": {
            "name": "DataTable",
            "module": "src/data-table.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "data-table",
          "declaration": {
            "name": "DataTable",
            "module": "src/data-table.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/distance-value.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Inline distance display. Renders miles/feet or km/m, switching units at\nsensible thresholds (< 0.25 mi → ft; < 0.5 km → m).\n\nSupply exactly one of `miles` or `km`; the other stays null.\nkm support is present but reserved for future use.",
          "name": "DistanceValue",
          "members": [
            {
              "kind": "field",
              "name": "miles",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Distance in miles (imperial). Switches to feet below 0.25 mi.",
              "attribute": "miles"
            },
            {
              "kind": "field",
              "name": "km",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Distance in kilometers (metric, future). Switches to meters below 0.5 km.",
              "attribute": "km"
            }
          ],
          "attributes": [
            {
              "name": "miles",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Distance in miles (imperial). Switches to feet below 0.25 mi.",
              "fieldName": "miles"
            },
            {
              "name": "km",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Distance in kilometers (metric, future). Switches to meters below 0.5 km.",
              "fieldName": "km"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "distance-value",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DistanceValue",
          "declaration": {
            "name": "DistanceValue",
            "module": "src/distance-value.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "distance-value",
          "declaration": {
            "name": "DistanceValue",
            "module": "src/distance-value.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/distribution-chart.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Renders a KDE distribution curve for a named metric with one or more value\nmarkers. The SVG viewBox is kept in sync with the element's pixel width via\nResizeObserver so that font sizes and stroke widths are always in real pixels\nregardless of container width.\n\nPass `fontSize` to control all text size (default 10). Pass a single\n`{label:'', value}` for a single-value display or multiple\n`{label:'A'|'B'|...}` entries to compare several values.",
          "name": "DistributionChart",
          "members": [
            {
              "kind": "field",
              "name": "metric",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Metric name, fetched from `/api/distribution/<metric>` on change.",
              "attribute": "metric"
            },
            {
              "kind": "field",
              "name": "values",
              "type": {
                "text": "DistributionValue[]"
              },
              "default": "[]",
              "description": "One or more values to mark on the distribution curve."
            },
            {
              "kind": "field",
              "name": "markerColors",
              "type": {
                "text": "string[]"
              },
              "default": "[\"#4f46e5\", \"#d97706\", \"#0d9488\", \"#e11d48\"]",
              "description": "Colors assigned to markers in order. Defaults to indigo/amber/teal/rose 600s."
            },
            {
              "kind": "field",
              "name": "fontSize",
              "type": {
                "text": "number"
              },
              "default": "10",
              "description": "Target font size in CSS pixels (default 10). Always renders at this size regardless of container width.",
              "attribute": "font-size"
            },
            {
              "kind": "field",
              "name": "_data",
              "type": {
                "text": "DistributionData | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_loading",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_error",
              "type": {
                "text": "string | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_width",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Measured element width in CSS pixels. 0 until ResizeObserver fires."
            },
            {
              "kind": "field",
              "name": "_hoverX",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Inner x coordinate (px) of the current hover position, or null when not hovering."
            },
            {
              "kind": "field",
              "name": "_fetchedFor",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "\"\""
            },
            {
              "kind": "field",
              "name": "_ro",
              "type": {
                "text": "ResizeObserver | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "_maybeFetch",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_renderSvg",
              "privacy": "private",
              "parameters": [
                {
                  "name": "data",
                  "type": {
                    "text": "DistributionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_renderLegend",
              "privacy": "private",
              "parameters": [
                {
                  "name": "data",
                  "type": {
                    "text": "DistributionData"
                  }
                }
              ]
            }
          ],
          "attributes": [
            {
              "name": "metric",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Metric name, fetched from `/api/distribution/<metric>` on change.",
              "fieldName": "metric"
            },
            {
              "name": "font-size",
              "type": {
                "text": "number"
              },
              "default": "10",
              "description": "Target font size in CSS pixels (default 10). Always renders at this size regardless of container width.",
              "fieldName": "fontSize"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "distribution-chart",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DistributionChart",
          "declaration": {
            "name": "DistributionChart",
            "module": "src/distribution-chart.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "distribution-chart",
          "declaration": {
            "name": "DistributionChart",
            "module": "src/distribution-chart.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A primary-styled button with a label and chevron that opens an anchored\nmenu of actions — essentially `form-select` minus \"current value\"\nsemantics: a menu, not a select. Use for a set of mutually exclusive\nnext-step actions (e.g. a failed task's Retry / Close / Backlog).",
          "name": "DropdownButton",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "The trigger button's label.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "DropdownOption[]"
              },
              "default": "[]",
              "description": "The menu's actions."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the trigger, preventing the menu from opening.",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "_open",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_activeIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "#menuId",
              "privacy": "private",
              "readonly": true,
              "default": "`dropdown-button-menu-${++instanceCount}`"
            },
            {
              "kind": "field",
              "name": "#onWindowMousedown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "#toggle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#select",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "DropdownOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onTriggerKeydown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#moveActive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "delta",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#confirmActive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderMenu",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "select",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired with `{ value: string }` when a menu item is picked."
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "The trigger button's label.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the trigger, preventing the menu from opening.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "dropdown-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DropdownButton",
          "declaration": {
            "name": "DropdownButton",
            "module": "src/dropdown-button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "dropdown-button",
          "declaration": {
            "name": "DropdownButton",
            "module": "src/dropdown-button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/editable-text.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Jira/GitHub-style click-to-edit text: a display span that turns into an\n`<input>` (or auto-growing `<textarea>` when `multiline`) on click. The\ninput/textarea inherits the host's font, so a title wrapped in an `<h1>`\nedits at title size.",
          "name": "EditableText",
          "members": [
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current text.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "multiline",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "`false` renders an `<input>`, `true` an auto-growing `<textarea>`.",
              "attribute": "multiline"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Muted placeholder text shown when `value` is empty, and as the input's placeholder.",
              "attribute": "placeholder"
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables entering edit mode.",
              "attribute": "readonly"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "`aria-label` applied to the input/textarea.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "_editing",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_draft",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "\"\""
            },
            {
              "kind": "field",
              "name": "_field",
              "type": {
                "text": "HTMLInputElement | HTMLTextAreaElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_startEdit",
              "privacy": "private",
              "description": "Enters edit mode, seeding the draft from the current value."
            },
            {
              "kind": "method",
              "name": "_commit",
              "privacy": "private",
              "description": "Commits the draft (reverting an empty single-line commit) and exits edit mode.\n\nGuarded on `_editing`: removing the focused input/textarea from the DOM\n(which happens as soon as `_editing` flips to false) makes the browser\nfire a native `blur` on it, re-invoking this handler a second time after\na cancel already ran — the guard makes that second call a no-op instead\nof re-committing the stale draft."
            },
            {
              "kind": "method",
              "name": "_cancel",
              "privacy": "private",
              "description": "Discards the draft and exits edit mode without committing."
            },
            {
              "kind": "method",
              "name": "_onInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onSingleLineKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onMultilineKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_resize",
              "privacy": "private",
              "description": "Grows the textarea's height to fit its content."
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired with `{ value: string }` when the committed value differs from the previous one."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Current text.",
              "fieldName": "value"
            },
            {
              "name": "multiline",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "`false` renders an `<input>`, `true` an auto-growing `<textarea>`.",
              "fieldName": "multiline"
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Muted placeholder text shown when `value` is empty, and as the input's placeholder.",
              "fieldName": "placeholder"
            },
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables entering edit mode.",
              "fieldName": "readonly"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "`aria-label` applied to the input/textarea.",
              "fieldName": "label"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "editable-text",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "EditableText",
          "declaration": {
            "name": "EditableText",
            "module": "src/editable-text.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "editable-text",
          "declaration": {
            "name": "EditableText",
            "module": "src/editable-text.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/form-select.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A styled dropdown select: a trigger button showing the current option's\nlabel, opening a listbox popover on click. Drop-in generic replacement for\na native `<select>` wherever consistent cross-browser styling and a\n`change` event carrying `{ value }` are wanted (e.g. a task's status\npicker).\n\nThe trigger fills its host's width (`justify-content: space-between`\npushes the chevron to the far edge), but the host itself stays\n`display: inline-block` — so usages that never size the host (a filter\nbar, a status picker) keep shrink-to-fit auto-width unchanged. To make an\ninstance full-width, size the host itself: `form-select { width: 100%; }`.\n\nSet `searchable` to replace the button trigger with an editable combobox\nthat filters the predefined options by case-insensitive label infix. Typed\ntext is only a query: `value` changes exclusively when an actual option is\nselected, and an uncommitted query is discarded when the list closes.\nEach option may also provide a pre-rendered `icon` and square `iconSize`;\niconless options reserve no leading space.",
          "name": "FormSelect",
          "members": [
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "SelectOption[]"
              },
              "default": "[]",
              "description": "The full list of selectable options."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value; must match one of `options[].value`.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "`aria-label` applied to the trigger button.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the trigger, preventing the popover from opening.",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "searchable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Enables editable, case-insensitive infix filtering by option label.\nTyped text never becomes the selected `value`.",
              "attribute": "searchable",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_open",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_activeIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "_query",
              "type": {
                "text": "string | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#listboxPointerDown",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#suppressNextBlur",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#restoringSearchFocus",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#searchSelection",
              "privacy": "private",
              "type": {
                "text": "[number | null, number | null] | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#isComposing",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionJustEnded",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#compositionEndTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#blurTimer",
              "privacy": "private",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#listboxId",
              "privacy": "private",
              "readonly": true,
              "default": "`form-select-listbox-${++instanceCount}`"
            },
            {
              "kind": "field",
              "name": "#onWindowMousedown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "#toggle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#open",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#close",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#initialActiveIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "#visibleOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOption[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "#select",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onTriggerKeydown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#moveActive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "delta",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#confirmActive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#onSearchFocus",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSearchClick",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSearchMousedown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSearchInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "InputEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSearchKeydown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onSearchBlur",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#focusSearchInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onCompositionStart",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#onCompositionEnd",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#onListboxMousedown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onOptionMousedown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                },
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#optionIconSize",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#renderOptionIcon",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOption"
                  }
                },
                {
                  "name": "className",
                  "default": "\"option-icon\""
                }
              ]
            },
            {
              "kind": "method",
              "name": "#renderOptionContent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOption"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderListbox",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSearchTrigger",
              "privacy": "private",
              "parameters": [
                {
                  "name": "current",
                  "type": {
                    "text": "SelectOption | undefined"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderButtonTrigger",
              "privacy": "private",
              "parameters": [
                {
                  "name": "current",
                  "type": {
                    "text": "SelectOption | undefined"
                  }
                }
              ]
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired with `{ value: string }` when a different option is picked."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value; must match one of `options[].value`.",
              "fieldName": "value"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "`aria-label` applied to the trigger button.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the trigger, preventing the popover from opening.",
              "fieldName": "disabled"
            },
            {
              "name": "searchable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Enables editable, case-insensitive infix filtering by option label.\nTyped text never becomes the selected `value`.",
              "fieldName": "searchable"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "form-select",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormSelect",
          "declaration": {
            "name": "FormSelect",
            "module": "src/form-select.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "form-select",
          "declaration": {
            "name": "FormSelect",
            "module": "src/form-select.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/frame-box.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A titled frame around a slot: a gray border with a small uppercase,\nmuted label overlapping the top edge (fieldset/legend-style). Generic —\nthe label text is entirely up to the consumer (e.g. \"Debug\" to visually\nfence off dev-only chrome from the product UI).",
          "name": "FrameBox",
          "slots": [
            {
              "description": "Framed content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "The overlapping title label, e.g. \"Debug\".",
              "attribute": "label"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "The overlapping title label, e.g. \"Debug\".",
              "fieldName": "label"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "frame-box",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FrameBox",
          "declaration": {
            "name": "FrameBox",
            "module": "src/frame-box.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "frame-box",
          "declaration": {
            "name": "FrameBox",
            "module": "src/frame-box.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/gallery-item-variant.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Responsive image source metadata for a parent `gallery-item`.",
          "name": "GalleryItemVariant",
          "members": [
            {
              "kind": "field",
              "name": "media",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional media query that controls when this source is selected.",
              "attribute": "media",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "srcset",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Responsive image candidate string passed to a generated `<source>`.",
              "attribute": "srcset",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "media",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional media query that controls when this source is selected.",
              "fieldName": "media"
            },
            {
              "name": "srcset",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Responsive image candidate string passed to a generated `<source>`.",
              "fieldName": "srcset"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "gallery-item-variant",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "GalleryItemVariant",
          "declaration": {
            "name": "GalleryItemVariant",
            "module": "src/gallery-item-variant.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "gallery-item-variant",
          "declaration": {
            "name": "GalleryItemVariant",
            "module": "src/gallery-item-variant.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/gallery-item.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Declarative image metadata consumed by a parent `photo-gallery`.",
          "name": "GalleryItem",
          "slots": [
            {
              "description": "Optional `gallery-item-variant` elements for responsive sources.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "URL of the fallback image.",
              "attribute": "src",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "alt",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Required alternative text for the image.",
              "attribute": "alt",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "caption",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional visible caption rendered below the image.",
              "attribute": "caption",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variants",
              "type": {
                "text": "GalleryItemVariant[]"
              },
              "readonly": true,
              "description": "Responsive source variants declared inside this item."
            }
          ],
          "attributes": [
            {
              "name": "src",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "URL of the fallback image.",
              "fieldName": "src"
            },
            {
              "name": "alt",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Required alternative text for the image.",
              "fieldName": "alt"
            },
            {
              "name": "caption",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional visible caption rendered below the image.",
              "fieldName": "caption"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "gallery-item",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "GalleryItem",
          "declaration": {
            "name": "GalleryItem",
            "module": "src/gallery-item.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "gallery-item",
          "declaration": {
            "name": "GalleryItem",
            "module": "src/gallery-item.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/icon-button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A borderless button wrapping a passed-in icon, with a rounded\nhover-highlight background. Use for a low-emphasis affordance next to\ncontent it acts on (e.g. an \"Edit\" pencil at the end of a table row)\nwhere a bordered `ui-button` would be too heavy.",
          "name": "IconButton",
          "members": [
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "TemplateResult | null"
              },
              "default": "null",
              "description": "Pre-rendered icon template, e.g. `iconPencil(18)` from this package's icon set."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Required accessible label, applied as `aria-label`/`title`.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the button and dims it.",
              "attribute": "disabled"
            }
          ],
          "events": [
            {
              "description": "Native click, bubbling as usual — listen on the element itself.",
              "name": "click"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Required accessible label, applied as `aria-label`/`title`.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the button and dims it.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "icon-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IconButton",
          "declaration": {
            "name": "IconButton",
            "module": "src/icon-button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "icon-button",
          "declaration": {
            "name": "IconButton",
            "module": "src/icon-button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/icons.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "iconX",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconBars3",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconChevronLeft",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconChevronRight",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconCog",
          "parameters": [
            {
              "name": "size",
              "default": "20"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconInfo",
          "parameters": [
            {
              "name": "size",
              "default": "20"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconQuestionMarkCircle",
          "parameters": [
            {
              "name": "size",
              "default": "20"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconPencil",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconTrash",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconPlus",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconListBullet",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconCurrencyDollar",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconHome",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconMapPin",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconClock",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconTag",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconCalendar",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconArrowsPointingOut",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconMap",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconCheckCircle",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconSun",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconShieldExclamation",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconArrowPath",
          "parameters": [
            {
              "name": "size",
              "default": "12"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconArrowRight",
          "parameters": [
            {
              "name": "size",
              "default": "12"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconLink",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconHeart",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconHeartSolid",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconEye",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconEyeSlash",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconShieldCheck",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconUserCircle",
          "parameters": [
            {
              "name": "size",
              "default": "20"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconClipboardDocumentList",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconCpuChip",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconFolder",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconChevronDown",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconDocument",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconSquares2x2",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconChatBubbleLeftRight",
          "parameters": [
            {
              "name": "size",
              "default": "18"
            }
          ]
        },
        {
          "kind": "function",
          "name": "iconArrowTopRightOnSquare",
          "parameters": [
            {
              "name": "size",
              "default": "16"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "iconX",
          "declaration": {
            "name": "iconX",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconBars3",
          "declaration": {
            "name": "iconBars3",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconChevronLeft",
          "declaration": {
            "name": "iconChevronLeft",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconChevronRight",
          "declaration": {
            "name": "iconChevronRight",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconCog",
          "declaration": {
            "name": "iconCog",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconInfo",
          "declaration": {
            "name": "iconInfo",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconQuestionMarkCircle",
          "declaration": {
            "name": "iconQuestionMarkCircle",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconPencil",
          "declaration": {
            "name": "iconPencil",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconTrash",
          "declaration": {
            "name": "iconTrash",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconPlus",
          "declaration": {
            "name": "iconPlus",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconListBullet",
          "declaration": {
            "name": "iconListBullet",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconCurrencyDollar",
          "declaration": {
            "name": "iconCurrencyDollar",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconHome",
          "declaration": {
            "name": "iconHome",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconMapPin",
          "declaration": {
            "name": "iconMapPin",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconClock",
          "declaration": {
            "name": "iconClock",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconTag",
          "declaration": {
            "name": "iconTag",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconCalendar",
          "declaration": {
            "name": "iconCalendar",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconArrowsPointingOut",
          "declaration": {
            "name": "iconArrowsPointingOut",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconMap",
          "declaration": {
            "name": "iconMap",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconCheckCircle",
          "declaration": {
            "name": "iconCheckCircle",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconSun",
          "declaration": {
            "name": "iconSun",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconShieldExclamation",
          "declaration": {
            "name": "iconShieldExclamation",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconArrowPath",
          "declaration": {
            "name": "iconArrowPath",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconArrowRight",
          "declaration": {
            "name": "iconArrowRight",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconLink",
          "declaration": {
            "name": "iconLink",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconHeart",
          "declaration": {
            "name": "iconHeart",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconHeartSolid",
          "declaration": {
            "name": "iconHeartSolid",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconEye",
          "declaration": {
            "name": "iconEye",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconEyeSlash",
          "declaration": {
            "name": "iconEyeSlash",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconShieldCheck",
          "declaration": {
            "name": "iconShieldCheck",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconUserCircle",
          "declaration": {
            "name": "iconUserCircle",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconClipboardDocumentList",
          "declaration": {
            "name": "iconClipboardDocumentList",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconCpuChip",
          "declaration": {
            "name": "iconCpuChip",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconFolder",
          "declaration": {
            "name": "iconFolder",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconChevronDown",
          "declaration": {
            "name": "iconChevronDown",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconDocument",
          "declaration": {
            "name": "iconDocument",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconSquares2x2",
          "declaration": {
            "name": "iconSquares2x2",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconChatBubbleLeftRight",
          "declaration": {
            "name": "iconChatBubbleLeftRight",
            "module": "src/icons.ts"
          }
        },
        {
          "kind": "js",
          "name": "iconArrowTopRightOnSquare",
          "declaration": {
            "name": "iconArrowTopRightOnSquare",
            "module": "src/icons.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/index.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "AnimateConfetti",
          "declaration": {
            "name": "AnimateConfetti",
            "module": "./animate-confetti.js"
          }
        },
        {
          "kind": "js",
          "name": "GalleryItem",
          "declaration": {
            "name": "GalleryItem",
            "module": "./gallery-item.js"
          }
        },
        {
          "kind": "js",
          "name": "GalleryItemVariant",
          "declaration": {
            "name": "GalleryItemVariant",
            "module": "./gallery-item-variant.js"
          }
        },
        {
          "kind": "js",
          "name": "PhotoGallery",
          "declaration": {
            "name": "PhotoGallery",
            "module": "./photo-gallery.js"
          }
        },
        {
          "kind": "js",
          "name": "PhotoGalleryChangeReason",
          "declaration": {
            "name": "PhotoGalleryChangeReason",
            "module": "./photo-gallery.js"
          }
        },
        {
          "kind": "js",
          "name": "PhotoGalleryObjectFit",
          "declaration": {
            "name": "PhotoGalleryObjectFit",
            "module": "./photo-gallery.js"
          }
        },
        {
          "kind": "js",
          "name": "PhotoGallerySlideChangeDetail",
          "declaration": {
            "name": "PhotoGallerySlideChangeDetail",
            "module": "./photo-gallery.js"
          }
        },
        {
          "kind": "js",
          "name": "RevealButton",
          "declaration": {
            "name": "RevealButton",
            "module": "./reveal-button.js"
          }
        },
        {
          "kind": "js",
          "name": "RomanNumeral",
          "declaration": {
            "name": "RomanNumeral",
            "module": "./roman-numeral.js"
          }
        },
        {
          "kind": "js",
          "name": "ConfirmDialog",
          "declaration": {
            "name": "ConfirmDialog",
            "module": "./confirm-dialog.js"
          }
        },
        {
          "kind": "js",
          "name": "ToastNotification",
          "declaration": {
            "name": "ToastNotification",
            "module": "./toast-notification.js"
          }
        },
        {
          "kind": "js",
          "name": "notifySuccess",
          "declaration": {
            "name": "notifySuccess",
            "module": "./toast-notification.js"
          }
        },
        {
          "kind": "js",
          "name": "notifyError",
          "declaration": {
            "name": "notifyError",
            "module": "./toast-notification.js"
          }
        },
        {
          "kind": "js",
          "name": "notifyInfo",
          "declaration": {
            "name": "notifyInfo",
            "module": "./toast-notification.js"
          }
        },
        {
          "kind": "js",
          "name": "ToastVariant",
          "declaration": {
            "name": "ToastVariant",
            "module": "./toast-notification.js"
          }
        },
        {
          "kind": "js",
          "name": "SlidePanel",
          "declaration": {
            "name": "SlidePanel",
            "module": "./slide-panel.js"
          }
        },
        {
          "kind": "js",
          "name": "CopyLinkButton",
          "declaration": {
            "name": "CopyLinkButton",
            "module": "./copy-link-button.js"
          }
        },
        {
          "kind": "js",
          "name": "RelativeTime",
          "declaration": {
            "name": "RelativeTime",
            "module": "./relative-time.js"
          }
        },
        {
          "kind": "js",
          "name": "DistanceValue",
          "declaration": {
            "name": "DistanceValue",
            "module": "./distance-value.js"
          }
        },
        {
          "kind": "js",
          "name": "PriceHistoryChart",
          "declaration": {
            "name": "PriceHistoryChart",
            "module": "./price-history-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "PricePoint",
          "declaration": {
            "name": "PricePoint",
            "module": "./price-history-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "DistributionChart",
          "declaration": {
            "name": "DistributionChart",
            "module": "./distribution-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "DistributionValue",
          "declaration": {
            "name": "DistributionValue",
            "module": "./distribution-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "PercentBarChart",
          "declaration": {
            "name": "PercentBarChart",
            "module": "./percent-bar-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "PercentBarGroup",
          "declaration": {
            "name": "PercentBarGroup",
            "module": "./percent-bar-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "WeightBarChart",
          "declaration": {
            "name": "WeightBarChart",
            "module": "./weight-bar-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "WeightBarItem",
          "declaration": {
            "name": "WeightBarItem",
            "module": "./weight-bar-chart.js"
          }
        },
        {
          "kind": "js",
          "name": "AddressAutocomplete",
          "declaration": {
            "name": "AddressAutocomplete",
            "module": "./address-autocomplete.js"
          }
        },
        {
          "kind": "js",
          "name": "AddressSuggestion",
          "declaration": {
            "name": "AddressSuggestion",
            "module": "./address-autocomplete.js"
          }
        },
        {
          "kind": "js",
          "name": "AutocompleteInput",
          "declaration": {
            "name": "AutocompleteInput",
            "module": "./autocomplete-input.js"
          }
        },
        {
          "kind": "js",
          "name": "AutocompleteOption",
          "declaration": {
            "name": "AutocompleteOption",
            "module": "./autocomplete-input.js"
          }
        },
        {
          "kind": "js",
          "name": "UserAvatar",
          "declaration": {
            "name": "UserAvatar",
            "module": "./user-avatar.js"
          }
        },
        {
          "kind": "js",
          "name": "MapPin",
          "declaration": {
            "name": "MapPin",
            "module": "./map-pin.js"
          }
        },
        {
          "kind": "js",
          "name": "MapCircle",
          "declaration": {
            "name": "MapCircle",
            "module": "./map-circle.js"
          }
        },
        {
          "kind": "js",
          "name": "RadioCards",
          "declaration": {
            "name": "RadioCards",
            "module": "./radio-cards.js"
          }
        },
        {
          "kind": "js",
          "name": "RadioCardOption",
          "declaration": {
            "name": "RadioCardOption",
            "module": "./radio-cards.js"
          }
        },
        {
          "kind": "js",
          "name": "RadioPills",
          "declaration": {
            "name": "RadioPills",
            "module": "./radio-pills.js"
          }
        },
        {
          "kind": "js",
          "name": "RadioPillOption",
          "declaration": {
            "name": "RadioPillOption",
            "module": "./radio-pills.js"
          }
        },
        {
          "kind": "js",
          "name": "UiButton",
          "declaration": {
            "name": "UiButton",
            "module": "./ui-button.js"
          }
        },
        {
          "kind": "js",
          "name": "ButtonVariant",
          "declaration": {
            "name": "ButtonVariant",
            "module": "./ui-button.js"
          }
        },
        {
          "kind": "js",
          "name": "StatMeter",
          "declaration": {
            "name": "StatMeter",
            "module": "./stat-meter.js"
          }
        },
        {
          "kind": "js",
          "name": "StatusPill",
          "declaration": {
            "name": "StatusPill",
            "module": "./status-pill.js"
          }
        },
        {
          "kind": "js",
          "name": "StatusPillColor",
          "declaration": {
            "name": "StatusPillColor",
            "module": "./status-pill.js"
          }
        },
        {
          "kind": "js",
          "name": "EditableText",
          "declaration": {
            "name": "EditableText",
            "module": "./editable-text.js"
          }
        },
        {
          "kind": "js",
          "name": "LiveTimer",
          "declaration": {
            "name": "LiveTimer",
            "module": "./live-timer.js"
          }
        },
        {
          "kind": "js",
          "name": "ChatMessage",
          "declaration": {
            "name": "ChatMessage",
            "module": "./chat-message.js"
          }
        },
        {
          "kind": "js",
          "name": "ChatMessageRole",
          "declaration": {
            "name": "ChatMessageRole",
            "module": "./chat-message.js"
          }
        },
        {
          "kind": "js",
          "name": "ChatMessageVariant",
          "declaration": {
            "name": "ChatMessageVariant",
            "module": "./chat-message.js"
          }
        },
        {
          "kind": "js",
          "name": "FormSelect",
          "declaration": {
            "name": "FormSelect",
            "module": "./form-select.js"
          }
        },
        {
          "kind": "js",
          "name": "SelectOption",
          "declaration": {
            "name": "SelectOption",
            "module": "./form-select.js"
          }
        },
        {
          "kind": "js",
          "name": "DataTable",
          "declaration": {
            "name": "DataTable",
            "module": "./data-table.js"
          }
        },
        {
          "kind": "js",
          "name": "DataTableColumn",
          "declaration": {
            "name": "DataTableColumn",
            "module": "./data-table.js"
          }
        },
        {
          "kind": "js",
          "name": "TileGrid",
          "declaration": {
            "name": "TileGrid",
            "module": "./tile-grid.js"
          }
        },
        {
          "kind": "js",
          "name": "PopoverPanel",
          "declaration": {
            "name": "PopoverPanel",
            "module": "./popover-panel.js"
          }
        },
        {
          "kind": "js",
          "name": "DropdownButton",
          "declaration": {
            "name": "DropdownButton",
            "module": "./dropdown-button.js"
          }
        },
        {
          "kind": "js",
          "name": "DropdownOption",
          "declaration": {
            "name": "DropdownOption",
            "module": "./dropdown-button.js"
          }
        },
        {
          "kind": "js",
          "name": "IconButton",
          "declaration": {
            "name": "IconButton",
            "module": "./icon-button.js"
          }
        },
        {
          "kind": "js",
          "name": "KbdHint",
          "declaration": {
            "name": "KbdHint",
            "module": "./kbd-hint.js"
          }
        },
        {
          "kind": "js",
          "name": "KbdPlatform",
          "declaration": {
            "name": "KbdPlatform",
            "module": "./kbd-hint.js"
          }
        },
        {
          "kind": "js",
          "name": "FrameBox",
          "declaration": {
            "name": "FrameBox",
            "module": "./frame-box.js"
          }
        },
        {
          "kind": "js",
          "name": "CalendarEntry",
          "declaration": {
            "name": "CalendarEntry",
            "module": "./calendar-entry.js"
          }
        },
        {
          "kind": "js",
          "name": "CalendarMonth",
          "declaration": {
            "name": "CalendarMonth",
            "module": "./calendar-month.js"
          }
        },
        {
          "kind": "js",
          "name": "CalendarYear",
          "declaration": {
            "name": "CalendarYear",
            "module": "./calendar-year.js"
          }
        },
        {
          "kind": "js",
          "name": "formatDuration",
          "declaration": {
            "name": "formatDuration",
            "module": "./utils/duration.js"
          }
        },
        {
          "kind": "js",
          "name": "DurationFormat",
          "declaration": {
            "name": "DurationFormat",
            "module": "./utils/duration.js"
          }
        },
        {
          "kind": "js",
          "name": "tokens",
          "declaration": {
            "name": "tokens",
            "module": "./tokens.js"
          }
        },
        {
          "kind": "js",
          "name": "tokenValues",
          "declaration": {
            "name": "tokenValues",
            "module": "./tokens.js"
          }
        },
        {
          "kind": "js",
          "name": "darkTokenValues",
          "declaration": {
            "name": "darkTokenValues",
            "module": "./tokens.js"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "src/icons.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/kbd-hint.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Renders a keyboard shortcut as one boxed keycap per `+`-separated token.\nModifier keys are platform-aware: `Mod` becomes Command on macOS and\nControl elsewhere. Keycaps derive their presentation from `currentColor`,\nso the hint works inside neutral and accent-colored controls.",
          "name": "KbdHint",
          "members": [
            {
              "kind": "field",
              "name": "keys",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Shortcut as case-insensitive, `+`-separated tokens, e.g. `\"Mod+Enter\"`.",
              "attribute": "keys"
            },
            {
              "kind": "field",
              "name": "platform",
              "type": {
                "text": "KbdPlatform"
              },
              "default": "\"auto\"",
              "description": "Platform override; `auto` detects macOS from the browser.",
              "attribute": "platform"
            },
            {
              "kind": "field",
              "name": "isMac",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Whether modifier aliases should use macOS glyphs.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "parsedKeys",
              "type": {
                "text": "KeyRender[]"
              },
              "privacy": "private",
              "description": "Parses the shortcut into visual/spoken key descriptors.",
              "readonly": true
            }
          ],
          "attributes": [
            {
              "name": "keys",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Shortcut as case-insensitive, `+`-separated tokens, e.g. `\"Mod+Enter\"`.",
              "fieldName": "keys"
            },
            {
              "name": "platform",
              "type": {
                "text": "KbdPlatform"
              },
              "default": "\"auto\"",
              "description": "Platform override; `auto` detects macOS from the browser.",
              "fieldName": "platform"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "kbd-hint",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KbdHint",
          "declaration": {
            "name": "KbdHint",
            "module": "src/kbd-hint.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "kbd-hint",
          "declaration": {
            "name": "KbdHint",
            "module": "src/kbd-hint.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/live-timer.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Per-second ticking count-up timer, e.g. a live \"running for 12s\" or\n\"Sleeping for 3 seconds\" indicator. Renders nothing while `since` is unset\nor unparseable.",
          "name": "LiveTimer",
          "members": [
            {
              "kind": "field",
              "name": "since",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "ISO-8601 start instant; elapsed time is measured from here.",
              "attribute": "since"
            },
            {
              "kind": "field",
              "name": "format",
              "type": {
                "text": "DurationFormat"
              },
              "default": "\"seconds\"",
              "description": "`\"seconds\"` -> \"1 second\", \"12 seconds\"; `\"compact\"` -> \"12s\", \"3m 12s\", \"1h 03m 12s\".",
              "attribute": "format"
            },
            {
              "kind": "field",
              "name": "prefix",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text rendered before the formatted value.",
              "attribute": "prefix"
            },
            {
              "kind": "field",
              "name": "suffix",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text rendered after the formatted value.",
              "attribute": "suffix"
            },
            {
              "kind": "field",
              "name": "_now",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_timer",
              "type": {
                "text": "ReturnType<typeof setInterval> | null"
              },
              "privacy": "private",
              "default": "null"
            }
          ],
          "attributes": [
            {
              "name": "since",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "ISO-8601 start instant; elapsed time is measured from here.",
              "fieldName": "since"
            },
            {
              "name": "format",
              "type": {
                "text": "DurationFormat"
              },
              "default": "\"seconds\"",
              "description": "`\"seconds\"` -> \"1 second\", \"12 seconds\"; `\"compact\"` -> \"12s\", \"3m 12s\", \"1h 03m 12s\".",
              "fieldName": "format"
            },
            {
              "name": "prefix",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text rendered before the formatted value.",
              "fieldName": "prefix"
            },
            {
              "name": "suffix",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text rendered after the formatted value.",
              "fieldName": "suffix"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "live-timer",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LiveTimer",
          "declaration": {
            "name": "LiveTimer",
            "module": "src/live-timer.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "live-timer",
          "declaration": {
            "name": "LiveTimer",
            "module": "src/live-timer.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/map-circle.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A plain circular map marker: a light-to-dark gradient fill with a white\nouter ring, no point/tail (unlike `<map-pin>`) — for markers that don't\nneed to visually \"point\" at their exact coordinate. Purely a visual\nprimitive — it has no `mapbox-gl` (or any mapping library) dependency;\nthe consumer positions it, e.g. via `new mapboxgl.Marker({ element: el })`.\nIt can also replace the former `<map-point>` dense-layer primitive: use\n`size=\"14\" ring-width=\"3\"`, leave the slot empty, and rasterize one marker\nper color for use as a map `icon-image`.",
          "name": "MapCircle",
          "slots": [
            {
              "description": "Optional badge content shown centered on the circle — a rank number, an emoji, a small icon.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"#4f46e5\"",
              "description": "Fill color; the gradient's light (top) and dark (bottom) stops are derived from this.",
              "attribute": "color"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "18",
              "description": "Diameter, in CSS pixels.",
              "attribute": "size"
            },
            {
              "kind": "field",
              "name": "ringWidth",
              "type": {
                "text": "number"
              },
              "default": "4",
              "description": "White outer ring thickness, in the same viewBox units as `size` (scales with it).",
              "attribute": "ring-width"
            },
            {
              "kind": "field",
              "name": "highlighted",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Scales and glows the circle — a generic emphasis state (e.g. hover, selection).",
              "attribute": "highlighted",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_gradId",
              "privacy": "private",
              "readonly": true,
              "default": "`map-circle-grad-${gradientIdCounter++}`"
            }
          ],
          "attributes": [
            {
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"#4f46e5\"",
              "description": "Fill color; the gradient's light (top) and dark (bottom) stops are derived from this.",
              "fieldName": "color"
            },
            {
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "18",
              "description": "Diameter, in CSS pixels.",
              "fieldName": "size"
            },
            {
              "name": "ring-width",
              "type": {
                "text": "number"
              },
              "default": "4",
              "description": "White outer ring thickness, in the same viewBox units as `size` (scales with it).",
              "fieldName": "ringWidth"
            },
            {
              "name": "highlighted",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Scales and glows the circle — a generic emphasis state (e.g. hover, selection).",
              "fieldName": "highlighted"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "map-circle",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MapCircle",
          "declaration": {
            "name": "MapCircle",
            "module": "src/map-circle.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "map-circle",
          "declaration": {
            "name": "MapCircle",
            "module": "src/map-circle.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/map-pin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A circular \"Apple Maps\"-style map pin: a light-to-dark gradient fill with\na slight point at the bottom. Purely a visual primitive — it has no\n`mapbox-gl` (or any mapping library) dependency; the consumer positions\nit, e.g. via `new mapboxgl.Marker({ element: pinEl })`.",
          "name": "MapPin",
          "slots": [
            {
              "description": "Badge content shown centered on the pin's circular head — a rank number, an emoji, a small icon.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"#4f46e5\"",
              "description": "Fill color; the gradient's light (top) and dark (bottom) stops are derived from this.",
              "attribute": "color"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "32",
              "description": "Diameter of the circular head, in CSS pixels.",
              "attribute": "size"
            },
            {
              "kind": "field",
              "name": "highlighted",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Scales and glows the pin — a generic emphasis state (e.g. hover, selection).",
              "attribute": "highlighted",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_gradId",
              "privacy": "private",
              "readonly": true,
              "default": "`map-pin-grad-${gradientIdCounter++}`"
            }
          ],
          "attributes": [
            {
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"#4f46e5\"",
              "description": "Fill color; the gradient's light (top) and dark (bottom) stops are derived from this.",
              "fieldName": "color"
            },
            {
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "32",
              "description": "Diameter of the circular head, in CSS pixels.",
              "fieldName": "size"
            },
            {
              "name": "highlighted",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Scales and glows the pin — a generic emphasis state (e.g. hover, selection).",
              "fieldName": "highlighted"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "map-pin",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MapPin",
          "declaration": {
            "name": "MapPin",
            "module": "src/map-pin.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "map-pin",
          "declaration": {
            "name": "MapPin",
            "module": "src/map-pin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/mcp-server.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "src/percent-bar-chart.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Horizontal bar chart for labeled percentage rows, using D3's linear scale.\nEach group gets its own labeled row; bars are proportional to percentage of 100.",
          "name": "PercentBarChart",
          "members": [
            {
              "kind": "field",
              "name": "groups",
              "type": {
                "text": "PercentBarGroup[]"
              },
              "default": "[]",
              "description": "Rows to render, one per group."
            },
            {
              "kind": "field",
              "name": "_width",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "_ro",
              "type": {
                "text": "ResizeObserver | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_gradIdBase",
              "privacy": "private",
              "readonly": true,
              "default": "`percent-bar-grad-${gradientIdCounter++}`"
            },
            {
              "kind": "method",
              "name": "_gradId",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Per-row gradient id, unique across instances and rows."
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "percent-bar-chart",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "PercentBarChart",
          "declaration": {
            "name": "PercentBarChart",
            "module": "src/percent-bar-chart.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "percent-bar-chart",
          "declaration": {
            "name": "PercentBarChart",
            "module": "src/percent-bar-chart.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/photo-gallery.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Responsive, accessible image carousel composed from declarative\n`gallery-item` children.",
          "name": "PhotoGallery",
          "slots": [
            {
              "description": "`gallery-item` elements rendered as slides.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "currentIndex",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Zero-based active image index.",
              "attribute": "current-index",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "delay",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Autoplay interval in milliseconds. Set to zero to disable autoplay.",
              "attribute": "delay"
            },
            {
              "kind": "field",
              "name": "showControls",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Whether previous and next buttons are shown.",
              "attribute": "show-controls"
            },
            {
              "kind": "field",
              "name": "showCounter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether a current/total counter is shown.",
              "attribute": "show-counter"
            },
            {
              "kind": "field",
              "name": "showIndicators",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether clickable slide indicators are shown.",
              "attribute": "show-indicators"
            },
            {
              "kind": "field",
              "name": "showAutoplayControl",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Whether autoplay includes a built-in pause/play control.",
              "attribute": "show-autoplay-control"
            },
            {
              "kind": "field",
              "name": "paused",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether autoplay is explicitly paused.",
              "attribute": "paused",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "aspectRatio",
              "type": {
                "text": "string"
              },
              "default": "\"16 / 9\"",
              "description": "CSS aspect ratio used by the image viewport.",
              "attribute": "aspect-ratio"
            },
            {
              "kind": "field",
              "name": "objectFit",
              "type": {
                "text": "PhotoGalleryObjectFit"
              },
              "default": "\"cover\"",
              "description": "How images fit within the stable viewport.",
              "attribute": "object-fit"
            },
            {
              "kind": "field",
              "name": "_galleryItems",
              "type": {
                "text": "GalleryItem[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_previousIndex",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_itemsVersion",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "_autoplayTimer",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_transitionTimer",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_metadataObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_hovered",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_focusWithin",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_nextChangeReason",
              "type": {
                "text": "PhotoGalleryChangeReason | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_pendingChange",
              "type": {
                "text": "PhotoGallerySlideChangeDetail | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_pointerStart",
              "type": {
                "text": "{ id: number; x: number; y: number } | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_itemsChanged",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_activeItem",
              "type": {
                "text": "GalleryItem | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_renderedIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "_normalizeIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Wraps any requested index into the current item range."
            },
            {
              "kind": "method",
              "name": "_variantsFor",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "GalleryItemVariant[]"
                }
              },
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "GalleryItem"
                  }
                }
              ],
              "description": "Returns responsive variants declared directly under an item."
            },
            {
              "kind": "method",
              "name": "_goTo",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "reason",
                  "type": {
                    "text": "PhotoGalleryChangeReason"
                  }
                }
              ],
              "description": "Changes slides through the shared state and event path."
            },
            {
              "kind": "method",
              "name": "_showPrevious",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "reason",
                  "default": "\"previous\"",
                  "type": {
                    "text": "PhotoGalleryChangeReason"
                  }
                }
              ],
              "description": "Moves to the previous image."
            },
            {
              "kind": "method",
              "name": "_showNext",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "reason",
                  "default": "\"next\"",
                  "type": {
                    "text": "PhotoGalleryChangeReason"
                  }
                }
              ],
              "description": "Moves to the next image."
            },
            {
              "kind": "method",
              "name": "_togglePaused",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Toggles explicit autoplay pause state."
            },
            {
              "kind": "method",
              "name": "_restartAutoplay",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears and conditionally schedules the next autoplay advance."
            },
            {
              "kind": "method",
              "name": "_canAutoplay",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Reports whether autoplay may currently schedule a transition."
            },
            {
              "kind": "method",
              "name": "_clearAutoplay",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears the pending autoplay timeout."
            },
            {
              "kind": "method",
              "name": "_scheduleTransitionCleanup",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Removes the outgoing crossfade layer after the animation completes."
            },
            {
              "kind": "method",
              "name": "_clearTransition",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears pending transition cleanup."
            },
            {
              "kind": "method",
              "name": "_handleMetadataChange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Refreshes item metadata and clamps the active index after light-DOM changes."
            },
            {
              "kind": "method",
              "name": "_handleSlotChange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Refreshes item state after the default slot changes."
            },
            {
              "kind": "method",
              "name": "_handleMouseEnter",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Temporarily pauses autoplay while the pointer is over the gallery."
            },
            {
              "kind": "method",
              "name": "_handleMouseLeave",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resumes autoplay with a fresh delay after hover ends."
            },
            {
              "kind": "method",
              "name": "_handleFocusIn",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Temporarily pauses autoplay while focus is inside the gallery."
            },
            {
              "kind": "method",
              "name": "_handleFocusOut",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resumes autoplay with a fresh delay after focus leaves the gallery."
            },
            {
              "kind": "field",
              "name": "_handleVisibilityChange",
              "privacy": "private",
              "readonly": true,
              "description": "Pauses or resumes scheduling when page visibility changes."
            },
            {
              "kind": "method",
              "name": "_handleKeyDown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Handles Left and Right arrow keyboard navigation."
            },
            {
              "kind": "method",
              "name": "_handlePointerDown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "PointerEvent"
                  }
                }
              ],
              "description": "Records the starting point of a primary pointer gesture."
            },
            {
              "kind": "method",
              "name": "_handlePointerUp",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "PointerEvent"
                  }
                }
              ],
              "description": "Converts a sufficiently horizontal pointer gesture into navigation."
            },
            {
              "kind": "method",
              "name": "_handlePointerCancel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Cancels an incomplete pointer gesture."
            },
            {
              "kind": "method",
              "name": "_renderPicture",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "state",
                  "type": {
                    "text": "\"current\" | \"previous\""
                  }
                }
              ],
              "description": "Renders one responsive image layer for the crossfade stack."
            },
            {
              "kind": "method",
              "name": "_renderFooter",
              "privacy": "private",
              "parameters": [
                {
                  "name": "itemCount",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Renders enabled counter, indicator, and autoplay controls."
            }
          ],
          "events": [
            {
              "name": "slide-change",
              "type": {
                "text": "CustomEvent"
              },
              "description": "The active image changed."
            }
          ],
          "attributes": [
            {
              "name": "current-index",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Zero-based active image index.",
              "fieldName": "currentIndex"
            },
            {
              "name": "delay",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Autoplay interval in milliseconds. Set to zero to disable autoplay.",
              "fieldName": "delay"
            },
            {
              "name": "show-controls",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Whether previous and next buttons are shown.",
              "fieldName": "showControls"
            },
            {
              "name": "show-counter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether a current/total counter is shown.",
              "fieldName": "showCounter"
            },
            {
              "name": "show-indicators",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether clickable slide indicators are shown.",
              "fieldName": "showIndicators"
            },
            {
              "name": "show-autoplay-control",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Whether autoplay includes a built-in pause/play control.",
              "fieldName": "showAutoplayControl"
            },
            {
              "name": "paused",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether autoplay is explicitly paused.",
              "fieldName": "paused"
            },
            {
              "name": "aspect-ratio",
              "type": {
                "text": "string"
              },
              "default": "\"16 / 9\"",
              "description": "CSS aspect ratio used by the image viewport.",
              "fieldName": "aspectRatio"
            },
            {
              "name": "object-fit",
              "type": {
                "text": "PhotoGalleryObjectFit"
              },
              "default": "\"cover\"",
              "description": "How images fit within the stable viewport.",
              "fieldName": "objectFit"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "photo-gallery",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "PhotoGallery",
          "declaration": {
            "name": "PhotoGallery",
            "module": "src/photo-gallery.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "photo-gallery",
          "declaration": {
            "name": "PhotoGallery",
            "module": "src/photo-gallery.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/popover-panel.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Generic anchored popover shell: a floating card positioned relative to its\nnearest `position: relative` ancestor (place it next to its trigger button\ninside such a wrapper), as opposed to `slide-panel`'s fixed screen-edge\ndrawer. Closes on outside click or Escape. Header chrome and close button\nmatch `slide-panel`'s API (`heading`, `panel-close`) so either can be\nswapped in for the other with no consumer-side changes beyond the wrapper.\n\nSet `centered` to render as a screen-centered modal with a translucent\nbackdrop instead of the default anchored placement.",
          "name": "PopoverPanel",
          "slots": [
            {
              "description": "Overrides the plain `heading` text with custom markup.",
              "name": "title"
            },
            {
              "description": "Extra header controls (e.g. an icon+label link) rendered between the title and the close button.",
              "name": "actions"
            },
            {
              "description": "Popover body content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the popover is currently visible.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Title text shown in the popover header.",
              "attribute": "heading"
            },
            {
              "kind": "field",
              "name": "centered",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Render as a screen-centered modal with a backdrop instead of anchored placement.",
              "attribute": "centered",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "#modalActive",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "#previousFocus",
              "privacy": "private",
              "type": {
                "text": "HTMLElement | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#onWindowMousedown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "#onWindowKeydown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "#onDocumentFocusIn",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "#getFocusableElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "#focusInitial",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "#close",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            }
          ],
          "events": [
            {
              "name": "panel-close",
              "type": {
                "text": "CustomEvent"
              },
              "description": "User clicked the close (✕) button, pressed Escape, or clicked outside/the backdrop."
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the popover is currently visible.",
              "fieldName": "open"
            },
            {
              "name": "heading",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Title text shown in the popover header.",
              "fieldName": "heading"
            },
            {
              "name": "centered",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Render as a screen-centered modal with a backdrop instead of anchored placement.",
              "fieldName": "centered"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "popover-panel",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "PopoverPanel",
          "declaration": {
            "name": "PopoverPanel",
            "module": "src/popover-panel.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "popover-panel",
          "declaration": {
            "name": "PopoverPanel",
            "module": "src/popover-panel.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/price-history-chart.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "D3-powered SVG line chart for property price history.\n\nUses scaleTime (X) + scaleLinear (Y) from d3-scale and line/area path\ngenerators from d3-shape. Adapts to container width via ResizeObserver.",
          "name": "PriceHistoryChart",
          "members": [
            {
              "kind": "field",
              "name": "history",
              "type": {
                "text": "PricePoint[]"
              },
              "default": "[]",
              "description": "Array of price points (points with null price/date are skipped).",
              "attribute": "history"
            },
            {
              "kind": "field",
              "name": "yLabels",
              "type": {
                "text": "\"auto\" | \"always\" | \"never\""
              },
              "default": "\"auto\"",
              "description": "\"auto\" (default) | \"always\" | \"never\"",
              "attribute": "y-labels"
            },
            {
              "kind": "field",
              "name": "maxXLabels",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Max X-axis date ticks (default 3).",
              "attribute": "max-x-labels"
            },
            {
              "kind": "field",
              "name": "_width",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "_hoveredIdx",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_ro",
              "type": {
                "text": "ResizeObserver | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "validPoints",
              "type": {
                "text": "PricePoint[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "showY",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "computeLayout",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "history",
              "type": {
                "text": "PricePoint[]"
              },
              "default": "[]",
              "description": "Array of price points (points with null price/date are skipped).",
              "fieldName": "history"
            },
            {
              "name": "y-labels",
              "type": {
                "text": "\"auto\" | \"always\" | \"never\""
              },
              "default": "\"auto\"",
              "description": "\"auto\" (default) | \"always\" | \"never\"",
              "fieldName": "yLabels"
            },
            {
              "name": "max-x-labels",
              "type": {
                "text": "number"
              },
              "default": "3",
              "description": "Max X-axis date ticks (default 3).",
              "fieldName": "maxXLabels"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "price-history-chart",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "PriceHistoryChart",
          "declaration": {
            "name": "PriceHistoryChart",
            "module": "src/price-history-chart.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "price-history-chart",
          "declaration": {
            "name": "PriceHistoryChart",
            "module": "src/price-history-chart.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/radio-cards.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Single-select group of full-width cards, each with a label and optional\ndescription — for a handful of meaningfully different choices where the\ndescription matters. For many short, same-shaped options (a color swatch,\na basemap style), use `radio-pills` instead. Wraps native radio inputs for\nkeyboard/a11y and fires `change` rather than relying on form submission.",
          "name": "RadioCards",
          "members": [
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "RadioCardOption[]"
              },
              "default": "[]",
              "description": "Options to render, one card each."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables every native radio in the group.",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "#name",
              "privacy": "private",
              "readonly": true,
              "default": "`radio-cards-${++instanceCount}`"
            },
            {
              "kind": "method",
              "name": "_onChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "CustomEvent"
              },
              "description": "A card was selected; detail: { value }."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value.",
              "fieldName": "value"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables every native radio in the group.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "radio-cards",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RadioCards",
          "declaration": {
            "name": "RadioCards",
            "module": "src/radio-cards.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "radio-cards",
          "declaration": {
            "name": "RadioCards",
            "module": "src/radio-cards.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/radio-pills.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Single-select group of compact pill-shaped options — for many short,\nsame-shaped choices (a basemap style, a unit toggle). For a handful of\nchoices where a description matters, use `radio-cards` instead. Wraps\nnative radio inputs for keyboard/a11y and fires `change` rather than\nrelying on form submission.",
          "name": "RadioPills",
          "members": [
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "RadioPillOption[]"
              },
              "default": "[]",
              "description": "Options to render, one pill each."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables every native radio in the group.",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "#name",
              "privacy": "private",
              "readonly": true,
              "default": "`radio-pills-${++instanceCount}`"
            },
            {
              "kind": "method",
              "name": "_onChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "CustomEvent"
              },
              "description": "A pill was selected; detail: { value }."
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Currently selected value.",
              "fieldName": "value"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables every native radio in the group.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "radio-pills",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RadioPills",
          "declaration": {
            "name": "RadioPills",
            "module": "src/radio-pills.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "radio-pills",
          "declaration": {
            "name": "RadioPills",
            "module": "src/radio-pills.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/relative-time.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Inline relative-time display (e.g. \"3 hours ago\"). Accepts either a\nstandard ISO 8601 string or a SQLite `datetime('now')` string\n(\"YYYY-MM-DD HH:MM:SS\", UTC, no zone marker) via `datetime`. Shows the\nfull date/time in the viewer's local timezone as a hover tooltip, and\nre-renders on an interval so the text stays current while visible.",
          "name": "RelativeTime",
          "members": [
            {
              "kind": "field",
              "name": "datetime",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Timestamp to render, relative to now.",
              "attribute": "datetime"
            },
            {
              "kind": "field",
              "name": "_now",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_timer",
              "type": {
                "text": "ReturnType<typeof setInterval> | null"
              },
              "privacy": "private",
              "default": "null"
            }
          ],
          "attributes": [
            {
              "name": "datetime",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Timestamp to render, relative to now.",
              "fieldName": "datetime"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "relative-time",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RelativeTime",
          "declaration": {
            "name": "RelativeTime",
            "module": "src/relative-time.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "relative-time",
          "declaration": {
            "name": "RelativeTime",
            "module": "src/relative-time.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/reveal-button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Button that reveals hidden slotted content when clicked.",
          "name": "RevealButton",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"Reveal hidden content\"",
              "description": "Label shown on the button before it's clicked.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables revealing the slotted content.",
              "attribute": "disabled"
            },
            {
              "kind": "method",
              "name": "_reveal",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"Reveal hidden content\"",
              "description": "Label shown on the button before it's clicked.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables revealing the slotted content.",
              "fieldName": "disabled"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "reveal-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RevealButton",
          "declaration": {
            "name": "RevealButton",
            "module": "src/reveal-button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "reveal-button",
          "declaration": {
            "name": "RevealButton",
            "module": "src/reveal-button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/roman-numeral.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Converts an integer to a roman numeral inline.",
          "name": "RomanNumeral",
          "members": [
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "number | undefined"
              },
              "description": "Integer value to render as a roman numeral.",
              "attribute": "value"
            },
            {
              "kind": "method",
              "name": "_convertToRoman",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "num",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "number | undefined"
              },
              "description": "Integer value to render as a roman numeral.",
              "fieldName": "value"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "roman-numeral",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RomanNumeral",
          "declaration": {
            "name": "RomanNumeral",
            "module": "src/roman-numeral.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "roman-numeral",
          "declaration": {
            "name": "RomanNumeral",
            "module": "src/roman-numeral.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/slide-panel.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Generic sliding panel shell. Handles positioning, open/close animation,\nheader chrome, and a close button. Body content is provided via the\ndefault slot; the consumer controls its own padding and overflow.\n\nDesktop: fixed right-side panel that slides from the right.\nMobile (≤48rem): bottom-sheet drawer (60vh) — reserved for future use.",
          "name": "SlidePanel",
          "members": [
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the panel is currently visible.",
              "attribute": "open"
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Title text shown in the panel header (overridable via slot=\"title\").",
              "attribute": "heading"
            },
            {
              "kind": "field",
              "name": "_previousFocus",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "_close",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_onWindowKeydown",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "panel-close",
              "type": {
                "text": "CustomEvent"
              },
              "description": "User clicked the close (✕) button."
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the panel is currently visible.",
              "fieldName": "open"
            },
            {
              "name": "heading",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Title text shown in the panel header (overridable via slot=\"title\").",
              "fieldName": "heading"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "slide-panel",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SlidePanel",
          "declaration": {
            "name": "SlidePanel",
            "module": "src/slide-panel.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "slide-panel",
          "declaration": {
            "name": "SlidePanel",
            "module": "src/slide-panel.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/stat-meter.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A compact labeled meter for a single percentage reading — e.g. CPU or\nmemory usage in a dashboard header. `percent` may be `null` when no\nreading is available yet (e.g. the first tick of a polling metric); the\nbar then renders empty and the value shows an em dash instead of \"0%\".",
          "name": "StatMeter",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Short label shown before the bar, e.g. \"CPU\" or \"MEM\".",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "percent",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Percentage 0-100. `null` renders an empty bar and a \"—\" value instead of \"0%\".",
              "attribute": "percent"
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Fill color override; falls back to the `--ui-success` token.",
              "attribute": "color"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Short label shown before the bar, e.g. \"CPU\" or \"MEM\".",
              "fieldName": "label"
            },
            {
              "name": "percent",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Percentage 0-100. `null` renders an empty bar and a \"—\" value instead of \"0%\".",
              "fieldName": "percent"
            },
            {
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Fill color override; falls back to the `--ui-success` token.",
              "fieldName": "color"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "stat-meter",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "StatMeter",
          "declaration": {
            "name": "StatMeter",
            "module": "src/stat-meter.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "stat-meter",
          "declaration": {
            "name": "StatMeter",
            "module": "src/stat-meter.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/status-pill.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Small colored status pill, optionally with a spinning icon — for task/run\nstates (\"Open\", \"Blocked\", \"Done\") and live-activity indicators (\"Running\").",
          "name": "StatusPill",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text shown inside the pill.",
              "attribute": "label"
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "StatusPillColor"
              },
              "default": "\"neutral\"",
              "description": "Color variant.",
              "attribute": "color"
            },
            {
              "kind": "field",
              "name": "spinner",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Renders a small spinning icon before the label.",
              "attribute": "spinner"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "\"\"",
              "description": "Text shown inside the pill.",
              "fieldName": "label"
            },
            {
              "name": "color",
              "type": {
                "text": "StatusPillColor"
              },
              "default": "\"neutral\"",
              "description": "Color variant.",
              "fieldName": "color"
            },
            {
              "name": "spinner",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Renders a small spinning icon before the label.",
              "fieldName": "spinner"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "status-pill",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "StatusPill",
          "declaration": {
            "name": "StatusPill",
            "module": "src/status-pill.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "status-pill",
          "declaration": {
            "name": "StatusPill",
            "module": "src/status-pill.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tile-grid.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A generic, presentational grid shell: renders one bordered card per entry\nin `items`, with each tile's content produced by `renderTile` (default:\nstringify). Knows nothing about what an \"item\" means — callers own the\ndata shape entirely. Modeled directly on `data-table`'s headless pattern.\n\nOptional `itemHref` makes whole tiles clickable (navigating via\n`location.hash`), without hijacking clicks on nested interactive elements\n(links/buttons) a tile's rendered content might contain.\n\nOptional `fileIcon` prefixes each tile with a decorative Heroicons\n\"document\" glyph, for grids whose items represent files — the icon never\ncarries its own accessible name since the rendered tile content (e.g. a\nfilename) already identifies the item. Off by default, so it consumes no\nlayout space or markup for grids of non-file items.",
          "name": "TileGrid",
          "members": [
            {
              "kind": "field",
              "name": "items",
              "type": {
                "text": "unknown[]"
              },
              "default": "[]",
              "description": "Tile data; opaque to this component beyond what `renderTile` does with it."
            },
            {
              "kind": "field",
              "name": "itemKey",
              "type": {
                "text": "(item: unknown, index: number) => string | number"
              },
              "description": "Stable identity for `items[i]`, used as the repeat-directive key. Defaults to the item's index."
            },
            {
              "kind": "field",
              "name": "renderTile",
              "type": {
                "text": "(item: unknown) => unknown"
              },
              "description": "Produces a tile's rendered content for `item`. Default: stringify."
            },
            {
              "kind": "field",
              "name": "itemHref",
              "type": {
                "text": "((item: unknown) => string | null) | null"
              },
              "default": "null",
              "description": "When set, clicking a tile (outside any nested link/button) navigates to this hash."
            },
            {
              "kind": "field",
              "name": "fileIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prefixes each tile with a decorative \"document\" icon, for grids of file-like items. Off by default.",
              "attribute": "file-icon"
            },
            {
              "kind": "method",
              "name": "#onTileClick",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#onTileKeydown",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "href",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#isNestedInteractive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "path",
                  "type": {
                    "text": "EventTarget[]"
                  }
                },
                {
                  "name": "tile",
                  "type": {
                    "text": "EventTarget | null"
                  }
                }
              ]
            }
          ],
          "attributes": [
            {
              "name": "file-icon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prefixes each tile with a decorative \"document\" icon, for grids of file-like items. Off by default.",
              "fieldName": "fileIcon"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "tile-grid",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TileGrid",
          "declaration": {
            "name": "TileGrid",
            "module": "src/tile-grid.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "tile-grid",
          "declaration": {
            "name": "TileGrid",
            "module": "src/tile-grid.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toast-notification.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Fixed-position stack of dismissible notifications, anchored top-right\n(top-full-width on mobile). Not wired to any app state yet — callers add\ntoasts imperatively via the `show()` method on a live element reference,\ne.g. `document.querySelector('toast-notification')?.show('Offline', { variant: 'error' })`,\nor via the `notifySuccess`/`notifyError`/`notifyInfo` module-level helpers\nexported from this file. Each toast auto-dismisses after `duration` ms and\ncan also be dismissed via its ✕ button. Appears/disappears instantly — no\nslide/fade transitions.",
          "name": "ToastNotification",
          "members": [
            {
              "kind": "field",
              "name": "_toasts",
              "type": {
                "text": "Toast[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_nextId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "_timers",
              "privacy": "private",
              "default": "new Map<number, ReturnType<typeof setTimeout>>()"
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  },
                  "description": "Text to show."
                },
                {
                  "name": "options",
                  "default": "{}",
                  "type": {
                    "text": "ToastOptions"
                  },
                  "description": "Variant + auto-dismiss duration (see {@link ToastOptions}).\n   * "
                }
              ],
              "description": "Queues a toast for display."
            },
            {
              "kind": "method",
              "name": "dismiss",
              "parameters": [
                {
                  "name": "id",
                  "type": {
                    "text": "number"
                  },
                  "description": "The id returned by `show()`."
                }
              ],
              "description": "Removes a toast immediately, cancelling its pending auto-dismiss timer if any."
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "toast-notification",
          "customElement": true
        },
        {
          "kind": "function",
          "name": "notifyError",
          "parameters": [
            {
              "name": "message",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Shows an error toast. Use for connection/network failures, not validation errors."
        },
        {
          "kind": "function",
          "name": "notifySuccess",
          "parameters": [
            {
              "name": "message",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Shows a success toast."
        },
        {
          "kind": "function",
          "name": "notifyInfo",
          "parameters": [
            {
              "name": "message",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Shows an info toast."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ToastNotification",
          "declaration": {
            "name": "ToastNotification",
            "module": "src/toast-notification.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "toast-notification",
          "declaration": {
            "name": "ToastNotification",
            "module": "src/toast-notification.ts"
          }
        },
        {
          "kind": "js",
          "name": "notifyError",
          "declaration": {
            "name": "notifyError",
            "module": "src/toast-notification.ts"
          }
        },
        {
          "kind": "js",
          "name": "notifySuccess",
          "declaration": {
            "name": "notifySuccess",
            "module": "src/toast-notification.ts"
          }
        },
        {
          "kind": "js",
          "name": "notifyInfo",
          "declaration": {
            "name": "notifyInfo",
            "module": "src/toast-notification.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tokens.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "tokenValues",
          "type": {
            "text": "Record<string, string>"
          },
          "default": "{ // Colors \"--ui-primary\": \"#4f46e5\", // indigo-600 \"--ui-primary-hover\": \"#4338ca\", // indigo-700 \"--ui-info\": \"#0ea5e9\", // sky-500 \"--ui-info-hover\": \"#0284c7\", // sky-600 \"--ui-danger\": \"#dc2626\", // red-600 \"--ui-danger-hover\": \"#b91c1c\", // red-700 \"--ui-success\": \"#16a34a\", // green-600 \"--ui-warning\": \"#d97706\", // amber-600 \"--ui-warning-hover\": \"#b45309\", // amber-700 \"--ui-on-accent\": \"#ffffff\", \"--ui-text\": \"#0f172a\", // slate-900 \"--ui-text-muted\": \"#64748b\", // slate-500 \"--ui-border\": \"#e2e8f0\", // slate-200 \"--ui-surface\": \"#ffffff\", // white \"--ui-surface-muted\": \"#f8fafc\", // slate-50 \"--ui-tooltip\": \"#0f172a\", // slate-900 \"--ui-hover-overlay\": \"rgb(255 255 255 / 0.32)\", \"--ui-overlay\": \"rgb(15 23 42 / 0.45)\", // slate-900 / 45% // Shape / depth \"--ui-radius\": \"0.5rem\", // rounded-lg \"--ui-radius-sm\": \"0.25rem\", // rounded \"--ui-shadow\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\", // shadow-md \"--ui-shadow-lg\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\", // shadow-xl \"--ui-focus-ring\": \"0 0 0 3px rgb(79 70 229 / 0.35)\", // Type \"--ui-font\": 'ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"', \"--ui-font-mono\": \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace\", \"--ui-font-size-lg\": \"1rem\", // text-base \"--ui-font-size\": \"0.875rem\", // text-sm \"--ui-font-size-sm\": \"0.75rem\", // text-xs \"--ui-font-size-xs\": \"0.6875rem\", // Font weights — the only four weights the system uses. \"--ui-font-weight-regular\": \"400\", \"--ui-font-weight-medium\": \"500\", \"--ui-font-weight-semibold\": \"600\", \"--ui-font-weight-bold\": \"700\", // Line heights — glyph (icon/marker box), tight (headings), normal (body). \"--ui-line-height-glyph\": \"1\", \"--ui-line-height-tight\": \"1.25\", \"--ui-line-height-normal\": \"1.5\", // Letter spacing / tracking — default and the single widened step. \"--ui-tracking-normal\": \"0\", \"--ui-tracking-wide\": \"0.04em\", }",
          "description": "Design token values, sourced from Tailwind v4's default theme palette.\nEach entry maps a `--ui-*` custom property name to its default value.\nThese are the same values baked in as `var(--ui-*, <fallback>)` fallbacks\nthroughout component styles, so components render correctly with zero\nexternal CSS. Consumers may override any of these by setting the custom\nproperty on `:root` or an ancestor element (see `tokens.css`)."
        },
        {
          "kind": "variable",
          "name": "darkTokenValues",
          "type": {
            "text": "Record<string, string>"
          },
          "default": "{ \"--ui-primary\": \"#6366f1\", // indigo-500 \"--ui-primary-hover\": \"#818cf8\", // indigo-400 \"--ui-info\": \"#38bdf8\", // sky-400 \"--ui-info-hover\": \"#7dd3fc\", // sky-300 \"--ui-danger\": \"#ef4444\", // red-500 \"--ui-danger-hover\": \"#f87171\", // red-400 \"--ui-success\": \"#22c55e\", // green-500 \"--ui-warning\": \"#f59e0b\", // amber-500 \"--ui-warning-hover\": \"#fbbf24\", // amber-400 \"--ui-on-accent\": \"#ffffff\", \"--ui-text\": \"#f1f5f9\", // slate-100 \"--ui-text-muted\": \"#94a3b8\", // slate-400 \"--ui-border\": \"#334155\", // slate-700 \"--ui-surface\": \"#0f172a\", // slate-900 \"--ui-surface-muted\": \"#1e293b\", // slate-800 \"--ui-tooltip\": \"#020617\", // slate-950 \"--ui-hover-overlay\": \"rgb(255 255 255 / 0.12)\", \"--ui-overlay\": \"rgb(2 6 23 / 0.6)\", // slate-950 / 60% \"--ui-focus-ring\": \"0 0 0 3px rgb(99 102 241 / 0.45)\", }",
          "description": "Dark-mode overrides for the same `--ui-*` custom properties, applied by\n`tokens.css` via `@media (prefers-color-scheme: dark)` and `[data-theme]`\n(see generate-tokens-css.mjs). Same Tailwind slate scale as the light\npalette, inverted, with primary/danger/success lightened one step (500\ninstead of 600) for sufficient contrast against dark surfaces. Shape/type\ntokens are theme-independent and not repeated here."
        },
        {
          "kind": "variable",
          "name": "tokens",
          "default": "css``",
          "description": "Historically a shared `:host { --ui-x: var(--ui-x, fallback); } ` block,\nre-declaring every token on each component's own host element as a\n\"materialize the inherited value, or this fallback\" trick. That pattern\nturned out to be a genuine bug, not a working default: browsers treat\n`--ui-x: var(--ui-x, ...)` on `:host` as a self-referencing declaration\nthat computes to the guaranteed-invalid value REGARDLESS of what an\nancestor (e.g. `:root`) set — the host's own `:host` rule wins the cascade\nover the ancestor's, so this dropped whatever the app actually set and\nsilently substituted the component's own fallback everywhere. It went\nunnoticed because every component's fallback happened to equal the\nintended light-mode value — dark mode (a real, different value at\n`:root`) exposed it immediately (colors rendering as if no theme were\napplied at all). Fix: don't redeclare tokens on `:host` — plain\ninheritance already carries `:root`'s values into every shadow root\ncorrectly, and every component already has its own `var(--ui-x, fallback)`\nat each point of use, so nothing here is needed for the \"zero external\nCSS\" default to keep working. Kept as an empty export so the existing\n`static override styles = [tokens, css\\`...\\`]` import in every component\nkeeps compiling."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "tokenValues",
          "declaration": {
            "name": "tokenValues",
            "module": "src/tokens.ts"
          }
        },
        {
          "kind": "js",
          "name": "darkTokenValues",
          "declaration": {
            "name": "darkTokenValues",
            "module": "src/tokens.ts"
          }
        },
        {
          "kind": "js",
          "name": "tokens",
          "declaration": {
            "name": "tokens",
            "module": "src/tokens.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/ui-button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Button (or link styled as one) with an optional leading icon, in three\nvisual weights. Set `href` to render an `<a>` instead of a `<button>` —\nsame styling either way — for cross-page navigation that should look like\nan action button; a disabled/busy link stays a real `<a>` with\n`aria-disabled` + `pointer-events: none` rather than losing its href.\nPut the icon in the `icon` slot and the label in the default slot.\n\nForm-associated (`type=\"submit\"`/`\"reset\"`): the actual `<button>` lives in\nthis element's shadow root, which native HTML form association does not\ncross into from an ancestor light-DOM `<form>`. `type=\"submit\"`/`\"reset\"`\nis instead wired through `ElementInternals.form` — the same mechanism\n`address-autocomplete` uses to associate with an ancestor form.",
          "name": "UiButton",
          "slots": [
            {
              "description": "Optional leading icon (e.g. an inline SVG).",
              "name": "icon"
            },
            {
              "description": "Button label.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "formAssociated",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "true"
            },
            {
              "kind": "field",
              "name": "#internals",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "ButtonVariant"
              },
              "default": "\"primary\"",
              "description": "Visual weight.",
              "attribute": "variant"
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Renders an `<a href=\"...\">` instead of a `<button>` when set.",
              "attribute": "href"
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "\"button\" | \"submit\" | \"reset\""
              },
              "default": "\"button\"",
              "description": "Native button `type`. Ignored when `href` is set.",
              "attribute": "type"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the control and dims it.",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "busy",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Shows a spinner in place of the icon slot and disables the control.",
              "attribute": "busy"
            },
            {
              "kind": "method",
              "name": "_onClick",
              "privacy": "private",
              "description": "Drives submit/reset on the ancestor form via ElementInternals, since a shadow-DOM button can't do it natively."
            },
            {
              "kind": "method",
              "name": "_onLinkClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ],
              "description": "Suppresses navigation while a link-styled button is disabled or busy."
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "ButtonVariant"
              },
              "default": "\"primary\"",
              "description": "Visual weight.",
              "fieldName": "variant"
            },
            {
              "name": "href",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Renders an `<a href=\"...\">` instead of a `<button>` when set.",
              "fieldName": "href"
            },
            {
              "name": "type",
              "type": {
                "text": "\"button\" | \"submit\" | \"reset\""
              },
              "default": "\"button\"",
              "description": "Native button `type`. Ignored when `href` is set.",
              "fieldName": "type"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables the control and dims it.",
              "fieldName": "disabled"
            },
            {
              "name": "busy",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Shows a spinner in place of the icon slot and disables the control.",
              "fieldName": "busy"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "ui-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "UiButton",
          "declaration": {
            "name": "UiButton",
            "module": "src/ui-button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ui-button",
          "declaration": {
            "name": "UiButton",
            "module": "src/ui-button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/user-avatar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Circular avatar. Shows `src` when it loads successfully; falls back to the\nfirst letter of `name` (uppercased) if `src` is unset or fails to load\n(e.g. an expired OAuth profile-photo URL); falls back further to a generic\nperson icon if `name` is also unset. A broken image never leaves a blank\ncircle.",
          "name": "UserAvatar",
          "members": [
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Image URL to show. Falls back to initials/icon if unset or it fails to load.",
              "attribute": "src"
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Source string for the fallback initial (e.g. a display name or email) — first character, uppercased.",
              "attribute": "name"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "string | number"
              },
              "default": "32",
              "description": "Diameter in CSS pixels, or a preset name (`xs`=18, `sm`=24, `md`=32, `lg`=48).",
              "attribute": "size"
            },
            {
              "kind": "field",
              "name": "_imgError",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "SIZE_PRESETS",
              "type": {
                "text": "Record<string, number>"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "{ xs: 18, sm: 24, md: 32, lg: 48, }"
            },
            {
              "kind": "method",
              "name": "resolveSize",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "description": "Resolves the `size` property (number or preset name) to a pixel diameter."
            }
          ],
          "attributes": [
            {
              "name": "src",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Image URL to show. Falls back to initials/icon if unset or it fails to load.",
              "fieldName": "src"
            },
            {
              "name": "name",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Source string for the fallback initial (e.g. a display name or email) — first character, uppercased.",
              "fieldName": "name"
            },
            {
              "name": "size",
              "type": {
                "text": "string | number"
              },
              "default": "32",
              "description": "Diameter in CSS pixels, or a preset name (`xs`=18, `sm`=24, `md`=32, `lg`=48).",
              "fieldName": "size"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "user-avatar",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "UserAvatar",
          "declaration": {
            "name": "UserAvatar",
            "module": "src/user-avatar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "user-avatar",
          "declaration": {
            "name": "UserAvatar",
            "module": "src/user-avatar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/weight-bar-chart.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Sorted horizontal bar chart of labeled weights (normalized fractions\nsumming to ~1). Bars sort descending — the order IS the priority ranking.\nWidths scale relative to the largest weight (which fills its track); the\npercent labels carry the absolute values. Rows are keyed by item id\n(repeat directive) so a re-render with new weights moves the existing\nrows; bar widths animate via CSS, re-sorting is instant.",
          "name": "WeightBarChart",
          "members": [
            {
              "kind": "field",
              "name": "items",
              "type": {
                "text": "WeightBarItem[]"
              },
              "default": "[]",
              "description": "Items to render as weighted rows, sorted descending by value."
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "weight-bar-chart",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "WeightBarChart",
          "declaration": {
            "name": "WeightBarChart",
            "module": "src/weight-bar-chart.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "weight-bar-chart",
          "declaration": {
            "name": "WeightBarChart",
            "module": "src/weight-bar-chart.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/calendar.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "CALENDAR_ENTRY_ATTRIBUTES",
          "type": {
            "text": "array"
          },
          "default": "[\"start\", \"end\", \"label\", \"color\", \"href\", \"slot\"]",
          "description": "Attributes whose mutations can change a rendered calendar entry."
        },
        {
          "kind": "function",
          "name": "daysInMonth",
          "return": {
            "type": {
              "text": "number"
            }
          },
          "parameters": [
            {
              "name": "year",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "month",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Number of days in `month` (1-12) of `year`, leap years included."
        },
        {
          "kind": "function",
          "name": "parseIsoDate",
          "return": {
            "type": {
              "text": "Date | null"
            }
          },
          "parameters": [
            {
              "name": "iso",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Parses `\"YYYY-MM-DD\"` as a local-midnight `Date`. Returns `null` for\nanything that doesn't match or doesn't round-trip (e.g. \"2026-02-30\") —\ndeliberately never uses `new Date(iso)`/`.toISOString()`, both of which\nare UTC-based and would silently shift the date in negative-UTC-offset\ntimezones."
        },
        {
          "kind": "function",
          "name": "toIsoDate",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Formats a `Date`'s local year/month/day as `\"YYYY-MM-DD\"`."
        },
        {
          "kind": "function",
          "name": "monthName",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "month",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Locale-aware full month name for `month` (1-12)."
        },
        {
          "kind": "variable",
          "name": "WEEKDAY_ABBR",
          "type": {
            "text": "readonly string[]"
          },
          "default": "[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]",
          "description": "Sunday-first weekday abbreviations, indexed by `Date.getDay()` (0 = Sunday)."
        },
        {
          "kind": "function",
          "name": "isWeekend",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Whether `date` falls on a Saturday or Sunday, per JS's `Date.getDay()`\nconvention (Sunday = 0 .. Saturday = 6) — note this differs from Python's\n`calendar` module (Monday = 0), which the original reference\nimplementation this component's layout is based on used."
        },
        {
          "kind": "function",
          "name": "readCalendarEntryElement",
          "return": {
            "type": {
              "text": "CalendarEntryData"
            }
          },
          "parameters": [
            {
              "name": "el",
              "type": {
                "text": "CalendarEntry"
              }
            }
          ],
          "description": "Reads a `calendar-entry` element's properties and named text slots into plain data."
        },
        {
          "kind": "function",
          "name": "resolveEntry",
          "return": {
            "type": {
              "text": "ResolvedCalendarEntry | null"
            }
          },
          "parameters": [
            {
              "name": "data",
              "type": {
                "text": "CalendarEntryData"
              }
            }
          ],
          "description": "Resolves a `CalendarEntryData`'s date strings to `Date`s. Returns `null`\nwhen `start` is missing or unparseable — such entries are dropped\nsilently rather than thrown, since this reads declarative markup a\nconsumer authored, not validated user input. A blank `end` defaults to\n`start` (single-day entry); an `end` before `start` is clamped up to\n`start` rather than treated as an error."
        },
        {
          "kind": "function",
          "name": "overlapsRange",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "entry",
              "type": {
                "text": "ResolvedCalendarEntry"
              }
            },
            {
              "name": "rangeStart",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "rangeEnd",
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Whether `entry`'s inclusive date range intersects the inclusive `[rangeStart, rangeEnd]` range."
        },
        {
          "kind": "function",
          "name": "assignLanes",
          "return": {
            "type": {
              "text": "{\n  entries: LanedEntry[];\n  laneCount: number;\n}"
            }
          },
          "parameters": [
            {
              "name": "entries",
              "type": {
                "text": "ResolvedCalendarEntry[]"
              }
            }
          ],
          "description": "Assigns each entry a 0-based stacking lane via greedy interval\npartitioning (\"meeting rooms II\"): entries are sorted by start date, then\neach is placed in the lowest-numbered lane whose current occupant ends\nstrictly before the entry starts. Because entry ranges are\ninclusive-inclusive, an entry ending on day X and one starting on day X\nboth occupy day X and must not share a lane — hence the strict `<`.\n\nLane assignment is meant to be computed independently per `calendar-month`\n(from only the entries overlapping that month); an entry spanning a month\nboundary may therefore land in a different lane in adjacent months. This\nis an accepted v1 limitation, not a bug."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CALENDAR_ENTRY_ATTRIBUTES",
          "declaration": {
            "name": "CALENDAR_ENTRY_ATTRIBUTES",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "daysInMonth",
          "declaration": {
            "name": "daysInMonth",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "parseIsoDate",
          "declaration": {
            "name": "parseIsoDate",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "toIsoDate",
          "declaration": {
            "name": "toIsoDate",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "monthName",
          "declaration": {
            "name": "monthName",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "WEEKDAY_ABBR",
          "declaration": {
            "name": "WEEKDAY_ABBR",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "isWeekend",
          "declaration": {
            "name": "isWeekend",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "readCalendarEntryElement",
          "declaration": {
            "name": "readCalendarEntryElement",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "resolveEntry",
          "declaration": {
            "name": "resolveEntry",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "overlapsRange",
          "declaration": {
            "name": "overlapsRange",
            "module": "src/utils/calendar.ts"
          }
        },
        {
          "kind": "js",
          "name": "assignLanes",
          "declaration": {
            "name": "assignLanes",
            "module": "src/utils/calendar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/color.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "mixHex",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "base",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "weightPercent",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Linearly interpolates `base` toward `target` by `weightPercent`% (0-100)\nin RGB space, returning a 6-digit hex string. Used to derive gradient\nlight/dark stops from a single base color — SVG presentation attributes\n(`stop-color`) can't consume `color-mix()`/CSS custom properties, so this\ncomputes plain hex instead (see CLAUDE.md's SVG token rule)."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "mixHex",
          "declaration": {
            "name": "mixHex",
            "module": "src/utils/color.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/distance.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "formatMiles",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "miles",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Formats a distance in miles, switching to feet below 0.25 mi.\nAt ≥10 mi precision drops to whole miles."
        },
        {
          "kind": "function",
          "name": "formatKm",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "km",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Formats a distance in kilometers, switching to meters below 0.5 km.\nAt ≥10 km precision drops to whole kilometers. (Future use.)"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "formatMiles",
          "declaration": {
            "name": "formatMiles",
            "module": "src/utils/distance.ts"
          }
        },
        {
          "kind": "js",
          "name": "formatKm",
          "declaration": {
            "name": "formatKm",
            "module": "src/utils/distance.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/duration.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "formatDuration",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "ms",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "format",
              "type": {
                "text": "DurationFormat"
              }
            }
          ],
          "description": "Formats a millisecond duration for display.\n\n`\"seconds\"` renders a whole-second count with a pluralized unit word (e.g.\n\"1 second\", \"12 seconds\"). `\"compact\"` renders the shortest sensible\n`Xh Ym Zs` form, dropping leading-zero units (`\"12s\"`, `\"3m 12s\"`,\n`\"1h 03m 12s\"`) — minutes/seconds are zero-padded only once a larger unit\nis present."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "formatDuration",
          "declaration": {
            "name": "formatDuration",
            "module": "src/utils/duration.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/form.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "submitWithDefaultButton",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement"
              }
            }
          ],
          "description": "Submits a form through its default enabled native submit control when present."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "submitWithDefaultButton",
          "declaration": {
            "name": "submitWithDefaultButton",
            "module": "src/utils/form.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/layer-stack.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "activateLayer",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "layer",
              "type": {
                "text": "HTMLElement"
              }
            }
          ],
          "description": "Registers an open overlay as the current topmost interactive layer."
        },
        {
          "kind": "function",
          "name": "deactivateLayer",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "layer",
              "type": {
                "text": "HTMLElement"
              }
            }
          ],
          "description": "Removes a closed or disconnected overlay from the layer stack."
        },
        {
          "kind": "function",
          "name": "isTopLayer",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "layer",
              "type": {
                "text": "HTMLElement"
              }
            }
          ],
          "description": "Whether this overlay currently owns global Escape/focus behavior."
        },
        {
          "kind": "function",
          "name": "claimEscape",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "layer",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "name": "event",
              "type": {
                "text": "KeyboardEvent"
              }
            }
          ],
          "description": "Claims Escape for the topmost layer and marks it handled for other listeners."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "activateLayer",
          "declaration": {
            "name": "activateLayer",
            "module": "src/utils/layer-stack.ts"
          }
        },
        {
          "kind": "js",
          "name": "deactivateLayer",
          "declaration": {
            "name": "deactivateLayer",
            "module": "src/utils/layer-stack.ts"
          }
        },
        {
          "kind": "js",
          "name": "isTopLayer",
          "declaration": {
            "name": "isTopLayer",
            "module": "src/utils/layer-stack.ts"
          }
        },
        {
          "kind": "js",
          "name": "claimEscape",
          "declaration": {
            "name": "claimEscape",
            "module": "src/utils/layer-stack.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/time.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "parseTimestamp",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "s",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Parses a timestamp from either SQLite's `datetime('now')` (a space-separated\nUTC string with no zone marker, e.g. \"2026-07-15 10:23:00\") or a standard\nISO 8601 string. JS's `Date` parser treats the space-separated form as\nlocal time, so it's coerced to `T...Z` first to anchor it to UTC."
        },
        {
          "kind": "function",
          "name": "formatRelativeTime",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "now",
              "default": "Date.now()",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Formats `date` relative to `now` (e.g. \"3 hours ago\", \"in 2 days\")."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "parseTimestamp",
          "declaration": {
            "name": "parseTimestamp",
            "module": "src/utils/time.ts"
          }
        },
        {
          "kind": "js",
          "name": "formatRelativeTime",
          "declaration": {
            "name": "formatRelativeTime",
            "module": "src/utils/time.ts"
          }
        }
      ]
    }
  ]
}
