{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipUser/CatnipUser.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-user",
          "name": "CatnipUser",
          "attributes": [
            {
              "name": "name",
              "fieldName": "name",
              "description": "Visible person name. Empty shows the unassigned state. Also used to derive initials when `initials` is empty.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "initials",
              "fieldName": "initials",
              "description": "Overrides derived initials. Displayed length is at most two characters.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "color",
              "fieldName": "color",
              "description": "Avatar background CSS color. Empty uses the default purple data color. Ignored when Unassigned. Custom fills get AA-safe initials ink.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "interactive",
              "fieldName": "interactive",
              "description": "When true, the chip is a native button. Pair with `interaction` for click vs expand chrome.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "interaction",
              "fieldName": "interaction",
              "description": "How an interactive chip behaves. Ignored when `interactive` is false.\n`click` — pill button, no chevron.\n`expand` — pill + chevron (Dropdown `trigger`).",
              "type": {
                "text": "\"click\" | \"expand\" | undefined"
              }
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "description": "Open / pressed appearance when interactive. Use when a menu is open; Dropdown’s `aria-expanded` on the host also applies this.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "hide-name",
              "fieldName": "hideName",
              "description": "Hides the name and shows only the avatar circle. `name` still drives initials and the accessible name.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disabled presentation. Native `disabled` when the root is a button.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "unassigned-label",
              "fieldName": "unassignedLabel",
              "description": "Overrides bundled `user.unassigned` when `name` is empty.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override stable internal data-test hooks.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "avatar",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipToggleGroup/CatnipToggleGroup.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-toggle-group",
          "name": "CatnipToggleGroup",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "Optional `id` on the root `<label>`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "description": "",
              "type": {
                "text": "CatnipToggleGroupOptionData[] | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "null | string | number | false | true | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Component dimensions and typography. Toggle Group supports only the M and L variants.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "",
              "type": {
                "text": "\"default\" | \"accent\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Form field name; submitted value is the selected option `value`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipTooltip/CatnipTooltip.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-tooltip",
          "name": "CatnipTooltip",
          "attributes": [
            {
              "name": "trigger",
              "fieldName": "trigger",
              "description": "",
              "type": {
                "text": "\"hover\" | \"click\" | undefined"
              }
            },
            {
              "name": "subtle",
              "fieldName": "subtle",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "placement",
              "fieldName": "placement",
              "description": "",
              "type": {
                "text": "\"left\" | \"right\" | \"top\" | \"bottom\" | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "",
              "type": {
                "text": "\"center\" | \"start\" | \"end\" | undefined"
              }
            },
            {
              "name": "max-width",
              "fieldName": "maxWidth",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "offset",
              "fieldName": "offset",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "",
              "type": {
                "text": "boolean | null | undefined"
              }
            },
            {
              "name": "show-delay",
              "fieldName": "showDelay",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "hide-delay",
              "fieldName": "hideDelay",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "show-on-focus",
              "fieldName": "showOnFocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "open-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "anchor",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipToggle/CatnipToggle.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-toggle",
          "name": "CatnipToggle",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "When true, the switch is in the on position. Binds to attribute `model-value` for custom elements and `v-catnip-model`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables the switch and applies disabled styling (including muted on-state track).",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "Prevents changes while keeping the switch keyboard-focusable and exposing `aria-readonly`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Regular (m): 36×20px track, 20px thumb. Large (l): 52×28px track, 28px thumb.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Submitted with the form when the toggle is on (`ElementInternals`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Form value when on; default matches native checkbox convention.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name when there is no visible label in the default slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipToast/CatnipToast.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-toast",
          "name": "CatnipToast",
          "attributes": [
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic color treatment. Announcement urgency is controlled independently by `announcement`.",
              "type": {
                "text": "\"neutral\" | \"informative\" | \"success\" | \"warning\" | \"danger\" | \"brand\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Controls icon and text size.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "title",
              "fieldName": "title",
              "description": "Plain-text title.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Plain-text message. Ignored when the default slot has content.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon override. An empty value uses the icon mapped to the current intent.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "duration",
              "fieldName": "duration",
              "description": "Milliseconds before dismissal, or `persistent` to disable automatic dismissal.",
              "type": {
                "text": "number | \"persistent\" | undefined"
              }
            },
            {
              "name": "show-close-button",
              "fieldName": "showCloseButton",
              "description": "Shows a close button.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "horizontal-position",
              "fieldName": "horizontalPosition",
              "description": "Horizontal viewport position.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "vertical-position",
              "fieldName": "verticalPosition",
              "description": "Vertical viewport position.",
              "type": {
                "text": "\"top\" | \"bottom\" | undefined"
              }
            },
            {
              "name": "announcement",
              "fieldName": "announcement",
              "description": "Assistive-technology announcement level. Defaults to no live region; opt in to polite or assertive announcements.",
              "type": {
                "text": "\"none\" | \"polite\" | \"assertive\" | undefined"
              }
            },
            {
              "name": "close-button-aria-label",
              "fieldName": "closeButtonAriaLabel",
              "description": "Accessible label for the icon-only close button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "dismiss",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipTabs/CatnipTabs.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-tabs",
          "name": "CatnipTabs",
          "attributes": [
            {
              "name": "items",
              "fieldName": "items",
              "description": "Tab definitions (`value`, `label`, optional `icon`, `count`, optional `menu`).\nFrom HTML attributes, values may arrive as a JSON string until normalized in the component.",
              "type": {
                "text": "string | CatnipTabItem[] | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Selected tab or submenu row `value` — drives active styling and `aria-selected`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the tab navigation region.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Visual scale — **m** = compact rail (14px, 32px gap); **l** = large rail (16px, 40px gap, 24px icons).",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipTableRow/CatnipTableRow.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-table-row",
          "name": "CatnipTableRow",
          "attributes": [
            {
              "name": "selected",
              "fieldName": "selected",
              "description": "Selected row chrome (primary/subtler background). Consumer owns selection state.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipTableCell/CatnipTableCell.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-table-cell",
          "name": "CatnipTableCell",
          "attributes": [
            {
              "name": "header",
              "fieldName": "header",
              "description": "When true, styles and roles the cell as a column header.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "align",
              "fieldName": "align",
              "description": "Horizontal alignment of cell content.",
              "type": {
                "text": "\"center\" | \"start\" | \"end\" | undefined"
              }
            },
            {
              "name": "numeric",
              "fieldName": "numeric",
              "description": "Body cells: use code typography (Figma Number). Pair with `align=\"end\"` for numeric columns.\nHeader cells keep table-header type; still use `align=\"end\"` when the column is numeric.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "sortable",
              "fieldName": "sortable",
              "description": "Show sort affordance (header cells only). Presentational — does not sort data.\nConsumer binds `activeSort` and handles `sort-click`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "active-sort",
              "fieldName": "activeSort",
              "description": "Active sort direction for this column. Empty / unset = sortable but not the active column.\nOnly applies when `sortable` is true.",
              "type": {
                "text": "\"\" | \"asc\" | \"desc\" | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "sort-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipTable/CatnipTable.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-table",
          "name": "CatnipTable",
          "attributes": [
            {
              "name": "size",
              "fieldName": "size",
              "description": "Row density passed to descendant rows and cells.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "striped",
              "fieldName": "striped",
              "description": "Alternating body-row background (uses primary subtler token).",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "sticky-header",
              "fieldName": "stickyHeader",
              "description": "Stick header row group to the top of the scroll container.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name when there is no visible caption.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-labelledby",
              "fieldName": "ariaLabelledby",
              "description": "ID of an element that labels the table.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "header",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipStepper/CatnipStepper.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-stepper",
          "name": "CatnipStepper",
          "attributes": [
            {
              "name": "steps",
              "fieldName": "steps",
              "description": "Step definitions. HTML attributes may supply a JSON array string.",
              "type": {
                "text": "string | CatnipStepperStep[] | undefined"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "Horizontal or vertical flow.",
              "type": {
                "text": "\"horizontal\" | \"vertical\" | undefined"
              }
            },
            {
              "name": "step-name-position",
              "fieldName": "stepNamePosition",
              "description": "Label placement in horizontal steppers. Vertical steppers always resolve to `horizontal`.",
              "type": {
                "text": "\"horizontal\" | \"vertical\" | undefined"
              }
            },
            {
              "name": "show-steps-name",
              "fieldName": "showStepsName",
              "description": "Shows step names using `stepNamePosition`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "interactive",
              "fieldName": "interactive",
              "description": "Renders enabled steps as native buttons and emits `step-click`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the step group or step navigation landmark.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "step-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipStatus/CatnipStatus.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-status",
          "name": "CatnipStatus",
          "attributes": [
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic color for the dot, label, and filled chrome.",
              "type": {
                "text": "\"disabled\" | \"neutral\" | \"informative\" | \"success\" | \"warning\" | \"danger\" | \"brand\" | undefined"
              }
            },
            {
              "name": "filled",
              "fieldName": "filled",
              "description": "Pill background. Off is indicator + label only.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Density: **m** (default) or **l**.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon name for the leading indicator. When set, it replaces the status dot.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name — required when the default slot is empty (icon-only).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipSplitButton/CatnipSplitButton.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-split-button",
          "name": "CatnipSplitButton",
          "attributes": [
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "Visual weight of the button",
              "type": {
                "text": "\"primary\" | \"secondary\" | \"ghost\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Size dimension of the button",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Visual intent (e.g., danger)",
              "type": {
                "text": "\"default\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables both buttons",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "description": "Loading state disables both buttons",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "Consumer-controlled open state for the suffix button. Applies selected styling and `aria-expanded`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon to display on the left side of the main button",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the main button when there is no text content",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label-suffix",
              "fieldName": "ariaLabelSuffix",
              "description": "Accessible name for the suffix button (defaults to 'More options')",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-haspopup",
              "fieldName": "ariaHaspopup",
              "description": "Popup type announced by the suffix button. Defaults to `true`; set `false` to omit `aria-haspopup`.",
              "type": {
                "text": "false | true | \"dialog\" | \"listbox\" | \"menu\" | \"true\" | \"false\" | \"tree\" | \"grid\" | undefined"
              }
            },
            {
              "name": "aria-controls",
              "fieldName": "ariaControls",
              "description": "ID of the consumer-rendered popup controlled by the suffix button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "Type attribute for the main button",
              "type": {
                "text": "\"button\" | \"submit\" | \"reset\" | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Name attribute for the main button",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Value attribute for the main button",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "form",
              "fieldName": "form",
              "description": "Form id that the main button belongs to",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "Automatically focus the main button on mount",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into testSelectors.CatnipSplitButton defaults",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "open-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "suffix-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "suffixActiveIcon",
              "description": ""
            },
            {
              "name": "suffixInactiveIcon",
              "description": ""
            },
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipSpinner/CatnipSpinner.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-spinner",
          "name": "CatnipSpinner",
          "attributes": [
            {
              "name": "arc",
              "fieldName": "arc",
              "description": "",
              "type": {
                "text": "\"quarter\" | \"three-quarter\" | undefined"
              }
            },
            {
              "name": "inverse",
              "fieldName": "inverse",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipRangeInput/CatnipRangeInput.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-range-input",
          "name": "CatnipRangeInput",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "min",
              "fieldName": "min",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "step",
              "fieldName": "step",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Component dimensions and typography. Range Input supports only the M and L variants defined in Figma.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-min-max-labels",
              "fieldName": "showMinMaxLabels",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "min-label",
              "fieldName": "minLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "max-label",
              "fieldName": "maxLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "show-value-tooltip",
              "fieldName": "showValueTooltip",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-input-field",
              "fieldName": "showInputField",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "value-input-aria-label",
              "fieldName": "valueInputAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipRadioGroup/CatnipRadioGroup.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-radio-group",
          "name": "CatnipRadioGroup",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "Optional `id` on the root `<label>`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "description": "",
              "type": {
                "text": "CatnipRadioGroupOptionData[] | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "null | string | number | false | true | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Shared `name` on each native radio input; auto-generated when empty.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipRadio/CatnipRadio.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-radio",
          "name": "CatnipRadio",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Checked state. Binds to attribute `model-value` for custom elements.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"danger\" | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Form value when checked.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "Helper or validation copy below the option row (Figma info message).",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "Extra ids merged into `aria-describedby` on the input alongside generated supporting-text id.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "tabindex",
              "fieldName": "tabindex",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipProgress/CatnipProgress.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-progress",
          "name": "CatnipProgress",
          "attributes": [
            {
              "name": "progress",
              "fieldName": "progress",
              "description": "Determinate completion percentage. Values outside 0–100 are clamped.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible progress description and accessible-name fallback. Empty uses bundled `progress.label`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "Hides the complete visual label row, including percentage and intent icon.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-percentage",
              "fieldName": "showPercentage",
              "description": "Shows the normalized percentage in the visual label row.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-icon",
              "fieldName": "showIcon",
              "description": "Shows the intent icon in the visual label row for success, warning, and danger.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-zero-indicator",
              "fieldName": "showZeroIndicator",
              "description": "Shows a thickness-sized fill marker when progress is 0. File Item turns this off for an empty upload track.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic colour treatment. Does not change or infer the progress value.",
              "type": {
                "text": "\"default\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Visual scale for label typography, intent icon, and bar thickness.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the native progress element. Falls back to `label`, then bundled `progress.label`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-value-text",
              "fieldName": "ariaValueText",
              "description": "Human-readable alternative to the numeric value, for example `Step 2 of 4`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipPagination/CatnipPagination.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-pagination",
          "name": "CatnipPagination",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Current page (1-based).",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "total-pages",
              "fieldName": "totalPages",
              "description": "Total number of pages. When omitted, derived from `totalItems` / `pageSize`\n(at least 1).",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "total-items",
              "fieldName": "totalItems",
              "description": "Total item count for the default-layout range summary (`21-30 of 86 items`).",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "page-size",
              "fieldName": "pageSize",
              "description": "Items per page — used for the range summary and to derive `totalPages` when needed.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "layout",
              "fieldName": "layout",
              "description": "`default` = range + page list; `compact` = first/prev/current/of N/next/last.",
              "type": {
                "text": "\"default\" | \"compact\" | undefined"
              }
            },
            {
              "name": "sibling-count",
              "fieldName": "siblingCount",
              "description": "Pages shown on each side of the current page in default layout.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables all controls.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "previous-label",
              "fieldName": "previousLabel",
              "description": "Visible Previous label (default layout).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "next-label",
              "fieldName": "nextLabel",
              "description": "Visible Next label (default layout).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "of-label",
              "fieldName": "ofLabel",
              "description": "Connector word in summaries (`of`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "items-label",
              "fieldName": "itemsLabel",
              "description": "Suffix after total items in default layout (`items`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the navigation landmark.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "first-page-aria-label",
              "fieldName": "firstPageAriaLabel",
              "description": "Accessible label for first-page control (compact).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "last-page-aria-label",
              "fieldName": "lastPageAriaLabel",
              "description": "Accessible label for last-page control (compact).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "previous-page-aria-label",
              "fieldName": "previousPageAriaLabel",
              "description": "Accessible label for previous-page control.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "next-page-aria-label",
              "fieldName": "nextPageAriaLabel",
              "description": "Accessible label for next-page control.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "page-aria-label",
              "fieldName": "pageAriaLabel",
              "description": "Accessible label for a page-number control. Use `{page}` as the page placeholder\n(e.g. `Page {page}`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "page-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipListItem/CatnipListItem.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-list-item",
          "name": "CatnipListItem",
          "attributes": [
            {
              "name": "id",
              "fieldName": "id",
              "description": "DOM id for the option control (listbox `aria-activedescendant`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "active",
              "fieldName": "active",
              "description": "Keyboard highlight (combobox `aria-activedescendant`); distinct from `selected`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "description": "Selected column visuals; pairs with parent {@link ListSelectionAppearance}.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "description": "Partial selection for checkbox rows (e.g. select-all header).",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Muted visuals; suppresses click emit.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Row intent. `danger` applies Figma error styling (text, hover fill, and selected-state chrome).",
              "type": {
                "text": "\"default\" | \"danger\" | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.ListItem` defaults. Keys: `root`, `control`, `checkbox`, `checkmark`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "left",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "right",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipList/CatnipList.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-list",
          "name": "CatnipList",
          "attributes": [
            {
              "name": "size",
              "fieldName": "size",
              "description": "Row density passed to embedded {@link ListItem } instances.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "selection-appearance",
              "fieldName": "selectionAppearance",
              "description": "How selection is presented for all rows in this list.",
              "type": {
                "text": "\"default\" | \"checkmark\" | \"checkbox\" | undefined"
              }
            },
            {
              "name": "max-height",
              "fieldName": "maxHeight",
              "description": "Max height of the scrollable body (header/footer stay visible).",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "role",
              "fieldName": "role",
              "description": "ARIA role on the body list element.",
              "type": {
                "text": "\"listbox\" | \"menu\" | undefined"
              }
            },
            {
              "name": "body-class",
              "fieldName": "bodyClass",
              "description": "Extra class(es) on the scrollable list body `<ul>`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name when the list is not labelled by a visible element.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-labelledby",
              "fieldName": "ariaLabelledby",
              "description": "ID of the element that labels the list body.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "body-id",
              "fieldName": "bodyId",
              "description": "DOM id for the scrollable list body (`<ul>`).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-multiselectable",
              "fieldName": "ariaMultiselectable",
              "description": "Sets `aria-multiselectable` on the list body.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.List` defaults. Keys: `root`, `header`, `body`, `footer`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "header",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "footer",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipLink/CatnipLink.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-link",
          "name": "CatnipLink",
          "attributes": [
            {
              "name": "href",
              "fieldName": "href",
              "description": "Destination URL. Ignored when `disabled` is true (renders as non-navigable text).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "Visual treatment: primary (brand), secondary (neutral), tertiary (muted), or underline (inline text).",
              "type": {
                "text": "\"primary\" | \"secondary\" | \"tertiary\" | \"underline\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Small (s): 12px / 16px. Medium (m): 14px / 20px. Large (l): 16px / 24px.",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon name for the left icon position. Use CatnipIconName for autocompletion.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "right-icon",
              "fieldName": "rightIcon",
              "description": "Icon name for the right icon position. Empty by default.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "When true, renders a `span` with `role=\"link\"`, `aria-disabled`, and `tabindex=\"-1\"` instead of an anchor (not in the tab order).",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Native `target`, e.g. `_blank` for a new tab.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "rel",
              "fieldName": "rel",
              "description": "Native `rel`. When `target` is `_blank`, `noopener` and `noreferrer` are appended if missing.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "download",
              "fieldName": "download",
              "description": "Native `download` — filename hint or boolean.",
              "type": {
                "text": "string | boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name when the default slot has no visible text (rare for links).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-current",
              "fieldName": "ariaCurrent",
              "description": "Native `aria-current`: `true` or one of `page`, `step`, `location`, `date`, `time` (case-insensitive). Other strings are ignored.",
              "type": {
                "text": "string | boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInputPhone/CatnipInputPhone.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input-phone",
          "name": "CatnipInputPhone",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "CatnipInputPhoneModelValue | undefined"
              }
            },
            {
              "name": "default-country-code",
              "fieldName": "defaultCountryCode",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-clear-button",
              "fieldName": "showClearButton",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "clear-button-aria-label",
              "fieldName": "clearButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "country-button-aria-label",
              "fieldName": "countryButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "filter-placeholder",
              "fieldName": "filterPlaceholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "filter-value",
              "fieldName": "filterValue",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "list-max-height",
              "fieldName": "listMaxHeight",
              "description": "",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "open-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "close",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "update:filterValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInputNumber/CatnipInputNumber.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input-number",
          "name": "CatnipInputNumber",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "number | null | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "min",
              "fieldName": "min",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "step",
              "fieldName": "step",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "separate-at",
              "fieldName": "separateAt",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "separator",
              "fieldName": "separator",
              "description": "",
              "type": {
                "text": "\",\" | \".\" | \" \" | undefined"
              }
            },
            {
              "name": "decimal-separator",
              "fieldName": "decimalSeparator",
              "description": "",
              "type": {
                "text": "\",\" | \".\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInputFile/CatnipInputFile.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input-file",
          "name": "CatnipInputFile",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Selected files. Bind with `.modelValue` and handle `update:modelValue`.",
              "type": {
                "text": "File[] | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "Drop zone orientation.",
              "type": {
                "text": "\"horizontal\" | \"vertical\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Drop zone size (`m` or `l`).",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Field intent — `danger` switches the drop zone to the inline error presentation.",
              "type": {
                "text": "\"neutral\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "accept",
              "fieldName": "accept",
              "description": "Native `accept` attribute forwarded to the hidden file input.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "description": "Allow selecting multiple files.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "accept-hint",
              "fieldName": "acceptHint",
              "description": "Hint shown below the primary copy (e.g. allowed types and max size). Fallback for the `acceptHint` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "upload-link-text",
              "fieldName": "uploadLinkText",
              "description": "Primary link-style call to action inside the drop zone. Fallback for the `uploadLink` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "drag-drop-text",
              "fieldName": "dragDropText",
              "description": "Secondary copy after the upload link. Fallback for the `dragDrop` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "drag-active-text",
              "fieldName": "dragActiveText",
              "description": "Copy shown while files are dragged over the drop zone. Fallback for the `dragActive` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "drop-zone-error-title",
              "fieldName": "dropZoneErrorTitle",
              "description": "Bold error line when `intent` is `danger`. Fallback for the `errorTitle` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "drop-zone-error-hint",
              "fieldName": "dropZoneErrorHint",
              "description": "Secondary error hint when `intent` is `danger`. Fallback for the `errorHint` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            },
            {
              "name": "errorTitle",
              "description": ""
            },
            {
              "name": "errorHint",
              "description": ""
            },
            {
              "name": "uploadLink",
              "description": ""
            },
            {
              "name": "dragDrop",
              "description": ""
            },
            {
              "name": "acceptHint",
              "description": ""
            },
            {
              "name": "dragActive",
              "description": ""
            },
            {
              "name": "files",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInputDate/CatnipInputDate.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input-date",
          "name": "CatnipInputDate",
          "attributes": [
            {
              "name": "mode",
              "fieldName": "mode",
              "description": "",
              "type": {
                "text": "\"single\" | \"range\" | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "CatnipInputDateModelValue | undefined"
              }
            },
            {
              "name": "show-time",
              "fieldName": "showTime",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-actions",
              "fieldName": "showActions",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-presets",
              "fieldName": "showPresets",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "period-presets",
              "fieldName": "periodPresets",
              "description": "",
              "type": {
                "text": "CatnipInputDatePeriodPresetConfig[] | undefined"
              }
            },
            {
              "name": "show-clear-button",
              "fieldName": "showClearButton",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "clear-button-aria-label",
              "fieldName": "clearButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "display-format",
              "fieldName": "displayFormat",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "display-date-time-format",
              "fieldName": "displayDateTimeFormat",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "min",
              "fieldName": "min",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "disabled-dates",
              "fieldName": "disabledDates",
              "description": "",
              "type": {
                "text": "string[] | undefined"
              }
            },
            {
              "name": "max-range-days",
              "fieldName": "maxRangeDays",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "first-day-of-week",
              "fieldName": "firstDayOfWeek",
              "description": "",
              "type": {
                "text": "0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined"
              }
            },
            {
              "name": "locale",
              "fieldName": "locale",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "panel-orientation",
              "fieldName": "panelOrientation",
              "description": "",
              "type": {
                "text": "\"horizontal\" | \"vertical\" | undefined"
              }
            },
            {
              "name": "panel-placement",
              "fieldName": "panelPlacement",
              "description": "",
              "type": {
                "text": "\"top\" | \"bottom\" | undefined"
              }
            },
            {
              "name": "panel-align",
              "fieldName": "panelAlign",
              "description": "",
              "type": {
                "text": "\"start\" | \"end\" | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "start-label",
              "fieldName": "startLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "end-label",
              "fieldName": "endLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "open-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "close",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "clear",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "submit",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "cancel",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            },
            {
              "name": "trigger",
              "description": ""
            },
            {
              "name": "value",
              "description": ""
            },
            {
              "name": "startLabel",
              "description": ""
            },
            {
              "name": "endLabel",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInputChip/CatnipInputChip.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input-chip",
          "name": "CatnipInputChip",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "string[] | undefined"
              }
            },
            {
              "name": "draft-value",
              "fieldName": "draftValue",
              "description": "Custom `draftInput` slot only — parent-controlled draft for Add/commit. Ignored with the default embedded input.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "catnip-input",
              "fieldName": "catnipInput",
              "description": "",
              "type": {
                "text": "Partial<CatnipInputControlProps> | undefined"
              }
            },
            {
              "name": "min-chips",
              "fieldName": "minChips",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "max-chips",
              "fieldName": "maxChips",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "max-visible-chips",
              "fieldName": "maxVisibleChips",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "show-more-chips-label",
              "fieldName": "showMoreChipsLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "show-less-chips-label",
              "fieldName": "showLessChipsLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "show-add-button",
              "fieldName": "showAddButton",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "add-button",
              "fieldName": "addButton",
              "description": "",
              "type": {
                "text": "CatnipInputChipAddButtonProps | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "update:draftValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            },
            {
              "name": "draftInput",
              "description": ""
            },
            {
              "name": "catnipInput.leftIconSlot",
              "description": ""
            },
            {
              "name": "catnipInput.rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipInput/CatnipInput.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-input",
          "name": "CatnipInput",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Visible label text. Fallback for the `label` slot when no light-DOM content is projected.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "",
              "type": {
                "text": "\"text\" | \"email\" | \"password\" | \"textarea\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "spellcheck",
              "fieldName": "spellcheck",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "right-icon",
              "fieldName": "rightIcon",
              "description": "",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "right-icon-clickable",
              "fieldName": "rightIconClickable",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "right-icon-button-aria-label",
              "fieldName": "rightIconButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "show-clear-button",
              "fieldName": "showClearButton",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "clear-button-aria-label",
              "fieldName": "clearButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "rows",
              "fieldName": "rows",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "resizable",
              "fieldName": "resizable",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "maxlength",
              "fieldName": "maxlength",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "pattern",
              "fieldName": "pattern",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "right-icon-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            },
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipIcon/CatnipIcon.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-icon",
          "name": "CatnipIcon",
          "attributes": [
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "CatnipIconName"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "If set, exposes the icon to assistive tech (`role=\"img\"`). Leave unset for decorative icons (next to text or inside a named control).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipGraphic/CatnipGraphic.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-graphic",
          "name": "CatnipGraphic",
          "attributes": [
            {
              "name": "name",
              "fieldName": "name",
              "description": "Path under `illustrations/` in `@signicat/catnip-assets` without `.svg` (e.g. `products/eid-hub`, `pictograms/folder`, `hero/onboarding`).",
              "type": {
                "text": "CatnipIllustrationName"
              }
            },
            {
              "name": "width",
              "fieldName": "width",
              "description": "Display width in pixels. Omit or use ≤0 for automatic sizing from viewBox / height.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "description": "Display height in pixels. Omit or use ≤0 for automatic sizing from viewBox / width.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "If set, exposes the graphic as a named image for assistive tech. Omit when decorative.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipFileItem/CatnipFileItem.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-file-item",
          "name": "CatnipFileItem",
          "attributes": [
            {
              "name": "file-name",
              "fieldName": "fileName",
              "description": "Display name of the file.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "file-size",
              "fieldName": "fileSize",
              "description": "Human-readable file size (e.g. `4.1 MB`). Shown for `ready`, `inProgress`, and `done`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Visual size of the file item row.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "status",
              "fieldName": "status",
              "description": "Upload or validation status that drives layout, colors, and available actions.",
              "type": {
                "text": "\"warning\" | \"danger\" | \"ready\" | \"inProgress\" | \"done\" | undefined"
              }
            },
            {
              "name": "progress",
              "fieldName": "progress",
              "description": "Upload progress percentage (0–100) when `status` is `inProgress`.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "message",
              "fieldName": "message",
              "description": "Helper or error message shown below the file name for `warning` and `danger`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "show-download",
              "fieldName": "showDownload",
              "description": "Whether to show the download action in `ready` and `done`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-delete",
              "fieldName": "showDelete",
              "description": "Whether to show the delete action in `ready` and `done`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "download-aria-label",
              "fieldName": "downloadAriaLabel",
              "description": "Accessible label for the download action button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "delete-aria-label",
              "fieldName": "deleteAriaLabel",
              "description": "Accessible label for the delete action button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "cancel-aria-label",
              "fieldName": "cancelAriaLabel",
              "description": "Accessible label for the cancel action button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "retry-aria-label",
              "fieldName": "retryAriaLabel",
              "description": "Accessible label for the retry action button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "dismiss-aria-label",
              "fieldName": "dismissAriaLabel",
              "description": "Accessible label for the dismiss action button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "Record<string, string> | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "delete",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "dismiss",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "download",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "cancel",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "retry",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipFieldLabel/CatnipFieldLabel.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-field-label",
          "name": "CatnipFieldLabel",
          "attributes": [
            {
              "name": "html-for",
              "fieldName": "htmlFor",
              "description": "Associates the label with a control (`for` attribute). HTML attribute: `html-for`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "Optional `id` on the root `<label>`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography: **m** → text-m medium; **l** → text-l medium.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). Pair with `required` on the control.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional screen-reader-only supplement when non-empty after trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually when the control is disabled.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "flush",
              "fieldName": "flush",
              "description": "When true, removes default `margin-block-end` so the parent supplies vertical spacing.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty, renders a trailing `catnip-tooltip`. Wins over the `#suffix` slot.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": ""
            },
            {
              "name": "action",
              "description": ""
            },
            {
              "name": "suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipDropdownOption/CatnipDropdownOption.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-dropdown-option",
          "name": "CatnipDropdownOption",
          "attributes": [
            {
              "name": "value",
              "fieldName": "value",
              "description": "Stable option id; included in dropdown `modelValue`.",
              "type": {
                "text": "string | number | false | true"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Display and typeahead text. Falls back to default slot text when empty.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"default\" | \"danger\" | undefined"
              }
            },
            {
              "name": "hidden",
              "fieldName": "hidden",
              "description": "When true, the option is omitted from the panel and keyboard navigation.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": ""
            },
            {
              "name": "left",
              "description": ""
            },
            {
              "name": "right",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipDropdown/CatnipDropdown.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-dropdown",
          "name": "CatnipDropdown",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "description": "Plain option rows. When set, `<catnip-dropdown-option>` children are ignored.",
              "type": {
                "text": "CatnipDropdownOptionData[] | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "CatnipDropdownModelValue"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "select-all",
              "fieldName": "selectAll",
              "description": "Multi-select only. Shows a select-all row above options; toggles visible enabled rows.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "description": "Accessible label for the built-in select-all row; defaults to bundled `dropdown.selectAll`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "display-mode",
              "fieldName": "displayMode",
              "description": "",
              "type": {
                "text": "\"value\" | \"chips\" | \"count\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "",
              "type": {
                "text": "boolean | null | undefined"
              }
            },
            {
              "name": "list-max-height",
              "fieldName": "listMaxHeight",
              "description": "",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "list-max-width",
              "fieldName": "listMaxWidth",
              "description": "",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "filterable",
              "fieldName": "filterable",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "filter-locally",
              "fieldName": "filterLocally",
              "description": "When false, parent controls visible options (e.g. via `v-for`); built-in label filtering is skipped.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "filter-placeholder",
              "fieldName": "filterPlaceholder",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "filter-value",
              "fieldName": "filterValue",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "catnip-input",
              "fieldName": "catnipInput",
              "description": "",
              "type": {
                "text": "Partial<CatnipInputControlProps> | undefined"
              }
            },
            {
              "name": "show-clear-button",
              "fieldName": "showClearButton",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "clear-button-aria-label",
              "fieldName": "clearButtonAriaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "selected-count-label",
              "fieldName": "selectedCountLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "max-visible-chips",
              "fieldName": "maxVisibleChips",
              "description": "",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "open-change",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "close",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "update:filterValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            },
            {
              "name": "trigger",
              "description": ""
            },
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "value",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            },
            {
              "name": "listHeader",
              "description": ""
            },
            {
              "name": "listFooter",
              "description": ""
            },
            {
              "name": "catnipInput.leftIconSlot",
              "description": ""
            },
            {
              "name": "catnipInput.rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipDrawer/CatnipDrawer.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-drawer",
          "name": "CatnipDrawer",
          "attributes": [
            {
              "name": "open",
              "fieldName": "open",
              "description": "Controls whether the drawer is visible. Dismissal actions emit close requests; consumers must set this to `false` to close.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Drawer width: s = 492px, m = 578px, l = 664px. Use `--catnip-drawer-width` for a custom desktop width.",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "show-close-button",
              "fieldName": "showCloseButton",
              "description": "Shows an icon-only close button in the header area.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "close-button-aria-label",
              "fieldName": "closeButtonAriaLabel",
              "description": "Accessible name for the icon-only close button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "backdrop-blur",
              "fieldName": "backdropBlur",
              "description": "Applies backdrop-filter blur to the native dialog backdrop.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "close-on-backdrop-click",
              "fieldName": "closeOnBackdropClick",
              "description": "Emits `backdrop-click` on every backdrop click and requests dismissal when both `closable` and this prop are true.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "closable",
              "fieldName": "closable",
              "description": "Allows implicit dismissal requests through Escape and, together with `closeOnBackdropClick`, backdrop clicks. The explicit close button still requests dismissal.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name for the drawer. Required unless `ariaLabelledby` supplies one.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-labelledby",
              "fieldName": "ariaLabelledby",
              "description": "ID of an element that labels the drawer. Takes precedence over `ariaLabel`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "ID of an element that describes the drawer.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:open",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "close-drawer",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "backdrop-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "after-drawer-close",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "header",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "footer",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipDivider/CatnipDivider.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-divider",
          "name": "CatnipDivider",
          "attributes": [
            {
              "name": "decorative",
              "fieldName": "decorative",
              "description": "When `true` (default), the rule is hidden from assistive technology. Set `false` for a meaningful separator; use `ariaLabel` if it needs a name.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Only when `decorative` is `false`: accessible name for the separator.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "",
              "type": {
                "text": "\"horizontal\" | \"vertical\" | undefined"
              }
            },
            {
              "name": "shape",
              "fieldName": "shape",
              "description": "",
              "type": {
                "text": "\"round\" | \"square\" | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "",
              "type": {
                "text": "\"solid\" | \"dashed\" | \"dotted\" | \"double\" | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipDialog/CatnipDialog.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-dialog",
          "name": "CatnipDialog",
          "attributes": [
            {
              "name": "open",
              "fieldName": "open",
              "description": "Controls whether the dialog is visible. Dismissal actions emit close requests; consumers must set this to `false` to close.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Dialog width: s = 492px, m = 664px, l = 836px. Override with `--catnip-dialog-width` for a custom or content-sized width.",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "padding",
              "fieldName": "padding",
              "description": "Surface padding. `none` removes the inset. Override with `--catnip-dialog-padding` for a custom length.",
              "type": {
                "text": "\"default\" | \"none\" | undefined"
              }
            },
            {
              "name": "role",
              "fieldName": "role",
              "description": "ARIA role. Use `alertdialog` for urgent confirmation flows.",
              "type": {
                "text": "\"dialog\" | \"alertdialog\" | \"alert dialog\" | undefined"
              }
            },
            {
              "name": "title",
              "fieldName": "title",
              "description": "Header title. Ignored when the `header` slot is used.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Header description. Ignored when the `header` slot is used.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Header icon name rendered with CatnipIcon. Ignored when the `header` slot is used.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "icon-size",
              "fieldName": "iconSize",
              "description": "Header icon size in px. Ignored when the `header` slot is used.",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "name": "centered-header",
              "fieldName": "centeredHeader",
              "description": "Centers the prop-based header into icon, title, and description rows. Ignored when the `header` slot is used.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "show-close-button",
              "fieldName": "showCloseButton",
              "description": "Shows an icon-only close button in the header area.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "close-button-aria-label",
              "fieldName": "closeButtonAriaLabel",
              "description": "Accessible name for the icon-only close button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "backdrop-blur",
              "fieldName": "backdropBlur",
              "description": "Applies backdrop-filter blur to the native dialog backdrop.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "close-on-backdrop-click",
              "fieldName": "closeOnBackdropClick",
              "description": "Emits `backdrop-click` on every backdrop click and requests dismissal when both `closable` and this prop are true.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "closable",
              "fieldName": "closable",
              "description": "Allows implicit dismissal requests through Escape and, together with `closeOnBackdropClick`, backdrop clicks. Explicit close still requests dismissal.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name override. Use this when the header is slotted and does not provide `aria-labelledby`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-labelledby",
              "fieldName": "ariaLabelledby",
              "description": "ID of an element that labels the dialog. Overrides the generated title ID.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "ID of an element that describes the dialog. Overrides the generated description ID.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:open",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "backdrop-click",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "close-dialog",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "after-dialog-close",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "header",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "footer",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipCounter/CatnipCounter.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-counter",
          "name": "CatnipCounter",
          "attributes": [
            {
              "name": "value",
              "fieldName": "value",
              "description": "Count shown inside the badge. Numbers are stringified for display.",
              "type": {
                "text": "string | number | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "Visual chrome: **primary** or **secondary**.",
              "type": {
                "text": "\"primary\" | \"secondary\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Visually mutes the count while preserving its appearance. Counter remains presentational.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Density: **s**, **m** (default), or **l**.",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipChip/CatnipChip.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-chip",
          "name": "CatnipChip",
          "attributes": [
            {
              "name": "size",
              "fieldName": "size",
              "description": "Controls dimensions, padding, and typography",
              "type": {
                "text": "\"xs\" | \"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "selectable",
              "fieldName": "selectable",
              "description": "When true, the entire chip acts as a toggle button. Selection is controlled with `modelValue` / `update:modelValue` (or `v-model`). When false (default), the chip is removable — a trailing remove button is rendered and emits a `remove` event on click.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Checked state when `selectable` is true. Drives the native checkbox's `checked` property. Binds to attribute `model-value` for custom elements and `v-model`. Ignored when `selectable` is false.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables the chip and applies disabled styles. Events are not emitted when disabled.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "Sets the chip to a read-only state. Visuals become muted and interactions are prevented, but it remains focusable if applicable.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "remove-button-aria-label",
              "fieldName": "removeButtonAriaLabel",
              "description": "Accessible label for the remove button icon. Default: \"Remove\". Only applies when the chip is in removable mode (selectable is false).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon name for the left icon position. Use CatnipIconName for autocompletion.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "remove",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipChecklist/CatnipChecklist.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-checklist",
          "name": "CatnipChecklist",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Mutes the label visually (`pointer-events: none`) for coordination with a disabled control.\nDoes **not** replace `disabled` on the control — set that on the input (or equivalent) for accessibility.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Merged into `testSelectors.FieldLabel` defaults. Keys: `root` (label), `main` (title slot),\n`optional`, `required` (visual marker), `suffix`, `action`.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Label typography matches field size: **s** and **m** use text-m medium; **l** uses text-l medium\n(Figma: `catnip-text-m` / `catnip-text-l` at weight medium).",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "id",
              "fieldName": "id",
              "description": "Optional `id` on the root `<label>`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Horizontal alignment of the label block.",
              "type": {
                "text": "\"left\" | \"center\" | \"right\" | undefined"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "description": "When true, shows a trailing required marker (visual). The associated control must expose\n`required` and/or `aria-required=\"true\"` for assistive technology — do not rely on the label alone.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "required-screen-reader-text",
              "fieldName": "requiredScreenReaderText",
              "description": "Optional extra text for screen readers **only** when you need a supplement beyond `aria-required`\non the control (rare). Empty by default — no hidden span is rendered unless this is non-empty\nafter trim.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "required-marker",
              "fieldName": "requiredMarker",
              "description": "Visual marker for required fields (default asterisk).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "optional",
              "fieldName": "optional",
              "description": "When true (and not `required`), shows optional hint text.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "optional-text",
              "fieldName": "optionalText",
              "description": "Overrides `locale(\"fieldLabel.optional\")` for the optional hint when `optional` is true.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "When non-empty (after trim), renders a trailing `catnip-tooltip` **before** the `#suffix` slot.\nIf both **`info`** and **`#suffix`** are provided, **`info`** wins and **`#suffix`** is omitted.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "description": "",
              "type": {
                "text": "CatnipChecklistOptionData[] | undefined"
              }
            },
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "",
              "type": {
                "text": "CatnipChecklistModelValue | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"success\" | \"warning\" | \"danger\" | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "hide-label",
              "fieldName": "hideLabel",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "label",
              "description": ""
            },
            {
              "name": "label.action",
              "description": ""
            },
            {
              "name": "label.suffix",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipCheckbox/CatnipCheckbox.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-checkbox",
          "name": "CatnipCheckbox",
          "attributes": [
            {
              "name": "model-value",
              "fieldName": "modelValue",
              "description": "Checked state. Binds to attribute `model-value` for custom elements.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "description": "Visual indeterminate state (e.g. partial selection in a group).",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "description": "",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "",
              "type": {
                "text": "\"neutral\" | \"danger\" | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Form value when checked; default matches native checkbox convention.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "supporting-text",
              "fieldName": "supportingText",
              "description": "Helper or validation copy below the option row (Figma info message).",
              "type": {
                "text": "SupportingTextProp | undefined"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "description": "Extra ids merged into `aria-describedby` on the input alongside generated supporting-text id.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "update:modelValue",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipCard/CatnipCard.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-card",
          "name": "CatnipCard",
          "attributes": [
            {
              "name": "interactive",
              "fieldName": "interactive",
              "description": "When true, the surface is one native control. A non-empty `href` renders an anchor; otherwise a native `button type=\"button\"` is used.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables the card. Interactive cards leave the tab order and cannot activate; non-interactive cards expose `aria-disabled`.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "Navigation URL. When `interactive` is true, a non-empty href renders a native anchor; otherwise a native `button type=\"button\"` is used.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Native anchor `target`, for example `_blank`. Used only by an interactive card with `href`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "rel",
              "fieldName": "rel",
              "description": "Native anchor `rel`. For `target=\"_blank\"`, `noopener` and `noreferrer` are appended when missing.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "download",
              "fieldName": "download",
              "description": "Native anchor `download` filename hint or boolean. Used only by an interactive card with `href`.",
              "type": {
                "text": "string | boolean | undefined"
              }
            },
            {
              "name": "hreflang",
              "fieldName": "hreflang",
              "description": "Native anchor `hreflang`. Used only by an interactive card with `href`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "referrer-policy",
              "fieldName": "referrerPolicy",
              "description": "Native anchor `referrerpolicy`. Used only by an interactive card with `href`.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name override. Otherwise the native link/button name is calculated from the slotted content.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "aria-current",
              "fieldName": "ariaCurrent",
              "description": "Native `aria-current` for navigation cards: `true`, `page`, `step`, `location`, `date`, or `time`.",
              "type": {
                "text": "string | boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override stable internal data-test hooks.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipButton/CatnipButton.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-button",
          "name": "CatnipButton",
          "attributes": [
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "Visual weight of the button",
              "type": {
                "text": "\"primary\" | \"secondary\" | \"ghost\" | \"tertiary\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Controls dimensions, padding, and typography",
              "type": {
                "text": "\"xs\" | \"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic intent — changes the color scheme",
              "type": {
                "text": "\"default\" | \"danger\" | undefined"
              }
            },
            {
              "name": "purpose",
              "fieldName": "purpose",
              "description": "Layout role: main (pill) or utility (squared corners)",
              "type": {
                "text": "\"main\" | \"utility\" | undefined"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "description": "Disables the button and applies disabled styles",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "description": "Busy state: `aria-busy`, native `disabled`, and `catnip-button--loading`. Disabled look for loading is interim until UX finalizes design; semantics should stay.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "description": "Selected-on state for utility buttons (e.g. toggle groups). Only applies when `purpose` is `utility`. Interim: uses the same visuals as `:active` until UX finalizes dedicated selected styles.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon name for the left icon position. Use CatnipIconName for autocompletion.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "right-icon",
              "fieldName": "rightIcon",
              "description": "Icon name for the right icon position. Use CatnipIconName for autocompletion.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible label — required for icon-only buttons, optional otherwise",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "Native button type attribute",
              "type": {
                "text": "\"button\" | \"submit\" | \"reset\" | undefined"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Native `name` — included in form data for `type=\"submit\"` / `reset`, and useful for tests or progressive enhancement",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Native `value` — submitted with `name` for `type=\"submit\"` / `reset`",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "form",
              "fieldName": "form",
              "description": "Native `form` — id of a `<form>` to associate when the button sits outside that form",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "description": "Native `autofocus` — focus on mount (use sparingly; prefer moving focus in a dialog after open)",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipBadge/CatnipBadge.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-badge",
          "name": "CatnipBadge",
          "attributes": [
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic color treatment for the badge.",
              "type": {
                "text": "\"disabled\" | \"neutral\" | \"informative\" | \"success\" | \"warning\" | \"danger\" | \"brand\" | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "`subtle` is the wash; `strong` is the solid surface.",
              "type": {
                "text": "\"subtle\" | \"strong\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Controls height, typography, and icon size.",
              "type": {
                "text": "\"s\" | \"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon name for the leading icon position.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "right-icon",
              "fieldName": "rightIcon",
              "description": "Icon name for the trailing icon position.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Accessible name — required when the default slot is empty (icon-only).",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            },
            {
              "name": "rightIconSlot",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/components/CatnipAlert/CatnipAlert.ce.vue",
      "declarations": [
        {
          "kind": "class",
          "tagName": "catnip-alert",
          "name": "CatnipAlert",
          "attributes": [
            {
              "name": "intent",
              "fieldName": "intent",
              "description": "Semantic color treatment. Announcement urgency is controlled independently by `announcement`.",
              "type": {
                "text": "\"neutral\" | \"informative\" | \"success\" | \"warning\" | \"danger\" | \"brand\" | undefined"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "description": "Controls icon and text size.",
              "type": {
                "text": "\"m\" | \"l\" | undefined"
              }
            },
            {
              "name": "appearance",
              "fieldName": "appearance",
              "description": "Visual presentation. All appearances stay in document flow.",
              "type": {
                "text": "\"banner\" | \"inline\" | \"inlineInverse\" | \"text\" | undefined"
              }
            },
            {
              "name": "title",
              "fieldName": "title",
              "description": "Plain-text title. Displayed by the `banner` appearance.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Plain-text message. Ignored when the default slot has content.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "left-icon",
              "fieldName": "leftIcon",
              "description": "Icon override. An empty value uses the icon mapped to the current intent.",
              "type": {
                "text": "\"\" | CatnipIconName | undefined"
              }
            },
            {
              "name": "show-close-button",
              "fieldName": "showCloseButton",
              "description": "Shows a close button for the `banner` appearance.",
              "type": {
                "text": "boolean | undefined"
              }
            },
            {
              "name": "announcement",
              "fieldName": "announcement",
              "description": "Assistive-technology announcement level. Defaults to no live region; opt in to polite or assertive announcements.",
              "type": {
                "text": "\"none\" | \"polite\" | \"assertive\" | undefined"
              }
            },
            {
              "name": "close-button-aria-label",
              "fieldName": "closeButtonAriaLabel",
              "description": "Accessible label for the icon-only close button.",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "name": "test-selectors",
              "fieldName": "testSelectors",
              "description": "Override data-test attributes for testing.",
              "type": {
                "text": "TestSelectorsProp | undefined"
              }
            },
            {
              "name": "class",
              "fieldName": "class",
              "description": "",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "style",
              "fieldName": "style",
              "description": "",
              "type": {
                "text": "unknown"
              }
            }
          ],
          "events": [
            {
              "name": "dismiss",
              "description": "",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "slots": [
            {
              "name": "leftIconSlot",
              "description": ""
            },
            {
              "name": "",
              "description": ""
            }
          ],
          "customElement": true
        }
      ]
    }
  ]
}